@mindexec/cli 0.2.383 → 0.2.385
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/codex-runtime.js +31 -255
- package/package.json +1 -1
- package/remote-hub.js +2 -80
- package/scripts/remote-fast-live-rate-smoke.mjs +3 -19
- package/scripts/remote-fast-mdm-browser-smoke.mjs +2 -28
- package/scripts/remote-hub-smoke.mjs +2 -32
- package/scripts/setup-tree-sitter-grammars.mjs +5 -26
- package/server.js +33 -1811
- package/wwwroot/MindExecution.Web.styles.css +3 -0
- package/wwwroot/_content/MindExecution.Plugins.Admin/css/admin-dashboard.css +546 -0
- package/wwwroot/_content/MindExecution.Plugins.Directory/MindExecution.Plugins.Directory.u7utcng611.bundle.scp.css +7 -0
- package/wwwroot/_content/MindExecution.Plugins.Directory/background.png +0 -0
- package/wwwroot/_content/MindExecution.Plugins.Directory/directory-manager.js +202 -0
- package/wwwroot/_content/MindExecution.Plugins.Directory/exampleJsInterop.js +6 -0
- package/wwwroot/_content/MindExecution.Plugins.YouTube/css/youtube-search.css +251 -0
- package/wwwroot/_content/MindExecution.Shared/MindExecution.Shared.wsano1j4wp.bundle.scp.css +4 -0
- package/wwwroot/_content/MindExecution.Shared/css/admin-dashboard.css +559 -0
- package/wwwroot/_content/MindExecution.Shared/css/app.css +1 -0
- package/wwwroot/_content/MindExecution.Shared/css/mind-map-overrides.css +3705 -0
- package/wwwroot/_content/MindExecution.Shared/fonts/NotoSansKR-Bold.ttf +0 -0
- package/wwwroot/_content/MindExecution.Shared/fonts/NotoSansKR-Regular.ttf +0 -0
- package/wwwroot/_content/MindExecution.Shared/js/agent-visualization.js +359 -0
- package/wwwroot/_content/MindExecution.Shared/js/background-themes.js +1631 -0
- package/wwwroot/_content/MindExecution.Shared/js/code-master.js +8316 -0
- package/wwwroot/_content/MindExecution.Shared/js/file-system-helper.js +639 -0
- package/wwwroot/_content/MindExecution.Shared/js/helpers/InfiniteGridHelper.js +109 -0
- package/wwwroot/_content/MindExecution.Shared/js/marked.min.js +69 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +9987 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js.backup +1059 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +24635 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-dev-guards.js +325 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-dnd.js +1491 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-dnd.js.bak +434 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-glow-shader.js +260 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-interactions.js +7821 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js +160 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +10441 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-logic-workers.js +977 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-menu-manager.js +1531 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-multi-select.js +1716 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-node-search-worker.js +554 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-nodes.js +4578 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-object-manager.js +489 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-object-manager.js.backup +372 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-pipeline.js +2203 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-lod-system.js +646 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js +4735 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-texture-factory.js +2383 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-texture-factory.js.backup +1258 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-visibility-worker.js +890 -0
- package/wwwroot/_content/MindExecution.Shared/js/mindmap-toolbar.js +639 -0
- package/wwwroot/_content/MindExecution.Shared/js/native-drop-handler.js +170 -0
- package/wwwroot/_content/MindExecution.Shared/js/plan-master.js +788 -0
- package/wwwroot/_content/MindExecution.Shared/js/renderers/CSS3DRenderer.js +50 -0
- package/wwwroot/_content/MindExecution.Shared/js/texture-worker-manager.js +188 -0
- package/wwwroot/_content/MindExecution.Shared/js/texture-worker.js +208 -0
- package/wwwroot/_content/MindExecution.Shared/js/three.min.js +6 -0
- package/wwwroot/_content/MindExecution.Shared/js/titlebar-handler.js +191 -0
- package/wwwroot/_content/MindExecution.Shared/js/token-manager.js +37 -0
- package/wwwroot/_content/MindExecution.Shared/js/token-worker.js +28 -0
- package/wwwroot/_content/MindExecution.Shared/js/troika-bundle.js +5626 -0
- package/wwwroot/_content/MindExecution.Shared/js/troika-bundle.js.map +7 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/css/all.min.css +9 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/webfonts/fa-brands-400.ttf +0 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/webfonts/fa-regular-400.ttf +0 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/webfonts/fa-solid-900.ttf +0 -0
- package/wwwroot/_content/MindExecution.Shared/lib/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
- package/wwwroot/_content/MindExecution.Shared/models/all-MiniLM-L6-v2-quantized.onnx +0 -0
- package/wwwroot/_content/MindExecution.Shared/models/vocab.txt +30522 -0
- package/wwwroot/_framework/Google.Protobuf.9h59ukbel7.dll +0 -0
- package/wwwroot/_framework/Markdig.d1j7v41cl1.dll +0 -0
- package/wwwroot/_framework/MessagePack.Annotations.l6qv48kgpt.dll +0 -0
- package/wwwroot/_framework/MessagePack.eqoptzx9d5.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Authorization.k7dsih5y5g.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Components.6nyje9sa0g.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Components.Authorization.iycd6unprw.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Components.Web.487u3twia4.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Components.WebAssembly.d0gcnmlxxz.dll +0 -0
- package/wwwroot/_framework/Microsoft.AspNetCore.Metadata.h4yevl9adi.dll +0 -0
- package/wwwroot/_framework/Microsoft.CSharp.8bsm8vx6su.dll +0 -0
- package/wwwroot/_framework/Microsoft.Data.Sqlite.jdlxgv2jtg.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.4gjazp7kjf.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Abstractions.gocudnvz7b.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Relational.lt4rsvinuo.dll +0 -0
- package/wwwroot/_framework/Microsoft.EntityFrameworkCore.Sqlite.69luj0fa9r.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Caching.Abstractions.364t4jh3zz.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Caching.Memory.izlxhpzosu.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Configuration.8zq7hh41o7.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Configuration.Abstractions.8if74zs6ea.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Configuration.Json.duvlngw8i0.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.DependencyInjection.Abstractions.t2hh9kvx0o.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.DependencyInjection.n4tg99oy8l.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.DependencyModel.h0d06ixk3e.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Logging.Abstractions.rl32bkx2sd.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Logging.dlht1xei0t.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Options.qeunebioml.dll +0 -0
- package/wwwroot/_framework/Microsoft.Extensions.Primitives.18cr6vnuuz.dll +0 -0
- package/wwwroot/_framework/Microsoft.IO.RecyclableMemoryStream.r915vovvw4.dll +0 -0
- package/wwwroot/_framework/Microsoft.IdentityModel.Abstractions.1ejljk3erv.dll +0 -0
- package/wwwroot/_framework/Microsoft.IdentityModel.JsonWebTokens.1596zr8gne.dll +0 -0
- package/wwwroot/_framework/Microsoft.IdentityModel.Logging.229uyvpgio.dll +0 -0
- package/wwwroot/_framework/Microsoft.IdentityModel.Tokens.9sibtajc9f.dll +0 -0
- package/wwwroot/_framework/Microsoft.JSInterop.WebAssembly.ryia5gxiad.dll +0 -0
- package/wwwroot/_framework/Microsoft.JSInterop.ew9vz9o332.dll +0 -0
- package/wwwroot/_framework/Microsoft.ML.OnnxRuntime.w9deo1m5ss.dll +0 -0
- package/wwwroot/_framework/Microsoft.ML.Tokenizers.cm2vuv2z61.dll +0 -0
- package/wwwroot/_framework/Microsoft.NET.StringTools.3qbrf4v2ki.dll +0 -0
- package/wwwroot/_framework/MimeMapping.og9ys58ylm.dll +0 -0
- package/wwwroot/_framework/MindExecution.Core.y7ffihhajj.dll +0 -0
- package/wwwroot/_framework/MindExecution.Kernel.l5y3qroa7p.dll +0 -0
- package/wwwroot/_framework/MindExecution.Plugins.Admin.uuf238xa0h.dll +0 -0
- package/wwwroot/_framework/MindExecution.Plugins.Business.nyr3v25v48.dll +0 -0
- package/wwwroot/_framework/MindExecution.Plugins.Concept.l9z9tx9svt.dll +0 -0
- package/wwwroot/_framework/MindExecution.Plugins.Directory.ju87t8h3zs.dll +0 -0
- package/wwwroot/_framework/MindExecution.Plugins.PlanMaster.krn3jgvjpa.dll +0 -0
- package/wwwroot/_framework/MindExecution.Plugins.YouTube.5m53srfud6.dll +0 -0
- package/wwwroot/_framework/MindExecution.Shared.ojp3psugsm.dll +0 -0
- package/wwwroot/_framework/MindExecution.Web.82k6ktlkfg.dll +0 -0
- package/wwwroot/_framework/Newtonsoft.Json.a56zs13vug.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.batteries_v2.rrd1nzawpp.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.core.1dxloztpfz.dll +0 -0
- package/wwwroot/_framework/SQLitePCLRaw.provider.e_sqlite3.oekyzl53i1.dll +0 -0
- package/wwwroot/_framework/Supabase.Core.s1pkj4aj0l.dll +0 -0
- package/wwwroot/_framework/Supabase.Functions.qz4nu782sg.dll +0 -0
- package/wwwroot/_framework/Supabase.Gotrue.twah27pkik.dll +0 -0
- package/wwwroot/_framework/Supabase.Postgrest.gmuuv369ih.dll +0 -0
- package/wwwroot/_framework/Supabase.Realtime.ox3kchdy3w.dll +0 -0
- package/wwwroot/_framework/Supabase.Storage.fnjnepaowr.dll +0 -0
- package/wwwroot/_framework/Supabase.azmaw5pgcz.dll +0 -0
- package/wwwroot/_framework/System.Collections.23yxgetbju.dll +0 -0
- package/wwwroot/_framework/System.Collections.Concurrent.vow3rm1dku.dll +0 -0
- package/wwwroot/_framework/System.Collections.Immutable.ap9596utv5.dll +0 -0
- package/wwwroot/_framework/System.Collections.NonGeneric.npjkaz40oc.dll +0 -0
- package/wwwroot/_framework/System.Collections.Specialized.ugkjbs6p02.dll +0 -0
- package/wwwroot/_framework/System.ComponentModel.Annotations.clwo0z2oyu.dll +0 -0
- package/wwwroot/_framework/System.ComponentModel.Primitives.end4v0xe2c.dll +0 -0
- package/wwwroot/_framework/System.ComponentModel.TypeConverter.tgtp5sm4iv.dll +0 -0
- package/wwwroot/_framework/System.ComponentModel.wupoltkk1t.dll +0 -0
- package/wwwroot/_framework/System.Console.9dik0wogo2.dll +0 -0
- package/wwwroot/_framework/System.Data.Common.4v8jejsiu0.dll +0 -0
- package/wwwroot/_framework/System.Diagnostics.DiagnosticSource.e2q75ondtq.dll +0 -0
- package/wwwroot/_framework/System.Diagnostics.Process.9736yjnxs8.dll +0 -0
- package/wwwroot/_framework/System.Diagnostics.TraceSource.h9al53gbbw.dll +0 -0
- package/wwwroot/_framework/System.Diagnostics.Tracing.h4bcp2fo98.dll +0 -0
- package/wwwroot/_framework/System.Drawing.64oovy8qts.dll +0 -0
- package/wwwroot/_framework/System.Drawing.Primitives.o6jiqpgbgl.dll +0 -0
- package/wwwroot/_framework/System.Formats.Asn1.rylx5ipd40.dll +0 -0
- package/wwwroot/_framework/System.IO.Compression.iceabaupns.dll +0 -0
- package/wwwroot/_framework/System.IO.Pipelines.uw8csd3mlz.dll +0 -0
- package/wwwroot/_framework/System.IdentityModel.Tokens.Jwt.t67es60z5b.dll +0 -0
- package/wwwroot/_framework/System.Linq.Expressions.ty95ava37f.dll +0 -0
- package/wwwroot/_framework/System.Linq.Queryable.hs2195jrwy.dll +0 -0
- package/wwwroot/_framework/System.Linq.hssodjwmlf.dll +0 -0
- package/wwwroot/_framework/System.Memory.1k78n7wdxb.dll +0 -0
- package/wwwroot/_framework/System.Net.Http.3br8rfql4c.dll +0 -0
- package/wwwroot/_framework/System.Net.Http.Json.860wbh17d8.dll +0 -0
- package/wwwroot/_framework/System.Net.NetworkInformation.e3wr00853o.dll +0 -0
- package/wwwroot/_framework/System.Net.Ping.r5cw4mf1a4.dll +0 -0
- package/wwwroot/_framework/System.Net.Primitives.ksxwiwlvhu.dll +0 -0
- package/wwwroot/_framework/System.Net.WebSockets.6rt3n3gl2q.dll +0 -0
- package/wwwroot/_framework/System.Net.WebSockets.Client.z3usrzo7rz.dll +0 -0
- package/wwwroot/_framework/System.Numerics.Tensors.0c7z4mt3on.dll +0 -0
- package/wwwroot/_framework/System.Numerics.Vectors.lbdzx8reja.dll +0 -0
- package/wwwroot/_framework/System.ObjectModel.yct1gdirzf.dll +0 -0
- package/wwwroot/_framework/System.Private.CoreLib.c1dbswx1b2.dll +0 -0
- package/wwwroot/_framework/System.Private.Uri.zp9kmg0z93.dll +0 -0
- package/wwwroot/_framework/System.Private.Xml.Linq.lgv2n0akl4.dll +0 -0
- package/wwwroot/_framework/System.Private.Xml.dpsk8g304y.dll +0 -0
- package/wwwroot/_framework/System.Reactive.t3fuon548l.dll +0 -0
- package/wwwroot/_framework/System.Reflection.Emit.ILGeneration.1tcuz2cmbk.dll +0 -0
- package/wwwroot/_framework/System.Reflection.Emit.Lightweight.ddt2wylovg.dll +0 -0
- package/wwwroot/_framework/System.Reflection.Emit.d8vkadiwhg.dll +0 -0
- package/wwwroot/_framework/System.Reflection.Primitives.cpsl71xd1z.dll +0 -0
- package/wwwroot/_framework/System.Runtime.InteropServices.31vjgsfk1o.dll +0 -0
- package/wwwroot/_framework/System.Runtime.InteropServices.JavaScript.pn2wvizzet.dll +0 -0
- package/wwwroot/_framework/System.Runtime.InteropServices.RuntimeInformation.l5rk496q70.dll +0 -0
- package/wwwroot/_framework/System.Runtime.Intrinsics.0zee9qcqfy.dll +0 -0
- package/wwwroot/_framework/System.Runtime.Loader.xw2jr9wl92.dll +0 -0
- package/wwwroot/_framework/System.Runtime.Numerics.ezj1dfyvbj.dll +0 -0
- package/wwwroot/_framework/System.Runtime.Serialization.Formatters.0y019e9zkr.dll +0 -0
- package/wwwroot/_framework/System.Runtime.Serialization.Primitives.bia5wb62c8.dll +0 -0
- package/wwwroot/_framework/System.Runtime.h9cduidfkh.dll +0 -0
- package/wwwroot/_framework/System.Security.Claims.2r18wim2rl.dll +0 -0
- package/wwwroot/_framework/System.Security.Cryptography.qqgybpoucx.dll +0 -0
- package/wwwroot/_framework/System.Text.Encoding.Extensions.9t3hs6kyll.dll +0 -0
- package/wwwroot/_framework/System.Text.Encodings.Web.wftjfh2crk.dll +0 -0
- package/wwwroot/_framework/System.Text.Json.0v0qgmri0w.dll +0 -0
- package/wwwroot/_framework/System.Text.RegularExpressions.cvkox11l6l.dll +0 -0
- package/wwwroot/_framework/System.Threading.Channels.419493szqu.dll +0 -0
- package/wwwroot/_framework/System.Threading.Thread.xhmys87xh5.dll +0 -0
- package/wwwroot/_framework/System.Threading.b66vzsz9g1.dll +0 -0
- package/wwwroot/_framework/System.Transactions.Local.7zfffdvnwf.dll +0 -0
- package/wwwroot/_framework/System.Web.HttpUtility.9up6xfbtuq.dll +0 -0
- package/wwwroot/_framework/System.Xml.Linq.n5rzv9nbf7.dll +0 -0
- package/wwwroot/_framework/System.Xml.ReaderWriter.ag8pilllob.dll +0 -0
- package/wwwroot/_framework/System.Xml.XDocument.sn51jas17n.dll +0 -0
- package/wwwroot/_framework/System.brmz7yk5qh.dll +0 -0
- package/wwwroot/_framework/Websocket.Client.vapounvmnl.dll +0 -0
- package/wwwroot/_framework/blazor.boot.json +305 -0
- package/wwwroot/_framework/blazor.webassembly.js +1 -0
- package/wwwroot/_framework/dotnet.js +4 -0
- package/wwwroot/_framework/dotnet.native.boem75ye5i.wasm +0 -0
- package/wwwroot/_framework/dotnet.native.qc8g39g30v.js +16 -0
- package/wwwroot/_framework/dotnet.runtime.opaiwunc3t.js +4 -0
- package/wwwroot/_framework/icudt_CJK.tjcz0u77k5.dat +0 -0
- package/wwwroot/_framework/icudt_EFIGS.tptq2av103.dat +0 -0
- package/wwwroot/_framework/icudt_no_CJK.lfu7j35m59.dat +0 -0
- package/wwwroot/_framework/netstandard.yvr3prsx0x.dll +0 -0
- package/wwwroot/_headers +17 -50
- package/wwwroot/appsettings.json +82 -82
- package/wwwroot/icon-192.png +0 -0
- package/wwwroot/icon-512.png +0 -0
- package/wwwroot/index.html +736 -22
- package/wwwroot/js/marketing-tool.js +180 -0
- package/wwwroot/manifest.webmanifest +21 -18
- package/wwwroot/robots.txt +1 -1
- package/wwwroot/service-worker-assets.js +857 -0
- package/wwwroot/service-worker.js +31 -5
- package/wwwroot/sitemap.xml +8 -20
- package/wwwroot/assets/AdminDashboardPage-3VUPNjhD.js +0 -1
- package/wwwroot/assets/AdminDashboardPage-B2vz2Px9.css +0 -1
- package/wwwroot/assets/AppSidebar-CiYpGRU4.js +0 -2
- package/wwwroot/assets/AuthPages-BmpDAK3N.js +0 -1
- package/wwwroot/assets/AuthPages-BrH6kRcv.css +0 -1
- package/wwwroot/assets/CodePage-Bncc352E.css +0 -1
- package/wwwroot/assets/CodePage-BrqCtiA1.js +0 -87
- package/wwwroot/assets/CompanyCorePage-ChBnq1ve.css +0 -1
- package/wwwroot/assets/CompanyCorePage-DZYu-7IF.js +0 -13
- package/wwwroot/assets/ExecutionModePage-AtB7HGoD.js +0 -18
- package/wwwroot/assets/ExecutionModePage-TLuld9l3.css +0 -1
- package/wwwroot/assets/LaunchLeadCapture-Bx9LM0IX.js +0 -1
- package/wwwroot/assets/LaunchLeadCapture-CiRI1shz.css +0 -1
- package/wwwroot/assets/MarketingHome-BsyerRpe.js +0 -1
- package/wwwroot/assets/MarketingHome-DPzaYzA_.css +0 -1
- package/wwwroot/assets/MindCanvas-BW9vO7KM.js +0 -49
- package/wwwroot/assets/MindCanvas-DtqOZnoW.css +0 -1
- package/wwwroot/assets/PlanMasterPage-CJ36rep-.css +0 -1
- package/wwwroot/assets/PlanMasterPage-DItAWGne.js +0 -4
- package/wwwroot/assets/PricingPage-CH6jDgJC.js +0 -1
- package/wwwroot/assets/PricingPage-Cg_0i_ZR.css +0 -1
- package/wwwroot/assets/ToolPages-CmY0jdlo.js +0 -28
- package/wwwroot/assets/ToolPages-DIB187pZ.css +0 -1
- package/wwwroot/assets/YouTubeSearchPage-CntpQkdZ.js +0 -4
- package/wwwroot/assets/YouTubeSearchPage-IPPa_BIH.css +0 -1
- package/wwwroot/assets/app-runtime-xD2Z3NdN.js +0 -1
- package/wwwroot/assets/canvas-runtime-Bc1G-FZ_.js +0 -44
- package/wwwroot/assets/code-agent-runtime-B5PPZd1t.js +0 -74
- package/wwwroot/assets/executionModeSettings-NJqurj-o.js +0 -1
- package/wwwroot/assets/index-qITXeJUr.js +0 -2
- package/wwwroot/assets/index-yNpEK-gp.css +0 -1
- package/wwwroot/assets/marketingTools-DN_rnHeB.js +0 -4
- package/wwwroot/assets/mindCanvasSearchWorker-BzPMsHOB.js +0 -1
- package/wwwroot/assets/mindexecution-mindcanvas.png +0 -0
- package/wwwroot/assets/mindexecution-prod-home-current.png +0 -0
- package/wwwroot/assets/mindexecution-prod-pricing-current.png +0 -0
- package/wwwroot/assets/pricingCheckoutShell-O-DnwmbU.js +0 -1
- package/wwwroot/assets/productionAdapterConfig-C5jfk6oG.js +0 -1
- package/wwwroot/assets/runtimeSettingsPersistenceProjection-BoNWmYjU.js +0 -1
- package/wwwroot/assets/storage-CbuZ97zN.js +0 -1
- package/wwwroot/assets/supabaseAuthAdapter-4HB3Xzco.js +0 -44
- package/wwwroot/assets/toolHandoff-D5e5f7t5.js +0 -4
- package/wwwroot/assets/vendor-icons-DE3gIReG.js +0 -681
- package/wwwroot/assets/vendor-msgpack-BE8aAsr3.js +0 -1
- package/wwwroot/assets/vendor-react-BXzpOyCS.js +0 -40
- package/wwwroot/favicon.svg +0 -7
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mindcanvas{position:relative;width:100%;height:100vh;overflow:hidden;color:var(--ink);background:linear-gradient(135deg,#f7f8fa,#e8ecf1,#dde3eb);-webkit-user-select:none;user-select:none}.mindcanvas--read-mode .canvas-toolbar,.mindcanvas--read-mode .runtime-status-cluster,.mindcanvas--read-mode .global-input-shell{opacity:0;pointer-events:none}.canvas-plane{--grid-x: 540px;--grid-y: 210px;--grid-small: 24px;--grid-large: 144px;position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab;overflow:hidden;background-image:radial-gradient(circle,rgba(100,116,139,.24) 1px,transparent 1px),radial-gradient(circle,rgba(100,116,139,.32) 1.6px,transparent 1.6px);background-position:var(--grid-x) var(--grid-y),var(--grid-x) var(--grid-y);background-size:var(--grid-small) var(--grid-small),var(--grid-large) var(--grid-large)}.canvas-plane--grid-line{background-image:linear-gradient(rgba(100,116,139,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(100,116,139,.16) 1px,transparent 1px),linear-gradient(rgba(71,85,105,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(71,85,105,.18) 1px,transparent 1px);background-position:var(--grid-x) var(--grid-y),var(--grid-x) var(--grid-y),var(--grid-x) var(--grid-y),var(--grid-x) var(--grid-y);background-size:var(--grid-small) var(--grid-small),var(--grid-small) var(--grid-small),var(--grid-large) var(--grid-large),var(--grid-large) var(--grid-large)}.canvas-plane--grid-particles{background-image:radial-gradient(circle at 25% 35%,rgba(37,99,235,.32) 0 1.2px,transparent 1.5px),radial-gradient(circle at 72% 58%,rgba(20,184,166,.26) 0 1.1px,transparent 1.5px),radial-gradient(circle at 48% 78%,rgba(245,158,11,.22) 0 1px,transparent 1.4px),radial-gradient(circle,rgba(100,116,139,.18) 1px,transparent 1px);background-position:var(--grid-x) var(--grid-y),calc(var(--grid-x) + 16px) calc(var(--grid-y) + 10px),calc(var(--grid-x) + 34px) calc(var(--grid-y) + 28px),var(--grid-x) var(--grid-y);background-size:calc(var(--grid-small) * 3) calc(var(--grid-small) * 3),calc(var(--grid-small) * 4) calc(var(--grid-small) * 4),calc(var(--grid-small) * 5) calc(var(--grid-small) * 5),var(--grid-large) var(--grid-large)}.canvas-plane--grid-spirit{background-image:radial-gradient(ellipse at var(--grid-x) var(--grid-y),rgba(59,130,246,.16),transparent 42%),repeating-linear-gradient(37deg,rgba(20,184,166,.13) 0 1px,transparent 1px 38px),repeating-linear-gradient(143deg,rgba(244,114,182,.1) 0 1px,transparent 1px 56px),radial-gradient(circle,rgba(71,85,105,.18) 1px,transparent 1px);background-position:0 0,var(--grid-x) var(--grid-y),calc(var(--grid-x) * -.5) calc(var(--grid-y) * -.5),var(--grid-x) var(--grid-y);background-size:100% 100%,calc(var(--grid-large) * 1.4) calc(var(--grid-large) * 1.4),calc(var(--grid-large) * 1.8) calc(var(--grid-large) * 1.8),var(--grid-large) var(--grid-large)}body.is-panning .canvas-plane{cursor:grabbing}body.is-selecting .canvas-plane{cursor:crosshair}.canvas-selection-box{position:absolute;z-index:18;pointer-events:none;border:1px solid rgba(37,99,235,.82);border-radius:5px;background:#3b82f61f;box-shadow:inset 0 0 0 1px #ffffffb8,0 0 0 1px #2563eb1f}.canvas-multi-selection-bounds{position:absolute;z-index:19;pointer-events:none;border:1px dashed rgba(37,99,235,.86);border-radius:7px;background:#2563eb0a;box-shadow:0 0 0 2px #2563eb14}.multi-selection-toolbar{position:absolute;z-index:245;display:inline-flex;align-items:center;gap:4px;min-height:38px;padding:4px 6px;border-radius:8px;transform:translate(-50%);pointer-events:auto}.multi-selection-toolbar__count{min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;border-radius:7px;color:#1d4ed8;background:#dbeafee6;font-size:12px;font-weight:900}.multi-selection-toolbar button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#475569;background:transparent;cursor:pointer}.multi-selection-toolbar button:hover{color:#0f172a;background:#e2e8f0d1}.multi-selection-toolbar button.is-danger{color:#be123c}.multi-selection-toolbar button.is-danger:hover{color:#9f1239;background:#ffe4e6db}.multi-selection-toolbar__separator{width:1px;height:22px;margin-inline:2px;background:#cbd5e1db}.canvas-world{position:absolute;left:0;top:0;width:1px;height:1px;transform-origin:0 0;will-change:transform;contain:layout style}.canvas-cursor-marker{position:absolute;z-index:16;width:18px;height:18px;margin:-9px 0 0 -9px;pointer-events:none;border:1px solid rgba(37,99,235,.72);border-radius:999px;background:linear-gradient(#2563ebb8,#2563ebb8) 50% 0 / 1px 100% no-repeat,linear-gradient(90deg,#2563ebb8,#2563ebb8) 0 50% / 100% 1px no-repeat,#ffffffc7;box-shadow:0 0 0 3px #2563eb1a,0 4px 14px #0f172a1f}.canvas-cursor-marker[data-cursor-direction=down]{border-color:#14b8a6c7;background:linear-gradient(#14b8a6d1,#14b8a6d1) 50% 0 / 1px 100% no-repeat,linear-gradient(90deg,#14b8a6d1,#14b8a6d1) 0 50% / 100% 1px no-repeat,#ffffffc7;box-shadow:0 0 0 3px #14b8a61f,0 4px 14px #0f172a1f}.edge-layer{position:absolute;left:-1200px;top:-900px;overflow:visible;pointer-events:none}.edge-path{fill:none;stroke-width:3;stroke-linecap:round;pointer-events:stroke;cursor:pointer;opacity:.88}.edge-path--result{stroke:#f97316e6}.edge-path--context{stroke:#2563ebb3;stroke-dasharray:8 8}.canvas-node{position:absolute;display:flex;flex-direction:column;overflow:visible;border:1px solid rgba(226,232,240,.92);border-radius:8px;background:#fffffff0;box-shadow:0 0 6px #0f172a2e,0 16px 38px #0f172a21;cursor:grab;-webkit-user-select:none;user-select:none;contain:layout style}.canvas-node.is-selected{border-color:#2563ebc2;box-shadow:0 0 0 2px #2563eb2e,0 0 20px #3b82f647,0 18px 42px #0f172a29}.canvas-node.is-pulsing{animation:pulseNode .9s ease}.node-connector-handles{position:absolute;top:0;right:0;bottom:0;left:0;z-index:18;pointer-events:none}.node-connector-handle{position:absolute;width:16px;height:16px;padding:0;border:2px solid rgba(255,255,255,.96);border-radius:999px;background:#2563eb;box-shadow:0 0 0 1px #2563eb6b,0 7px 16px #0f172a38;cursor:crosshair;opacity:0;pointer-events:none;transition:opacity .12s ease,background .12s ease,box-shadow .12s ease,transform .12s ease}.node-connector-handle--top{top:0;left:50%;transform:translate(-50%,-50%) scale(.82)}.node-connector-handle--right{top:50%;right:0;transform:translate(50%,-50%) scale(.82)}.node-connector-handle--bottom{bottom:0;left:50%;transform:translate(-50%,50%) scale(.82)}.node-connector-handle--left{top:50%;left:0;transform:translate(-50%,-50%) scale(.82)}.canvas-node:hover>.node-connector-handles .node-connector-handle,.canvas-node.is-selected>.node-connector-handles .node-connector-handle,body.is-connecting-node .node-connector-handle{opacity:.92;pointer-events:auto}.node-connector-handle:hover,.node-connector-handle.is-source,.node-connector-handle.is-target{background:#f97316;box-shadow:0 0 0 3px #f9731633,0 9px 18px #0f172a40}.node-connector-handle--top:hover,.node-connector-handle--top.is-source,.node-connector-handle--top.is-target{transform:translate(-50%,-50%) scale(1.18)}.node-connector-handle--right:hover,.node-connector-handle--right.is-source,.node-connector-handle--right.is-target{transform:translate(50%,-50%) scale(1.18)}.node-connector-handle--bottom:hover,.node-connector-handle--bottom.is-source,.node-connector-handle--bottom.is-target{transform:translate(-50%,50%) scale(1.18)}.node-connector-handle--left:hover,.node-connector-handle--left.is-source,.node-connector-handle--left.is-target{transform:translate(-50%,-50%) scale(1.18)}.edge-path--draft{stroke-width:2.5;stroke-dasharray:7 7;opacity:.72;pointer-events:none}.edge-path--draft.has-target{stroke-width:3.5;stroke-dasharray:none;opacity:.96}body.is-connecting-node,body.is-connecting-node *{cursor:crosshair!important;-webkit-user-select:none!important;user-select:none!important}.node-resize-handle{position:absolute;right:-6px;bottom:-6px;z-index:5;width:18px;height:18px;border:1px solid rgba(37,99,235,.38);border-radius:6px;background:linear-gradient(135deg,transparent 0 42%,rgba(37,99,235,.7) 42% 50%,transparent 50% 100%),linear-gradient(135deg,transparent 0 62%,rgba(37,99,235,.5) 62% 70%,transparent 70% 100%),#fffffff5;box-shadow:0 6px 18px #0f172a2e;cursor:nwse-resize;opacity:0;transition:opacity .14s ease,transform .14s ease,border-color .14s ease}.canvas-node:hover .node-resize-handle,.canvas-node.is-selected .node-resize-handle{opacity:1}.node-resize-handle:hover{border-color:#2563ebb3;transform:scale(1.08)}.canvas-node--remote-surface>.node-resize-handle,.canvas-node[data-remote-surface-scroll-owner=remote-page-rail]>.node-resize-handle{right:4px;bottom:4px;width:14px;height:14px;border-radius:5px;opacity:.72;box-shadow:0 2px 8px #0f172a1f}.canvas-node--remote-surface:hover>.node-resize-handle,.canvas-node--remote-surface.is-selected>.node-resize-handle,.canvas-node[data-remote-surface-scroll-owner=remote-page-rail]:hover>.node-resize-handle,.canvas-node[data-remote-surface-scroll-owner=remote-page-rail].is-selected>.node-resize-handle{opacity:1}body.is-resizing-node,body.is-resizing-node *{cursor:nwse-resize!important;-webkit-user-select:none!important;user-select:none!important}@keyframes pulseNode{0%,to{box-shadow:0 0 0 2px #2563eb2e,0 18px 42px #0f172a29}50%{box-shadow:0 0 0 6px #2563eb2e,0 0 46px #2563eb6b,0 18px 42px #0f172a29}}.canvas-node--ai-task{border-color:#f973166b;background:linear-gradient(180deg,#fff7edf5,#fffffff0)}.canvas-node--code{background:linear-gradient(180deg,#f8fafc,#eef2ff)}.canvas-node--text{border-color:#64748b3d;background:linear-gradient(180deg,#fff,#f8fafc)}.canvas-node--text .node-kind{color:#475569;background:#f1f5f9}.canvas-node--mask{border-color:#0ea5e95c;background:linear-gradient(180deg,#f8fafc,#ecfeff)}.canvas-node--mask .node-kind{color:#0e7490;background:#cffafe}.canvas-node--markdown{border-color:#0ea5e947;background:linear-gradient(180deg,#f8fafc,#f0f9ff)}.canvas-node--markdown .node-kind{color:#0369a1;background:#e0f2fe}.canvas-node--memo{--memo-bg: #fff2eb;--memo-border: rgba(255, 128, 82, .42);--memo-ink: #7c2d12;--memo-ring: rgba(255, 128, 82, .22);--memo-accent: #ff8052;border-color:var(--memo-border);color:var(--memo-ink);background:linear-gradient(180deg,var(--memo-bg),rgba(255,255,255,.92)),#fff}.canvas-node--memo .node-kind{color:var(--memo-ink);background:var(--memo-ring)}.canvas-node--memo .node-header input{color:var(--memo-ink)}.canvas-node--memo .node-tags span{color:var(--memo-ink);background:var(--memo-ring)}.canvas-node--agent-command{--memo-bg: #f8fafc;--memo-border: rgba(99, 102, 241, .38);--memo-ink: #312e81;--memo-ring: rgba(99, 102, 241, .16);--memo-accent: #6366f1;border-color:var(--memo-border);background:linear-gradient(180deg,#eef2fff5,#fffffff0),#fff}.canvas-node--agent-command .node-kind{color:#4338ca;background:#e0e7ff}.node-agent-command-state{display:flex;align-items:center;gap:6px;margin:0 12px 8px;padding:6px 8px;border:1px solid rgba(99,102,241,.18);border-radius:8px;color:#312e81;background:#eef2ffc2;font-size:11px;font-weight:760}.node-agent-command-state span{min-width:0;padding:2px 6px;border-radius:999px;color:#4338ca;background:#ffffffc7;white-space:nowrap}.node-agent-command-actions{display:flex;gap:8px;margin:-2px 12px 8px}.node-agent-command-actions button{height:26px;padding:0 10px;border:1px solid rgba(99,102,241,.26);border-radius:7px;color:#3730a3;background:#ffffffe0;font-size:11px;font-weight:820;cursor:pointer}.node-agent-command-actions button:hover{color:#fff;background:#4f46e5}.node-agent-command-actions button:disabled{opacity:.55;cursor:not-allowed}.canvas-node--code-note{--memo-bg: #f0f9ff;--memo-border: rgba(14, 165, 233, .36);--memo-ink: #075985;--memo-ring: rgba(14, 165, 233, .16);--memo-accent: #0ea5e9;border-color:var(--memo-border);background:linear-gradient(180deg,#f0f9fff5,#fffffff0),#fff}.canvas-node--code-note .node-kind{color:#0369a1;background:#e0f2fe}.node-code-note-state{display:flex;align-items:center;gap:6px;margin:0 12px 8px;padding:6px 8px;border:1px solid rgba(14,165,233,.2);border-radius:8px;color:#075985;background:#e0f2feb8;font-size:11px;font-weight:760}.node-code-note-state span{min-width:0;padding:2px 6px;border-radius:999px;color:#0369a1;background:#ffffffc7;white-space:nowrap}.node-code-note-actions{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 12px 8px}.node-code-note-actions button{height:26px;padding:0 10px;border:1px solid rgba(14,165,233,.28);border-radius:7px;color:#075985;background:#ffffffe0;font-size:11px;font-weight:820;white-space:nowrap;cursor:pointer}.node-code-note-actions button:hover{color:#fff;background:#0284c7}.canvas-node--pdf{border-color:#ef444447;background:linear-gradient(180deg,#fff7f7,#fff)}.canvas-node--file{border-color:#2563eb47;background:linear-gradient(180deg,#eff6ff,#fff)}.canvas-node--directory{border-color:#f59e0b6b;background:linear-gradient(180deg,#fffbeb,#fff)}.canvas-node--template-launcher{border-color:#2563eb52;background:linear-gradient(180deg,#f8fbff,#f7fdf9)}.canvas-node--remote-monitor,.canvas-node--remote-control,.canvas-node--remote-monitor-surface,.canvas-node--remote-control-surface{overflow:hidden;overflow-x:hidden;overflow-y:hidden;overflow:clip;overflow-x:clip;overflow-y:clip;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;border-color:#64748b73;background:#f8fbff}.canvas-node:has(>.node-remote-monitor),.canvas-node:has(>.node-remote-control){overflow:hidden;overflow-x:hidden;overflow-y:hidden;overflow:clip;overflow-x:clip;overflow-y:clip;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;border-color:#64748b73;background:#f8fbff}.canvas-node--remote-surface,.canvas-node[data-remote-surface-chrome=self-contained]{display:grid;grid-template-rows:minmax(0,1fr);gap:0;align-items:stretch;padding:0;overflow:visible;overflow-x:visible;overflow-y:visible;scrollbar-width:none;-ms-overflow-style:none}.canvas-node--remote-surface>.node-remote-monitor,.canvas-node--remote-surface>.node-remote-control,.canvas-node[data-remote-surface-chrome=self-contained]>.node-remote-monitor,.canvas-node[data-remote-surface-chrome=self-contained]>.node-remote-control{width:100%;height:100%;min-height:0}.canvas-node--remote-monitor::-webkit-scrollbar,.canvas-node--remote-control::-webkit-scrollbar,.canvas-node--remote-monitor-surface::-webkit-scrollbar,.canvas-node--remote-control-surface::-webkit-scrollbar,.canvas-node--remote-surface::-webkit-scrollbar,.canvas-node:has(>.node-remote-monitor)::-webkit-scrollbar,.canvas-node:has(>.node-remote-control)::-webkit-scrollbar{display:none;width:0;height:0}.canvas-node[data-remote-surface-chrome=self-contained]>.node-header,.canvas-node[data-remote-surface-title-owner=inner-remote-view]>.node-header,.canvas-node[data-remote-surface-chrome=self-contained]>.node-tags,.canvas-node[data-remote-surface-title-owner=inner-remote-view]>.node-tags,.canvas-node[data-remote-surface-chrome=self-contained]>.node-external-rail,.canvas-node[data-remote-surface-chrome=self-contained]>.node-external-action-rail,.canvas-node[data-remote-surface-title-owner=inner-remote-view]>.node-external-rail,.canvas-node[data-remote-surface-title-owner=inner-remote-view]>.node-external-action-rail,.canvas-node:has(>.node-remote-monitor)>.node-header,.canvas-node:has(>.node-remote-monitor)>.node-tags,.canvas-node:has(>.node-remote-monitor)>.node-external-rail,.canvas-node:has(>.node-remote-monitor)>.node-external-action-rail,.canvas-node:has(>.node-remote-control)>.node-header,.canvas-node:has(>.node-remote-control)>.node-tags,.canvas-node:has(>.node-remote-control)>.node-external-rail,.canvas-node:has(>.node-remote-control)>.node-external-action-rail{display:none}.canvas-node--remote-monitor-surface>.node-header,.canvas-node--remote-monitor-surface>.node-tags,.canvas-node--remote-monitor-surface>.node-external-rail,.canvas-node--remote-monitor-surface>.node-external-action-rail,.canvas-node--remote-control-surface>.node-header,.canvas-node--remote-control-surface>.node-tags,.canvas-node--remote-control-surface>.node-external-rail,.canvas-node--remote-control-surface>.node-external-action-rail{display:none}.node-header{display:flex;align-items:center;gap:8px;padding:12px 12px 8px}.node-kind{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:999px;color:#475569;background:#f1f5f9eb}.canvas-node--ai-task .node-kind{color:#c2410c;background:#fff7ed}.canvas-node--pdf .node-kind{color:#dc2626;background:#fee2e2}.canvas-node--file .node-kind{color:#1d4ed8;background:#dbeafe}.canvas-node--directory .node-kind{color:#b45309;background:#fef3c7}.canvas-node--template-launcher .node-kind{color:#1d4ed8;background:#dbeafe}.canvas-node--remote-monitor .node-kind,.canvas-node--remote-control .node-kind{color:#2563eb;background:#eff6ff}.node-header input{min-width:0;flex:1;padding:4px 0;border:0;color:#111827;background:transparent;font-size:14px;font-weight:840;outline:none}.node-run-state{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 7px;border:1px solid rgba(37,99,235,.22);border-radius:999px;color:#1d4ed8;background:#eff6ff;font-size:10px;font-weight:840;line-height:1}.node-run-state svg{animation:node-run-spin .9s linear infinite}.canvas-node[data-node-status=running]{border-color:#2563ebbd;box-shadow:0 0 0 2px #2563eb24,0 20px 36px #2563eb29}.canvas-node[data-node-status=running]:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;z-index:-1;border:1px solid rgba(37,99,235,.26);border-radius:inherit;animation:node-run-pulse 1.25s ease-in-out infinite}@keyframes node-run-spin{to{transform:rotate(360deg)}}@keyframes node-run-pulse{0%,to{opacity:.28;transform:scale(.995)}50%{opacity:.72;transform:scale(1.012)}}.node-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:160px}.node-actions button{position:relative;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:#64748b;background:transparent;cursor:pointer}.node-actions button:hover{background:#e2e8f0d1;color:#0f172a}.node-actions button.is-active-ai{color:#7c3aed;background:#f5f3ff}.node-actions button.is-inactive-ai:after{content:"";position:absolute;width:17px;height:2px;border-radius:999px;background:#ef4444;transform:rotate(-42deg)}.node-actions button.is-company-action{color:#0f766e;background:#ccfbf1}.node-actions button.is-memo-color-action{color:var(--memo-ink, #7c2d12);background:var(--memo-ring, rgba(255, 128, 82, .22))}.node-actions button[aria-pressed=true]{color:#1d4ed8;background:#dbeafe}.node-actions button.is-memo-color-action[aria-pressed=true]{color:var(--memo-ink, #7c2d12);background:var(--memo-ring, rgba(255, 128, 82, .22))}.node-external-rail{position:absolute;top:calc(100% + 8px);left:50%;z-index:14;width:max-content;min-width:min(100%,190px);max-width:min(460px,calc(100vw - 48px));display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:4px;pointer-events:none;cursor:default;opacity:.72;transform:translate(-50%,-2px);transform-origin:top center;filter:drop-shadow(0 12px 24px rgba(15,23,42,.14));transition:opacity .14s ease,transform .14s ease}.node-external-action-rail{position:absolute;bottom:calc(100% + 8px);left:50%;z-index:15;width:max-content;min-width:min(100%,190px);max-width:min(460px,calc(100vw - 48px));display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px;pointer-events:none;cursor:default;opacity:0;transform:translate(-50%,4px);transform-origin:bottom center;filter:drop-shadow(0 12px 24px rgba(15,23,42,.14));transition:opacity .14s ease,transform .14s ease}.canvas-node:hover .node-external-rail,.canvas-node.is-selected .node-external-rail,.canvas-node:hover .node-external-action-rail,.canvas-node.is-selected .node-external-action-rail{opacity:1;pointer-events:auto;transform:translate(-50%)}.node-external-rail__meta,.node-external-rail__actions,.node-external-rail__pins,.node-surface-badges,.node-surface-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:4px;min-width:0}.node-external-rail__meta{flex:0 1 auto;max-width:100%}.node-external-rail__actions{flex:0 1 auto;max-width:min(420px,calc(100vw - 48px));max-height:0;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-3px);transition:max-height .16s ease,opacity .14s ease,transform .14s ease}.canvas-node:hover .node-external-rail__actions,.canvas-node.is-selected .node-external-rail__actions{max-height:112px;opacity:1;pointer-events:auto;transform:translateY(0)}.node-external-rail__pins{flex:0 0 auto;max-width:100%}.node-external-action-rail .node-actions,.node-external-action-rail .node-agent-command-actions,.node-external-action-rail .node-code-note-actions,.node-external-action-rail .node-company-quick-actions,.node-external-action-rail .node-embed-actions,.node-external-action-rail .node-video-actions,.node-external-action-rail .node-asset-actions{display:flex;flex:0 1 auto;flex-wrap:wrap;align-items:center;gap:4px;max-width:min(100%,420px);margin:0;padding:3px;border:1px solid rgba(203,213,225,.78);border-radius:8px;background:#fffffff0;box-shadow:inset 0 1px #ffffffbd}.node-external-action-rail .node-actions button{width:24px;height:24px;background:#fff}.node-external-action-rail .node-surface-actions{max-width:min(100%,420px)}.node-external-action-rail .node-result-row{position:static;z-index:auto;display:flex;gap:4px;padding:0;pointer-events:auto}.node-external-action-rail .node-pin,.node-external-action-rail .node-context-source{min-height:24px;padding:0 8px;border-color:#cbd5e1d1;background:#fffffff0;box-shadow:0 1px #ffffffbd}.node-external-action-rail .node-context-source{position:static;width:auto;height:24px;justify-content:center;transform:none}.node-external-action-rail .node-context-source span{display:inline}.node-external-rail .node-tags{display:flex;flex-wrap:wrap;gap:4px;padding:0}.node-surface-badges{max-width:100%}.node-external-rail .node-tags span,.node-external-rail .node-mask-badge,.node-external-rail .node-image-stack-badge,.node-external-rail .node-embed-badge,.node-external-rail .node-video-badge,.node-external-rail .node-agent-command-state,.node-external-rail .node-code-note-state,.node-external-rail .node-company-state{min-height:20px;margin:0;padding:2px 7px;border-radius:999px;font-size:10px;line-height:1.2;box-shadow:0 1px #ffffffbd}.node-external-rail .node-agent-command-state,.node-external-rail .node-code-note-state,.node-external-rail .node-company-state{display:inline-flex;flex:0 1 auto;max-width:min(100%,260px);gap:5px;overflow:hidden;white-space:nowrap}.node-external-rail .node-agent-command-state span,.node-external-rail .node-code-note-state span{padding:1px 5px;font-size:10px}.node-external-rail .node-company-state strong{max-width:150px}.node-external-rail .node-company-state span{margin-left:0}.node-external-rail .node-mask-badge,.node-external-rail .node-image-stack-badge,.node-external-rail .node-embed-badge,.node-external-rail .node-video-badge{position:static;top:auto;right:auto;left:auto;max-width:min(180px,100%);height:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-external-action-rail .node-agent-command-actions button,.node-external-action-rail .node-code-note-actions button,.node-external-action-rail .node-company-quick-actions button,.node-external-action-rail .node-embed-actions button,.node-external-action-rail .node-video-actions button,.node-external-action-rail .node-asset-actions button{margin:0}.node-memo-palette{position:absolute;bottom:calc(100% + 44px);right:12px;z-index:24;display:grid;grid-template-columns:repeat(6,20px);gap:6px;padding:8px;border:1px solid rgba(148,163,184,.28);border-radius:8px;background:#fffffff5;box-shadow:0 0 0 1px #0f172a0a,0 14px 34px #0f172a33;cursor:default}.node-memo-palette button{width:20px;height:20px;padding:0;border:2px solid rgba(255,255,255,.96);border-radius:999px;background:var(--memo-swatch);box-shadow:0 0 0 1px #0f172a29;cursor:pointer}.node-memo-palette button:hover,.node-memo-palette button.is-active{box-shadow:0 0 0 2px var(--memo-swatch),0 0 0 6px var(--memo-swatch-ring)}.node-template-card{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:10px;min-height:0;padding:4px 12px 12px}.node-template-card__summary{display:grid;gap:4px;padding:10px 11px;border:1px solid rgba(203,213,225,.74);border-radius:8px;background:#ffffffc7}.node-template-card__summary strong,.node-template-card__summary span,.node-template-card__options strong,.node-template-card__options span{min-width:0;overflow:hidden;text-overflow:ellipsis}.node-template-card__summary strong{color:#0f172a;font-size:13px;line-height:1.35}.node-template-card__summary span{color:#64748b;font-size:11px;line-height:1.4}.node-template-card__options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.node-template-card__options button{min-width:0;min-height:58px;display:grid;gap:3px;padding:8px 9px;border:1px solid rgba(203,213,225,.84);border-radius:8px;color:#334155;background:#fff;cursor:pointer;text-align:left}.node-template-card__options button.is-active{border-color:#2563eb80;background:#eff6ff}.node-template-card__options strong{color:#0f172a;font-size:12px;white-space:nowrap}.node-template-card__options span{color:#64748b;font-size:10.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.node-template-card__inputs{display:grid;gap:8px;min-height:0;overflow:auto;padding-right:3px}.node-template-card__field{display:grid;gap:6px;padding:9px;border:1px solid rgba(226,232,240,.9);border-radius:8px;background:#ffffffd6}.node-template-card__field span{display:grid;gap:3px}.node-template-card__field strong{color:#0f172a;font-size:12px}.node-template-card__field small,.node-template-card__empty,.node-template-card__missing{color:#64748b;font-size:11px;line-height:1.42}.node-template-card__field input,.node-template-card__field select,.node-template-card__field textarea{width:100%;min-width:0;border:1px solid rgba(203,213,225,.9);border-radius:7px;color:#0f172a;background:#f8fafc;font-size:12px;outline:none}.node-template-card__field input,.node-template-card__field select{height:32px;padding:0 9px}.node-template-card__field textarea{min-height:72px;resize:vertical;padding:8px 9px;line-height:1.45}.node-template-card__validation{padding:8px 9px;border:1px solid rgba(245,158,11,.34);border-radius:7px;color:#92400e;background:#fffbeb;font-size:11px;font-weight:760}.node-template-card__generate{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;color:#fff;background:#0f172a;font-size:12px;font-weight:840;cursor:pointer}.node-template-card__generate:disabled{cursor:default;opacity:.45}.node-company-launcher{position:fixed;z-index:3200;width:min(332px,calc(100vw - 32px));display:grid;gap:10px;padding:14px;border:1px solid rgba(20,184,166,.28);border-radius:8px;color:#0f172a;background:#fffffffa;box-shadow:0 0 0 1px #0f172a0a,0 20px 48px #0f172a38;cursor:default;-webkit-user-select:none;user-select:none}.node-company-launcher__eyebrow{color:#0f766e;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.node-company-launcher h4,.node-company-launcher p{margin:0}.node-company-launcher h4{font-size:14px;line-height:1.25}.node-company-launcher p{color:#475569;font-size:12px;line-height:1.55}.node-company-mode-list{display:grid;gap:7px;max-height:170px;overflow:auto}.node-company-mode-list button{min-height:56px;display:grid;gap:3px;padding:9px 10px;border:1px solid rgba(203,213,225,.84);border-radius:8px;color:#334155;background:#f8fafc;text-align:left;cursor:pointer}.node-company-mode-list button:hover,.node-company-mode-list button.is-selected{border-color:#14b8a680;background:#ecfeff}.node-company-mode-list strong,.node-company-mode-list span{display:block}.node-company-mode-list strong{color:#0f172a;font-size:12px}.node-company-mode-list span{color:#64748b;font-size:11px;line-height:1.4}.node-company-subagents{display:flex;align-items:flex-start;gap:8px;width:100%;padding:9px 10px;border:1px solid rgba(203,213,225,.84);border-radius:8px;background:#f8fafc;color:#334155;font-size:12px;font-weight:760;line-height:1.4;text-align:left;cursor:pointer}.node-company-subagents[aria-pressed=true]{border-color:#14b8a66b;background:#f0fdfa}.node-company-toggle-indicator{min-width:34px;min-height:22px;display:inline-flex;align-items:center;justify-content:center;margin-top:-1px;border-radius:999px;color:#475569;background:#e2e8f0;font-size:10px;font-weight:900}.node-company-subagents[aria-pressed=true] .node-company-toggle-indicator{color:#0f766e;background:#ccfbf1}.node-company-subagents>span:last-child{min-width:0;display:inline-flex;align-items:flex-start;gap:6px;flex:1 1 auto}.node-company-subagents svg{margin-top:1px;flex:0 0 auto;color:#0f766e}.node-company-launcher__actions{display:flex;justify-content:flex-end;gap:8px}.node-company-launcher__actions .btn{min-height:34px;padding:0 12px;border-radius:8px;font-size:12px}.node-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}.node-tags span{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border-radius:999px;color:#475569;background:#f1f5f9;font-size:10px;font-weight:780}.node-status--running{color:#075985!important;background:#e0f2fe!important}.node-status--paused{color:#92400e!important;background:#fef3c7!important}.node-status--done{color:#047857!important;background:#d1fae5!important}.node-status--blocked{color:#be123c!important;background:#ffe4e6!important}.node-company-state{display:flex;align-items:center;gap:6px;min-height:28px;margin:0 12px 8px;padding:5px 8px;border:1px solid rgba(20,184,166,.22);border-radius:8px;color:#0f766e;background:#f0fdfa;font-size:11px;line-height:1.2}.node-company-state strong{min-width:0;overflow:hidden;color:#0f172a;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.node-company-state span{margin-left:auto;color:#0f766e;font-weight:850;white-space:nowrap}.node-company-quick-actions{display:flex;align-items:center;gap:4px;min-height:28px;margin:-3px 12px 8px;padding:3px;border:1px solid rgba(15,118,110,.14);border-radius:8px;background:#f0fdfab8}.node-company-quick-actions button{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:#0f766e;background:#fff;box-shadow:inset 0 0 0 1px #0f766e1f;cursor:pointer}.node-company-quick-actions button:hover:not(:disabled){color:#0f172a;background:#ccfbf1}.node-company-quick-actions button:disabled{color:#94a3b8;background:#f8fafc;cursor:default;opacity:.72}.node-company-quick-actions [data-testid=node-company-remove]{margin-left:auto;color:#be123c}.node-company-quick-actions [data-testid=node-company-remove]:hover:not(:disabled){color:#7f1d1d;background:#ffe4e6}.node-chunked-text-state{flex:0 1 auto;min-height:20px;max-width:min(100%,220px);display:inline-flex;align-items:center;gap:5px;margin:0;padding:2px 7px;border:1px solid rgba(37,99,235,.18);border-radius:999px;color:#1d4ed8;background:#eff6fff5;box-shadow:0 1px #ffffffbd;font-size:10px;line-height:1.2}.node-chunked-text-state strong{min-width:0;max-width:92px;overflow:hidden;color:#0f172a;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.node-chunked-text-state span{margin-left:0;color:#1d4ed8;font-weight:850;white-space:nowrap}.canvas-node textarea{flex:1 1 auto;min-height:0;margin:0 12px 12px;padding:12px;border:1px solid rgba(226,232,240,.75);border-radius:6px;color:#1f2937;background:#ffffffb8;box-shadow:inset 0 1px #ffffffc7;font-size:12px;line-height:1.55;resize:none;outline:none;-webkit-user-select:text;user-select:text;pointer-events:auto}.node-markdown-card{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(70px,.72fr) minmax(78px,1fr);gap:8px;margin:0 12px 12px}.node-markdown-preview{min-height:0;overflow:auto;padding:10px;border:1px solid rgba(14,165,233,.2);border-radius:6px;color:#0f172a;background:#ffffffb8;box-shadow:inset 0 1px #ffffffc7;font-size:11px;line-height:1.42;overscroll-behavior:contain;pointer-events:auto;scrollbar-gutter:stable}.node-markdown-preview>*{margin:0 0 5px}.node-markdown-preview>:last-child{margin-bottom:0}.node-md-empty{color:#64748b;font-style:italic}.node-md-heading{display:block;overflow:hidden;color:#075985;font-weight:880;text-overflow:ellipsis;white-space:nowrap}.node-md-heading--1,.node-md-heading--2{font-size:13px}.node-md-quote{padding-left:8px;border-left:2px solid rgba(14,165,233,.42);color:#475569}.node-md-list-item{display:flex;gap:6px}.node-md-list-item span{color:#0284c7;font-weight:900}.node-md-list-item p{min-width:0}.node-md-code,.node-md-table-row{display:block;overflow:hidden;padding:3px 5px;border-radius:4px;color:#334155;background:#e2e8f0b8;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.node-markdown-card textarea{margin:0}.node-csv-card{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(130px,1fr) minmax(74px,.42fr);gap:8px;margin:0 12px 12px}.csv-table-scroll{position:relative;min-height:0;overflow:auto;border:1px solid rgba(34,197,94,.22);border-radius:6px;color:#0f172a;background:#ffffffc7;box-shadow:inset 0 1px #ffffffd1;overscroll-behavior:contain;pointer-events:auto;scrollbar-gutter:stable both-edges}.csv-table{min-width:100%;border-collapse:separate;border-spacing:0;font-size:10.5px;line-height:1.35}.csv-table th{position:sticky;top:0;z-index:1;padding:0;border-bottom:1px solid rgba(148,163,184,.34);background:#f0fdf4f5}.csv-table-header-button{display:flex;width:100%;min-width:84px;align-items:center;justify-content:space-between;gap:8px;padding:7px 8px;border:0;color:#166534;background:transparent;font:inherit;font-weight:850;text-align:left;cursor:pointer}.csv-table-header-button small{color:#16a34a;font-size:9px;font-weight:900}.csv-table-header-button.is-active{color:#0f172a;background:#dcfce7db}.csv-table td{max-width:220px;padding:6px 8px;border-right:1px solid rgba(226,232,240,.78);border-bottom:1px solid rgba(226,232,240,.78);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csv-table tr:nth-child(2n) td{background:#f8fafcc7}.csv-table-status{position:sticky;left:0;bottom:0;display:flex;gap:8px;padding:6px 8px;border-top:1px solid rgba(187,247,208,.72);color:#166534;background:#f0fdf4f0;font-size:10px;font-weight:820}.node-csv-card textarea{margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;overflow:auto;white-space:pre}.canvas-node--memo textarea{border-color:var(--memo-border);color:var(--memo-ink);background:#ffffff94}.canvas-node.is-ai-disabled textarea{background:#f8fafca3}.canvas-node.is-nowrap textarea{overflow:auto;white-space:pre}.canvas-node.is-collapsed textarea{overflow:hidden}.canvas-node.is-company-candidate{border-color:#0f766e75;box-shadow:0 0 0 3px #0f766e14,0 18px 42px #0f172a24}.company-focus-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3300;display:flex;align-items:stretch;justify-content:stretch;padding:18px;background:#0f172aad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.company-focus-dialog{width:100%;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid rgba(203,213,225,.9);border-radius:12px;color:#0f172a;background:#f8fafc;box-shadow:0 28px 80px #0f172a57}.company-focus-head{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(226,232,240,.95);background:#fff}.company-focus-head>button,.company-focus-head__actions button,.company-focus-primary,.company-focus-approval button,.company-focus-preview button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:850}.company-focus-head>button{width:38px;color:#475569;background:#f1f5f9}.company-focus-head>div:nth-child(2){min-width:0;display:grid;gap:3px}.company-focus-head span{min-width:0}.company-focus-head>div:nth-child(2) span{color:#0f766e;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.company-focus-head strong{min-width:0;overflow:hidden;color:#0f172a;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.company-focus-head small{min-width:0;overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.company-focus-head__actions{min-width:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.company-focus-head__actions>span{min-height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 10px;border-radius:999px;color:#334155;background:#f1f5f9;font-size:11px;font-weight:850}.company-focus-head__actions button{padding:0 10px;color:#334155;background:#f8fafc;box-shadow:inset 0 0 0 1px #cbd5e1d6}.company-focus-head__actions button.is-danger{color:#be123c;background:#fff1f2;box-shadow:inset 0 0 0 1px #fda4afb8}.company-focus-main{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,360px)}.company-focus-main>main,.company-focus-side{min-height:0;overflow:auto;padding:16px}.company-focus-side{display:grid;align-content:start;gap:14px;border-left:1px solid rgba(226,232,240,.95);background:#fff}.company-focus-side section,.company-focus-graph{border:1px solid rgba(226,232,240,.92);border-radius:10px;background:#fff}.company-focus-side section{display:grid;gap:10px;padding:12px}.company-focus-side p{margin:0;color:#64748b;font-size:12px;line-height:1.55}.company-focus-side textarea{width:100%;min-height:104px;resize:vertical;border:1px solid rgba(203,213,225,.9);border-radius:8px;padding:10px;color:#0f172a;background:#f8fafc;font-size:13px;line-height:1.5;outline:none}.company-focus-side textarea:focus{border-color:#14b8a694;box-shadow:0 0 0 3px #14b8a61f}.company-focus-primary,.company-focus-preview button{color:#fff;background:#0f172a}.company-focus-primary:disabled{opacity:.48;cursor:default}.company-focus-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.company-focus-metric{display:grid;gap:5px;min-height:86px;align-content:center;padding:12px;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px #e2e8f0eb}.company-focus-metric span{color:#64748b;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.company-focus-metric strong{color:#0f172a;font-size:26px;font-weight:920}.company-focus-metric--blue{background:#eff6ff}.company-focus-metric--amber{background:#fffbeb}.company-focus-metric--teal{background:#f0fdfa}.company-focus-section-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.company-focus-section-head div{min-width:0;display:inline-flex;align-items:center;gap:7px}.company-focus-section-head strong{color:#334155;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.company-focus-section-head span{color:#64748b;font-size:11px;font-weight:850}.company-focus-graph{display:grid;gap:12px;padding:14px}.company-focus-lanes{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:4px}.company-focus-lane{min-width:230px;display:grid;align-content:start;gap:10px;border:1px solid rgba(226,232,240,.92);border-radius:10px;padding:10px;background:#f8fafc}.company-focus-lane header{display:flex;align-items:center;justify-content:space-between;gap:10px}.company-focus-lane header strong{color:#0f172a;font-size:13px}.company-focus-lane header span{color:#64748b;font-size:11px;font-weight:820}.company-focus-node-list{display:grid;gap:9px}.company-focus-node{display:grid;gap:8px;padding:10px;border:1px solid rgba(226,232,240,.92);border-radius:9px;background:#fff}.company-focus-node.is-empty{border-style:dashed;background:#ffffff9e}.company-focus-node div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.company-focus-node span,.company-focus-approval span,.company-focus-artifacts span,.company-focus-preview span{color:#64748b;font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.company-focus-node b{color:#0f766e;font-size:10px}.company-focus-node strong,.company-focus-approval strong,.company-focus-artifacts strong,.company-focus-preview strong{color:#0f172a;font-size:13px;line-height:1.3}.company-focus-node p{margin:0;color:#64748b;font-size:12px;line-height:1.45}.company-focus-node small{color:#475569;font-size:11px;line-height:1.4}.company-focus-progress{height:6px;overflow:hidden;border-radius:999px;background:#e2e8f0}.company-focus-progress i{display:block;height:100%;border-radius:inherit;background:#14b8a6}.company-focus-approval{display:grid;gap:7px;padding:10px;border:1px solid rgba(245,158,11,.28);border-radius:9px;background:#fffbeb}.company-focus-approval--approved{border-color:#14b8a647;background:#f0fdfa}.company-focus-approval--rejected{border-color:#f43f5e47;background:#fff1f2}.company-focus-approval div{display:flex;flex-wrap:wrap;gap:7px}.company-focus-approval button{padding:0 10px;color:#334155;background:#fff;box-shadow:inset 0 0 0 1px #cbd5e1d1}.company-focus-artifacts{display:grid;gap:7px;max-height:170px;overflow:auto}.company-focus-artifacts button{display:grid;gap:3px;min-height:54px;padding:9px 10px;border:1px solid rgba(226,232,240,.92);border-radius:8px;background:#f8fafc;text-align:left;cursor:pointer}.company-focus-artifacts button.is-selected{border-color:#14b8a680;background:#ecfeff}.company-focus-preview{display:grid;gap:8px;padding:10px;border:1px solid rgba(20,184,166,.24);border-radius:9px;background:#f0fdfa}.company-focus-preview pre{max-height:180px;overflow:auto;margin:0;padding:10px;border-radius:8px;color:#334155;background:#fff;font-size:11px;line-height:1.5;white-space:pre-wrap}.node-image-wrap{position:relative;flex:1;min-height:0;margin:0 12px 12px;overflow:hidden;border-radius:7px;border:1px solid rgba(226,232,240,.9)}.secure-image{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#f8fafc}.secure-image img{width:100%;height:100%;display:block;object-fit:cover}.secure-image--loading img{opacity:0}.secure-image__loading,.secure-image__fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.secure-image__loading{background:linear-gradient(90deg,#f8fafcb8,#e2e8f06b,#f8fafcb8)}.secure-image__loading span{width:18px;height:18px;border:2px solid rgba(37,99,235,.18);border-top-color:#2563eb;border-radius:999px;animation:spinIcon .9s linear infinite}.secure-image__fallback{color:#64748b;background:linear-gradient(45deg,rgba(226,232,240,.62) 25%,transparent 25%),linear-gradient(-45deg,rgba(226,232,240,.62) 25%,transparent 25%),#f8fafc;background-size:18px 18px}.node-image-wrap--mask{border-color:#0891b25c;background:linear-gradient(45deg,rgba(207,250,254,.44) 25%,transparent 25%),linear-gradient(-45deg,rgba(207,250,254,.44) 25%,transparent 25%),#f8fafc;background-size:18px 18px}.node-mask-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border:1px solid rgba(8,145,178,.3);border-radius:999px;color:#0e7490;background:#f0fdfaeb;font-size:10px;font-weight:900;text-transform:uppercase}.node-image-wrap--stack{display:grid}.node-image-wrap--stack>.secure-image{grid-area:1 / 1}.node-image-stack-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid rgba(37,99,235,.24);border-radius:999px;color:#1d4ed8;background:#ffffffeb;box-shadow:0 6px 16px #0f172a1f;font-size:11px;font-weight:800;line-height:1}.node-image-stack-rail{display:flex;gap:6px;max-width:min(220px,100%);overflow-x:auto;padding:3px;border:1px solid rgba(226,232,240,.86);border-radius:8px;background:#ffffffe6;box-shadow:0 8px 22px #0f172a1f}.node-image-stack-rail button{flex:0 0 30px;width:30px;height:24px;overflow:hidden;padding:0;border:2px solid transparent;border-radius:6px;background:#f8fafc;cursor:pointer}.node-image-stack-rail button.is-active{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb24}.node-image-stack-rail button .secure-image{width:100%;height:100%}.node-embed-card{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(78px,1fr) minmax(44px,.48fr) auto;gap:7px;margin:0 12px 12px;overflow:hidden}.node-embed-preview{position:relative;width:100%;min-height:0;overflow:hidden;border:1px solid rgba(226,232,240,.94);border-radius:7px;background:linear-gradient(135deg,#f8fafcfa,#eff6ffe6),#f8fafc}.node-embed-preview img{display:block;width:100%;height:100%;object-fit:cover}.node-embed-placeholder{width:100%;height:100%;min-height:74px;display:grid;place-items:center;align-content:center;gap:5px;color:#475569}.node-embed-placeholder svg{color:#2563eb}.node-embed-placeholder strong,.node-embed-placeholder span{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-embed-placeholder strong{color:#0f172a;font-size:12px;font-weight:880}.node-embed-placeholder span{color:#64748b;font-size:10px;font-weight:780}.node-embed-badge{max-width:calc(100% - 14px);overflow:hidden;padding:3px 7px;border:1px solid rgba(191,219,254,.9);border-radius:999px;color:#1d4ed8;background:#eff6ffeb;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:880;text-transform:uppercase}.node-embed-actions{display:flex;gap:4px;min-height:0}.node-embed-actions button{flex:0 0 auto;min-width:0;min-height:24px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border:1px solid rgba(203,213,225,.88);border-radius:7px;color:#334155;background:#f8fafc;cursor:pointer;font-size:11px;font-weight:820}.node-embed-actions button:hover{color:#0f172a;border-color:#2563eb38;background:#eff6ff}.node-embed-card textarea{margin:0}.node-embed-source{min-width:0;overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:760}.node-video-card{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(74px,1fr) minmax(44px,.52fr) auto;gap:7px;margin:0 12px 12px;overflow:hidden}.node-video-player,.node-video-placeholder{width:100%;height:100%;min-height:0;overflow:hidden;border:1px solid rgba(226,232,240,.94);border-radius:7px;background:#0f172a}.node-video-player{display:block;object-fit:contain}.node-video-placeholder{display:grid;place-items:center;align-content:center;gap:5px;color:#475569;background:linear-gradient(135deg,#f8fafcf5,#f1f5f9f5),#f8fafc}.node-video-placeholder svg{color:#2563eb}.node-video-placeholder strong{max-width:calc(100% - 24px);overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:880}.node-video-placeholder span{max-width:calc(100% - 24px);overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:780}.node-video-actions{display:flex;gap:4px;min-height:0}.node-video-actions button{flex:0 0 auto;min-width:0;min-height:24px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border:1px solid rgba(203,213,225,.88);border-radius:7px;color:#334155;background:#f8fafc;cursor:pointer;font-size:11px;font-weight:820}.node-video-actions button:hover{color:#0f172a;border-color:#2563eb38;background:#eff6ff}.node-video-card textarea{margin:0}.node-video-source{min-width:0;overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:760}.node-remote-monitor{position:relative;flex:1;height:100%;min-height:0;display:block;margin:0;padding:0;border:0;border-radius:8px;background:transparent;overflow:visible;scrollbar-width:none;-ms-overflow-style:none}.node-remote-monitor::-webkit-scrollbar{display:none;width:0;height:0}.node-remote-monitor__surface{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:9px;padding:10px;border:1px solid #e6edf6;border-radius:8px;background:#f8fbff;overflow:hidden;overflow:clip;scrollbar-width:none;-ms-overflow-style:none}.node-remote-monitor__surface::-webkit-scrollbar{display:none;width:0;height:0}.node-remote-monitor__head{min-width:0;min-height:38px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 2px 6px;border-bottom:1px solid rgba(226,232,240,.95)}.node-remote-monitor__titlemark{min-width:0;display:flex;align-items:center;gap:9px}.node-remote-monitor__titlemark>span{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(147,197,253,.64);border-radius:7px;color:#2563eb;background:#eff6fff2;box-shadow:inset 0 0 0 1px #fffc}.node-remote-monitor__titlemark>div{min-width:0;display:grid;gap:1px}.node-remote-monitor__titlemark small{overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:950;letter-spacing:.08em}.node-remote-monitor__titlemark strong{overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:950;line-height:1.1}.node-remote-monitor__head-actions{min-width:0;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px}.node-remote-monitor__head-actions i{width:7px;height:7px;border-radius:999px;background:#2563eb;box-shadow:0 0 0 3px #2563eb17}.node-remote-monitor__head-status{min-height:26px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border:1px solid #dbe4ef;border-radius:7px;color:#64748b;background:#f8fafc;font-size:9px;font-weight:950}.node-remote-monitor__head-status strong{color:#263241;letter-spacing:0}.node-remote-monitor__route-status.is-online{border-color:#14b8a659;color:#0f766e;background:#f0fdfa}.node-remote-monitor__route-status.is-online strong{color:#0f766e}.node-remote-monitor__route-status.is-warn{border-color:#f59e0b61;color:#92400e;background:#fffbeb}.node-remote-monitor__route-status.is-warn strong{color:#92400e}.node-remote-monitor__route-status.is-default{border-color:#dbe4ef;color:#64748b;background:#f8fafc}.node-remote-monitor__head-actions button{min-height:26px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;border:1px solid rgba(147,197,253,.75);border-radius:7px;color:#2563eb;background:#fff;box-shadow:0 1px 2px #2563eb1f;cursor:pointer;font-size:10px;font-weight:950}.node-remote-monitor__head-actions button:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.node-remote-monitor__head-actions button.is-active{border-color:#14b8a670;color:#0f766e;background:#f0fdfa;box-shadow:0 1px 2px #14b8a624}.node-remote-monitor__wall-shell{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:6px;overflow:hidden;overflow:clip}.node-remote-monitor__wall{min-height:0;display:grid;grid-template-columns:repeat(5,minmax(var(--remote-node-tile-min-width, 96px),1fr));grid-template-rows:repeat(6,minmax(var(--remote-node-tile-min-height, 58px),1fr));grid-auto-rows:minmax(var(--remote-node-tile-min-height, 58px),1fr);align-content:start;gap:6px;overflow:auto;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;scrollbar-gutter:auto;-ms-overflow-style:none;touch-action:none;cursor:grab}.node-remote-monitor__wall::-webkit-scrollbar{display:none;width:0;height:0}.node-remote-monitor__wall::-webkit-scrollbar-thumb{border-radius:999px;background:#cbd5e1}.node-remote-monitor__wall:active,.node-remote-monitor__wall span:active{cursor:grabbing}.node-remote-monitor__wall span{position:relative;min-width:0;min-height:0;overflow:hidden;border:2px solid #e7edf5;background:linear-gradient(135deg,#f8fafcf2,#fffffff5),#fff;cursor:grab}.node-remote-monitor__wall span.is-online{border-color:#dbeafe;background:linear-gradient(135deg,#eff6fff5,#fffffffa),#fff}.node-remote-monitor__wall span.is-selected{border-color:#93c5fd;box-shadow:inset 0 0 0 1px #3b82f647}.node-remote-monitor__wall span.is-input-active{border-color:#2dd4bf;box-shadow:inset 0 0 0 1px #2dd4bf66,0 0 0 1px #2dd4bf29;cursor:crosshair}.node-remote-monitor__wall span:focus-visible{outline:2px solid rgba(37,99,235,.55);outline-offset:-2px}.node-remote-monitor__wall canvas{width:100%;height:100%;display:block}.node-remote-monitor__wall em{position:absolute;top:5px;right:5px;display:inline-flex;align-items:center;gap:3px;padding:2px 5px;border:1px solid rgba(13,148,136,.3);border-radius:999px;color:#0f766e;background:#f0fdfaf0;font-size:8px;font-style:normal;font-weight:900;text-transform:uppercase}.node-remote-monitor__taskbar{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:6px}.node-remote-monitor__taskbar input{min-width:0;height:26px;padding:0 9px;border:1px solid #dbe4ef;border-radius:7px;color:#263241;background:#fff;font-size:11px;font-weight:760}.node-remote-monitor__taskbar input::placeholder{color:#94a3b8}.node-remote-monitor__taskbar button{min-width:0;height:26px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:1px solid #dbe4ef;border-radius:7px;color:#2563eb;background:#eff6ff;cursor:pointer;font-size:10px;font-weight:900}.node-remote-monitor__taskbar button:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.node-remote-monitor__wall small{position:absolute;left:6px;right:6px;bottom:5px;overflow:hidden;color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:900;text-shadow:0 1px 0 rgba(255,255,255,.8)}.node-remote-monitor__pager{min-height:0;display:grid;grid-template-rows:20px minmax(0,1fr) 20px;gap:5px;align-items:stretch}.node-remote-monitor__pager button{width:18px;height:20px;display:grid;place-items:center;padding:0;border:1px solid #dbe4ef;border-radius:6px;color:#64748b;background:#fff;cursor:pointer}.node-remote-monitor__pager button:disabled{color:#cbd5e1;background:#f8fafc;cursor:not-allowed}.node-remote-monitor__pager-track{position:relative;display:block;min-height:0;border-radius:999px;background:linear-gradient(180deg,#edf3fb,#f8fafc);overflow:hidden}.node-remote-monitor__pager-track strong{position:absolute;left:3px;right:3px;top:var(--remote-node-page-top, 0%);height:var(--remote-node-page-height, 100%);min-height:16px;border-radius:999px;background:linear-gradient(180deg,#cbd5e1,#94a3b8)}.node-remote-monitor__footer{min-width:0;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:6px}.node-remote-monitor__footer-scale,.node-remote-monitor__footer-group,.node-remote-monitor__footer-filter,.node-remote-monitor__footer-status{min-width:0;display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.node-remote-monitor__footer-scale{flex:none}.node-remote-monitor__footer-group{flex:none;min-height:22px;padding:0 7px;border:1px solid #e0e6ef;border-radius:999px;color:#5f6b7a;background:#fff;font-size:9px;font-weight:950}.node-remote-monitor__footer-filter{flex:0 1 286px;min-height:22px;padding:0 7px;border:1px solid #e0e6ef;border-radius:999px;color:#5f6b7a;background:#fff;font-size:9px;font-weight:950}.node-remote-monitor__footer-filter input{width:74px;min-width:46px;height:18px;border:0;outline:none;color:#263241;background:transparent;font:inherit;font-size:10px;font-weight:850}.node-remote-monitor__footer-filter input::placeholder{color:#94a3b8}.node-remote-monitor__footer-group select,.node-remote-monitor__footer-filter select{max-width:86px;border:0;outline:none;color:#263241;background:transparent;cursor:pointer;font:inherit;font-size:10px}.node-remote-monitor__footer-filter select{max-width:68px}.node-remote-monitor__footer-status{flex:1 1 320px;justify-content:center}.node-remote-monitor__footer-scale button{width:22px;min-width:22px;justify-content:center;padding:0}.node-remote-monitor__footer span{min-height:22px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border:1px solid #e0e6ef;border-radius:999px;color:#5f6b7a;background:#fff;font-size:10px;font-weight:900}.node-remote-monitor__footer strong{color:#263241;letter-spacing:0}.node-remote-monitor__footer i{width:6px;height:6px;border-radius:50%;background:#2dd4bf}.node-remote-monitor__footer button{min-height:22px;display:inline-flex;align-items:center;gap:4px;padding:0 8px;border:1px solid #dbe4ef;border-radius:999px;color:#2563eb;background:#eff6ff;cursor:pointer;font-size:10px;font-weight:900}.node-remote-monitor__footer button:disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.node-remote-monitor__message{min-width:0;margin:0;overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:760;text-align:center}.node-remote-monitor__external-rail{position:absolute;top:calc(100% + 8px);left:50%;z-index:24;width:min(max(100%,720px),calc(100vw - 48px));max-width:calc(100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr);gap:5px;padding:6px;border:1px solid rgba(203,213,225,.82);border-radius:8px;background:#fffffff2;box-shadow:0 0 0 1px #ffffffbd inset,0 14px 28px #0f172a24;cursor:default;pointer-events:auto;transform:translate(-50%)}.node-remote-monitor__external-rail .node-remote-monitor__head-actions,.node-remote-monitor__external-rail .node-remote-monitor__taskbar,.node-remote-monitor__external-rail .node-remote-monitor__footer{width:100%}.node-remote-monitor__external-rail .node-remote-monitor__head-actions{padding-bottom:2px}.node-remote-monitor__external-rail .node-remote-monitor__footer{padding-top:1px}.node-remote-monitor__external-rail .node-remote-monitor__message{max-width:100%}.node-remote-control{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:8px;margin:0 12px 12px}.node-remote-control__bar{min-height:30px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:7px}.node-remote-control__bar strong{min-width:0;overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:900}.node-remote-control__bar span{color:#64748b;font-size:10px;font-weight:850;text-transform:uppercase}.node-remote-control__bar button{min-height:28px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 8px;border-radius:7px;color:#334155;background:#f1f5f9;cursor:pointer;font-size:10px;font-weight:850}.node-remote-control__bar button:disabled{color:#94a3b8;cursor:not-allowed}.node-remote-control__screen{position:relative;min-height:0;overflow:hidden;border:1px solid rgba(148,163,184,.34);border-radius:7px;background:#020617;outline:none}.node-remote-control__screen.is-input-active{border-color:#2563ebb8;box-shadow:0 0 0 3px #2563eb29;cursor:crosshair}.node-remote-control__screen canvas{width:100%;height:100%;display:block}.node-remote-control__screen em{position:absolute;right:8px;top:8px;display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:999px;color:#1d4ed8;background:#dbeafef0;font-size:10px;font-style:normal;font-weight:900}.node-remote-control__taskbar{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.node-remote-control__taskbar input{min-width:0;height:28px;padding:0 9px;border:1px solid rgba(203,213,225,.9);border-radius:7px;color:#0f172a;background:#fff;font-size:10px;font-weight:780;outline:none}.node-remote-control__taskbar input:focus{border-color:#2563ebad;box-shadow:0 0 0 3px #2563eb1f}.node-remote-control__taskbar input::placeholder{color:#94a3b8}.node-remote-control__taskbar button{height:28px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;border-radius:7px;color:#1d4ed8;background:#dbeafe;cursor:pointer;font-size:10px;font-weight:900}.node-remote-control__taskbar button:disabled{color:#94a3b8;background:#f1f5f9;cursor:not-allowed}.node-remote-control__footer{display:flex;flex-wrap:wrap;gap:6px}.node-remote-control__footer span{min-width:0;display:inline-flex;align-items:center;gap:4px;min-height:21px;padding:0 7px;border-radius:999px;color:#64748b;background:#f1f5f9;font-size:9px;font-weight:850}.node-remote-control__footer strong{max-width:128px;overflow:hidden;color:#0f172a;text-overflow:ellipsis;white-space:nowrap}.node-remote-control__message{min-width:0;margin:-2px 0 0;overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:760}.node-asset-card{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:10px;margin:0 12px 12px;padding:12px;border:1px solid rgba(226,232,240,.86);border-radius:7px;background:#ffffffc7}.node-asset-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;color:#475569;background:#f1f5f9}.node-asset-card--pdf .node-asset-icon{color:#dc2626;background:#fee2e2}.node-asset-card--file .node-asset-icon{color:#1d4ed8;background:#dbeafe}.node-asset-card--directory .node-asset-icon{color:#b45309;background:#fef3c7}.node-asset-copy{min-width:0;display:grid;align-content:center;gap:4px}.node-asset-copy strong,.node-asset-copy span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-asset-copy strong{color:#0f172a;font-size:13px}.node-asset-copy span{color:#64748b;font-size:11px;font-weight:760}.node-asset-meta{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr);gap:3px 6px;margin:3px 0 0;color:#64748b;font-size:10px;line-height:1.3}.node-asset-meta dt{color:#92400e;font-weight:850}.node-asset-meta dd{min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-asset-actions{display:flex;gap:4px}.node-asset-actions button{min-height:24px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 9px;border-radius:7px;color:#334155;background:#f1f5f9;cursor:pointer;font-size:11px;font-weight:820}.node-asset-actions button:hover{color:#0f172a;background:#e2e8f0}.node-result-row{position:relative;z-index:2;flex:0 0 auto;display:flex;justify-content:space-between;gap:8px;padding:0 12px 12px;pointer-events:auto}.node-pin,.node-context-source{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:0 8px;border-radius:999px;color:#475569;background:#fff;border:1px solid rgba(203,213,225,.92);cursor:pointer;font-size:10px;font-weight:850}.node-pin--context{color:#1d4ed8;border-color:#3b82f647}.node-pin--result{color:#c2410c;border-color:#f9731652}.node-pin.has-result{box-shadow:0 0 14px #f9731638}.node-pin.can-receive,.node-context-source.can-receive{border-color:#2563eb;background:#eff6ff}.node-context-source{position:absolute;top:50%;right:-14px;width:28px;height:28px;justify-content:center;padding:0;transform:translateY(-50%)}.node-action-toast{position:fixed;top:82px;left:74px;z-index:240;min-height:36px;display:inline-flex;align-items:center;max-width:min(420px,calc(100vw - 96px));padding:0 12px;border:1px solid rgba(15,118,110,.22);border-radius:9px;color:#0f766e;background:#f0fdfaf0;font-size:13px;font-weight:820}.top-tabbar{position:fixed;left:56px;right:0;top:0;z-index:110;display:flex;height:36px;align-items:stretch;width:auto;max-width:none;overflow-x:auto;overflow-y:hidden;pointer-events:auto;border-bottom:1px solid rgba(203,213,225,.78);background:linear-gradient(90deg,#f8fafcf5,#f1f5f9e6);box-shadow:0 8px 24px #0f172a0a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.top-tabbar::-webkit-scrollbar{height:0}.tab-shell{flex:0 0 auto;display:inline-flex;align-items:stretch;max-width:250px;border-right:1px solid rgba(203,213,225,.72);background:#ffffffd1}.tab-shell.is-active{background:#eff6fff2}.tab-shell.is-dragging{opacity:.62}.tab-shell.is-drag-over{box-shadow:inset 3px 0 #2563eb;background:#dbeafef5}.tab-button{max-width:220px;min-width:80px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;color:#2563eb;background:transparent;cursor:pointer;font-size:12px;font-weight:780}.tab-button--current{justify-content:flex-start;padding:0 12px}.tab-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-button--plain{flex:0 0 auto;min-width:42px;border-right:1px solid rgba(203,213,225,.72);color:#64748b;background:#ffffffd1}.tab-close{flex:0 0 28px;width:28px;border:0;color:#94a3b8;background:transparent;cursor:pointer}.tab-close:hover{color:#ef4444;background:#fee2e2d1}.local-board-backdrop{position:fixed;top:36px;right:0;bottom:0;left:56px;z-index:180;background:#0f172a0a;cursor:default}.local-board-panel{position:fixed;top:108px;left:68px;z-index:190;width:min(360px,calc(100vw - 88px));max-height:min(500px,calc(100vh - 132px));display:grid;gap:10px;overflow:auto;padding:12px;border-radius:10px}.project-gallery-backdrop{top:36px;right:0;bottom:0;left:56px;z-index:180;background:#0f172a0b}.project-gallery-shell{position:fixed;top:36px;right:16px;bottom:16px;left:68px;z-index:190;display:flex;align-items:center;justify-content:center;padding-bottom:clamp(48px,8vh,104px);pointer-events:none}.project-gallery-positioner{width:100%;max-width:min(2720px,calc(100vw - 112px));transform:translateY(5vh);pointer-events:auto}.project-gallery-panel{position:relative;top:auto;left:auto;width:min(92vw,2720px);max-width:calc(100vw - 112px);height:min(clamp(640px,min(72vh,calc(100vh - 250px)),1280px),calc(100vh - 96px));max-height:none;grid-template-rows:auto minmax(0,1fr);gap:12px;overflow:hidden;padding:14px;border-radius:8px;border:1px solid rgba(203,213,225,.92);box-shadow:0 20px 60px #0f172a24}.local-board-panel.project-gallery-panel{left:auto;right:auto;max-height:none;overflow:hidden}.project-gallery-panel__head{min-height:62px;padding-bottom:10px;border-bottom:1px solid rgba(226,232,240,.88)}.project-gallery-title{display:grid;gap:3px;min-width:0}.project-gallery-title__eyebrow{display:inline-flex;align-items:center;gap:7px}.project-gallery-title p{margin:0;color:#64748b;font-size:12px;font-weight:720}.project-gallery-body{min-height:0;display:grid;grid-template-columns:clamp(220px,12vw,320px) minmax(0,1fr);gap:12px}.project-gallery-folder-rail,.project-gallery-board-area{min-height:0;display:grid;gap:10px}.project-gallery-folder-rail{align-content:start;padding:10px;border:1px solid rgba(226,232,240,.92);border-radius:8px;background:#f8fafcb8}.project-gallery-board-area{overflow:hidden}.project-gallery-current-name{display:grid;gap:6px}.project-gallery-current-name span,.project-gallery-rail-card span{color:#64748b;font-size:11px;font-weight:850;text-transform:uppercase}.project-gallery-rail-card{display:grid;gap:4px;padding:10px;border:1px solid rgba(203,213,225,.82);border-radius:8px;background:#fff}.project-gallery-rail-card strong{color:#0f172a;font-size:13px;font-weight:900}.project-gallery-rail-card small{color:#64748b;font-size:11px;font-weight:740}.project-gallery-workspace-summary small{max-height:44px;overflow:hidden;word-break:break-all}.project-gallery-startup-toggle{min-height:36px;display:inline-flex;align-items:center;gap:9px;padding:0 10px;border:1px solid rgba(203,213,225,.82);border-radius:8px;color:#334155;background:#fff;cursor:pointer;font-size:12px;font-weight:850}.project-gallery-startup-toggle input{width:14px;height:14px;accent-color:#2563eb}.project-gallery-board-section{min-height:0;overflow:hidden}.project-gallery-board-grid{min-height:0;max-height:none;grid-template-columns:repeat(auto-fill,minmax(clamp(210px,10vw,280px),1fr));align-content:start;gap:8px;overflow:auto;padding:1px 4px 4px 1px}.project-gallery-board-card{min-width:0;min-height:78px;border:1px solid rgba(226,232,240,.86);background:#fff}.project-gallery-board-card.is-active{border-color:#2563eb61;background:#eff6ff}.project-gallery-board-card .local-board-row__main{min-height:76px;align-items:flex-start;padding:12px}.project-gallery-board-card .local-board-row__action{height:76px}.project-gallery-open-tab-badge{width:fit-content;padding:3px 6px;border-radius:999px;color:#1d4ed8!important;background:#dbeafeeb;font-size:10px!important;font-weight:900!important}.project-gallery-bridge-section{min-height:0;overflow:hidden;padding-top:2px}.project-gallery-workspace-panel{display:grid;gap:8px;padding:10px;border:1px solid rgba(203,213,225,.86);border-radius:8px;background:#f8fafcd6}.project-gallery-workspace-panel__main{display:flex;align-items:flex-start;gap:9px;min-width:0}.project-gallery-workspace-panel__main svg{flex:0 0 auto;margin-top:2px;color:#2563eb}.project-gallery-workspace-panel__main span{min-width:0;display:grid;gap:2px}.project-gallery-workspace-panel__main strong{color:#0f172a;font-size:12px;font-weight:900}.project-gallery-workspace-panel__main small{color:#64748b;font-size:11px;font-weight:720;line-height:1.35;word-break:break-all}.project-gallery-workspace-panel__actions,.project-gallery-workspace-history{display:flex;flex-wrap:wrap;gap:6px}.project-gallery-workspace-panel__actions button,.project-gallery-workspace-history button{min-height:30px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 9px;border-radius:7px;border:1px solid rgba(203,213,225,.88);color:#334155;background:#fff;font-size:11px;font-weight:850;cursor:pointer}.project-gallery-workspace-panel__actions button:disabled,.project-gallery-workspace-history button:disabled{cursor:not-allowed;opacity:.55}.project-gallery-workspace-history button{max-width:100%;justify-content:flex-start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-gallery-bridge-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));max-height:148px}.local-board-section{display:grid;gap:8px;min-height:0}.local-board-section__title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.local-board-section__title span{color:#334155;font-size:12px;font-weight:900}.local-board-section__title small{color:#64748b;font-size:11px;font-weight:760}.local-board-section__title button{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#475569;background:#f1f5f9;cursor:pointer}.local-board-panel__head,.local-board-state,.local-board-row{display:flex;align-items:center;gap:10px;min-width:0}.local-board-panel__head{justify-content:space-between}.local-board-panel__actions{display:flex;gap:6px}.local-board-panel__head div{display:grid;gap:2px;min-width:0}.local-board-panel__head span{color:#64748b;font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.local-board-panel__head strong{color:#0f172a;font-size:17px}.board-name-input{width:100%;min-width:0;height:32px;padding:0 8px;border:1px solid rgba(203,213,225,.86);border-radius:7px;color:#0f172a;background:#ffffffe6;font-size:14px;font-weight:850;outline:none}.board-name-input:focus{border-color:#2563eb85;box-shadow:0 0 0 3px #2563eb1f}.local-board-panel__actions button,.local-board-state button{min-width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#475569;background:#f1f5f9;cursor:pointer}.local-board-panel__actions button:disabled{opacity:.55;cursor:default}.project-storage-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border:1px solid rgba(226,232,240,.9);border-radius:9px;background:#f8fafc}.project-storage-tabs button{min-width:0;min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:7px;color:#64748b;background:transparent;cursor:pointer;font-size:12px;font-weight:850}.project-storage-tabs button.is-active{color:#0f172a;background:#fff;box-shadow:0 8px 20px #0f172a14}.project-cloud-shell{min-height:0;display:grid;gap:10px;padding:14px;border:1px solid rgba(191,219,254,.92);border-radius:10px;color:#334155;background:linear-gradient(180deg,#eff6ff,#fff 76%)}.project-cloud-shell__icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:#1d4ed8;background:#ffffffdb;box-shadow:inset 0 0 0 1px #93c5fd6b}.project-cloud-shell strong{color:#0f172a;font-size:14px;font-weight:900}.project-cloud-shell p{margin:0;color:#475569;font-size:12px;line-height:1.55}.project-cloud-shell__current{display:grid;gap:3px;padding:10px;border:1px solid rgba(203,213,225,.82);border-radius:8px;background:#ffffffdb}.project-cloud-shell__current span{color:#1d4ed8;font-size:11px;font-weight:900;text-transform:uppercase}.project-cloud-shell__current small{min-width:0;overflow:hidden;color:#64748b;font-size:11px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}.project-cloud-shell button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;color:#fff;background:#0f172a;cursor:pointer;font-size:12px;font-weight:880}.project-cloud-shell button:disabled{color:#64748b;background:#dbeafe;cursor:default}.local-board-state{min-height:36px;padding:0 10px;border:1px solid rgba(203,213,225,.72);border-radius:8px;color:#475569;background:#f8fafc;font-size:12px;font-weight:820}.local-board-state--connected{color:#047857;border-color:#10b98147;background:#ecfdf5}.local-board-state--blocked{color:#1d4ed8;border-color:#3b82f640;background:#eff6ff}.local-board-state--unavailable{color:#b45309;border-color:#f59e0b4d;background:#fffbeb}.local-board-state button{width:auto;min-width:62px;margin-left:auto;padding:0 10px;color:#fff;background:#0f172a;font-size:11px;font-weight:850}.local-board-message{margin:0;color:#64748b;font-size:12px;line-height:1.5}.local-board-export{width:100%;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;color:#fff;background:#0f172a;cursor:pointer;font-size:12px;font-weight:880}.local-board-export:disabled{cursor:default;opacity:.52}.local-board-list{display:grid;gap:6px;overflow:auto;padding-right:2px}.local-board-list--stored{max-height:248px}.local-board-row{width:100%;min-height:48px;padding:8px 10px;border-radius:8px;color:#334155;background:#f8fafcd1;cursor:pointer;text-align:left}.local-board-row:hover:not(:disabled){background:#eef6ff}.local-board-row.is-active{border:1px solid rgba(37,99,235,.26);background:#eff6ff}.local-board-row:disabled{cursor:default;opacity:.72}.local-board-row--compound{display:flex;align-items:stretch;padding:0;overflow:hidden}.local-board-row--compound.is-editing{padding:6px}.local-board-row__main{min-width:0;min-height:46px;flex:1;display:inline-flex;align-items:center;gap:10px;padding:8px 10px;color:inherit;text-align:left;cursor:pointer}.local-board-row__action{width:36px;height:46px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#64748b;cursor:pointer}.local-board-row__action:disabled{opacity:.35;cursor:default}.local-board-row__action:hover:not(:disabled){color:#0f172a;background:#e2e8f0c7}.stored-board-rename{min-width:0;width:100%;display:grid;grid-template-columns:minmax(0,1fr) 30px 30px;align-items:center;gap:6px}.stored-board-rename input{min-width:0;height:34px;padding:0 10px;border:1px solid rgba(37,99,235,.36);border-radius:7px;outline:none;color:#0f172a;background:#fff;font-size:13px;font-weight:780}.stored-board-rename input:focus{border-color:#2563ebb3;box-shadow:0 0 0 3px #2563eb1f}.stored-board-rename button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#475569;background:#e2e8f0;cursor:pointer}.stored-board-rename button:hover{color:#0f172a;background:#cbd5e1}.local-board-row>svg,.local-board-row__main>svg{flex:0 0 auto;color:#2563eb}.local-board-row span{min-width:0;display:grid;gap:3px;flex:1}.local-board-row strong,.local-board-row small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.local-board-row strong{color:#0f172a;font-size:13px}.local-board-row small{color:#64748b;font-size:11px;font-weight:760}.runtime-status-cluster{position:fixed;left:72px;bottom:156px;z-index:155;width:min(430px,calc(100vw - 126px));display:grid;gap:8px;pointer-events:none}.runtime-status-row{display:flex;flex-wrap:wrap;gap:8px;pointer-events:auto}.runtime-status-pill{min-width:0;min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 7px 0 10px;border:1px solid rgba(203,213,225,.76);border-radius:8px;color:#475569;background:#ffffffeb;box-shadow:var(--soft-shadow);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);font-size:12px;font-weight:840}.runtime-status-pill>span:last-of-type{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runtime-status-pill__icon{flex:0 0 auto;display:inline-flex;color:currentColor}.runtime-status-pill--connected,.runtime-status-pill--sync-ready{color:#047857;border-color:#10b9814d;background:#ecfdf5f0}.runtime-status-pill--checking,.runtime-status-pill--sync-syncing{color:#b45309;border-color:#f59e0b57;background:#fffbebf0}.runtime-status-pill--blocked{color:#1d4ed8;border-color:#3b82f647;background:#eff6fff0}.runtime-status-pill--unavailable,.runtime-status-pill--sync-error{color:#b91c1c;border-color:#f8717157;background:#fef2f2f0}.runtime-status-pill--idle,.runtime-status-pill--sync-offline{color:#64748b;background:#f8fafcf0}.runtime-status-pill__button,.runtime-status-pill__action,.runtime-local-warning button{flex:0 0 auto;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;cursor:pointer}.runtime-status-pill__button{width:26px;color:currentColor;background:#ffffffa8}.runtime-status-pill__button:disabled{cursor:default;opacity:.52}.runtime-status-pill__action{min-width:54px;padding:0 9px;color:#fff;background:#0f172a;font-size:11px;font-weight:860}.runtime-local-warning{min-height:58px;display:grid;grid-template-columns:30px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:9px;border:1px solid rgba(245,158,11,.36);border-radius:8px;color:#92400e;background:#fffbebf5;box-shadow:var(--soft-shadow);pointer-events:none}.runtime-local-warning__icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;color:#b45309;background:#fef3c7}.runtime-local-warning__copy{min-width:0;display:grid;gap:2px}.runtime-local-warning__copy strong{color:#78350f;font-size:12px;font-weight:900}.runtime-local-warning__copy span{min-width:0;overflow:hidden;color:#92400e;font-size:11px;line-height:1.35;text-overflow:ellipsis}.runtime-local-warning button{width:28px;color:#92400e;background:#fef3c7d6;pointer-events:auto}.floating-panel,.canvas-toolbar,.global-input-shell,.bottom-controls button{border:1px solid rgba(203,213,225,.72);background:linear-gradient(180deg,#ffffffc7,#f1f5f994);box-shadow:0 14px 28px #0f172a14,inset 0 1px #ffffffb8;-webkit-backdrop-filter:blur(18px) saturate(1.12);backdrop-filter:blur(18px) saturate(1.12)}.canvas-toolbar{position:fixed;top:48px;left:calc(50% + 28px);z-index:140;display:flex;align-items:center;gap:6px;min-height:48px;padding:6px;border-radius:7px;transform:translate(-50%);pointer-events:auto;scrollbar-width:none}.canvas-toolbar::-webkit-scrollbar{display:none}.canvas-toolbar button,.bottom-controls button{width:36px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;color:#64748b;background:transparent;cursor:pointer}.canvas-toolbar button:hover:not(:disabled),.bottom-controls button:hover{color:#0f172a;background:#e2e8f0bf}.canvas-toolbar button:disabled{cursor:default;opacity:.38}.toolbar-separator{width:1px;height:28px;margin-inline:4px;background:#cbd5e1cc}.search-panel{position:fixed;top:48px;right:32px;z-index:150;width:min(330px,calc(100vw - 120px));display:grid;gap:6px;min-height:46px;padding:8px 10px;border-radius:7px}.search-input-row{display:flex;align-items:center;gap:8px;min-width:0}.search-panel input{min-width:0;flex:1;border:0;outline:none;color:#334155;background:transparent;font-size:13px}.search-panel button{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;color:#475569;background:transparent}.search-panel button:hover:not(:disabled){color:#0f172a;background:#eef4ff}.search-panel button:disabled{cursor:default;opacity:.35}.mindcanvas--function-toolbar-full .search-panel{top:104px}.search-count{flex:0 0 auto;max-width:74px;overflow:hidden;color:#64748b;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.search-current{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding-left:24px;color:#64748b;font-size:11px;font-weight:800}.search-current button{width:auto;max-width:208px;height:24px;padding:0 8px;overflow:hidden;color:#1d4ed8;text-overflow:ellipsis;white-space:nowrap}.search-results{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-width:calc(100vw - 120px);display:grid;gap:6px;padding:8px;border:1px solid rgba(203,213,225,.82);border-radius:9px;background:#fffffff5;box-shadow:var(--shadow)}.search-results button{display:grid;gap:3px;width:100%;height:auto;padding:10px;border-radius:7px;color:#334155;background:transparent;cursor:pointer;text-align:left}.search-results button:hover{background:#f1f5f9}.search-results button.is-active{color:#0f172a;background:#eaf1ff;box-shadow:inset 3px 0 #3b82f6}.search-results span{overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.connection-toast{position:fixed;left:72px;bottom:86px;z-index:170;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;color:#334155;font-size:12px;font-weight:750}.connection-toast button{padding:4px 8px;border-radius:6px;color:#1d4ed8;background:#eff6ff;cursor:pointer}.result-popover{position:fixed;right:30px;top:112px;z-index:180;width:min(520px,calc(100vw - 110px));max-height:min(560px,calc(100vh - 170px));overflow:hidden;border-radius:10px}.result-popover__header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(203,213,225,.7)}.result-popover__header button{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:#64748b;background:#f1f5f9;cursor:pointer}.result-popover__actions{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid rgba(203,213,225,.62);background:#f8fafcb8}.result-popover__meta{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(226,232,240,.9);color:#475569;background:#f8fafceb;font-size:11px}.result-popover__meta span{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;color:#1d4ed8;background:#dbeafe;font-weight:850}.result-popover__meta[data-result-source-tone=ai] span{color:#047857;background:#d1fae5}.result-popover__meta[data-result-source-tone=fallback] span{color:#b45309;background:#fef3c7}.result-popover__meta[data-result-source-tone=running] span{color:#1d4ed8;background:#dbeafe}.result-popover__meta small{min-width:0;overflow:hidden;color:#64748b;font-size:11px;font-weight:720;text-overflow:ellipsis;white-space:nowrap}.result-popover__actions button{min-width:0;height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border-radius:7px;color:#334155;background:#ffffffd1;cursor:pointer;font-size:12px;font-weight:850;white-space:nowrap}.result-popover__actions button:hover{color:#1d4ed8;background:#eff6ff}.result-popover__body{max-height:min(408px,calc(100vh - 318px));margin:0;overflow:auto;padding:14px;color:#1f2937;background:#ffffffb8;font:15px/1.62 Inter,Noto Sans KR,ui-sans-serif,system-ui;white-space:pre-wrap}.pdf-viewer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:265;display:flex;align-items:center;justify-content:center;padding:22px 22px 22px 78px;background:#0f172a38}.pdf-viewer-dialog{width:min(980px,calc(100vw - 120px));height:min(780px,calc(100vh - 48px));display:grid;grid-template-rows:56px minmax(0,1fr);overflow:hidden;border:1px solid rgba(203,213,225,.92);border-radius:12px;background:#fff;box-shadow:0 30px 90px #0f172a47}.pdf-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 0 16px;border-bottom:1px solid rgba(226,232,240,.9);background:#f8fafceb}.pdf-viewer-head div:first-child{min-width:0;display:grid;gap:2px}.pdf-viewer-head span{color:#64748b;font-size:11px;font-weight:860;letter-spacing:.06em;text-transform:uppercase}.pdf-viewer-head strong{min-width:0;overflow:hidden;color:#0f172a;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.pdf-viewer-actions{display:flex;gap:8px;flex:0 0 auto}.pdf-viewer-actions button{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:#64748b;background:#e2e8f0;cursor:pointer}.pdf-viewer-actions button:hover{color:#0f172a;background:#cbd5e1}.pdf-viewer-frame{width:100%;height:100%;border:0;background:#f8fafc}.directory-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:264;display:flex;align-items:center;justify-content:center;padding:24px 24px 24px 80px;background:#0f172a2e}.directory-settings-dialog{width:min(520px,calc(100vw - 112px));max-height:min(440px,calc(100vh - 48px));display:grid;grid-template-rows:62px minmax(0,1fr) 58px;overflow:hidden;border:1px solid rgba(203,213,225,.92);border-radius:12px;background:#fff;box-shadow:0 22px 60px #0f172a33}.directory-settings-head,.directory-settings-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 18px;border-bottom:1px solid rgba(226,232,240,.9)}.directory-settings-head div{min-width:0;display:grid;gap:4px}.directory-settings-head span{display:inline-flex;align-items:center;gap:7px;color:#92400e;font-size:11px;font-weight:900;text-transform:uppercase}.directory-settings-head strong{min-width:0;overflow:hidden;color:#0f172a;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.directory-settings-head button,.directory-settings-footer button{min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(203,213,225,.92);border-radius:8px;background:#f8fafc;color:#475569;font-weight:820}.directory-settings-body{min-height:0;display:grid;align-content:start;gap:14px;overflow:auto;padding:18px}.directory-setting-row{min-width:0;display:grid;gap:7px}.directory-setting-row span{display:inline-flex;align-items:center;gap:7px;color:#334155;font-size:12px;font-weight:860}.directory-setting-row input{width:100%;min-width:0;height:38px;border:1px solid #cbd5e1;border-radius:8px;padding:0 11px;color:#0f172a;background:#fff;font-size:13px;font-weight:720;outline:0}.directory-setting-row input:focus{border-color:#d97706;box-shadow:0 0 0 3px #d9770624}.directory-settings-footer{justify-content:flex-end;border-top:1px solid rgba(226,232,240,.9);border-bottom:0;background:#f8fafc}.directory-settings-footer button{min-width:86px}.directory-settings-footer button.is-primary{border-color:#0f172a;color:#fff;background:#0f172a}.template-launcher-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;display:flex;align-items:flex-start;justify-content:center;padding:108px 24px 120px 78px;background:#0f172a12}.template-launcher-panel{width:min(760px,calc(100vw - 118px));max-height:min(720px,calc(100vh - 152px));display:grid;grid-template-rows:auto auto auto minmax(0,auto) auto auto;overflow:hidden;border-radius:12px;background:#fffffffa}.template-launcher-head,.template-launcher-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(226,232,240,.88)}.template-launcher-head div{min-width:0;display:grid;gap:3px}.template-launcher-head span{color:#64748b;font-size:11px;font-weight:880;letter-spacing:.06em;text-transform:uppercase}.template-launcher-head strong{overflow:hidden;color:#0f172a;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.template-launcher-head button,.template-launcher-secondary,.template-launcher-primary{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:840}.template-launcher-head button{width:34px;color:#64748b;background:#f1f5f9}.template-launcher-tabs{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;border-bottom:1px solid rgba(226,232,240,.82);background:#f8fafcd1;scrollbar-width:none}.template-launcher-tabs::-webkit-scrollbar{display:none}.template-launcher-tabs button{min-width:0;min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border-radius:8px;color:#64748b;background:transparent;cursor:pointer;font-size:12px;font-weight:800}.template-launcher-tabs button.is-active{color:#0f172a;background:#fff;box-shadow:inset 0 0 0 1px #cbd5e1d1}.template-launcher-tabs span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-launcher-description,.template-launcher-prompt{margin:0;color:#475569;font-size:13px;line-height:1.55}.template-launcher-description{padding:12px 16px 0}.template-launcher-option-block,.template-launcher-form{display:grid;gap:10px;padding:12px 16px 0}.template-launcher-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.template-launcher-chips button{min-width:0;min-height:74px;display:grid;gap:4px;align-content:start;padding:10px;border:1px solid rgba(226,232,240,.9);border-radius:8px;color:#334155;background:#fff;cursor:pointer;text-align:left}.template-launcher-chips button.is-active{border-color:#2563eb70;background:#eff6ff}.template-launcher-chips strong,.template-launcher-chips span{min-width:0;overflow:hidden;text-overflow:ellipsis}.template-launcher-chips strong{color:#0f172a;font-size:13px;white-space:nowrap}.template-launcher-chips span{color:#64748b;font-size:11px;line-height:1.4}.template-launcher-form{overflow:auto;padding-bottom:10px}.template-launcher-field{display:grid;grid-template-columns:minmax(0,.92fr) minmax(220px,1.08fr);gap:12px;align-items:start;padding:11px 12px;border:1px solid rgba(226,232,240,.9);border-radius:9px;background:#fff}.template-launcher-field span{min-width:0;display:grid;gap:4px}.template-launcher-field strong{color:#0f172a;font-size:13px}.template-launcher-field small{color:#64748b;font-size:11px;line-height:1.4}.template-launcher-field input,.template-launcher-field select,.template-launcher-field textarea{width:100%;min-width:0;border:1px solid rgba(203,213,225,.9);border-radius:8px;color:#0f172a;background:#f8fafc;font-size:13px;outline:none}.template-launcher-field input,.template-launcher-field select{height:36px;padding:0 10px}.template-launcher-field textarea{min-height:86px;max-height:180px;resize:vertical;padding:9px 10px;line-height:1.5}.template-launcher-field input:focus,.template-launcher-field select:focus,.template-launcher-field textarea:focus{border-color:#2563eb85;box-shadow:0 0 0 3px #2563eb1f}.template-launcher-validation{margin:8px 16px 0;padding:9px 10px;border:1px solid rgba(245,158,11,.36);border-radius:8px;color:#92400e;background:#fffbeb;font-size:12px;font-weight:760;line-height:1.45}.template-launcher-footer{border-top:1px solid rgba(226,232,240,.88);border-bottom:0;background:#f8fafcbd}.template-launcher-secondary{min-width:82px;padding:0 12px;color:#475569;background:#e2e8f0}.template-launcher-primary{min-width:126px;padding:0 14px;color:#fff;background:#0f172a}.template-launcher-primary:disabled{cursor:default;opacity:.45}.template-studio-chooser-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:252;background:#0f172a0a}.template-studio-chooser{position:fixed;top:88px;right:24px;width:min(420px,calc(100vw - 96px));display:grid;gap:12px;padding:14px;border-radius:10px}.template-studio-chooser__head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px}.template-studio-chooser__head div{min-width:0;display:grid;gap:2px}.template-studio-chooser__head span{color:#2563eb;font-size:11px;font-weight:900}.template-studio-chooser__head strong{overflow:hidden;color:#0f172a;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.template-studio-chooser__head button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:#64748b;background:#f1f5f9;cursor:pointer}.template-studio-chooser__description{margin:0;color:#64748b;font-size:12px;line-height:1.45}.template-studio-chooser__actions{display:grid;gap:8px}.template-studio-chooser__action{min-width:0;min-height:72px;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid rgba(226,232,240,.9);border-radius:9px;color:#334155;background:#fff;cursor:pointer;text-align:left}.template-studio-chooser__action:hover{border-color:#2563eb70;background:#eff6ff}.template-studio-chooser__icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;color:#2563eb;background:#eff6ff}.template-studio-chooser__action span:last-child{min-width:0;display:grid;gap:3px}.template-studio-chooser__action strong{color:#0f172a;font-size:13px}.template-studio-chooser__action small{color:#64748b;font-size:11px;line-height:1.35}.template-studio-toolbar-stack{position:fixed;left:72px;top:88px;z-index:166;display:grid;gap:8px;pointer-events:none}.template-studio-toolbar{width:max-content;max-width:min(820px,calc(100vw - 460px));display:flex;align-items:center;gap:6px;padding:6px;border-radius:9px;pointer-events:auto}.template-studio-toolbar__badge,.template-studio-toolbar__meta{min-height:30px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border-radius:8px;color:#0f172a;background:#eff6ff;font-size:12px;font-weight:860;white-space:nowrap}.template-studio-toolbar__badge svg{color:#2563eb}.template-studio-toolbar__meta{max-width:240px;color:#64748b;background:#f8fafc;overflow:hidden;text-overflow:ellipsis}.template-studio-toolbar__meta--selected{max-width:280px}.template-studio-toolbar button{min-width:31px;height:30px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 9px;border-radius:7px;color:#64748b;background:transparent;cursor:pointer;font-size:11px;font-weight:880}.template-studio-toolbar button:hover,.template-studio-toolbar button.is-active{color:#0f172a;background:#e2e8f0d6}.template-studio-toolbar--roles,.template-studio-toolbar--selected{background:#f8fafcf5}.template-studio-toolbar--roles button,.template-studio-toolbar--selected button{min-width:54px}.template-studio-panel{position:fixed;top:88px;right:24px;bottom:28px;z-index:166;width:min(370px,calc(100vw - 96px));display:grid;grid-template-rows:54px minmax(0,1fr);overflow:hidden;border-radius:10px}.template-studio-panel__head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px 0 16px;border-bottom:1px solid rgba(226,232,240,.88);background:#f8fafcd6}.template-studio-panel__head div{min-width:0;display:grid;gap:2px}.template-studio-panel__head span,.template-studio-panel__section-head small{color:#64748b;font-size:11px;font-weight:820}.template-studio-panel__head strong{overflow:hidden;color:#0f172a;font-size:14px;font-weight:880;text-overflow:ellipsis;white-space:nowrap}.template-studio-panel__head button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:#64748b;background:#f1f5f9;cursor:pointer}.template-studio-panel__body{min-height:0;overflow:auto;padding:12px}.template-studio-panel__section{display:grid;gap:10px;padding:12px;border-bottom:1px solid rgba(226,232,240,.86)}.template-studio-panel__section:last-child{border-bottom:0}.template-studio-panel__field{display:grid;gap:6px}.template-studio-panel__field span,.template-studio-panel__checkbox span,.template-studio-panel__section-head span{color:#475569;font-size:11px;font-weight:860}.template-studio-panel__field input,.template-studio-panel__field select,.template-studio-panel__field textarea{width:100%;min-width:0;border:1px solid rgba(203,213,225,.9);border-radius:8px;color:#0f172a;background:#fff;font-size:12px;font-weight:740}.template-studio-panel__field input,.template-studio-panel__field select{height:34px;padding:0 9px}.template-studio-panel__field textarea{min-height:72px;resize:vertical;padding:9px;line-height:1.45}.template-studio-panel__checkbox{min-height:30px;display:inline-flex;align-items:center;gap:9px}.template-studio-panel__checkbox input{width:16px;height:16px;accent-color:#0f172a}.template-studio-panel__node-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border:1px solid rgba(226,232,240,.9);border-radius:8px;background:#f8fafc}.template-studio-panel__node-summary strong{overflow:hidden;color:#0f172a;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.template-studio-panel__node-summary span{flex:0 0 auto;padding:2px 7px;border-radius:999px;color:#1d4ed8;background:#eff6ff;font-size:10px;font-weight:900}.template-studio-panel__hint{margin:0;color:#64748b;font-size:12px;line-height:1.45}.template-studio-panel__section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.template-studio-panel__issues{display:grid;gap:6px}.template-studio-panel__issue{display:grid;gap:2px;padding:8px;border:1px solid rgba(245,158,11,.35);border-radius:8px;color:#92400e;background:#fffbeb}.template-studio-panel__issue strong{font-size:11px}.template-studio-panel__issue span{font-size:11px;line-height:1.35}.template-studio-panel__manifest{max-height:260px;overflow:auto;margin:0;padding:10px;border:1px solid rgba(203,213,225,.85);border-radius:8px;color:#0f172a;background:#f8fafc;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.45;white-space:pre-wrap}.ai-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:260;display:flex;align-items:flex-end;justify-content:center;padding:0 18px 140px 74px;background:transparent}.ai-settings-dialog{width:min(768px,calc(100vw - 104px));height:min(520px,calc(100vh - 168px));max-height:calc(100vh - 36px);min-height:0;display:grid;grid-template-columns:176px minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden;border:1px solid rgba(229,231,235,.98);border-radius:12px;background:#fff;box-shadow:0 22px 58px #0f172a2e}.ai-settings-tabs{min-height:0;display:flex;flex-direction:column;padding:8px 0;border-right:1px solid rgba(243,244,246,.98);background:#f9fafbbd}.ai-settings-tabs button{min-height:36px;display:inline-flex;align-items:center;gap:10px;padding:0 16px;border-left:2px solid transparent;color:#6b7280;background:transparent;cursor:pointer;font-size:13px;font-weight:500;text-align:left}.ai-settings-tabs button.is-active{border-left-color:#111827;color:#111827;background:#fff;font-weight:650}.ai-settings-main{min-width:0;min-height:0;height:100%;display:grid;grid-template-rows:48px minmax(0,1fr) 56px;background:#fff}.ai-settings-head,.ai-settings-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 24px;border-bottom:1px solid rgba(243,244,246,.98)}.ai-settings-head strong{min-width:0;overflow:hidden;color:#111827;font-size:15px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.ai-settings-head span,.ai-settings-footer span{overflow:hidden;color:#64748b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ai-settings-head button,.ai-settings-footer button{min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:#9ca3af;background:transparent;cursor:pointer}.ai-settings-head button:hover{color:#4b5563;background:#f3f4f6}.ai-settings-footer{justify-content:flex-end;border-top:1px solid rgba(243,244,246,.98);border-bottom:0;background:#f9fafbb8}.ai-settings-footer button{min-width:64px;height:34px;padding:0 16px;border-radius:8px;color:#fff;background:#111827;font-size:13px;font-weight:650}.ai-settings-footer button:hover{background:#1f2937}.ai-settings-body{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:20px 24px;scrollbar-color:rgba(148,163,184,.72) transparent;scrollbar-width:thin}.ai-settings-body::-webkit-scrollbar{width:9px}.ai-settings-body::-webkit-scrollbar-thumb{border:2px solid #fff;border-radius:999px;background:#94a3b894}.ai-settings-body:focus-visible{outline:2px solid rgba(37,99,235,.28);outline-offset:-2px}.settings-grid{display:grid;grid-template-columns:1fr;gap:2px}.settings-grid--compact{grid-template-columns:1fr}.settings-stack{display:grid;gap:16px}.settings-media-section{display:grid;gap:10px;padding:12px;border:1px solid rgba(226,232,240,.92);border-radius:8px;background:#f9fafb}.settings-media-section>header{display:flex;align-items:center;gap:10px}.settings-media-section>header span:last-child{min-width:0;display:grid;gap:2px}.settings-media-section>header strong{color:#0f172a;font-size:13px}.settings-media-section>header small{min-width:0;overflow:hidden;color:#64748b;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.settings-media-section__icon{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;color:#0f172a;background:#e2e8f0}.setting-row{min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,160px);align-items:center;gap:16px;padding:3px 0;border:0;border-radius:0;background:transparent}.setting-row span{min-width:0;display:grid;gap:1px}.setting-row__select-wrap{min-width:0;display:flex;align-items:center;gap:7px}.setting-row__select-wrap .aspect-select__swatch{flex:0 0 auto}.setting-row strong{color:#111827;font-size:13px;font-weight:500;line-height:1.25}.setting-row small{color:#9ca3af;font-size:11px;line-height:1.25}.setting-row select,.setting-row input[type=text],.setting-row input[type=number]{width:100%;min-width:0;height:30px;border:1px solid rgba(229,231,235,.98);border-radius:6px;padding:0 10px;color:#111827;background:#fff;font-size:13px;font-weight:500;outline:none}.setting-row select:focus,.setting-row input[type=text]:focus,.setting-row input[type=number]:focus{border-color:#9ca3af}.setting-row input[type=number]{width:96px;justify-self:end;text-align:right}.setting-row input[type=text]{width:256px;max-width:100%;justify-self:end}.setting-row--toggle{grid-template-columns:minmax(0,1fr) 36px}.setting-row input[type=checkbox]{position:relative;width:36px;height:20px;justify-self:end;border:0;border-radius:999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#e5e7eb;cursor:pointer;outline:none;transition:background .14s ease}.setting-row input[type=checkbox]:after{position:absolute;top:2px;left:2px;width:16px;height:16px;border:1px solid rgba(209,213,219,.95);border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a29;content:"";transition:transform .14s ease}.setting-row input[type=checkbox]:checked{background:#3b82f6}.setting-row input[type=checkbox]:checked:after{transform:translate(16px);border-color:#fff}.setting-row input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px #3b82f62e}.settings-radio-group{display:grid;grid-template-columns:1fr;gap:2px}.settings-radio-group label{min-height:26px;display:flex;align-items:center;gap:8px;padding:2px 0;border:0;border-radius:0;background:transparent;cursor:pointer}.settings-radio-group label.is-selected{color:#111827;background:transparent}.settings-radio-group input{width:16px;height:16px;accent-color:#111827}.settings-radio-group span{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.settings-radio-group strong{color:#374151;font-size:13px;font-weight:500}.settings-radio-group small,.settings-note,.settings-about span,.settings-about small{color:#64748b;font-size:12px;line-height:1.45}.settings-note{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid rgba(226,232,240,.92);border-radius:8px;background:#f8fafc}.settings-note svg{flex:0 0 auto;color:#94a3b8}.settings-provider-card{display:grid;gap:14px;padding:12px;border:1px solid rgba(229,231,235,.98);border-radius:8px;background:#f9fafb}.settings-provider-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.settings-provider-card header div,.settings-provider-card__section{min-width:0;display:grid;gap:7px}.settings-provider-card strong{color:#374151;font-size:13px;font-weight:500}.settings-provider-card span,.settings-provider-card p,.settings-provider-card li{margin:0;color:#475569;font-size:12px;line-height:1.45}.settings-provider-card ol{margin:0;padding-left:18px}.settings-provider-card code{padding:1px 5px;border-radius:5px;background:#e2e8f0eb;color:#0f172a;font-size:11px}.settings-provider-card__notice,.settings-provider-card__note{padding:9px 10px;border:1px solid rgba(251,191,36,.42);border-radius:7px;background:#fffbeb;color:#92400e;font-size:12px;line-height:1.45}.settings-provider-card__command-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-provider-card__command-head button{min-height:30px;padding:0 10px;border:1px solid rgba(203,213,225,.95);border-radius:7px;background:#fff;color:#334155;font-size:12px;font-weight:700;cursor:pointer}.settings-provider-card__command-head button:hover{border-color:#2563eb59;color:#1d4ed8}.settings-provider-card__command{width:100%;min-height:86px;resize:vertical;padding:9px 10px;border:1px solid rgba(203,213,225,.92);border-radius:7px;background:#fff;color:#0f172a;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.5}.settings-provider-card__section--image{padding-top:10px;border-top:1px solid rgba(226,232,240,.9)}.settings-about{min-height:300px;display:grid;place-items:center;align-content:center;gap:10px;text-align:center}.settings-about svg{width:56px;height:56px;padding:14px;border-radius:12px;color:#fff;background:#111827}.settings-about strong{color:#0f172a;font-size:18px}.prompt-debug-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:270;display:flex;align-items:flex-start;justify-content:flex-end;padding:74px 24px 24px 74px;background:#0f172a0f}.prompt-debug-dialog{width:min(680px,calc(100vw - 104px));max-height:min(720px,calc(100vh - 104px));display:grid;grid-template-rows:58px minmax(0,1fr);overflow:hidden;border:1px solid rgba(203,213,225,.92);border-radius:12px;color:#0f172a;background:#fffffffa;box-shadow:0 28px 80px #0f172a3d}.prompt-debug-header,.prompt-debug-header>div,.prompt-debug-header__actions,.prompt-debug-tabs,.prompt-debug-section-title,.prompt-debug-actions{display:flex;align-items:center}.prompt-debug-header{justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid rgba(226,232,240,.9);background:#f8fafcd1}.prompt-debug-header>div:first-child{min-width:0;gap:8px;color:#0f172a;font-weight:900}.prompt-debug-header>div:first-child svg{color:#d97706}.prompt-debug-header__actions{flex-wrap:wrap;justify-content:flex-end;gap:6px}.prompt-debug-header__actions button,.prompt-debug-actions button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 9px;border-radius:8px;color:#475569;background:#f1f5f9;cursor:pointer;font-size:12px;font-weight:820}.prompt-debug-header__actions button:hover,.prompt-debug-actions button:hover{color:#0f172a;background:#e2e8f0}.prompt-debug-content{min-height:0;display:grid;grid-template-rows:44px minmax(0,1fr)}.prompt-debug-tabs{gap:6px;overflow-x:auto;padding:8px 12px;border-bottom:1px solid rgba(226,232,240,.9);scrollbar-width:none}.prompt-debug-tabs::-webkit-scrollbar{display:none}.prompt-debug-tabs button{min-height:28px;display:inline-flex;align-items:center;flex:0 0 auto;gap:6px;padding:0 9px;border-radius:999px;color:#64748b;background:#f1f5f9;cursor:pointer;font-size:12px;font-weight:820}.prompt-debug-tabs button.is-active{color:#fff;background:#0f172a}.prompt-debug-main{min-height:0;overflow:auto;padding:14px}.prompt-debug-section-title{gap:8px;margin-bottom:12px}.prompt-debug-section-title strong{color:#0f172a;font-size:14px}.prompt-debug-section-title span{margin-left:auto;color:#64748b;font-size:12px;font-weight:740}.prompt-debug-metric-grid,.prompt-debug-dev-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.prompt-debug-metric-grid--small{grid-template-columns:repeat(3,minmax(0,1fr))}.prompt-debug-card,.prompt-debug-toggle,.prompt-debug-readout,.prompt-debug-dev-grid button,.prompt-debug-point-quote,.prompt-debug-note{border:1px solid rgba(226,232,240,.9);border-radius:9px;background:#fff}.prompt-debug-card{display:grid;gap:5px;min-height:92px;padding:12px}.prompt-debug-card span,.prompt-debug-card small,.prompt-debug-toggle small,.prompt-debug-readout span,.prompt-debug-point-quote span,.prompt-debug-point-quote small,.prompt-debug-note,.prompt-debug-dev-grid small{color:#64748b;font-size:12px;line-height:1.42}.prompt-debug-card strong{overflow:hidden;color:#0f172a;font-size:22px;font-weight:900;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.prompt-debug-point-quote{display:grid;grid-template-columns:minmax(0,.7fr) minmax(96px,auto) minmax(0,1fr);align-items:center;gap:10px;padding:12px;background:#f8fafc}.prompt-debug-point-quote strong{color:#0f172a;font-size:16px;font-weight:900;text-align:center}.prompt-debug-point-quote small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prompt-debug-stack{display:grid;gap:10px}.prompt-debug-actions{flex-wrap:wrap;gap:8px}.prompt-debug-toggle,.prompt-debug-readout{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:12px;min-height:68px;padding:10px 12px}.prompt-debug-toggle span,.prompt-debug-readout{min-width:0}.prompt-debug-toggle strong,.prompt-debug-readout strong,.prompt-debug-dev-grid strong{color:#0f172a;font-size:13px}.prompt-debug-toggle input{width:42px;height:22px;justify-self:end;accent-color:#0f172a}.prompt-debug-readout{grid-template-columns:minmax(112px,.35fr) minmax(0,1fr)}.prompt-debug-readout strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prompt-debug-stack textarea{width:100%;min-height:300px;resize:vertical;border:1px solid rgba(203,213,225,.9);border-radius:9px;padding:12px;color:#1e293b;background:#f8fafc;font-family:Consolas,Monaco,Andale Mono,monospace;font-size:12px;line-height:1.55;outline:none}.prompt-debug-note{padding:12px;background:#fff7ed;border-color:#fed7aae6}.prompt-debug-dev-grid button{min-height:96px;display:flex;align-items:flex-start;gap:10px;padding:12px;color:#334155;text-align:left;cursor:pointer}.prompt-debug-dev-grid button:hover{border-color:#2563eb57;background:#eff6ff}.prompt-debug-dev-grid svg{flex:0 0 auto;color:#2563eb}.prompt-debug-dev-grid span{min-width:0;display:grid;gap:4px}.global-input-shell{position:fixed;left:calc(50% + 28px);bottom:28px;z-index:160;width:min(700px,calc(100vw - 160px));min-height:96px;display:grid;grid-template-rows:minmax(34px,auto) 42px;gap:4px;padding:12px;border-radius:22px;transform:translate(-50%);pointer-events:none}.global-input-shell textarea{width:100%;min-height:34px;max-height:88px;resize:none;border:0;outline:none;color:#334155;background:transparent;font-size:16px;line-height:1.5;pointer-events:auto}.global-input-shell textarea::placeholder{color:#94a3b8}.input-controls{display:flex;align-items:center;gap:8px;width:100%;min-width:0;scrollbar-width:none;pointer-events:auto}.input-controls::-webkit-scrollbar{display:none}.input-controls button{min-width:42px;height:34px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;border-radius:999px;color:#64748b;background:#e2e8f0ad;cursor:pointer;font-size:12px;font-weight:850;white-space:nowrap}.input-controls .input-settings-button{width:36px;min-width:36px;padding:0;color:#2563eb;background:#eff6ff}.input-controls button.is-active{color:#fff;background:#020617}.input-controls button:disabled{cursor:default;opacity:.46}.input-controls .select-button{min-width:164px;justify-content:space-between;border:1px solid #dbe4ef;border-radius:10px;color:#334155;background:#fff}.input-controls__spacer{flex:1 1 auto;min-width:0}.catalog-pill{position:relative;min-width:0;flex:0 0 auto;pointer-events:auto}.catalog-pill--model{flex:1 1 292px;min-width:0;max-width:430px}.catalog-pill--effort,.catalog-pill--aspect{width:126px}.input-controls .catalog-pill__button{width:100%;min-width:0;height:34px;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:0 8px 0 11px;border:1px solid #dbe4ef;border-radius:10px;color:#334155;background:#fff;box-shadow:none;cursor:pointer;font-size:12px;font-weight:850;white-space:nowrap}.input-controls .catalog-pill__button:hover,.input-controls .catalog-pill[data-open=true] .catalog-pill__button{border-color:#94a3b8;background:#fff;box-shadow:none}.input-controls .catalog-pill__button:disabled{cursor:default;opacity:.55}.catalog-pill__content{min-width:0;flex:1 1 auto;display:flex;align-items:center;gap:6px;overflow:hidden;text-align:left}.catalog-pill__provider{flex:0 1 auto;max-width:84px;padding:0;color:#1d4ed8;background:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:900;letter-spacing:0}.catalog-pill__label{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-pill__trailing,.catalog-pill__option-trailing{flex:0 0 auto;color:#64748b;font-size:11px;font-weight:900}.catalog-pill__chevron{flex:0 0 auto;width:18px;height:22px;display:inline-grid;place-items:center;border:0;color:#64748b;background:transparent;transition:transform .16s ease}.catalog-pill[data-open=true] .catalog-pill__chevron{transform:rotate(180deg)}.catalog-pill__menu{position:absolute;left:0;bottom:calc(100% + 8px);z-index:240;width:100%;min-width:100%;padding:8px;border:1px solid rgba(226,232,240,.96);border-radius:18px;background:#fff;box-shadow:0 24px 54px #0f172a29,0 8px 18px #0f172a0f}.catalog-pill__menu--model{width:min(36rem,calc(100vw - 2rem))}.catalog-pill__scroll{max-height:374px;overflow-y:auto;padding-right:4px;scrollbar-width:thin}.catalog-pill__group{display:flex;align-items:center;gap:8px;margin:0 6px 6px}.catalog-pill__group--separated{margin-top:10px}.catalog-pill__group span{flex:0 0 auto;padding:0;color:#64748b;background:transparent;font-size:10px;font-weight:900;letter-spacing:0;text-transform:uppercase}.catalog-pill__group i{flex:1 1 auto;height:1px;background:#e2e8f0}.input-controls .catalog-pill__option{width:100%;min-width:0;height:auto;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid transparent;border-radius:10px;color:#334155;background:#fff;text-align:left;font-size:13px;font-weight:800;white-space:normal}.input-controls .catalog-pill__option:hover{border-color:#e2e8f0;background:#fff}.input-controls .catalog-pill__option.is-selected{color:#0f172a;border-color:#bfdbfe;background:#fff;box-shadow:none}.catalog-pill__option-main{min-width:0;flex:1 1 auto;display:grid;gap:4px}.catalog-pill__option-title{min-width:0;display:flex;align-items:center;gap:7px}.catalog-pill__option-title span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-pill__option-detail{min-width:0;display:flex;align-items:center;gap:5px;color:#64748b;font-size:11px;font-weight:700}.catalog-pill__option-detail>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-pill__option-detail em{flex:0 0 auto;padding:1px 5px;border-radius:999px;border:1px solid #dbeafe;color:#1d4ed8;background:#fff;font-style:normal;font-size:10px;font-weight:900}.catalog-pill__aspect{flex:0 0 auto;width:28px;display:inline-flex;align-items:center;justify-content:center}.catalog-pill__aspect span{display:inline-block;border:1px solid rgba(71,85,105,.78);border-radius:4px;background:#fff;box-shadow:none}.input-select-wrap{min-width:152px;max-width:214px;height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 10px 0 11px;border:1px solid #dbe4ef;border-radius:10px;color:#334155;background:#fff;overflow:hidden}.input-select-wrap select{min-width:0;flex:1;border:0;outline:none;color:inherit;background:transparent;font:inherit;font-size:12px;font-weight:850;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.input-select-wrap svg{flex:0 0 auto;color:#94a3b8;pointer-events:none}.input-select-provider{flex:0 0 auto;max-width:76px;padding:0;color:#1d4ed8;background:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:900;letter-spacing:0}.input-select-wrap--aspect{min-width:104px;max-width:132px}.aspect-select__swatch{flex:0 0 auto;width:20px;height:16px;display:inline-block;border:1px solid #60a5fa;border-radius:4px;background:#fff}.aspect-swatch--square{width:16px;height:16px}.aspect-swatch--wide{width:21px;height:16px}.aspect-swatch--portrait{width:14px;height:18px}.aspect-swatch--cinema{width:24px;height:14px}.aspect-swatch--vertical{width:12px;height:20px}.aspect-swatch--auto{width:18px;height:18px;border-style:dashed}.input-controls .send-button{width:38px;min-width:38px;padding:0;color:#fff;background:#6b7280}.input-controls .send-button:disabled{color:#64748b;background:#e2e8f0}.global-submit-count{min-width:28px;height:24px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid rgba(59,130,246,.18);color:#1d4ed8;background:#eff6ff;font-size:11px;font-weight:800}.global-input-shell[data-submit-state=idle] .global-submit-count{display:none}.canvas-view-control-stack{position:fixed;left:72px;bottom:338px;z-index:156;display:grid;gap:8px;pointer-events:none}.canvas-view-panel,.canvas-bookmark-strip{pointer-events:auto;display:flex;align-items:center;gap:5px;width:max-content;max-width:min(520px,calc(100vw - 144px));padding:6px;border-radius:9px}.canvas-bookmark-strip{overflow-x:auto;scrollbar-width:none}.canvas-bookmark-strip::-webkit-scrollbar{display:none}.canvas-view-panel button,.canvas-bookmark-strip button{width:31px;height:29px;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;border-radius:7px;color:#64748b;background:transparent;cursor:pointer}.canvas-view-panel button:hover,.canvas-bookmark-strip button:hover{color:#0f172a;background:#e2e8f0c7}.canvas-view-panel button.is-active,.canvas-bookmark-strip button.is-saved{color:#1d4ed8;background:#eff6ff}.canvas-bookmark-slot span{font-size:12px;font-weight:880;line-height:1}.canvas-bookmark-slot:not(.is-saved) span{opacity:.58}.canvas-view-panel__separator{width:1px;height:22px;margin-inline:2px;background:#cbd5e1cc}.bottom-controls{position:fixed;right:20px;bottom:22px;z-index:170;display:flex;gap:10px}.bottom-controls button{width:46px;height:46px;border-radius:12px}.bottom-controls button.is-active{color:#1d4ed8;background:#eff6ff}.canvas-minimap{position:fixed;right:20px;bottom:86px;z-index:155;width:208px;display:grid;gap:7px;padding:9px;border-radius:10px;pointer-events:auto}.canvas-minimap__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.canvas-minimap__head span{color:#334155;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.canvas-minimap__head small{color:#64748b;font-size:11px;font-weight:780}.canvas-minimap__stage{position:relative;width:188px;height:126px;overflow:hidden;border:1px solid rgba(148,163,184,.28);border-radius:7px;background:linear-gradient(rgba(148,163,184,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.14) 1px,transparent 1px),#f8fafceb;background-size:20px 20px;cursor:crosshair}.canvas-minimap__node,.canvas-minimap__viewport{position:absolute;border-radius:2px;pointer-events:none}.canvas-minimap__node{min-width:2px;min-height:2px;background:#2563eb7a}.canvas-minimap__node--ai-task{background:#f9731694}.canvas-minimap__node--image,.canvas-minimap__node--video{background:#0f766e8a}.canvas-minimap__node--pdf,.canvas-minimap__node--file,.canvas-minimap__node--directory{background:#64748b8a}.canvas-minimap__node.is-selected{box-shadow:0 0 0 2px #0f172aa3}.canvas-minimap__viewport{border:2px solid rgba(15,23,42,.64);background:#ffffff2e;box-shadow:0 0 0 999px #0f172a0d}.canvas-status{position:fixed;left:72px;bottom:12px;z-index:150;color:#475569cc;font-size:11px;font-weight:780;pointer-events:none}@media(max-width:1440px)and (min-width:961px){.search-panel{top:48px}}@media(max-width:960px){.company-focus-backdrop{padding:12px}.company-focus-head{grid-template-columns:38px minmax(0,1fr)}.company-focus-head__actions{grid-column:1 / -1;justify-content:flex-start}.company-focus-main{grid-template-columns:1fr}.company-focus-side{border-left:0;border-top:1px solid rgba(226,232,240,.95)}.company-focus-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.company-focus-lanes{grid-template-columns:repeat(4,minmax(220px,1fr))}.canvas-toolbar{left:64px;right:14px;transform:none;overflow-x:auto;justify-content:flex-start}.search-panel{top:104px;left:68px;right:14px;width:auto}.local-board-panel{top:160px;max-height:min(460px,calc(100vh - 184px))}.project-gallery-shell{top:44px;right:14px;bottom:14px;left:68px;padding-bottom:72px}.project-gallery-positioner{max-width:none;transform:translateY(2vh)}.project-gallery-panel{top:auto;width:100%;max-width:none;height:min(680px,calc(100vh - 96px));max-height:none}.project-gallery-body{grid-template-columns:1fr}.project-gallery-folder-rail{grid-template-columns:minmax(0,1fr) minmax(180px,.8fr)}.project-gallery-startup-toggle,.project-gallery-rail-card{align-self:stretch}.template-launcher-backdrop{align-items:center;padding:18px 14px 18px 68px}.pdf-viewer-backdrop,.directory-settings-backdrop{padding:18px 14px 18px 68px}.directory-settings-dialog{width:100%;max-height:min(440px,calc(100vh - 36px))}.pdf-viewer-dialog{width:100%;height:min(760px,calc(100vh - 36px))}.template-launcher-panel{width:100%;max-height:calc(100vh - 36px)}.global-input-shell{left:68px;right:14px;width:auto;transform:none}.runtime-status-cluster{left:68px;bottom:150px;width:min(410px,calc(100vw - 142px))}.canvas-view-control-stack{left:68px;bottom:314px}.canvas-view-panel,.canvas-bookmark-strip{max-width:min(440px,calc(100vw - 150px))}.ai-settings-backdrop{align-items:center;padding:18px 14px 18px 68px}.ai-settings-dialog{width:100%;height:min(720px,calc(100vh - 36px));max-height:calc(100vh - 36px);grid-template-columns:136px minmax(0,1fr)}.prompt-debug-backdrop{align-items:flex-start;justify-content:center;padding:18px 14px 18px 68px}.prompt-debug-dialog{width:100%;max-height:calc(100vh - 36px)}.prompt-debug-metric-grid,.prompt-debug-dev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid,.settings-radio-group{grid-template-columns:1fr}.input-controls{overflow-x:auto}.bottom-controls{right:14px;bottom:142px;flex-direction:column}.canvas-minimap{right:70px;bottom:142px}}@media(max-width:640px){.top-tabbar{left:48px}.company-focus-backdrop{padding:8px}.company-focus-dialog{border-radius:10px}.company-focus-head{gap:9px;padding:10px}.company-focus-head__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.company-focus-head__actions>span,.company-focus-head__actions button{width:100%}.company-focus-main>main,.company-focus-side{padding:10px}.company-focus-metrics{grid-template-columns:1fr}.company-focus-lanes{grid-template-columns:repeat(4,minmax(200px,1fr))}.local-board-backdrop{left:48px}.local-board-panel{left:68px;right:70px;width:auto;max-height:330px;overflow:auto}.project-gallery-shell{top:48px;right:10px;bottom:10px;left:58px;padding-bottom:54px}.project-gallery-panel{left:auto;right:auto;width:100%;max-width:none;height:min(620px,calc(100vh - 82px));max-height:none;overflow:hidden}.local-board-panel.project-gallery-panel{left:auto;right:auto;width:100%;max-width:none;max-height:none;overflow:hidden}.project-gallery-panel__head{align-items:flex-start}.project-gallery-title p{display:none}.project-gallery-folder-rail,.project-gallery-board-grid,.project-gallery-bridge-list{grid-template-columns:1fr}.global-input-shell{min-height:118px;bottom:12px}.runtime-status-cluster{left:58px;bottom:148px;width:min(360px,calc(100vw - 122px))}.canvas-view-control-stack{top:214px;right:14px;bottom:auto;left:58px}.canvas-view-panel,.canvas-bookmark-strip{max-width:calc(100vw - 72px)}.runtime-status-pill{max-width:100%;min-height:32px;font-size:11px}.runtime-local-warning{grid-template-columns:28px minmax(0,1fr) 28px;min-height:52px}.canvas-minimap{top:160px;right:14px;bottom:auto}.template-launcher-backdrop,.pdf-viewer-backdrop,.directory-settings-backdrop{padding-left:54px}.directory-settings-dialog{width:calc(100vw - 68px)}.directory-settings-head,.directory-settings-body,.directory-settings-footer{padding-inline:12px}.pdf-viewer-dialog{width:calc(100vw - 68px)}.template-launcher-panel{width:calc(100vw - 68px);grid-template-rows:auto auto auto auto minmax(0,auto) auto}.template-launcher-head,.template-launcher-footer{padding-inline:12px}.template-launcher-chips,.template-launcher-field{grid-template-columns:1fr}.template-launcher-secondary,.template-launcher-primary{flex:1}.ai-settings-backdrop,.prompt-debug-backdrop{padding-left:54px}.prompt-debug-dialog{grid-template-rows:auto minmax(0,1fr)}.prompt-debug-header,.prompt-debug-header__actions{align-items:stretch}.prompt-debug-header{flex-direction:column;padding-block:10px}.prompt-debug-header__actions button{flex:1 1 auto}.prompt-debug-metric-grid,.prompt-debug-metric-grid--small,.prompt-debug-dev-grid,.prompt-debug-readout,.prompt-debug-toggle{grid-template-columns:1fr}.ai-settings-dialog{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.ai-settings-tabs{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid rgba(226,232,240,.92);padding:0}.ai-settings-tabs button{flex:0 0 auto;min-height:42px;border-left:0;border-bottom:2px solid transparent}.ai-settings-tabs button.is-active{border-bottom-color:#0f172a}.ai-settings-head,.ai-settings-footer{padding-inline:12px}.setting-row{grid-template-columns:1fr;gap:8px}}@media(max-width:480px){.runtime-status-cluster{width:calc(100vw - 136px)}.runtime-local-warning__copy span{display:none}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.planmaster-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.planmaster-hero h1{margin:12px 0 0;max-width:900px;font-size:clamp(34px,5vw,60px);line-height:1;letter-spacing:0}.planmaster-hero p{max-width:820px;margin:16px 0 0;color:#334155;font-size:17px;line-height:1.7}.planmaster-hero-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.planmaster-layout{display:grid;grid-template-columns:310px minmax(0,1fr) 330px;gap:16px;margin-top:26px;align-items:start}.planmaster-control-panel,.planmaster-board,.planmaster-bridge-panel,.planmaster-tool-panel,.planmaster-memory-panel{border:1px solid rgba(203,213,225,.76);border-radius:10px;background:#ffffffeb;box-shadow:var(--soft-shadow)}.planmaster-control-panel,.planmaster-board,.planmaster-bridge-panel,.planmaster-tool-panel,.planmaster-memory-panel{padding:14px}.planmaster-panel-head{display:flex;align-items:center;gap:8px;min-height:32px;color:#0f172a}.planmaster-panel-head button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto;border-radius:8px;color:#64748b;background:#f8fafc;cursor:pointer}.planmaster-field{display:grid;gap:7px;margin-top:14px;color:#334155;font-size:13px;font-weight:800}.planmaster-field textarea,.planmaster-field input,.planmaster-memory-search input{width:100%;border:1px solid rgba(203,213,225,.92);border-radius:8px;color:#1e293b;background:#fff}.planmaster-field textarea{min-height:122px;padding:12px;resize:vertical}.planmaster-field input{min-height:40px;padding:0 10px}.planmaster-field--compact{max-width:150px}.planmaster-check{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;margin-top:12px;color:#475569;font-size:13px;line-height:1.45}.planmaster-check input{margin-top:2px}.planmaster-command-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.planmaster-command-grid .btn{min-height:40px;padding:0 12px}.planmaster-agent-status{min-height:42px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:14px;padding:0 12px;border-radius:9px;color:#475569;background:#f1f5f9;font-size:13px}.planmaster-agent-status.is-running{color:#0f766e;background:#ecfdf5}.planmaster-board-head{display:flex;justify-content:space-between;gap:18px}.planmaster-board-head h2{margin:4px 0 0;color:#0f172a;font-size:24px;line-height:1.2}.planmaster-progress{min-width:96px;align-self:start;padding:10px;border-radius:9px;color:#0f766e;background:#ecfdf5;text-align:right}.planmaster-progress strong,.planmaster-progress span{display:block}.planmaster-progress strong{font-size:26px;line-height:1}.planmaster-progress span{margin-top:4px;font-size:12px;font-weight:800}.planmaster-metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.planmaster-metric{display:grid;grid-template-columns:20px minmax(0,1fr);gap:4px 8px;align-items:center;min-height:62px;padding:10px;border:1px solid rgba(203,213,225,.72);border-radius:9px;background:#f8fafc}.planmaster-metric span{color:#64748b;font-size:12px;font-weight:800}.planmaster-metric strong{grid-column:1 / -1;color:#0f172a;font-size:18px}.planmaster-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.planmaster-lane{min-width:0;display:grid;align-content:start;gap:10px;padding:10px;border:1px solid rgba(203,213,225,.76);border-radius:9px;background:#f8fafc}.planmaster-lane-head{display:flex;justify-content:space-between;color:#0f172a;font-size:13px}.planmaster-lane-head span{color:#64748b}.plan-step-card{display:grid;gap:8px;padding:10px;border:1px solid rgba(203,213,225,.82);border-radius:8px;background:#fff}.plan-step-card--running{border-color:#2563eb5c;background:#eff6ff}.plan-step-card--done{border-color:#0f766e47;background:#f0fdfa}.plan-step-card--blocked{border-color:#ef444452;background:#fef2f2}.plan-step-card--failed{border-color:#dc26265c;background:#fff1f2}.plan-step-top,.plan-step-footer,.plan-step-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.plan-step-top>span,.plan-step-footer{color:#64748b;font-size:11px;font-weight:800}.plan-step-card h3{margin:0;color:#0f172a;font-size:15px;line-height:1.3}.plan-step-card p,.plan-step-note{margin:0;color:#475569;font-size:12px;line-height:1.5}.plan-step-note{padding:8px;border-radius:8px;background:#ffffffb8}.plan-step-actions{justify-content:flex-start}.plan-step-actions button{min-height:28px;padding:0 8px;border-radius:7px;color:#334155;background:#f1f5f9;cursor:pointer;font-size:12px;font-weight:800}.plan-status-pill{min-height:24px;display:inline-flex;align-items:center;gap:5px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:850}.plan-status-pill--pending{color:#475569;background:#e2e8f0}.plan-status-pill--running{color:#1d4ed8;background:#dbeafe}.plan-status-pill--done{color:#0f766e;background:#ccfbf1}.plan-status-pill--blocked{color:#b91c1c;background:#fee2e2}.plan-status-pill--failed{color:#9f1239;background:#ffe4e6}.planmaster-side{display:grid;gap:14px}.planmaster-tool-panel p{margin:8px 0 0;color:#64748b;font-size:12px;line-height:1.45}.planmaster-tool-grid{display:grid;gap:8px;margin-top:12px}.planmaster-tool-grid button,.planmaster-tool-form input,.planmaster-tool-form select,.planmaster-tool-note textarea{width:100%;border:1px solid rgba(203,213,225,.92);border-radius:8px;color:#1e293b;background:#fff}.planmaster-tool-grid button{min-height:34px;padding:0 9px;cursor:pointer;overflow-wrap:anywhere;font-size:12px;font-weight:850;text-align:left}.planmaster-tool-grid button:hover{color:#1d4ed8;border-color:#2563eb57;background:#eff6ff}.planmaster-tool-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:12px}.planmaster-tool-form label,.planmaster-tool-note{display:grid;gap:6px;color:#475569;font-size:11px;font-weight:850}.planmaster-tool-form input,.planmaster-tool-form select{min-height:34px;padding:0 9px;font:inherit}.planmaster-tool-note{margin-top:10px}.planmaster-tool-note textarea{min-height:72px;padding:9px;resize:vertical;font:inherit}.planmaster-tool-output{max-height:210px;margin:12px 0 0;padding:10px;overflow:auto;border:1px solid rgba(203,213,225,.82);border-radius:8px;color:#334155;background:#f8fafc;font-size:11px;line-height:1.45;white-space:pre-wrap}.planmaster-bridge-status{min-height:34px;display:flex;align-items:center;gap:8px;margin-top:10px;padding:0 10px;border-radius:8px;color:#475569;background:#f1f5f9;font-size:12px;font-weight:800}.planmaster-feed-list,.planmaster-memory-list{display:grid;gap:8px;margin-top:10px}.planmaster-feed-item,.execution-memory-item{display:grid;gap:6px;padding:10px;border:1px solid rgba(203,213,225,.78);border-radius:8px;background:#fff}.planmaster-feed-item div,.execution-memory-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.planmaster-feed-item strong,.execution-memory-item-top span{color:#1d4ed8;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.planmaster-feed-item span,.execution-memory-item-top time{color:#64748b;font-size:11px}.planmaster-feed-item p,.execution-memory-item p{margin:0;color:#334155;font-size:12px;line-height:1.45}.planmaster-memory-filters{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.planmaster-memory-filters button{min-height:28px;padding:0 9px;border:1px solid rgba(203,213,225,.78);border-radius:999px;color:#475569;background:#fff;cursor:pointer;font-size:11px;font-weight:800;text-transform:capitalize}.planmaster-memory-filters button.is-selected{color:#fff;background:#0f172a;border-color:#0f172a}.planmaster-memory-search{min-height:38px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;margin-top:10px;padding:0 10px;border:1px solid rgba(203,213,225,.92);border-radius:8px;background:#fff}.planmaster-memory-search input{min-height:34px;padding:0;border:0}.execution-memory-item strong{color:#0f172a;font-size:13px}.execution-memory-item small{color:#64748b;font-size:11px}.execution-memory-item--blocker{border-color:#ef444452;background:#fef2f2}.execution-memory-item--next-action{border-color:#0f766e3d;background:#f0fdfa}.execution-memory-item--evidence,.execution-memory-item--decision{border-color:#2563eb3d;background:#eff6ff}.planmaster-empty-lane{padding:10px;border:1px dashed rgba(148,163,184,.62);border-radius:8px;color:#64748b;background:#ffffff9e;font-size:12px}@media(max-width:960px){.planmaster-layout,.planmaster-lanes{grid-template-columns:1fr}.planmaster-hero,.planmaster-board-head{align-items:stretch;flex-direction:column}.planmaster-metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.planmaster-hero-actions{justify-content:flex-start}}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r,j as e}from"./vendor-react-BXzpOyCS.js";import{l as Le,i as Re}from"./storage-CbuZ97zN.js";import{ag as ee,s as Y,ah as Te,c as q,ai as $e}from"./canvas-runtime-Bc1G-FZ_.js";import{R as j}from"./app-runtime-xD2Z3NdN.js";import{aH as Ee,E as te,g as ze,aJ as V,ad as se,aK as De,an as ae,aL as Ie,aM as Be,D as re,aN as Fe,aO as ne,R as Oe,c as Ue,F as Ge,T as _e,h as He,aA as Je,aP as Ke}from"./vendor-icons-DE3gIReG.js";import"./runtimeSettingsPersistenceProjection-BoNWmYjU.js";const ie="mindexec-react-planmaster-v1",le=["Planning","Product","Marketing","Monetization","Ops","Growth"],oe=["Pending","Running","Done","Blocked","Failed"],Ye=["Canvas.ListMindMapNodes","Plan.ListSteps","Plan.SetStepStatus","Plan.CreateNote"],qe=["Pending","Running","Done","Failed"],ce=["all","artifact","reflection","next_action","blocker","evidence","decision"],S="Launch MindExec React with a clear global USD path and one proof-producing user workflow.";function L(a){return typeof crypto<"u"&&"randomUUID"in crypto?`${a}-${crypto.randomUUID()}`:`${a}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function p(){return new Date().toISOString()}function I(){const a=p();return{goal:S,steps:de(S,0),notes:[{id:L("note"),kind:"reflection",agentName:"PlanMaster Local Planner",title:"Initial plan restored",body:"This React PlanMaster keeps the original planning habit alive without loading the Blazor PlanAgent surface.",metrics:"6 steps / local state",updatedAt:a}],updatedAt:a}}function Ve(){try{const a=window.localStorage.getItem(ie);if(!a)return I();const n=JSON.parse(a);return!Array.isArray(n.steps)||!Array.isArray(n.notes)?I():{goal:String(n.goal||S),steps:Xe(n.steps),notes:Qe(n.notes),updatedAt:String(n.updatedAt||p())}}catch{return I()}}function Xe(a){return a.map((n,o)=>{const i=n,R=le.includes(i.category)?i.category:"Planning",m=oe.includes(i.status)?i.status:"Pending",f=i.priority==="High"||i.priority==="Medium"||i.priority==="Low"?i.priority:"Medium";return{id:String(i.id||L("step")),stepNumber:Number(i.stepNumber||o+1),category:R,title:String(i.title||`Step ${o+1}`),detail:String(i.detail||""),status:m,note:i.note?String(i.note):void 0,priority:f,updatedAt:String(i.updatedAt||p())}}).sort((n,o)=>n.stepNumber-o.stepNumber)}function Qe(a){return a.map(n=>{const o=n,i=ce.includes(o.kind)?o.kind:"reflection";return{id:String(o.id||L("note")),kind:i,agentName:String(o.agentName||"PlanMaster Local Planner"),title:String(o.title||"Untitled note"),body:String(o.body||""),metrics:String(o.metrics||""),updatedAt:String(o.updatedAt||p())}}).sort((n,o)=>Date.parse(o.updatedAt)-Date.parse(n.updatedAt))}function We(a){window.localStorage.setItem(ie,JSON.stringify(a))}function Ze(a){const n=a.toLowerCase();return n.includes("talkagent")?"TalkAgent":n.includes("code")?"CodeGraph":n.includes("pricing")||n.includes("revenue")||n.includes("usd")?"USD offer":n.includes("tool")?"free-tool funnel":"MindExec"}function de(a,n){const o=Ze(a),i=p();return[{category:"Planning",title:"Define the success contract",detail:`Turn "${a.trim()||S}" into a measurable launch contract with proof, channel, risk, and finish criteria.`,priority:"High"},{category:"Product",title:`Ship the smallest useful ${o} workflow`,detail:"Keep the first workflow complete enough to prove value, but narrow enough to verify in one browser session.",priority:"High"},{category:"Marketing",title:"Publish one English-first proof asset",detail:"Create a short public artifact that shows before/after value and links directly to the working product surface.",priority:"High"},{category:"Monetization",title:"Connect the proof to a USD offer",detail:"Make the next paid step visible without blocking free utility value or local-first trust.",priority:"Medium"},{category:"Ops",title:"Verify runtime and rollback evidence",detail:"Run build, hosted route checks, console checks, and record the exact deployed bundle evidence.",priority:"Medium"},{category:"Growth",title:"Reuse the result as the next launch input",detail:"Capture learnings, customer language, and next actions back into MindCanvas or PlanMaster memory.",priority:"Low"}].map((m,f)=>({...m,id:L("step"),stepNumber:n+f+1,status:"Pending",updatedAt:i}))}function et(a,n,o){return["You are the MindExec PlanMaster local planner.",q(n),"Create categorized execution steps, concise evidence notes, and next actions.",o?"Use the current MindCanvas board context when it is available.":"Plan from the goal only; do not assume MindCanvas board context.","",`Goal: ${a.trim()||S}`].join(`
|
|
2
|
-
`)}function z(a,n,o,i=""){return{id:L("note"),kind:a,agentName:"PlanMaster Local Planner",title:n,body:o,metrics:i,updatedAt:p()}}function B(a){if(!a)return"-";const n=new Date(a);return Number.isNaN(n.getTime())?"-":n.toLocaleString(void 0,{month:"short",day:"2-digit",hour:"2-digit",minute:"2-digit"})}function tt(a){return a==="Running"?"next_action":a==="Done"?"evidence":a==="Blocked"||a==="Failed"?"blocker":"reflection"}function at(a){return a.timestamp||a.timestamp===""?a.timestamp:void 0}function pt({navigate:a}){const[n,o]=r.useState(()=>Ve()),[i,R]=r.useState(()=>ee()),[m,f]=r.useState(()=>n.goal),[v,ue]=r.useState(!0),[F,pe]=r.useState(!0),[b,me]=r.useState(!0),[y,k]=r.useState(!1),[O,T]=r.useState(0),[N,he]=r.useState(10),[U,ge]=r.useState(!0),[$,xe]=r.useState("all"),[G,be]=r.useState(""),[C,je]=r.useState(1),[M,fe]=r.useState("Running"),[E,ye]=r.useState("Local PlanMaster tool contract run."),[Ne,P]=r.useState("Run a PlanMaster tool to inspect the local contract output."),[X,_]=r.useState([]),[Se,H]=r.useState(()=>Y()?"Not refreshed yet":"Access gated"),[Q,W]=r.useState(!1),J=r.useRef(),w=r.useMemo(()=>Te(i),[i]);r.useEffect(()=>{const t=()=>R(ee());return window.addEventListener("storage",t),window.addEventListener("focus",t),()=>{window.removeEventListener("storage",t),window.removeEventListener("focus",t)}},[]),r.useEffect(()=>(window.clearTimeout(J.current),J.current=window.setTimeout(()=>We(n),250),()=>window.clearTimeout(J.current)),[n]);const h=r.useCallback(t=>{o(s=>({...t(s),updatedAt:p()}))},[]),A=r.useMemo(()=>{const t=new Map;for(const l of oe)t.set(l,0);for(const l of n.steps)t.set(l.status,(t.get(l.status)||0)+1);const s=t.get("Done")||0,c=n.steps.length||1;return{total:n.steps.length,done:s,running:t.get("Running")||0,blocked:t.get("Blocked")||0,progress:Math.round(s/c*100)}},[n.steps]),ve=r.useMemo(()=>le.map(t=>({category:t,steps:n.steps.filter(s=>s.category===t)})),[n.steps]),Z=r.useMemo(()=>{const t=G.trim().toLowerCase();return n.notes.filter(s=>$!=="all"&&s.kind!==$?!1:t?`${s.title} ${s.body} ${s.metrics} ${s.agentName}`.toLowerCase().includes(t):!0)},[$,G,n.notes]),K=r.useCallback(()=>{const t=m.trim()||S,s=et(t,i,v),c=q(i);h(l=>{const u=b?l.steps.length:0,d=de(t,u),x=z("decision",b?"Appended a new plan session":"Generated a fresh plan",[`Goal: ${t}`,c].join(`
|
|
3
|
-
`),[`${d.length} steps`,v?"MindCanvas context enabled":"Standalone plan",`Language ${w.label}`].join(" / "));return j.emit("planmaster.plan.generated",{append:b,stepCount:d.length,appLanguage:i,promptChars:s.length}),{goal:t,steps:b?[...l.steps,...d]:d,notes:[x,...b?l.notes:[]],updatedAt:p()}}),T(0),k(!1)},[i,w.label,m,b,h,v]),g=r.useCallback((t,s,c)=>{h(l=>{const u=l.steps.find(x=>x.id===t);if(!u)return l;const d=z(tt(s),`Step ${u.stepNumber} marked ${s}`,c||u.detail,`${u.category} / ${u.priority}`);return j.emit("planmaster.step.status",{stepNumber:u.stepNumber,status:s}),j.emit("planmaster.execution.note",{kind:d.kind,title:d.title}),{...l,steps:l.steps.map(x=>x.id===t?{...x,status:s,note:c||x.note,updatedAt:p()}:x),notes:[d,...l.notes]}})},[h]),ke=r.useCallback(t=>{const s=q(i);if(j.emit("planmaster.tool.run",{toolName:t,appLanguage:i}),t==="Canvas.ListMindMapNodes"){const l=Le(Re),u=l.nodes.slice(0,60).map(d=>({id:d.id,contentType:d.kind,prompt:d.title,response:String(d.result||d.body||"").slice(0,500),isAiEnabled:d.aiEnabled!==!1}));P(JSON.stringify({boardId:l.id,boardTitle:l.name,appLanguage:i,languageInstruction:s,count:u.length,nodes:u},null,2));return}if(t==="Plan.ListSteps"){P(JSON.stringify({appLanguage:i,languageInstruction:s,steps:n.steps.map(l=>({stepNumber:l.stepNumber,category:l.category,title:l.title,status:l.status,note:l.note||""}))},null,2));return}if(t==="Plan.SetStepStatus"){const l=n.steps.find(u=>u.stepNumber===C);if(!l){P(`Error: stepNumber ${C} was not found.`);return}g(l.id,M,E.trim()||`Plan.SetStepStatus -> ${M}`),P(`Updated step ${C} status to '${M}'.`);return}const c=z("artifact","Plan.CreateNote local artifact",[E.trim()||"Created by the local PlanMaster tool contract panel.",s].join(`
|
|
4
|
-
`),`Plan.CreateNote / local shell / Language ${w.label}`);h(l=>({...l,notes:[c,...l.notes]})),j.emit("planmaster.execution.note",{kind:c.kind,title:c.title,source:"Plan.CreateNote"}),P(`Created PlanMaster note node: ${c.id}`)},[i,w.label,g,n.steps,E,M,C,h]),Ce=r.useCallback(()=>{if(F&&n.steps.length===0){K();return}const t=n.steps.find(s=>s.status==="Pending")||n.steps.find(s=>s.status==="Blocked");t&&(k(!0),T(s=>Math.min(N,s+1)),g(t.id,"Running","Local PlanMaster run selected this as the next active step."))},[F,K,N,g,n.steps]),Me=r.useCallback(()=>{const t=n.steps.find(c=>c.status==="Running");t&&g(t.id,"Done","Completed in the local PlanMaster run.");const s=n.steps.find(c=>c.status==="Pending");s&&O<N?(T(c=>c+1),g(s.id,"Running","Advanced to the next local execution step.")):k(!1)},[O,N,g,n.steps]),Pe=r.useCallback(()=>{k(!1),h(t=>({...t,notes:[z("reflection","Stopped local PlanMaster run","The local execution loop was stopped by the user."),...t.notes]}))},[h]),we=r.useCallback(()=>{const t=I();o(t),f(t.goal),k(!1),T(0),j.emit("planmaster.plan.generated",{reset:!0,stepCount:t.steps.length})},[]),Ae=r.useCallback(async()=>{if(!Y()){H("Access gated"),_([]);return}W(!0);try{const s=((await $e()).items||[]).slice(-12).reverse();_(s),H(s.length>0?`Updated ${new Date().toLocaleTimeString()}`:"No change feed items yet"),j.emit("planmaster.bridgeFeed.refreshed",{count:s.length})}catch(t){H(t instanceof Error?t.message:String(t)),_([])}finally{W(!1)}},[]);return e.jsxs("div",{className:"page planmaster-page","data-testid":"planmaster-app-language","data-app-language":i,"data-app-language-label":w.label,children:[e.jsxs("section",{className:"planmaster-hero",children:[e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow",children:"PlanAgent / PlanMaster"}),e.jsx("h1",{children:"Turn a goal into an executable plan board."}),e.jsx("p",{children:"A React replacement for the original PlanMaster surface: goal intake, categorized steps, execution memory, and bridge feed visibility without loading the Blazor 3D agent canvas."})]}),e.jsxs("div",{className:"planmaster-hero-actions",children:[e.jsx("button",{className:"btn btn-secondary",type:"button",onClick:()=>a("/mindcanvas"),children:"Open MindCanvas"}),e.jsxs("button",{className:"btn btn-ghost",type:"button",onClick:we,children:[e.jsx(Ee,{size:16}),"Reset"]})]})]}),e.jsxs("section",{className:"planmaster-layout",children:[e.jsxs("aside",{className:"planmaster-control-panel",children:[e.jsxs("div",{className:"planmaster-panel-head",children:[e.jsx(te,{size:18}),e.jsx("strong",{children:"Agent control"})]}),e.jsxs("label",{className:"planmaster-field",children:[e.jsx("span",{children:"Goal"}),e.jsx("textarea",{"data-testid":"planmaster-goal-input",value:m,onChange:t=>f(t.target.value),placeholder:"Enter the agent goal..."})]}),e.jsxs("label",{className:"planmaster-check",children:[e.jsx("input",{type:"checkbox",checked:v,onChange:t=>ue(t.target.checked)}),e.jsx("span",{children:"Use current MindCanvas board as context"})]}),e.jsxs("label",{className:"planmaster-check",children:[e.jsx("input",{type:"checkbox",checked:F,disabled:!v,onChange:t=>pe(t.target.checked)}),e.jsx("span",{children:"Generate or update a plan before running"})]}),e.jsxs("label",{className:"planmaster-check",children:[e.jsx("input",{type:"checkbox",checked:b,onChange:t=>me(t.target.checked)}),e.jsx("span",{children:"Preserve canvas memory and append this run"})]}),e.jsxs("label",{className:"planmaster-field planmaster-field--compact",children:[e.jsx("span",{children:"Max iterations"}),e.jsx("input",{type:"number",min:1,max:30,value:N,onChange:t=>he(Math.max(1,Math.min(30,Number(t.target.value)||1)))})]}),e.jsxs("div",{className:"planmaster-command-grid",children:[e.jsxs("button",{className:"btn btn-primary",type:"button","data-testid":"planmaster-generate-plan",onClick:K,disabled:!m.trim(),children:[e.jsx(ze,{size:16}),"Generate plan"]}),e.jsxs("button",{className:"btn btn-secondary",type:"button",onClick:Ce,disabled:n.steps.length===0||y,children:[e.jsx(V,{size:16}),"Start"]}),e.jsxs("button",{className:"btn btn-secondary",type:"button",onClick:Me,disabled:!y,children:[e.jsx(se,{size:16}),"Advance"]}),e.jsxs("button",{className:"btn btn-ghost",type:"button",onClick:Pe,disabled:!y,children:[e.jsx(De,{size:16}),"Stop"]})]}),e.jsxs("div",{className:`planmaster-agent-status ${y?"is-running":""}`,children:[y?e.jsx(ae,{size:17,className:"spin-icon"}):e.jsx(Ie,{size:17}),e.jsx("span",{children:y?"Running local plan loop":"Idle"}),e.jsxs("b",{children:[O," / ",N]})]})]}),e.jsxs("main",{className:"planmaster-board",children:[e.jsxs("div",{className:"planmaster-board-head",children:[e.jsxs("div",{children:[e.jsx("span",{className:"card-label",children:"Plan canvas"}),e.jsx("h2",{"data-testid":"planmaster-board-goal",children:n.goal})]}),e.jsxs("div",{className:"planmaster-progress",children:[e.jsxs("strong",{children:[A.progress,"%"]}),e.jsxs("span",{children:[A.done," done"]})]})]}),e.jsxs("div",{className:"planmaster-metric-strip",children:[e.jsx(D,{icon:Be,label:"Steps",value:String(A.total)}),e.jsx(D,{icon:V,label:"Running",value:String(A.running)}),e.jsx(D,{icon:re,label:"Blocked",value:String(A.blocked)}),e.jsx(D,{icon:Fe,label:"Updated",value:B(n.updatedAt)})]}),e.jsx("div",{className:"planmaster-lanes",children:ve.map(t=>e.jsxs("section",{className:"planmaster-lane",children:[e.jsxs("div",{className:"planmaster-lane-head",children:[e.jsx("strong",{children:t.category}),e.jsx("span",{children:t.steps.length})]}),t.steps.length>0?t.steps.map(s=>e.jsx(nt,{step:s,onStatus:g},s.id)):e.jsx("div",{className:"planmaster-empty-lane",children:"No step yet"})]},t.category))})]}),e.jsxs("aside",{className:"planmaster-side",children:[e.jsxs("section",{className:"planmaster-tool-panel",children:[e.jsxs("div",{className:"planmaster-panel-head",children:[e.jsx(te,{size:18}),e.jsx("strong",{children:"Tool Contract"})]}),e.jsx("p",{children:"Original PlanMaster agent tools, simulated against local React state."}),e.jsx("div",{className:"planmaster-tool-grid",children:Ye.map(t=>e.jsx("button",{type:"button","data-tool-name":t,onClick:()=>ke(t),children:t},t))}),e.jsxs("div",{className:"planmaster-tool-form",children:[e.jsxs("label",{children:[e.jsx("span",{children:"stepNumber"}),e.jsx("input",{"data-testid":"planmaster-tool-step-number",type:"number",min:1,value:C,onChange:t=>je(Math.max(1,Number(t.target.value)||1))})]}),e.jsxs("label",{children:[e.jsx("span",{children:"status"}),e.jsx("select",{"data-testid":"planmaster-tool-status",value:M,onChange:t=>fe(t.target.value),children:qe.map(t=>e.jsx("option",{value:t,children:t},t))})]})]}),e.jsxs("label",{className:"planmaster-tool-note",children:[e.jsx("span",{children:"note/content"}),e.jsx("textarea",{"data-testid":"planmaster-tool-note",value:E,onChange:t=>ye(t.target.value)})]}),e.jsx("pre",{className:"planmaster-tool-output","data-testid":"planmaster-tool-output",children:Ne})]}),e.jsxs("section",{className:"planmaster-bridge-panel",children:[e.jsxs("div",{className:"planmaster-panel-head",children:[e.jsx(ne,{size:18}),e.jsx("strong",{children:"Bridge Feed"}),e.jsx("button",{type:"button",title:"Refresh bridge feed",onClick:Ae,disabled:Q,children:Q?e.jsx(ae,{size:15,className:"spin-icon"}):e.jsx(Oe,{size:15})})]}),e.jsxs("div",{className:"planmaster-bridge-status",children:[Y()?e.jsx(ne,{size:15}):e.jsx(Ue,{size:15}),Se]}),e.jsx("div",{className:"planmaster-feed-list",children:X.length>0?X.map((t,s)=>e.jsxs("article",{className:"planmaster-feed-item",children:[e.jsxs("div",{children:[e.jsx("strong",{children:t.changeType||"change"}),e.jsx("span",{children:B(at(t))})]}),e.jsx("p",{children:t.message||t.path||"(no details)"})]},`${t.timestamp||s}-${t.path||t.message||""}`)):e.jsx("div",{className:"planmaster-empty-lane",children:"No bridge feed items loaded."})})]}),e.jsxs("section",{className:`planmaster-memory-panel ${U?"":"is-collapsed"}`,children:[e.jsxs("div",{className:"planmaster-panel-head",children:[e.jsx(Ge,{size:18}),e.jsx("strong",{children:"Execution Memory"}),e.jsx("button",{type:"button",onClick:()=>ge(t=>!t),children:U?e.jsx(_e,{size:15}):e.jsx(He,{size:15})})]}),U&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"planmaster-memory-filters",children:ce.map(t=>e.jsx("button",{className:$===t?"is-selected":"",type:"button",onClick:()=>xe(t),children:t.replace("_"," ")},t))}),e.jsxs("label",{className:"planmaster-memory-search",children:[e.jsx(Je,{size:15}),e.jsx("input",{value:G,onChange:t=>be(t.target.value),placeholder:"Search memory notes..."})]}),e.jsx("div",{className:"planmaster-memory-list","data-testid":"planmaster-memory-list",children:Z.length>0?Z.map(t=>e.jsx(rt,{note:t},t.id)):e.jsx("div",{className:"planmaster-empty-lane",children:"No execution memory notes match the current filter."})})]})]})]})]})]})}function D({icon:a,label:n,value:o}){return e.jsxs("article",{className:"planmaster-metric",children:[e.jsx(a,{size:17}),e.jsx("span",{children:n}),e.jsx("strong",{children:o})]})}function nt({step:a,onStatus:n}){return e.jsxs("article",{className:`plan-step-card plan-step-card--${a.status.toLowerCase()}`,"data-testid":"planmaster-step-card","data-step-number":a.stepNumber,"data-step-status":a.status,children:[e.jsxs("div",{className:"plan-step-top",children:[e.jsxs("span",{children:["Step ",a.stepNumber]}),e.jsx(st,{status:a.status})]}),e.jsx("h3",{children:a.title}),e.jsx("p",{children:a.detail}),a.note&&e.jsx("div",{className:"plan-step-note",children:a.note}),e.jsxs("div",{className:"plan-step-footer",children:[e.jsx("span",{children:a.priority}),e.jsx("span",{children:B(a.updatedAt)})]}),e.jsxs("div",{className:"plan-step-actions",children:[e.jsx("button",{type:"button",onClick:()=>n(a.id,"Running"),children:"Run"}),e.jsx("button",{type:"button",onClick:()=>n(a.id,"Done"),children:"Done"}),e.jsx("button",{type:"button",onClick:()=>n(a.id,"Blocked"),children:"Block"}),e.jsx("button",{type:"button",onClick:()=>n(a.id,"Failed"),children:"Fail"})]})]})}function st({status:a}){const n=a==="Done"?se:a==="Blocked"||a==="Failed"?re:a==="Running"?V:Ke;return e.jsxs("span",{className:`plan-status-pill plan-status-pill--${a.toLowerCase()}`,children:[e.jsx(n,{size:13}),a]})}function rt({note:a}){return e.jsxs("article",{className:`execution-memory-item execution-memory-item--${a.kind.replace("_","-")}`,children:[e.jsxs("div",{className:"execution-memory-item-top",children:[e.jsx("span",{children:a.kind.replace("_"," ")}),e.jsx("time",{children:B(a.updatedAt)})]}),e.jsx("strong",{children:a.title}),a.metrics&&e.jsx("small",{children:a.metrics}),e.jsx("p",{children:a.body})]})}export{pt as PlanMasterPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as g,j as t}from"./vendor-react-BXzpOyCS.js";import{L as M}from"./LaunchLeadCapture-Bx9LM0IX.js";import{g as C,a as P}from"./index-qITXeJUr.js";import{p as E,P as N,r as _,c as x}from"./pricingCheckoutShell-O-DnwmbU.js";import{r as A}from"./productionAdapterConfig-C5jfk6oG.js";import{R as m}from"./app-runtime-xD2Z3NdN.js";import{getSupabaseBrowserClient as U}from"./supabaseAuthAdapter-4HB3Xzco.js";import{an as I,aQ as L,c as D,ad as $}from"./vendor-icons-DE3gIReG.js";import"./canvas-runtime-Bc1G-FZ_.js";function f(e){return typeof e=="string"&&e.trim()?e.trim():null}function B(e){const o=Number(e);return Number.isFinite(o)?Math.max(1,Math.round(o)):1}function T(e){const o=B(e.quantity);return{price_id:e.priceId,return_url:e.returnUrl,email:e.email,quantity:o,source:"mindexec-react",sale_kind:"first_party",entitlement_kind:e.planKey,package_kind:e.planKey==="ltd"?"ltd":"subscription",plan_key:e.planKey,plan_code:e.planCode,price_stage:e.priceStage,metadata:{source:"mindexec-react",price_stage:e.priceStage,plan_key:e.planKey,plan_code:e.planCode,checkout_surface:"pricing"}}}async function O(e,o){var s;const u=A(e);if(!u.checkout.canAttempt)throw m.emit("pricing.checkout.provider.skipped",{mode:u.checkout.mode}),new Error(`Secure checkout adapter is not ready: ${u.checkout.mode}`);const l=U(e);if(!l)throw m.emit("pricing.checkout.provider.skipped",{mode:"config-missing"}),new Error("Supabase browser client is not available for checkout.");const{data:n,error:c}=await l.auth.getSession();if(c)throw m.emit("pricing.checkout.provider.sessionFailed",{message:c.message}),c;if(!((s=n.session)!=null&&s.access_token))throw m.emit("pricing.checkout.provider.sessionMissing"),new Error("Secure checkout requires a Supabase-authenticated session.");const p=T(o);m.emit("pricing.checkout.provider.started",{provider:"dodo",functionName:"dodo-create-checkout",priceStage:o.priceStage,priceId:o.priceId});const{data:r,error:a}=await l.functions.invoke("dodo-create-checkout",{body:p});if(a)throw m.emit("pricing.checkout.provider.failed",{provider:"dodo",message:a.message}),a;const h=f(r==null?void 0:r.checkout_url);if(!h){const i=f(r==null?void 0:r.reason)??f(r==null?void 0:r.error)??"checkout-url-missing";throw m.emit("pricing.checkout.provider.failed",{provider:"dodo",message:i}),new Error(`Dodo checkout did not return a checkout URL: ${i}`)}return m.emit("pricing.checkout.provider.ready",{provider:"dodo",hasSessionId:!!f(r==null?void 0:r.session_id)}),{mode:u.checkout.mode,canAttempt:!0,provider:"dodo",sessionId:f(r==null?void 0:r.session_id),checkoutUrl:h,userId:f(r==null?void 0:r.user_id)}}const d={currentStage:"STANDARD",ltdLimit:100,ltdSold:0,ltdRemaining:100,isLtdAvailable:!1,isClosed:!1,freeCloudBoardLimit:2,proMonthlyIncludedCredits:1e4,proMonthlyPriceUsd:12,proAnnualPriceUsd:96,ltdPriceUsd:149,managedAiMarkupMultiplier:1.7,localModeFreeEnabled:!0,byokFreeEnabled:!0};function b(e){return`$${e.toLocaleString("en-US",{maximumFractionDigits:2})}`}function R(e){return e?"Start Pro":"Sign in to continue"}function F(){return`${b(d.proMonthlyPriceUsd)} starting point`}function K(){return"Standard paid access should feel like a continuation of the free workflow, not a forced first step."}function z(){return[`Monthly Pro starts at ${b(d.proMonthlyPriceUsd)}`,`Annual target pricing is ${b(d.proAnnualPriceUsd)} per year`,`${d.freeCloudBoardLimit} cloud boards are available before paid limits matter`]}function H(){return A(P())}function Y(e){return"dodo_pro_monthly_v1"}function G(e){return"pro"}function k(e,o,u){const l=document.head.querySelector(e),n=l??o(),c=n.getAttribute("content"),p=!l;return p&&document.head.appendChild(n),n.setAttribute("content",u),()=>{p?n.remove():c===null?n.removeAttribute("content"):n.setAttribute("content",c)}}function j(e){const o=document.createElement("meta");return o.setAttribute("name",e),o}function w(e){const o=document.createElement("meta");return o.setAttribute("property",e),o}function J(){const e=document.title,o="MindExec Pricing",u="MindExec pricing for free local tools and MindCanvas projects. Start free with local tools, then upgrade when saved boards, cloud workflows, and AI support become important.",l="https://mindexec.pages.dev/pricing",n=document.head.querySelector('link[rel="canonical"]')??document.createElement("link"),c=!n.parentElement,p=n.getAttribute("href");n.setAttribute("rel","canonical"),n.setAttribute("href",l),c&&document.head.appendChild(n);const r={"@context":"https://schema.org","@type":"SoftwareApplication",name:"MindExec",applicationCategory:"ProductivityApplication",operatingSystem:"Web",description:"Local-first visual workspace with free markdown tools and paid MindCanvas project workflows.",url:l,offers:[{"@type":"Offer",name:"Free local tools",price:"0",priceCurrency:"USD"},{"@type":"Offer",name:"MindCanvas Pro",price:String(d.proMonthlyPriceUsd),priceCurrency:"USD"}]},a=document.head.querySelector("#pricing-structured-data")??document.createElement("script"),h=!a.parentElement,s=a.textContent;a.id="pricing-structured-data",a.type="application/ld+json",a.setAttribute("data-testid","pricing-structured-data"),a.textContent=JSON.stringify(r),h&&document.head.appendChild(a),document.title=o;const i=[k('meta[name="description"]',()=>j("description"),u),k('meta[name="robots"]',()=>j("robots"),"index,follow"),k('meta[property="og:title"]',()=>w("og:title"),o),k('meta[property="og:description"]',()=>w("og:description"),"Compare free local tools, MindCanvas Pro, and the current checkout offer."),k('meta[property="og:type"]',()=>w("og:type"),"website"),k('meta[property="og:url"]',()=>w("og:url"),l)];return()=>{document.title=e,i.forEach(y=>y()),c?n.remove():p===null?n.removeAttribute("href"):n.setAttribute("href",p),h?a.remove():a.textContent=s}}function oe({navigate:e}){const[o,u]=g.useState(()=>C()),[l,n]=g.useState(!1),c=g.useMemo(()=>H(),[]),[p,r]=g.useState(()=>{const s=C(),i=E();return s&&i?`Signed in as ${s.email}. Continue checkout when ready; payment remains adapter-gated.`:""}),a=g.useMemo(()=>z(),[]);g.useEffect(()=>J(),[]);const h=async()=>{const s=C();if(u(s),m.emit("pricing.checkout.requested",{stage:d.currentStage,signedIn:!!s}),!s){_(d.currentStage,"/pricing"),r("Sign in first to continue to secure checkout."),e("/login");return}if(n(!0),c.checkout.canAttempt)try{const i=G(d.currentStage),y=await O(P(),{priceId:Y(d.currentStage),priceStage:d.currentStage,planKey:i,planCode:i.toUpperCase(),email:s.email,returnUrl:new URL("/pricing?checkout=return",window.location.origin).toString()});x("pricing-checkout-provider-started"),r("Opening secure Dodo checkout..."),window.location.assign(y.checkoutUrl);return}catch(i){n(!1),r(`Secure checkout could not start: ${i instanceof Error?i.message:String(i)}`),m.emit("pricing.checkout.provider.failed",{stage:d.currentStage,message:i instanceof Error?i.message:String(i)});return}window.setTimeout(()=>{x("pricing-checkout-adapter-gated"),n(!1),r(`Checkout policy is ready for ${s.email}; secure payment adapter wiring is the remaining backend step.`),m.emit("pricing.checkout.adapter.gated",{stage:d.currentStage,signedIn:!0})},650)};return t.jsxs("div",{className:"page pricing-page","data-testid":"pricing-shell","data-pricing-stage":d.currentStage,"data-pricing-checkout-intent-key":N,"data-production-adapter-state":c.overallState,"data-pricing-checkout-provider-mode":c.checkout.mode,"data-pricing-checkout-provider-ready":c.checkout.canAttempt?"true":"false","data-client-secret-blocked":c.forbiddenClientSecretKeys.length>0?"true":"false",children:[t.jsxs("section",{className:"pricing-hero",children:[t.jsx("div",{className:"eyebrow",children:"Pricing"}),t.jsx("h1",{children:"Start free. Pay when the work becomes worth keeping."}),t.jsx("p",{children:"Free tools stay fast and local. MindCanvas becomes valuable when saved projects, cloud workflows, and AI-supported organization matter across larger boards."}),t.jsxs("div",{className:"action-row",children:[t.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e("/tools"),"data-testid":"pricing-browse-tools",children:"Browse free tools"}),t.jsx("button",{className:"btn btn-secondary",type:"button",onClick:()=>e("/mindcanvas"),"data-testid":"pricing-open-mindcanvas",children:"Open MindCanvas"})]})]}),t.jsxs("section",{className:"pricing-grid pricing-grid--detailed",children:[t.jsx(v,{label:"Free local tools",price:"$0",body:"Best for quick markdown, notes, clipboard work, and no-login utility tasks.",lines:["Markdown preview, outline, and README tools","Browser notepad and clipboard board","Local-first use with no required upload","Great for one-off jobs before a project exists"],action:"Use the free tools",onAction:()=>e("/tools")}),t.jsx(v,{label:"MindCanvas Pro",price:b(d.proMonthlyPriceUsd),suffix:"/month",body:"For saved boards, cloud projects, and AI-assisted organization once the work grows beyond a disposable tool session.",note:`Annual planning target: ${b(d.proAnnualPriceUsd)} per year`,lines:["Saved project workflows instead of one-off tool output","Cloud access when local-only is no longer enough",`${d.proMonthlyIncludedCredits.toLocaleString()} included monthly credits`,"Better fit for repeat work, larger docs, and visual organization"],action:R(o==null?void 0:o.email),icon:l?I:L,actionClass:"btn-primary",busy:l,onAction:h,status:p,testId:"pricing-pro-checkout"}),t.jsx(v,{label:"Current offer",price:F(),body:K(),lines:a,action:"Open MindCanvas first",onAction:()=>e("/mindcanvas")})]}),t.jsxs("section",{className:"pricing-compare",children:[t.jsxs("div",{children:[t.jsx("div",{className:"eyebrow",children:"Why pay later"}),t.jsx("h2",{children:"The free entry point should stay frictionless."}),t.jsx("p",{children:"Pricing works when it appears after the user already understands value. Public tools are for instant utility. Pro is for keeping the work alive after it becomes important."})]}),t.jsxs("div",{className:"pricing-compare-grid",children:[t.jsxs("article",{children:[t.jsx(D,{size:20}),t.jsx("h3",{children:"Stay free when"}),t.jsx("p",{children:"You only need a quick preview, outline, conversion, note, or snippet board with no ongoing project state."})]}),t.jsxs("article",{children:[t.jsx($,{size:20}),t.jsx("h3",{children:"Upgrade when"}),t.jsx("p",{children:"You want saved boards, repeat workflows, cloud access, or AI-assisted organization across bigger visual projects."})]})]})]}),t.jsx(M,{compact:!0,eyebrow:"Launch list",headline:"Not ready to buy today?",body:"Join the English launch list for checkout openings, launch offers, and short examples of serious MindCanvas workflows.",buttonText:"Notify me",sourceTag:"pricing"})]})}function v({label:e,price:o,suffix:u,body:l,note:n,lines:c,action:p,icon:r,actionClass:a,busy:h,status:s,testId:i,onAction:y}){return t.jsxs("article",{className:"pricing-card pricing-card--detailed",children:[t.jsx("div",{className:"card-label",children:e}),t.jsxs("h2",{children:[o,u&&t.jsx("span",{children:u})]}),t.jsx("p",{children:l}),n&&t.jsx("div",{className:"pricing-note",children:n}),t.jsx("ul",{children:c.map(S=>t.jsx("li",{children:S},S))}),t.jsxs("button",{className:`btn pricing-card-action ${a||"btn-secondary"}`,type:"button",disabled:h,onClick:y,"data-testid":i,children:[r&&t.jsx(r,{size:16,className:h?"spin-icon":void 0}),p]}),s&&t.jsx("p",{className:"pricing-status","data-testid":i?`${i}-status`:void 0,children:s})]})}export{oe as PricingPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.pricing-page{background:radial-gradient(circle at top left,rgba(8,145,178,.14),transparent 30%),radial-gradient(circle at top right,rgba(245,158,11,.12),transparent 28%),linear-gradient(180deg,#f8fafc,#eef6ff 54%,#f8fafc)}.pricing-hero,.pricing-grid{width:min(1180px,calc(100% - 40px));margin-inline:auto}.pricing-hero{padding-top:12px}.pricing-hero h1{margin:12px 0 0;max-width:900px;font-size:clamp(40px,7vw,76px);line-height:.98;font-weight:920;letter-spacing:0}.pricing-hero p{max-width:780px;margin:20px 0 0;color:var(--copy);font-size:18px;line-height:1.8}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.pricing-card{padding:24px;border:1px solid rgba(203,213,225,.76);border-radius:9px;background:#ffffffdb;box-shadow:var(--soft-shadow)}.pricing-card p{color:#475569;line-height:1.65}.pricing-card h2{margin:14px 0 10px;font-size:clamp(38px,4vw,54px);line-height:1}.pricing-card ul{margin:20px 0 0;padding-left:20px;color:#334155;line-height:1.65}.pricing-grid--detailed{align-items:stretch}.pricing-card--detailed{display:flex;flex-direction:column}.pricing-card--detailed h2 span{margin-left:6px;color:#64748b;font-size:16px;font-weight:760}.pricing-note{margin-top:12px;color:#0f766e;font-size:14px;font-weight:800}.pricing-card-action{width:100%;margin-top:auto}.pricing-status{margin:12px 0 0;color:#475569;font-size:13px;font-weight:720}.pricing-compare{width:min(1180px,calc(100% - 40px));margin:34px auto 0}.pricing-compare{display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);gap:18px;align-items:stretch}.pricing-compare h2{margin:12px 0 0;font-size:clamp(28px,4vw,42px);line-height:1.08;letter-spacing:0}.pricing-compare p{color:#334155;line-height:1.7}.pricing-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.pricing-compare-grid article{border:1px solid rgba(203,213,225,.76);border-radius:9px;background:#ffffffe0;box-shadow:var(--soft-shadow)}.pricing-compare-grid article{padding:20px}.pricing-compare-grid h3{margin:12px 0 8px}@media(max-width:960px){.pricing-grid,.pricing-compare,.pricing-compare-grid{grid-template-columns:1fr}}@media(max-width:640px){.pricing-hero h1{font-size:36px;line-height:1.04}.pricing-hero p{font-size:15px}.pricing-compare{width:min(100%,calc(100% - 20px))}}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import{j as t,r as m}from"./vendor-react-BXzpOyCS.js";import{g as te,a as q,d as ne,b as se,c as re}from"./marketingTools-DN_rnHeB.js";import{$ as oe}from"./canvas-runtime-Bc1G-FZ_.js";import{R as f}from"./app-runtime-xD2Z3NdN.js";import{b as ie}from"./toolHandoff-D5e5f7t5.js";import{u as ae,aU as Q,aV as le,aW as ce,aX as de,F as ue,aY as pe,Q as R,ab as he,aZ as me,T as Y,i as K,g as fe,f as U,aj as xe}from"./vendor-icons-DE3gIReG.js";const W=2*1024*1024,ke=".md,.markdown,.txt,text/markdown,text/plain",G={"markdown-preview":ue,"markdown-outline":de,"markdown-table":ce,"markdown-links":le,notepad:Q,clipboard:ae};function $(e,n,r){const s=document.head.querySelector(e),o=s??n(),l=o.getAttribute("content"),i=!s;return i&&document.head.appendChild(o),o.setAttribute("content",r),()=>{i?o.remove():l===null?o.removeAttribute("content"):o.setAttribute("content",l)}}function je(e){const n=document.createElement("meta");return n.setAttribute("name",e),n}function M(e){const n=document.createElement("meta");return n.setAttribute("property",e),n}function be(e,n){const r=document.title,s=n?e.liveUrl:`https://mindexec.pages.dev/tools/${e.key}`,o=n?`${e.title} - Free local browser tool`:`${e.title} | MindExec`,l=n?e.heroSubtitle:e.description,i=document.head.querySelector('link[rel="canonical"]')??document.createElement("link"),c=!i.parentElement,d=i.getAttribute("href");i.setAttribute("rel","canonical"),i.setAttribute("href",s),c&&document.head.appendChild(i),document.title=o;const p=[$('meta[name="description"]',()=>je("description"),l),$('meta[property="og:title"]',()=>M("og:title"),o),$('meta[property="og:description"]',()=>M("og:description"),l),$('meta[property="og:url"]',()=>M("og:url"),s)];return()=>{document.title=r,p.forEach(h=>h()),c?i.remove():d===null?i.removeAttribute("href"):i.setAttribute("href",d)}}function _e({navigate:e}){const n=te();return t.jsxs("div",{className:"page tools-directory-page",children:[t.jsxs("section",{className:"section-head",children:[t.jsx("div",{className:"eyebrow",children:"Free local-first tools"}),t.jsx("h1",{children:"Markdown, notes, and clipboard tools from MindExec"}),t.jsx("p",{children:"Use lightweight browser tools with no login and no database save. When the work gets bigger, move into MindCanvas for saved projects, AI workflows, and visual organization."})]}),t.jsx("div",{className:"tools-directory-groups",children:n.map(r=>t.jsxs("section",{className:"tools-directory-section",children:[t.jsxs("div",{className:"tools-directory-head",children:[t.jsx("h2",{children:r.title}),t.jsx("p",{children:r.description})]}),t.jsx("div",{className:"tools-directory-grid",children:r.entries.map(s=>{const o=G[s.kind];return t.jsxs("article",{className:"tools-directory-card","data-testid":"tool-directory-card","data-tool-key":s.key,children:[t.jsxs("div",{className:"tool-card-topline",children:[t.jsx("span",{children:s.label}),t.jsx(o,{size:18})]}),t.jsx("h3",{children:s.title}),t.jsx("p",{children:s.description}),t.jsxs("button",{type:"button",className:"btn btn-secondary",onClick:()=>e(`/tools/${s.key}`),children:["Open tool",t.jsx(pe,{size:16})]}),t.jsxs("a",{className:"tool-live-link",href:s.liveUrl,target:"_blank",rel:"noreferrer",children:[t.jsx(R,{size:14}),"Standalone"]})]},s.key)})})]},r.id))}),t.jsxs("section",{className:"tools-directory-cta",children:[t.jsxs("div",{children:[t.jsx("h2",{children:"Need a bigger workspace?"}),t.jsx("p",{children:"MindCanvas is where these small tasks turn into saved canvases, larger document sets, AI workflows, and cloud projects inside MindExec."})]}),t.jsx("button",{type:"button",className:"btn btn-primary",onClick:()=>e("/mindcanvas"),children:"Open MindCanvas"})]})]})}function De({toolKey:e,navigate:n,miniHost:r=!1}){const s=q(e);return s?t.jsx(ge,{tool:s,navigate:n,miniHost:r}):t.jsx("div",{className:"page tools-directory-page",children:t.jsxs("section",{className:"section-head",children:[t.jsx("div",{className:"eyebrow",children:"Tool not found"}),t.jsx("h1",{children:"This local tool is not enabled."}),t.jsx("p",{children:"Open the tools directory and pick one of the current MindExec browser tools."}),t.jsx("div",{className:"action-row",children:t.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>n("/tools"),children:"Back to tools"})})]})})}function ge({tool:e,navigate:n,miniHost:r}){const[s,o]=m.useState(()=>S(e.kind)),[l,i]=m.useState(""),[c,d]=m.useState(["Pricing proof from a user conversation","Demo clip idea for English-first launch","Competitor headline worth comparing"]),[p,h]=m.useState(null),[B,y]=m.useState(""),T=m.useRef(null),C=m.useRef(null),b=m.useMemo(()=>Ne(e,s,c),[c,s,e]),V=G[e.kind],X=e.relatedKeys.map(a=>q(a)).filter(a=>!!a),z=ve(e.kind),w=e.key==="bulk-markdown-viewer";m.useEffect(()=>{const a=be(e,r);return f.emit("tool.meta.applied",{toolKey:e.key,host:window.location.hostname,miniHost:r,canonical:r?e.liveUrl:`https://mindexec.pages.dev/tools/${e.key}`}),r&&f.emit("tool.hostProfile.applied",{toolKey:e.key,host:window.location.hostname}),a},[r,e]),m.useEffect(()=>{o(S(e.kind)),y(""),h(null)},[e.key,e.kind]);const P=async(a,x,k)=>{try{const u=await oe(x);h(a),f.emit("tool.copy",{toolKey:e.key,ok:!0,method:u,chars:x.length}),window.setTimeout(()=>h(null),1400)}catch(u){const j=k==="source"?T.current:C.current;if(j){j.focus(),j.select(),h(k==="source"?"Source selected":"Output selected"),f.emit("tool.copy",{toolKey:e.key,ok:!1,selected:!0,target:k,message:u instanceof Error?u.message:String(u)});return}h("Copy failed"),f.emit("tool.copy",{toolKey:e.key,ok:!1,target:k,message:u instanceof Error?u.message:String(u)})}},Z=()=>{o(S(e.kind)),y("Sample loaded."),f.emit("tool.sample.loaded",{toolKey:e.key})},J=()=>{o(""),y(""),f.emit("tool.source.cleared",{toolKey:e.key})},O=()=>{ie({toolKey:e.key,toolTitle:e.title,sourceTitle:`${e.label} source`,sourceBody:e.kind==="clipboard"?c.join(`
|
|
2
|
-
|
|
3
|
-
`):s,resultTitle:b.title,resultBody:b.text,taskBody:`Review this ${e.title} output and propose the next concrete step for a global MindExec launch workflow.`}),n("/mindcanvas")},ee=async a=>{const x=Array.from(a.currentTarget.files??[]);if(a.currentTarget.value="",!z||x.length===0)return;const k=x.slice(0,w?12:1),u=k.filter(g=>g.size>W),j=k.filter(g=>g.size<=W);if(j.length===0){y("Selected file is over the 2 MB local preview limit."),f.emit("tool.file.rejected",{toolKey:e.key,reason:"size-limit",count:k.length});return}try{const v=(await Promise.all(j.map(async F=>{const I=(await F.text()).trim();return w?[`# ${F.name}`,"",I].join(`
|
|
4
|
-
`):I}))).filter(Boolean).join(`
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
`).trim();o(v),y([`Opened ${j.length} local file${j.length===1?"":"s"}.`,u.length>0?`${u.length} skipped over 2 MB.`:""].filter(Boolean).join(" ")),f.emit("tool.file.opened",{toolKey:e.key,fileCount:j.length,skippedCount:u.length,textLength:v.length,mode:w?"multi":"single"})}catch(g){const v=g instanceof Error?g.message:String(g);y(`Could not open the local file: ${v}`),f.emit("tool.file.failed",{toolKey:e.key,message:v})}};return t.jsxs("div",{className:"page tool-home-page",children:[t.jsxs("section",{className:"tool-home-hero",children:[r?t.jsxs("a",{className:"tool-back-button",href:"https://mindexec.pages.dev/tools",children:[t.jsx(R,{size:16}),"MindExec tools"]}):t.jsxs("button",{className:"tool-back-button",type:"button",onClick:()=>n("/tools"),children:[t.jsx(he,{size:16}),"Tools"]}),t.jsx("div",{className:"eyebrow",children:e.heroEyebrow}),t.jsx("h1",{children:e.heroTitle}),t.jsx("p",{children:e.heroSubtitle}),t.jsxs("div",{className:"tool-hero-meta",children:[t.jsx("div",{className:"tool-privacy-note",children:e.privacyNote}),t.jsxs("a",{className:"tool-live-pill",href:e.liveUrl,target:"_blank",rel:"noreferrer",children:[t.jsx(R,{size:14}),new URL(e.liveUrl).hostname]})]})]}),t.jsxs("section",{className:`tool-mini-canvas tool-mini-canvas--${e.kind}`,"data-testid":"tool-workbench","data-tool-key":e.key,children:[t.jsxs("div",{className:"tool-mini-head",children:[t.jsxs("div",{children:[t.jsx("div",{className:"eyebrow",children:"Mini canvas mode"}),t.jsx("h2",{children:e.canvasTitle}),t.jsx("p",{children:e.canvasSubtitle})]}),t.jsx("div",{className:"tool-mini-badges",children:e.badges.map(a=>t.jsx("span",{children:a},a))})]}),t.jsxs("div",{className:"tool-mini-surface",children:[t.jsxs("div",{className:"tool-mini-toolbar",children:[t.jsxs("div",{children:[t.jsx("strong",{children:e.toolbarTitle}),t.jsx("span",{children:e.toolbarBody})]}),t.jsxs("div",{className:"tool-mini-actions",children:[t.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>{var a;return(a=T.current)==null?void 0:a.focus()},children:"Source"}),t.jsx("button",{className:"btn btn-ghost",type:"button",onClick:()=>{var a;return(a=C.current)==null?void 0:a.focus()},children:"Result"}),t.jsx("button",{className:"btn btn-secondary",type:"button",onClick:Z,children:"Sample"})]})]}),t.jsxs("div",{className:"tool-canvas-grid",children:[t.jsxs("article",{className:"tool-canvas-node tool-canvas-node--source",children:[t.jsx(N,{icon:V,eyebrow:"Source node",title:we(e)}),e.kind==="clipboard"?t.jsx(ye,{draft:l,snippets:c,onDraft:i,onAdd:()=>{const a=l.trim();a&&(d(x=>[a,...x].slice(0,18)),i(""))},onDelete:a=>d(x=>x.filter((k,u)=>u!==a))}):t.jsxs(t.Fragment,{children:[z&&t.jsxs("label",{className:"tool-file-open",children:[t.jsx("input",{"data-testid":"tool-file-input",type:"file",accept:ke,multiple:w,onChange:ee}),t.jsx(me,{size:15}),t.jsx("span",{children:w?"Open local markdown files":"Open a local markdown file"})]}),B&&t.jsx("div",{className:"tool-file-status",children:B}),t.jsx("textarea",{"data-testid":"tool-source",ref:T,value:s,onChange:a=>o(a.target.value),spellCheck:!1})]}),t.jsxs("div",{className:"tool-node-actions",children:[t.jsxs("button",{type:"button",className:"btn btn-ghost",onClick:J,children:[t.jsx(Y,{size:15}),"Clear"]}),t.jsxs("button",{type:"button",className:"btn btn-secondary",onClick:()=>P("Source copied",s,"source"),children:[t.jsx(K,{size:15}),"Copy source"]})]})]}),t.jsxs("article",{className:"tool-canvas-node tool-canvas-node--result",children:[t.jsx(N,{icon:fe,eyebrow:"Result node",title:b.title}),b.kind==="preview"?t.jsx("div",{className:"tool-rendered-preview","data-testid":"tool-rendered-preview",children:Ae(s)}):t.jsx("textarea",{"data-testid":"tool-result",ref:C,value:b.text,readOnly:!0,spellCheck:!1}),t.jsxs("div",{className:"tool-node-actions",children:[t.jsxs("button",{type:"button",className:"btn btn-secondary",onClick:()=>P("Result copied",b.text,"result"),children:[t.jsx(K,{size:15}),"Copy output"]}),t.jsxs("button",{type:"button",className:"btn btn-primary","data-testid":"tool-send-to-mindcanvas",onClick:O,children:[t.jsx(U,{size:15}),"Send to MindCanvas"]})]}),p&&t.jsx("div",{className:"tool-copy-feedback",children:p})]}),t.jsxs("article",{className:"tool-canvas-node tool-canvas-node--readout",children:[t.jsx(N,{icon:xe,eyebrow:"Readouts",title:b.summaryTitle}),t.jsx("ul",{children:b.readouts.map(a=>t.jsx("li",{children:a},a))})]}),t.jsxs("article",{className:"tool-canvas-node tool-canvas-node--lesson",children:[t.jsx(N,{icon:Q,eyebrow:"Mini canvas lesson",title:e.learningTitle}),t.jsx("p",{children:e.learningBody}),t.jsx("ul",{children:e.learningBullets.map(a=>t.jsx("li",{children:a},a))})]}),t.jsxs("article",{className:"tool-canvas-node tool-canvas-node--next",children:[t.jsx(N,{icon:U,eyebrow:"Next step",title:e.ctaTitle}),t.jsx("p",{children:e.ctaBody}),t.jsxs("div",{className:"tool-node-actions",children:[t.jsx("button",{type:"button",className:"btn btn-primary",onClick:O,children:"Send to MindCanvas"}),t.jsx("button",{type:"button",className:"btn btn-ghost",onClick:()=>n("/pricing"),children:"Pricing"})]})]})]})]})]}),t.jsxs("section",{className:"tool-related",children:[t.jsxs("div",{className:"tools-directory-head",children:[t.jsx("h2",{children:"Related local tools"}),t.jsx("p",{children:"Keep the session lightweight until the work deserves a saved board."})]}),t.jsx("div",{className:"tools-directory-grid",children:X.map(a=>t.jsxs("button",{className:"related-tool-card",type:"button",onClick:()=>n(`/tools/${a.key}`),children:[t.jsx("span",{children:a.label}),t.jsx("strong",{children:a.title}),t.jsx("small",{children:a.description})]},a.key))})]})]})}function N({icon:e,eyebrow:n,title:r}){return t.jsxs("div",{className:"tool-node-title",children:[t.jsxs("div",{children:[t.jsx("span",{children:n}),t.jsx("h3",{children:r})]}),t.jsx(e,{size:18})]})}function ye({draft:e,snippets:n,onDraft:r,onAdd:s,onDelete:o}){return t.jsxs("div",{className:"clipboard-tool",children:[t.jsx("textarea",{value:e,onChange:l=>r(l.target.value),placeholder:"Paste a snippet, quote, idea, or tiny task..."}),t.jsx("button",{type:"button",className:"btn btn-secondary",onClick:s,children:"Add snippet"}),t.jsx("div",{className:"snippet-list",children:n.map((l,i)=>t.jsxs("article",{className:"snippet-item",children:[t.jsx("p",{children:l}),t.jsx("button",{type:"button",title:"Delete snippet",onClick:()=>o(i),children:t.jsx(Y,{size:14})})]},`${l}-${i}`))})]})}function S(e){return e==="markdown-table"?ne:e==="markdown-links"?se:e==="notepad"?["Raw launch thought:","","I need one English-first proof post that shows why MindCanvas is useful before asking for paid conversion.","","Next action: turn this into a small execution checklist."].join(`
|
|
9
|
-
`):re}function we(e){return e.kind==="markdown-table"?"Messy table source":e.kind==="markdown-links"?"Markdown links source":e.kind==="notepad"?"Quick note":e.kind==="clipboard"?"Snippet source":e.key==="bulk-markdown-viewer"?"Markdown stack":"Markdown source"}function ve(e){return e==="markdown-preview"||e==="markdown-outline"||e==="markdown-table"||e==="markdown-links"}function Ne(e,n,r){if(e.key==="markdown-to-html"){const s=Le(n);return{kind:"text",title:"HTML output",summaryTitle:"Conversion readout",text:s||"<!-- Paste markdown to convert it locally. -->",readouts:Ce(n,s)}}if(e.kind==="markdown-outline"){const s=L(n);return{kind:"text",title:"Outline",summaryTitle:"Hierarchy preview",text:s||"No headings found.",readouts:_(n,s)}}if(e.kind==="markdown-table"){const s=Be(n);return{kind:"text",title:"Formatted table",summaryTitle:"Table readout",text:s||"Paste a markdown table to format it.",readouts:$e(n,s)}}if(e.kind==="markdown-links"){const s=ze(n);return{kind:"text",title:"Link report",summaryTitle:"Link scan",text:Pe(s),readouts:Te(s)}}if(e.kind==="notepad")return{kind:"text",title:"Note readout",summaryTitle:"Quick scan lane",text:Se(n),readouts:Me(n)};if(e.kind==="clipboard"){const s=r.map((o,l)=>`${l+1}. ${o}`).join(`
|
|
10
|
-
|
|
11
|
-
`);return{kind:"text",title:"Snippet pile",summaryTitle:"Clipboard readout",text:s||"No snippets yet.",readouts:[`${r.length} snippets`,`${A(s)} words`,"Promote when patterns appear."]}}return{kind:"preview",title:"Rendered preview",summaryTitle:"Quick scan lane",text:Ee(n),readouts:_(n,L(n))}}function A(e){return e.trim()?e.trim().split(/\s+/).length:0}function _(e,n){const r=n?n.split(`
|
|
12
|
-
`).length:0;return[`${e.length} characters`,`${A(e)} words`,`${r} headings`,"Private browser session only."]}function $e(e,n){var o;const r=e.split(`
|
|
13
|
-
`).filter(l=>l.includes("|")).length,s=((o=H(e)[0])==null?void 0:o.length)||0;return[`${r} table rows detected`,`${s} columns`,n?"Copy-ready output":"Waiting for valid table input"]}function Te(e){const n=e.reduce((r,s)=>r+s.warnings.length,0);return[`${e.length} links detected`,`${n} warnings`,"No external crawling or network checks."]}function Ce(e,n){return[`${e.length} source characters`,`${n.length} HTML characters`,"Escaped local conversion output"]}function Me(e){const n=e.split(`
|
|
14
|
-
`).filter(r=>r.trim()).length;return[`${e.length} characters`,`${A(e)} words`,`${n} filled lines`,"Move when the note starts branching."]}function Se(e){const n=e.split(`
|
|
15
|
-
`).map(r=>r.trim()).filter(Boolean).slice(0,6);return n.length===0?"Write a quick note first.":["Quick note summary","",...n.map(r=>`- ${r}`)].join(`
|
|
16
|
-
`)}function L(e){return e.split(`
|
|
17
|
-
`).map(n=>/^(#{1,6})\s+(.+)$/.exec(n.trim())).filter(n=>!!n).map(n=>`${" ".repeat(n[1].length-1)}- ${n[2].trim()}`).join(`
|
|
18
|
-
`)}function Ee(e){const n=L(e);return["Rendered markdown preview","",e.split(`
|
|
19
|
-
`).filter(r=>r.trim()).slice(0,16).join(`
|
|
20
|
-
`),n?["","Outline",n].join(`
|
|
21
|
-
`):""].filter(Boolean).join(`
|
|
22
|
-
`)}function Re(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function E(e){return Re(e).replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>").replace(/`([^`]+)`/g,"<code>$1</code>").replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2">$1</a>')}function Le(e){const n=e.split(`
|
|
23
|
-
`),r=[];let s=[];const o=()=>{s.length!==0&&(r.push("<ul>"),r.push(...s.map(l=>` <li>${E(l)}</li>`)),r.push("</ul>"),s=[])};return n.forEach(l=>{const i=l.trim();if(!i){o();return}if(i==="---"){o(),r.push("<hr>");return}const c=/^(#{1,6})\s+(.+)$/.exec(i);if(c){o();const d=c[1].length;r.push(`<h${d}>${E(c[2])}</h${d}>`);return}if(/^[-*]\s+/.test(i)){s.push(i.replace(/^[-*]\s+/,""));return}o(),r.push(`<p>${E(i)}</p>`)}),o(),r.join(`
|
|
24
|
-
`)}function Ae(e){const n=e.split(`
|
|
25
|
-
`),r=[];let s=[];const o=l=>{s.length!==0&&(r.push(t.jsx("ul",{children:s.map(i=>t.jsx("li",{children:i},i))},l)),s=[])};return n.forEach((l,i)=>{const c=l.trim();if(!c){o(`list-${i}`);return}const d=/^(#{1,4})\s+(.+)$/.exec(c);if(d){o(`list-${i}`);const p=d[1].length,h=d[2];p===1?r.push(t.jsx("h2",{children:h},i)):p===2?r.push(t.jsx("h3",{children:h},i)):r.push(t.jsx("h4",{children:h},i));return}if(/^[-*]\s+/.test(c)){s.push(c.replace(/^[-*]\s+/,""));return}o(`list-${i}`),r.push(t.jsx("p",{children:c},i))}),o("list-end"),r.length>0?r:t.jsx("p",{children:"Paste markdown to preview it locally."})}function H(e){return e.split(`
|
|
26
|
-
`).map(n=>n.trim()).filter(n=>n.includes("|")).map(n=>n.replace(/^\|/,"").replace(/\|$/,"").split("|").map(r=>r.trim())).filter(n=>n.some(r=>r.length>0))}function Be(e){const n=H(e).filter(c=>!c.every(d=>/^:?-{1,}:?$/.test(d)));if(n.length===0)return"";const r=Math.max(...n.map(c=>c.length)),s=n.map(c=>Array.from({length:r},(d,p)=>c[p]||"")),o=Array.from({length:r},(c,d)=>Math.max(...s.map(p=>p[d].length),3)),l=c=>`| ${c.map((d,p)=>d.padEnd(o[p]," ")).join(" | ")} |`,i=`| ${o.map(c=>"-".repeat(c)).join(" | ")} |`;return[l(s[0]),i,...s.slice(1).map(l)].join(`
|
|
27
|
-
`)}function ze(e){const n=[],r=/\[([^\]]*)\]\(([^)]*)\)/g;let s;for(;(s=r.exec(e))!==null;){const l=s[1].trim()||"(no label)",i=s[2].trim();n.push(D(l,i))}const o=/(^|\s)(https?:\/\/[^\s)]+)/g;for(;(s=o.exec(e))!==null;){const l=s[2].trim();n.some(i=>i.target===l)||n.push(D(l,l))}return n}function D(e,n){const r=[],s=n.toLowerCase();let o="relative";return n?s.startsWith("javascript:")?(r.push("Unsafe javascript target"),o="unsafe"):s.includes("localhost")||s.includes("127.0.0.1")?(r.push("Local development target"),o="local"):s.startsWith("http://")?(r.push("Insecure http target"),o="external"):s.startsWith("https://")?o="external":s.startsWith("#")&&(o="anchor"):(r.push("Empty target"),o="empty"),{label:e,target:n,kind:o,warnings:r}}function Pe(e){return e.length===0?"No markdown links found.":["Markdown link report","",...e.map((n,r)=>{const s=n.warnings.length>0?` warnings: ${n.warnings.join(", ")}`:" ok";return`${r+1}. [${n.kind}] ${n.label} -> ${n.target||"(empty)"}${s}`})].join(`
|
|
28
|
-
`)}export{De as MarketingToolPage,_e as ToolsDirectoryPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.tools-directory-groups,.tool-related{display:grid;gap:30px;margin-top:30px}.tools-directory-section,.tools-directory-cta,.tool-mini-canvas,.tool-related{border:1px solid rgba(203,213,225,.76);border-radius:10px;background:#ffffffe6;box-shadow:var(--soft-shadow)}.tools-directory-section,.tool-related{padding:20px}.tools-directory-head h2,.tool-home-hero h1,.tool-mini-head h2{margin:0;color:#0f172a;font-weight:900;letter-spacing:0}.tools-directory-head p,.tool-mini-head p{margin:8px 0 0;color:#475569;line-height:1.65}.tools-directory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}.tools-directory-card,.related-tool-card{min-height:210px;display:grid;align-content:start;gap:12px;padding:16px;border:1px solid rgba(203,213,225,.78);border-radius:9px;background:#fff;color:#1e293b;text-align:left}.tools-directory-card h3,.related-tool-card strong{margin:0;color:#0f172a;font-size:18px;line-height:1.25}.tools-directory-card p,.related-tool-card small{margin:0;color:#475569;line-height:1.6}.tools-directory-card .btn{width:fit-content;margin-top:auto}.tool-live-link{width:fit-content;min-height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border:1px solid rgba(15,118,110,.18);border-radius:8px;color:#0f766e;background:#f0fdfa;font-size:12px;font-weight:850;text-decoration:none}.tool-card-topline,.related-tool-card span{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#0f766e;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.tools-directory-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:32px;padding:22px;color:#fff;background:#0f172a}.tools-directory-cta h2{margin:0;font-size:24px}.tools-directory-cta p{max-width:760px;margin:8px 0 0;color:#cbd5e1;line-height:1.65}.tools-directory-cta .btn{flex:0 0 auto;color:#0f172a;background:#fff}.tool-home-hero{display:grid;gap:12px;padding-top:4px}.tool-home-hero h1{max-width:900px;font-size:clamp(34px,5vw,62px);line-height:1}.tool-home-hero p{max-width:800px;margin:0;color:#334155;font-size:18px;line-height:1.75}.tool-back-button{width:fit-content;min-height:36px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid rgba(203,213,225,.8);border-radius:9px;color:#334155;background:#fff;cursor:pointer;font-weight:800;text-decoration:none}.tool-privacy-note{width:fit-content;padding:8px 12px;border:1px solid rgba(15,118,110,.18);border-radius:9px;color:#0f766e;background:#f0fdfae0;font-size:13px;font-weight:800}.tool-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.tool-live-pill{width:fit-content;min-height:35px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid rgba(37,99,235,.2);border-radius:9px;color:#1d4ed8;background:#eff6ff;font-size:13px;font-weight:850;text-decoration:none}.tool-mini-canvas{margin-top:28px;padding:18px}.tool-mini-head,.tool-mini-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.tool-mini-badges,.tool-mini-actions,.tool-node-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tool-mini-badges span{min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid rgba(37,99,235,.18);border-radius:999px;color:#1d4ed8;background:#eff6ff;font-size:12px;font-weight:850}.tool-mini-surface{margin-top:18px;padding:14px;border:1px solid rgba(148,163,184,.34);border-radius:10px;background:linear-gradient(rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px),#f8fafc;background-size:28px 28px}.tool-mini-toolbar{align-items:center;padding:12px;border:1px solid rgba(203,213,225,.78);border-radius:9px;background:#fffffff0}.tool-mini-toolbar strong,.tool-mini-toolbar span{display:block}.tool-mini-toolbar strong{color:#0f172a}.tool-mini-toolbar span{margin-top:3px;color:#64748b;font-size:13px}.tool-canvas-grid{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(320px,1.15fr);grid-template-areas:"source result" "readout result" "lesson next";gap:14px;margin-top:14px}.tool-canvas-node{min-width:0;display:grid;gap:12px;padding:14px;border:1px solid rgba(203,213,225,.82);border-radius:9px;background:#fffffff5;box-shadow:0 12px 28px #0f172a12}.tool-canvas-node--source{grid-area:source}.tool-canvas-node--result{grid-area:result}.tool-canvas-node--readout{grid-area:readout}.tool-canvas-node--lesson{grid-area:lesson}.tool-canvas-node--next{grid-area:next}.tool-node-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tool-node-title span{color:#0f766e;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.tool-node-title h3{margin:4px 0 0;color:#0f172a;font-size:18px;line-height:1.25}.tool-canvas-node textarea,.tool-rendered-preview,.clipboard-tool textarea{width:100%;min-height:250px;padding:14px;border:1px solid rgba(203,213,225,.92);border-radius:8px;color:#1e293b;background:#fff;resize:vertical}.tool-file-open{min-height:38px;width:fit-content;max-width:100%;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border:1px solid rgba(59,130,246,.24);border-radius:8px;color:#1d4ed8;background:#eff6ff;font-size:13px;font-weight:850;cursor:pointer}.tool-file-open input{display:none}.tool-file-open span{overflow-wrap:anywhere}.tool-file-status{min-height:28px;display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:0 10px;border-radius:999px;color:#334155;background:#f1f5f9;font-size:12px;font-weight:750}.tool-canvas-node--result textarea,.tool-rendered-preview{min-height:460px}.tool-canvas-node ul{margin:0;padding-left:19px;color:#334155;line-height:1.65}.tool-canvas-node p{margin:0;color:#475569;line-height:1.65}.tool-rendered-preview{overflow:auto}.tool-rendered-preview h2,.tool-rendered-preview h3,.tool-rendered-preview h4,.tool-rendered-preview p{margin:0 0 12px}.tool-rendered-preview h2{font-size:28px;line-height:1.15}.tool-rendered-preview h3{font-size:21px}.tool-copy-feedback{min-height:30px;display:inline-flex;align-items:center;width:fit-content;padding:0 10px;border-radius:999px;color:#166534;background:#dcfce7;font-size:12px;font-weight:850}.spin-icon{animation:spinIcon .8s linear infinite}@keyframes spinIcon{to{transform:rotate(360deg)}}@media(max-width:960px){.tool-canvas-grid{grid-template-columns:1fr;grid-template-areas:"source" "result" "readout" "lesson" "next"}.tool-mini-head,.tool-mini-toolbar,.tools-directory-cta{align-items:stretch;flex-direction:column}}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{r as i,j as e}from"./vendor-react-BXzpOyCS.js";import{g as H,j as fe,s as M,y as xe,ao as Se,D as we}from"./canvas-runtime-Bc1G-FZ_.js";import{R as d}from"./app-runtime-xD2Z3NdN.js";import{b as je}from"./toolHandoff-D5e5f7t5.js";import{an as ke,aA as Ce,a_ as te,f as Le,a$ as Te,au as $e,Q as Ne}from"./vendor-icons-DE3gIReG.js";const ae=[{id:"yt-ai-workflow-1",videoId:"mexecAI0001",title:"AI workflow systems for solo founders",channel:"Indie Build Lab",publishedAt:"2026-06-18",duration:"12:34",views:"42,180",url:"https://www.youtube.com/watch?v=mexecAI0001",thumbnailUrl:"/assets/mindexecution-mindcanvas.png",summary:"A practical breakdown of capture, planning, execution, and proof loops for one-person products."},{id:"yt-canvas-ops-2",videoId:"mexecRC0002",title:"Building a visual operating system with React canvas",channel:"Product Runtime",publishedAt:"2026-06-14",duration:"18:09",views:"31,904",url:"https://www.youtube.com/watch?v=mexecRC0002",thumbnailUrl:"/assets/mindexecution-mindcanvas.png",summary:"Covers node layout, local persistence, keyboard workflows, and avoiding heavy runtimes in the browser."},{id:"yt-launch-3",videoId:"mexecLN0003",title:"From prototype to paid users in seven days",channel:"Global SaaS Notes",publishedAt:"2026-06-11",duration:"09:52",views:"88,430",url:"https://www.youtube.com/watch?v=mexecLN0003",thumbnailUrl:"/assets/mindexecution-mindcanvas.png",summary:"Launch checklist focused on proof assets, lead capture, pricing pressure, and distribution sequencing."},{id:"yt-local-first-4",videoId:"mexecLF0004",title:"Local-first web apps that feel instant",channel:"Frontend Engine Room",publishedAt:"2026-06-07",duration:"22:18",views:"17,609",url:"https://www.youtube.com/watch?v=mexecLF0004",thumbnailUrl:"/assets/mindexecution-mindcanvas.png",summary:"Explains local state, cache boundaries, browser storage, and sync contracts for fast product surfaces."},{id:"yt-agent-5",videoId:"mexecAD0005",title:"Agent dashboards for real business execution",channel:"Ops With AI",publishedAt:"2026-06-01",duration:"15:21",views:"56,112",url:"https://www.youtube.com/watch?v=mexecAD0005",thumbnailUrl:"/assets/mindexecution-mindcanvas.png",summary:"Maps agent tasks to approvals, artifacts, execution evidence, and human-gated external actions."}],Be=["relevance","date","viewCount","rating","title"],Ae=["any","day","week","month","year"],Ie=["any","short","medium","long"],Re=["any","live","upcoming","completed"],Ue=["moderate","none","strict"];function qe(a,t){const c=t.toLowerCase(),g=`${a.title} ${a.channel} ${a.summary}`.toLowerCase();return c?c.split(/\s+/).filter(n=>g.includes(n)).length+1:1}function se(a,t,c){return ae.map(n=>({...n,title:a.trim()?`${n.title}: ${a.trim()}`:n.title,score:qe(n,a)})).sort((n,u)=>t==="date"?u.publishedAt.localeCompare(n.publishedAt):t==="viewCount"?Number(u.views.replace(/,/g,""))-Number(n.views.replace(/,/g,"")):t==="title"?n.title.localeCompare(u.title):u.score-n.score).slice(0,c).map(({score:n,...u})=>({...u,source:"sample"}))}function Pe(a){return a.map((t,c)=>[`${c+1}. ${t.title}`,` - Channel: ${t.channel}`,` - Published: ${t.publishedAt}`,` - Duration: ${t.duration}`,` - Views: ${t.views}`,` - URL: ${t.url}`,t.thumbnailUrl?` - Thumbnail: ${t.thumbnailUrl}`:"",` - Note: ${t.summary}`].filter(Boolean).join(`
|
|
2
|
-
`)).join(`
|
|
3
|
-
|
|
4
|
-
`)}function De(a){return a.map(t=>({id:t.id,kind:"youtube-video",title:t.title,url:t.url,videoId:t.videoId,thumbnailUrl:t.thumbnailUrl,summary:t.summary,channel:t.channel,publishedAt:t.publishedAt,duration:t.duration,views:t.views,source:t.source||"sample"}))}function Ye(a){if(!a)return"-";const t=Date.parse(a);return Number.isFinite(t)?new Date(t).toISOString().slice(0,10):a}function Ee(a){return typeof a!="number"||!Number.isFinite(a)?"-":a.toLocaleString("en-US")}function ze(a){const t=String(a.videoId||"").trim(),c=String(a.title||"").trim();if(!t||!c)return null;const g=String(a.url||"").trim()||`https://www.youtube.com/watch?v=${t}`,n=String(a.channelTitle||"").trim()||"Unknown channel",u=String(a.durationText||a.duration||"").trim()||"-",y=Ye(a.publishedAt),C=Ee(a.viewCount);return{id:t,videoId:t,title:c,channel:n,publishedAt:y,duration:u,views:C,url:g,thumbnailUrl:String(a.thumbnailUrl||"").trim()||void 0,summary:`Live YouTube result from ${n}. Published ${y}; duration ${u}; views ${C}.`,source:"bridge"}}function Fe(){return{state:M()?"idle":"blocked",baseUrl:H(),message:M()?"LocalBridge not checked yet.":"Hosted LocalBridge access is gated."}}function Qe({navigate:a}){const t=i.useRef(0),[c,g]=i.useState(()=>H()),[n,u]=i.useState(()=>Fe()),[y,C]=i.useState("AI workflow for solo founders"),[L,ne]=i.useState("relevance"),[$,re]=i.useState("any"),[N,oe]=i.useState("any"),[B,ie]=i.useState("any"),[A,le]=i.useState("moderate"),[I,ce]=i.useState("en"),[R,ue]=i.useState("US"),[U,de]=i.useState(10),[m,O]=i.useState(()=>se("AI workflow for solo founders","relevance",5)),[q,v]=i.useState(()=>new Set(["yt-ai-workflow-1"])),[be,f]=i.useState("Local sample results loaded. Search will use LocalBridge /api/youtube/search on loopback or after enabling local bridge access."),[T,P]=i.useState(!1),[w,W]=i.useState("sample"),[V,Q]=i.useState(""),[_,G]=i.useState(""),[K,J]=i.useState(!1),[X,Z]=i.useState(""),D=i.useMemo(()=>m.filter(s=>q.has(s.id)),[m,q]),Y=(s,l="fallback",r)=>{const b=(r==null?void 0:r.query)??y,x=(r==null?void 0:r.order)??L,o=(r==null?void 0:r.maxResults)??U,S=se(b,x,Math.min(o,ae.length));O(S),v(new Set),W(l),Q(""),G(""),J(!1),Z(""),f(s)},E=async(s,l="")=>{s==null||s.preventDefault();const r=y.trim();if(!r){f("Enter a query before searching.");return}const b=t.current+1;t.current=b;const x=()=>t.current===b,o={query:r,order:L,publishedWithin:$,videoDuration:N,eventType:B,safeSearch:A,language:I.trim(),region:R.trim(),maxResults:U};P(!0);const S=H();if(g(S),d.emit("youtube.search.local",{requestSeq:b,q:o.query,order:o.order,pageToken:!!l}),!M()){u({state:"blocked",baseUrl:S,message:"Hosted LocalBridge access is gated."}),Y("Hosted LocalBridge access is gated. Showing local sample results only.","blocked",o),d.emit("youtube.search.fallback",{requestSeq:b,reason:"hosted-localbridge-gated",order:o.order,publishedWithin:o.publishedWithin,videoDuration:o.videoDuration,eventType:o.eventType,safeSearch:o.safeSearch,language:o.language,region:o.region}),P(!1);return}try{const p=await xe(S);if(!x()){d.emit("youtube.search.staleIgnored",{requestSeq:b,stage:"bridge-status"});return}if(u(p),p.state!=="connected"){Y(`${p.message||"LocalBridge is unavailable."} Showing local sample results.`,"fallback",o),d.emit("youtube.search.fallback",{requestSeq:b,reason:"localbridge-unavailable",state:p.state});return}const h=await Se({q:o.query,order:o.order,publishedWithin:o.publishedWithin,videoDuration:o.videoDuration,eventType:o.eventType,safeSearch:o.safeSearch,relevanceLanguage:o.language,regionCode:o.region,maxResults:o.maxResults,pageToken:l},S);if(!x()){d.emit("youtube.search.staleIgnored",{requestSeq:b,stage:"bridge-results"});return}const j=(h.items||[]).map(ze).filter(z=>!!z);O(j),v(l?z=>new Set(j.filter(F=>z.has(F.id)).map(F=>F.id)):new Set),Q(String(h.nextPageToken||"")),G(String(h.prevPageToken||"")),J(h.fromCache===!0),Z(h.fetchedAt||new Date().toISOString()),W("bridge"),f(j.length>0?`Live YouTube search complete: ${j.length} results${h.fromCache?" from cache":""}.`:"Live YouTube search returned no videos."),d.emit("youtube.search.bridge",{requestSeq:b,count:j.length,fromCache:h.fromCache===!0,hasNext:!!h.nextPageToken,hasPrevious:!!h.prevPageToken})}catch(p){if(!x()){d.emit("youtube.search.staleIgnored",{requestSeq:b,stage:"bridge-error"});return}const h=p instanceof Error?p.message:String(p);Y(`${h} Showing local sample results.`,"fallback",o),d.emit("youtube.search.fallback",{requestSeq:b,reason:"bridge-search-error",message:h})}finally{x()&&P(!1)}},he=()=>{we(!0),u({state:"idle",baseUrl:c,message:"Hosted LocalBridge access enabled. Search again to use the live adapter."}),f("Hosted LocalBridge access enabled. Search again to use LocalBridge /api/youtube/search."),d.emit("youtube.bridge.hostedAccess.enabled")},ge=s=>{v(l=>{const r=new Set(l);return r.has(s)?r.delete(s):r.add(s),d.emit("youtube.selection.changed",{count:r.size}),r})},me=()=>{v(new Set(m.map(s=>s.id))),d.emit("youtube.selection.all",{count:m.length})},pe=()=>{v(new Set),d.emit("youtube.selection.clear")},ee=s=>{const l=s==="selected"?D:m;if(l.length===0){f("Select at least one video before creating MindCanvas nodes.");return}const r=Pe(l);je({toolKey:"youtube-search",toolTitle:"YouTube Search",sourceTitle:`YouTube search: ${y.trim()}`,sourceBody:`Filters: order=${L}, period=${$}, duration=${N}, event=${B}, safe=${A}, lang=${I}, region=${R}`,resultTitle:`${l.length} YouTube candidates`,resultBody:r,taskBody:"Turn these YouTube candidates into a MindExec content or research plan. Extract buyer pain, proof angles, and next launch asset ideas.",resultItems:De(l)}),d.emit("youtube.nodes.created",{mode:s,count:l.length}),f(`${l.length} video records prepared for MindCanvas handoff.`),a("/mindcanvas")},ye=n.state==="connected"?"live adapter":n.state==="blocked"?"bridge gated":n.state==="unavailable"?"bridge unavailable":"local bridge ready",ve=w==="bridge"?K?"live cache":"live":w==="blocked"?"gated sample":w==="fallback"?"fallback sample":"sample";return e.jsxs("div",{className:"page youtube-page","data-youtube-bridge-state":n.state,"data-youtube-result-source":w,children:[e.jsxs("section",{className:"youtube-hero",children:[e.jsxs("div",{children:[e.jsx("div",{className:"eyebrow",children:"Content Capture"}),e.jsx("h1",{children:"YouTube Search"}),e.jsx("p",{children:"Search, filter, select, and send video candidates into MindCanvas as research nodes. Live search runs through the LocalBridge YouTube proxy when local bridge access is available."})]}),e.jsx("span",{className:`youtube-badge youtube-badge--${w}`,"data-testid":"youtube-result-source",children:ve})]}),e.jsxs("form",{className:"youtube-search-panel","data-testid":"youtube-search-form",onSubmit:s=>void E(s),children:[e.jsxs("div",{className:"youtube-query-row",children:[e.jsx("input",{"data-testid":"youtube-query-input","aria-label":"YouTube query",value:y,onChange:s=>C(s.target.value),placeholder:"Search terms"}),e.jsxs("button",{className:"btn btn-primary","data-testid":"youtube-search-submit",type:"submit",disabled:T,children:[T?e.jsx(ke,{size:16,className:"spin-icon"}):e.jsx(Ce,{size:16}),"Search"]})]}),e.jsxs("div",{className:"youtube-filter-grid",children:[e.jsx(k,{label:"Order",value:L,options:Be,onChange:ne}),e.jsx(k,{label:"Period",value:$,options:Ae,onChange:re}),e.jsx(k,{label:"Duration",value:N,options:Ie,onChange:oe}),e.jsx(k,{label:"Live",value:B,options:Re,onChange:ie}),e.jsx(k,{label:"Safe search",value:A,options:Ue,onChange:le}),e.jsxs("label",{children:["Language",e.jsx("input",{maxLength:8,value:I,onChange:s=>ce(s.target.value)})]}),e.jsxs("label",{children:["Region",e.jsx("input",{maxLength:4,value:R,onChange:s=>ue(s.target.value)})]}),e.jsxs("label",{children:["Count",e.jsxs("select",{value:U,onChange:s=>de(Number(s.target.value)),children:[e.jsx("option",{value:"5",children:"5"}),e.jsx("option",{value:"10",children:"10"}),e.jsx("option",{value:"25",children:"25"})]})]})]})]}),e.jsxs("section",{className:"youtube-banner","data-testid":"youtube-status-banner",children:[e.jsx(te,{size:18}),e.jsxs("span",{children:[be,e.jsxs("small",{children:[ye,X?`, fetched ${new Date(X).toLocaleTimeString()}`:""]})]}),n.state==="blocked"&&!fe()&&e.jsx("button",{className:"btn btn-secondary","data-testid":"youtube-enable-local-bridge",type:"button",onClick:he,children:"Enable local bridge"})]}),e.jsxs("section",{className:"youtube-actions-row",children:[e.jsxs("div",{children:[e.jsxs("strong",{children:[m.length," results"]}),e.jsxs("span",{children:[D.length," selected",K?" (cache)":""]})]}),e.jsxs("div",{className:"youtube-actions",children:[e.jsx("button",{className:"btn btn-secondary","data-testid":"youtube-select-visible",type:"button",onClick:me,children:"Select visible"}),e.jsx("button",{className:"btn btn-secondary","data-testid":"youtube-clear-selection",type:"button",onClick:pe,children:"Clear"}),e.jsxs("button",{className:"btn btn-primary","data-testid":"youtube-send-selected",type:"button",onClick:()=>ee("selected"),disabled:D.length===0,children:[e.jsx(Le,{size:15}),"Send selected"]}),e.jsx("button",{className:"btn btn-primary","data-testid":"youtube-send-all",type:"button",onClick:()=>ee("all"),disabled:m.length===0,children:"Send all"})]})]}),e.jsxs("section",{className:"youtube-pagination","aria-label":"YouTube result pages",children:[e.jsx("button",{className:"btn btn-secondary",type:"button",onClick:()=>void E(void 0,_),disabled:T||!_,children:"Previous"}),e.jsx("button",{className:"btn btn-secondary",type:"button",onClick:()=>void E(void 0,V),disabled:T||!V,children:"Next"})]}),e.jsx("section",{className:"youtube-results-grid",children:m.map((s,l)=>{const r=q.has(s.id);return e.jsxs("article",{className:`youtube-card ${r?"is-selected":""}`,"data-testid":"youtube-result-card","data-video-id":s.videoId||"",children:[e.jsxs("div",{className:"youtube-card-top",children:[e.jsxs("button",{className:"youtube-select-button","data-testid":"youtube-result-select",type:"button",onClick:()=>ge(s.id),"aria-label":`${r?"Unselect":"Select"} ${s.title}`,children:[r?e.jsx(Te,{size:17}):e.jsx($e,{size:17}),r?"Selected":"Select"]}),e.jsxs("a",{href:s.url,target:"_blank",rel:"noreferrer",children:[e.jsx(Ne,{size:15}),"YouTube"]})]}),e.jsxs("div",{className:"youtube-thumb",children:[s.thumbnailUrl?e.jsx("img",{src:s.thumbnailUrl,alt:"",loading:"lazy"}):e.jsx(te,{size:34}),e.jsx("span",{children:String(l+1).padStart(2,"0")})]}),e.jsx("h2",{children:s.title}),e.jsx("p",{children:s.summary}),e.jsxs("div",{className:"youtube-meta",children:[e.jsx("span",{children:s.channel}),e.jsx("span",{children:s.publishedAt}),e.jsx("span",{children:s.duration}),e.jsxs("span",{children:[s.views," views"]})]})]},s.id)})})]})}function k({label:a,value:t,options:c,onChange:g}){return e.jsxs("label",{children:[a,e.jsx("select",{value:t,onChange:n=>g(n.target.value),children:c.map(n=>e.jsx("option",{value:n,children:n},n))})]})}export{Qe as YouTubeSearchPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.youtube-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:10px}.youtube-hero h1{margin:12px 0 0;max-width:760px;font-size:clamp(38px,5vw,62px);line-height:1;font-weight:920;letter-spacing:0}.youtube-hero p{max-width:760px;margin:18px 0 0;color:var(--copy);font-size:17px;line-height:1.75}.youtube-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(220,38,38,.22);border-radius:999px;color:#b91c1c;background:#fff;font-size:12px;font-weight:850}.youtube-badge--bridge{border-color:#14b8a647;color:#0f766e;background:#f0fdfa}.youtube-badge--fallback,.youtube-badge--blocked{border-color:#f59e0b52;color:#92400e;background:#fffbeb}.youtube-search-panel,.youtube-banner,.youtube-actions-row,.youtube-pagination,.youtube-card{border:1px solid rgba(203,213,225,.82);border-radius:9px;background:#ffffffe6;box-shadow:var(--soft-shadow)}.youtube-search-panel{display:grid;gap:14px;margin-top:22px;padding:18px}.youtube-query-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.youtube-query-row input,.youtube-filter-grid input,.youtube-filter-grid select{width:100%;min-height:42px;border:1px solid rgba(148,163,184,.46);border-radius:9px;padding:10px 12px;color:#0f172a;background:#fff;outline:none}.youtube-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.youtube-filter-grid label{display:grid;gap:7px;color:#475569;font-size:12px;font-weight:830;text-transform:uppercase;letter-spacing:.06em}.youtube-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-top:14px;padding:13px 16px;color:#991b1b;background:#fff7f7}.youtube-banner>svg{flex:0 0 auto}.youtube-banner>span{flex:1 1 auto}.youtube-banner small{display:block;margin-top:3px;color:#64748b;font-size:12px}.youtube-actions-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:14px 16px}.youtube-actions-row>div:first-child{display:flex;align-items:center;gap:12px;color:#64748b}.youtube-actions-row strong{color:#0f172a}.youtube-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.youtube-pagination{display:flex;justify-content:flex-end;gap:10px;margin-top:10px;padding:10px 12px}.youtube-results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;padding-bottom:16px}.youtube-card{min-width:0;display:grid;gap:12px;padding:14px}.youtube-card.is-selected{border-color:#dc26265c;background:snow}.youtube-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.youtube-card-top a,.youtube-select-button{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border-radius:9px;color:#475569;background:#f8fafc;font-size:12px;font-weight:820;text-decoration:none;cursor:pointer}.youtube-select-button{border:1px solid rgba(203,213,225,.86)}.youtube-thumb{position:relative;overflow:hidden;min-height:150px;display:flex;align-items:center;justify-content:space-between;padding:18px;border-radius:9px;color:#fff;background:linear-gradient(135deg,#b91c1cf2,#0f172aeb),#991b1b}.youtube-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.youtube-thumb img+span{position:relative;z-index:1;align-self:flex-end;margin-left:auto;padding:3px 8px;border-radius:999px;color:#fff;background:#0f172ab8;font-size:14px}.youtube-thumb span{font-size:42px;font-weight:920}.youtube-thumb img+span{font-size:14px}.youtube-card h2{margin:0;color:#0f172a;font-size:18px;line-height:1.25}.youtube-card p{margin:0;color:#475569;line-height:1.6}.youtube-meta{display:flex;flex-wrap:wrap;gap:8px}.youtube-meta span{min-height:26px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;color:#475569;background:#f1f5f9;font-size:12px;font-weight:760}@media(max-width:960px){.youtube-filter-grid,.youtube-results-grid{grid-template-columns:1fr}.youtube-hero,.youtube-query-row,.youtube-actions-row{align-items:stretch;flex-direction:column}.youtube-query-row,.youtube-actions-row{grid-template-columns:1fr}.youtube-actions{justify-content:flex-start}}@media(max-width:640px){.youtube-page>*{width:min(100%,calc(100% - 20px))}.youtube-hero h1{font-size:36px;line-height:1.04}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var a=Object.defineProperty;var l=(i,e,n)=>e in i?a(i,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):i[e]=n;var d=(i,e,n)=>l(i,typeof e!="symbol"?e+"":e,n);const c={booting:["board-file-loading","disposed"],"board-file-loading":["resident-building","interactive-resident","interactive-fullres","board-switching","disposed"],"resident-building":["interactive-resident","fullres-handoff","interactive-fullres","board-switching","disposed"],"interactive-resident":["fullres-handoff","board-switching","disposed"],"fullres-handoff":["interactive-fullres","interactive-resident","board-switching","disposed"],"interactive-fullres":["interactive-resident","board-switching","disposed"],"board-switching":["board-file-loading","resident-building","interactive-resident","interactive-fullres","disposed"],disposed:[]};class u{constructor(){d(this,"events",[]);d(this,"maxEvents",3e3);d(this,"phase","booting")}emit(e,n={}){const t={t:performance.now(),type:e,...n};this.events.push(t),this.events.length>this.maxEvents&&this.events.shift(),typeof document<"u"&&(document.documentElement.dataset.runtimeTraceCount=String(this.events.length),document.documentElement.dataset.runtimeTraceLast=e),window.RUNTIME_TRACE_CONSOLE===!0&&console.info("[RuntimeTrace]",t)}transitionTo(e,n){const t=this.phase,s=c[t].includes(e);r(s,"phase-transition-not-allowed",{from:t,to:e,reason:n}),s&&(this.phase=e,this.emit("runtime.phase",{from:t,to:e,reason:n}))}dump(){return[...this.events]}clear(){this.events=[],typeof document<"u"&&(document.documentElement.dataset.runtimeTraceCount="0",delete document.documentElement.dataset.runtimeTraceLast)}}const f=typeof window>"u"?void 0:window.RuntimeTrace,o=f??new u;typeof window<"u"&&(window.RuntimeTrace=o);function r(i,e,n={}){const t=window.RuntimeDevGuards;if(t&&t.enabled===!1||i)return;const s={name:e,...n};if(console.error(`[Invariant failed] ${e}`,s),o.emit("invariant.failed",s),t!=null&&t.failFast)throw new Error(`[Invariant failed] ${e}`)}function h(){const i=window;i.RuntimeTrace=o,i.RuntimeDevGuards={enabled:!0,failFast:!1,assert:r}}export{o as R,h as i};
|