@mindexec/cli 0.2.379 → 0.2.381

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.
@@ -0,0 +1 @@
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 +1 @@
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-De6zm3_M.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-CuJuASQT.js";import{an as I,aQ as L,c as D,ad as $}from"./vendor-icons-DE3gIReG.js";import"./canvas-runtime-D3amtMwe.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
+ 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-DlyqQyXw.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-CuJuASQT.js";import{an as I,aQ as L,c as D,ad as $}from"./vendor-icons-DE3gIReG.js";import"./canvas-runtime-D3amtMwe.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,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/supabaseAuthAdapter-CuJuASQT.js","assets/productionAdapterConfig-C5jfk6oG.js","assets/canvas-runtime-D3amtMwe.js","assets/vendor-react-BXzpOyCS.js","assets/app-runtime-xD2Z3NdN.js","assets/vendor-icons-DE3gIReG.js","assets/MindCanvas-wBB9fMPS.js","assets/storage-RP5Dyxmq.js","assets/runtimeSettingsPersistenceProjection-BoNWmYjU.js","assets/vendor-msgpack-BE8aAsr3.js","assets/toolHandoff-D5e5f7t5.js","assets/executionModeSettings-NJqurj-o.js","assets/MindCanvas-Dbwuzfbv.css","assets/PlanMasterPage-juSUgUYZ.js","assets/PlanMasterPage-CJ36rep-.css","assets/PricingPage-7NW6HJxV.js","assets/LaunchLeadCapture-Bx9LM0IX.js","assets/LaunchLeadCapture-CiRI1shz.css","assets/pricingCheckoutShell-O-DnwmbU.js","assets/PricingPage-Cg_0i_ZR.css","assets/AuthPages-BtLsYX_F.js","assets/AuthPages-BrH6kRcv.css","assets/ToolPages-n6d8tLbT.js","assets/marketingTools-DN_rnHeB.js","assets/ToolPages-DIB187pZ.css","assets/YouTubeSearchPage-52qOcKbo.js","assets/YouTubeSearchPage-IPPa_BIH.css","assets/CompanyCorePage-CVw3X796.js","assets/CompanyCorePage-ChBnq1ve.css","assets/AdminDashboardPage-CptFPV__.js","assets/AdminDashboardPage-B2vz2Px9.css","assets/CodePage-CtcukAw7.js","assets/code-agent-runtime-B5PPZd1t.js","assets/CodePage-Bncc352E.css","assets/ExecutionModePage-BxZvRmyD.js","assets/ExecutionModePage-TLuld9l3.css","assets/MarketingHome-BsyerRpe.js","assets/MarketingHome-DPzaYzA_.css","assets/AppSidebar-6q9MElKP.js"])))=>i.map(i=>d[i]);
2
- var q=Object.defineProperty;var G=(e,t,o)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var x=(e,t,o)=>G(e,typeof t!="symbol"?t+"":t,o);import{r as i,j as r,R as Y}from"./vendor-react-BXzpOyCS.js";import{R as h,i as X}from"./app-runtime-xD2Z3NdN.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const c of a)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function o(a){const c={};return a.integrity&&(c.integrity=a.integrity),a.referrerPolicy&&(c.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?c.credentials="include":a.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function n(a){if(a.ep)return;a.ep=!0;const c=o(a);fetch(a.href,c)}})();const J="modulepreload",Q=function(e){return"/"+e},U={},b=function(t,o,n){let a=Promise.resolve();if(o&&o.length>0){let u=function(p){return Promise.all(p.map(d=>Promise.resolve(d).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),m=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));a=u(o.map(p=>{if(p=Q(p),p in U)return;U[p]=!0;const d=p.endsWith(".css"),y=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${y}`))return;const g=document.createElement("link");if(g.rel=d?"stylesheet":J,d||(g.as="script"),g.crossOrigin="",g.href=p,m&&g.setAttribute("nonce",m),document.head.appendChild(g),d)return new Promise((f,k)=>{g.addEventListener("load",f),g.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${p}`)))})}))}function c(u){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=u,window.dispatchEvent(s),!s.defaultPrevented)throw u}return a.then(u=>{for(const s of u||[])s.status==="rejected"&&c(s.reason);return t().catch(c)})},L="mindexec-local-auth-shell-v2",Z="mindexec-react-auth-shell-session-changed",ee="supabase-callback@mindexec.local";function te(e){const t=e;return!!(t&&typeof t=="object"&&typeof t.userId=="string"&&typeof t.email=="string"&&t.provider==="Google"&&typeof t.signedInAt=="string")}function oe(e){const t=e.toLowerCase();return t.includes("access_token=")||t.includes("refresh_token=")||t.includes("provider_token=")||t.includes("provider_refresh_token=")||t.includes("expires_in=")||t.includes("token_type=")||t.includes("type=recovery")||t.includes("type=invite")||t.includes("error=")||t.includes("error_description=")||t.includes("code=")}function ae(e){const t=e.split("=",2)[0].toLowerCase();return t==="access_token"||t==="refresh_token"||t==="provider_token"||t==="provider_refresh_token"||t==="expires_in"||t==="expires_at"||t==="token_type"||t==="type"||t==="error"||t==="error_code"||t==="error_description"||t==="code"}function I(e){const t=e.trim().replace(/^[?#]/,"");return t?t.split("&").filter(Boolean).filter(n=>!ae(n)).join("&"):""}function ne(e){const t=(e||"").trim();if(!t||!t.startsWith("/")||t.startsWith("//")||t.includes("\\"))return"";try{const o=new URL(t,window.location.origin);return o.origin!==window.location.origin?"":`${o.pathname}${o.search}${o.hash}`}catch{return""}}function re(e){const t=new URL(e,window.location.origin),o=`${t.search}&${t.hash}`,n=oe(o);if(!n)return{hasAuthPayload:!1,cleanedPath:`${t.pathname}${t.search}${t.hash}`,shouldCreateLocalShell:!1,shouldRouteToMindCanvas:!1,hasError:!1,hasRecovery:!1,hasInvite:!1,hasCode:!1,hasToken:!1};const a=I(t.search),c=I(t.hash),u=/(?:^|[&#?])error=/i.test(o)||/(?:^|[&#?])error_description=/i.test(o),s=/(?:^|[&#?])type=recovery(?:&|$)/i.test(o),m=/(?:^|[&#?])type=invite(?:&|$)/i.test(o),p=/(?:^|[&#?])code=/i.test(o),d=/(?:^|[&#?])(?:access_token|refresh_token)=/i.test(o),y=ne(t.searchParams.get("next"));let g=`${t.pathname}${a?`?${a}`:""}${c?`#${c}`:""}`;const f=t.pathname==="/"||t.pathname==="",k=t.pathname==="/login",E=!u&&!s&&!m&&(p||d),l=E&&!y&&(f||k);if(y&&E)g=y;else if(l){const v=new URLSearchParams(a);v.delete("next");const S=v.toString();g=`/mindcanvas${S?`?${S}`:""}`}return{hasAuthPayload:n,cleanedPath:g,shouldCreateLocalShell:!u&&!s&&!m&&(p||d),shouldRouteToMindCanvas:l,hasError:u,hasRecovery:s,hasInvite:m,hasCode:p,hasToken:d}}function se(e){return`local-google-${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-")||"user"}`}function O(e){try{window.dispatchEvent(new CustomEvent(Z,{detail:{signedIn:!!e,source:(e==null?void 0:e.source)??"cleared",hasEmail:!!(e!=null&&e.email)}}))}catch{}}function nt(){try{const e=window.localStorage.getItem(L);if(!e)return null;const t=JSON.parse(e);return te(t)?t:null}catch{return null}}function ie(e="builder@mindexec.local",t="manual-google-shell"){const o=e.trim().toLowerCase()||"builder@mindexec.local",n={userId:typeof crypto<"u"&&"randomUUID"in crypto?`local-google-${crypto.randomUUID()}`:se(o),email:o,provider:"Google",signedInAt:new Date().toISOString(),source:t};return B(n)}function B(e){try{window.localStorage.setItem(L,JSON.stringify(e))}catch{}return h.emit(e.source==="supabase-provider-session"?"auth.supabase.sessionShell":"auth.google.localShell",{provider:e.provider,hasEmail:!!e.email,source:e.source}),O(e),e}function rt(){try{window.localStorage.removeItem(L)}catch{}h.emit("auth.localShell.cleared"),O(null)}const le={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},ce="mindexec-production-adapter-runtime-env-loaded";function H(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function w(e,t){let o=e;for(const n of t){if(!H(o))return"";o=o[n]}return typeof o=="string"?o.trim():""}function de(e,t){let o=e;for(const n of t){if(!H(o)||!(n in o))return null;o=o[n]}if(typeof o=="boolean")return o;if(typeof o=="string"){const n=o.trim().toLowerCase();if(["1","true","yes","on"].includes(n))return!0;if(["0","false","no","off"].includes(n))return!1}return null}function A(e,t,o){o&&(e[t]=o)}function ue(e,t,o){o!==null&&(e[t]=String(o))}function pe(e){return de(e,["ProjectStorage","CloudProjectsEnabled"])}function me(e){const t=w(e,["Supabase","Url"]),o=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),n=w(e,["Supabase","ServiceRoleKey"]);return!!(t&&o&&!n)}function he(e){const t={},o=pe(e),n=me(e),a=w(e,["Supabase","Url"]),c=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),u=w(e,["CloudflareR2","PublicBaseUrl"])||w(e,["CloudStorage","PublicBaseUrl"])||w(e,["CloudStorage","PublicUrl"]);return ue(t,"VITE_MINDEXEC_CLOUD_PROJECTS_ENABLED",o),n&&(A(t,"VITE_MINDEXEC_SUPABASE_URL",a),A(t,"VITE_MINDEXEC_SUPABASE_PUBLISHABLE_KEY",c)),A(t,"VITE_MINDEXEC_CLOUD_STORAGE_PUBLIC_URL",u),t}function ge(){return le??{}}function K(){return typeof window>"u"?{}:window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__??{}}function fe(e){if(!(typeof window>"u")){window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__={...K(),...e};try{window.dispatchEvent(new CustomEvent(ce,{detail:{keys:Object.keys(e).sort()}}))}catch{}}}function _(){return{...K(),...ge()}}let T=null;async function $(e=typeof fetch=="function"?fetch.bind(globalThis):null){return typeof window>"u"||!e?_():T||(T=(async()=>{try{const t=await e("/appsettings.json",{cache:"no-store",credentials:"same-origin"});if(!t.ok)return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:`http-${t.status}`}),_();const o=t.headers.get("content-type")||"";if(o&&!o.toLowerCase().includes("json"))return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:"non-json-response"}),_();const n=await t.json(),a=he(n);return fe(a),h.emit("productionAdapter.runtimeConfig.loaded",{source:"appsettings.json",keys:Object.keys(a).sort()}),_()}catch(t){return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:t instanceof Error?t.message:String(t)}),_()}})(),T)}function be({onRouteReplaced:e}){const t=i.useRef(!1);return i.useEffect(()=>{if(t.current)return;t.current=!0,(async()=>{const n=window.location.href,a=re(n);if(!a.hasAuthPayload)return;const c=await $();let u={mode:"not-checked",canAttempt:!1},s=!1,m="",p=!1,d=null,y=null;if(!a.hasError&&!a.hasRecovery&&!a.hasInvite&&(a.hasCode||a.hasToken)){const{completeSupabaseAuthCallback:f,resolveSupabaseAuthAdapterState:k,syncSupabaseAuthSessionToLocalBridge:E}=await b(async()=>{const{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}=await import("./supabaseAuthAdapter-CuJuASQT.js");return{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}},__vite__mapDeps([0,1,2,3,4,5]));u=k(c),p=u.canAttempt,d=f,y=E}if(p&&d)try{const f=await d(c,n);f.session&&(B({...f.session,source:"supabase-provider-session"}),s=!0,y&&await y(c,"auth-callback"))}catch(f){m=f instanceof Error?f.message:String(f)}else a.shouldCreateLocalShell&&ie(ee,"supabase-callback-shell");h.emit(a.hasError||m?"auth.callback.error":"auth.callback.cleaned",{cleanedPath:a.cleanedPath,shouldCreateLocalShell:!p&&a.shouldCreateLocalShell,shouldRouteToMindCanvas:a.shouldRouteToMindCanvas,hasCode:a.hasCode,hasToken:a.hasToken,hasRecovery:a.hasRecovery,hasInvite:a.hasInvite,providerMode:u.mode,providerAttempted:p,providerSessionCreated:s,providerError:m});const g=`${window.location.pathname}${window.location.search}${window.location.hash}`;a.cleanedPath!==g&&(window.history.replaceState({authCallbackCleaned:!0},"",a.cleanedPath),e("auth-callback-bootstrap"))})()},[e]),null}class ye extends i.Component{constructor(){super(...arguments);x(this,"state",{error:null});x(this,"retry",()=>{this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{resetKey:this.props.resetKey,reason:"manual-retry"})})}static getDerivedStateFromError(o){return{error:o}}componentDidCatch(o,n){const a=(o==null?void 0:o.message)||"Unknown runtime error.";h.emit("runtime.errorBoundary.caught",{resetKey:this.props.resetKey,message:a,stack:(o==null?void 0:o.stack)||"",componentStack:n.componentStack}),console.error("[LoggingErrorBoundary] Unhandled React error.",o,n)}componentDidUpdate(o){o.resetKey!==this.props.resetKey&&this.state.error&&(this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{from:o.resetKey,to:this.props.resetKey,reason:"route-change"}))}render(){const{error:o}=this.state;return o?r.jsx("div",{className:"page runtime-error-page","data-testid":"runtime-error-boundary","data-error-boundary-reset-key":this.props.resetKey,children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Runtime Guard"}),r.jsx("h1",{children:"Something broke inside this React surface."}),r.jsx("p",{children:"The error was captured locally so the whole app shell can stay recoverable."}),r.jsxs("div",{className:"runtime-error-message","data-testid":"runtime-error-boundary-message",children:[r.jsx("span",{className:"runtime-error-symbol","aria-hidden":"true",children:"!"}),r.jsx("span",{children:o.message||"Unknown runtime error."})]}),r.jsxs("div",{className:"action-row",children:[r.jsx("button",{className:"btn btn-primary",type:"button",onClick:this.retry,"data-testid":"runtime-error-boundary-retry",children:"Retry"}),this.props.onNavigateHome&&r.jsx("button",{className:"btn btn-secondary",type:"button",onClick:this.props.onNavigateHome,"data-testid":"runtime-error-boundary-home",children:"MindCanvas"})]})]})}):this.props.children}}const we="main",ve="h1",R="data-route-focus-target",ke=30;function Pe({route:e,rootSelector:t=we,selector:o=ve}){return i.useEffect(()=>{let n=!1,a=0;const c=u=>{if(n)return;const s=document.querySelector(t),m=(s==null?void 0:s.querySelector(o))??document.querySelector(o);for(const p of document.querySelectorAll(`[${R}="true"]`))p.removeAttribute(R);if(!m){if(u<ke){a=window.requestAnimationFrame(()=>c(u+1));return}h.emit("route.focusOnNavigate.skipped",{route:e,selector:o,reason:"missing-target",attempts:u});return}m.hasAttribute("tabindex")||m.setAttribute("tabindex","-1"),m.setAttribute(R,"true"),m.focus({preventScroll:!1}),h.emit("route.focusOnNavigate.applied",{route:e,selector:o,tagName:m.tagName.toLowerCase(),text:(m.textContent||"").trim().slice(0,90),attempts:u})};return a=window.requestAnimationFrame(()=>c(1)),()=>{n=!0,window.cancelAnimationFrame(a)}},[e,t,o]),null}const Ee=[{key:"markdown-viewer",liveUrl:"https://mdview-die.pages.dev",hostnames:["mdview.pages.dev","mdview-die.pages.dev","mdview.mindexec.io","markdown-viewer.pages.dev","markdown-viewer.mindexec.io"],title:"Free Online Markdown Viewer",heroEyebrow:"Free online markdown viewer",heroTitle:"Preview Markdown instantly in your browser",heroSubtitle:"Paste or open a markdown file, review the rendered result, and move bigger writing work into MindCanvas when it needs structure.",privacyNote:"Runs locally in your browser. No upload required."},{key:"bulk-markdown-viewer",liveUrl:"https://bulkmd.pages.dev",hostnames:["bulkmd.pages.dev","bulkmd.mindexec.io","bulk-markdown-viewer.pages.dev","bulk-markdown-viewer.mindexec.io"],title:"Bulk Markdown Viewer",heroEyebrow:"Bulk markdown preview",heroTitle:"Review multiple markdown snippets at once",heroSubtitle:"Paste a stack of markdown entries and scan them locally before turning the useful pieces into a MindCanvas board.",privacyNote:"Local browser-only preview. No account and no upload step."},{key:"readme-previewer",liveUrl:"https://readme-1o4.pages.dev",hostnames:["readme.pages.dev","readme-1o4.pages.dev","readme-previewer.pages.dev","readme.mindexec.io","readme-previewer.mindexec.io"],title:"README Previewer",heroEyebrow:"README previewer",heroTitle:"Preview README markdown before you publish",heroSubtitle:"Check headings, tables, links, and launch notes quickly, then keep bigger documentation work organized in MindCanvas.",privacyNote:"Local preview for README text. No repository access required."},{key:"markdown-to-html",liveUrl:"https://md2html-4r7.pages.dev",hostnames:["md2html.pages.dev","md2html-4r7.pages.dev","md2html.mindexec.io","markdown-to-html.pages.dev","markdown-to-html.mindexec.io"],title:"Markdown to HTML Preview",heroEyebrow:"Markdown to HTML",heroTitle:"Turn markdown into clean HTML preview",heroSubtitle:"Render markdown locally, copy the HTML shape, and move reusable publishing notes into MindCanvas.",privacyNote:"Conversion runs in-browser and keeps your text local."},{key:"markdown-outline",liveUrl:"https://mdoutln.pages.dev",hostnames:["mdoutln.pages.dev","mdoutln.mindexec.io","markdown-outline.pages.dev","markdown-outline.mindexec.io"],title:"Markdown Outline Generator",heroEyebrow:"Markdown outline generator",heroTitle:"Extract a document outline from markdown",heroSubtitle:"Scan headings, section depth, and missing structure before your document becomes a larger project.",privacyNote:"Outline extraction runs locally in this browser."},{key:"markdown-table-formatter",liveUrl:"https://mdtable-3ik.pages.dev",hostnames:["mdtable.pages.dev","mdtable-3ik.pages.dev","mdtable.mindexec.io","markdown-table-formatter.pages.dev","markdown-table-formatter.mindexec.io"],title:"Markdown Table Formatter",heroEyebrow:"Markdown table formatter",heroTitle:"Clean up markdown tables locally",heroSubtitle:"Paste a rough markdown table and get a cleaner version for docs, READMEs, and launch notes.",privacyNote:"Table formatting happens locally with no upload."},{key:"markdown-link-checker",liveUrl:"https://markdown-link-checker.pages.dev",hostnames:["mdcheck.pages.dev","markdown-link-checker.pages.dev","mdcheck.mindexec.io","markdown-link-checker.mindexec.io"],title:"Markdown Link Checker",heroEyebrow:"Markdown link checker",heroTitle:"Catch risky markdown links before publishing",heroSubtitle:"Find empty, localhost, JavaScript, and suspicious links locally before a README or docs page goes live.",privacyNote:"Link checks run locally against the pasted markdown."},{key:"browser-notepad",liveUrl:"https://quickpad.pages.dev",hostnames:["quickpad.pages.dev","quickpad.mindexec.io","browser-notepad.pages.dev","browser-notepad.mindexec.io"],title:"Browser Notepad",heroEyebrow:"Browser notepad",heroTitle:"Write quick notes without a sign-in",heroSubtitle:"Capture rough thoughts locally, then move the notes worth keeping into MindCanvas.",privacyNote:"Notes are stored locally in this browser unless you copy them elsewhere."},{key:"clipboard-board",liveUrl:"https://clipbrd.pages.dev",hostnames:["clipbrd.pages.dev","clipbrd.mindexec.io","clipboard-board.pages.dev","clipboard-board.mindexec.io"],title:"Local Clipboard Board",heroEyebrow:"Local clipboard board",heroTitle:"Collect snippets into a small local board",heroSubtitle:"Paste short ideas, snippets, and fragments into one local surface before promoting the useful set to MindCanvas.",privacyNote:"Clipboard notes stay local to this browser session."}];function N(e){const t=e.toLowerCase().replace(/^www\./,"");return Ee.find(o=>o.hostnames.some(n=>n.toLowerCase()===t))}const Ce={enabled:!1,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:"",heroEyebrow:"Free local tool",heroTitle:"",heroSubtitle:"",primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"",secondaryCtaHref:"",publicUrl:"",privacyNote:"Runs locally in your browser. No login. No database storage."},_e={enableAgentWorkspace:!0,enableCodeWorkspace:!0,enablePlanWorkspace:!0,enableCompanyCore:!0,enableExecutionTest:!0,enableTemplateStudio:!0,enableProjectPopup:!0,enablePromptDebugger:!0,enablePointBadge:!0,enableResetData:!0},P={variantKey:"platform",slug:"mindexec",brandName:"MindExec",productName:"MindCanvas",appTitle:"MindExec",workspaceNounSingular:"canvas",workspaceNounPlural:"canvases",signInTitle:"Welcome Back",signUpTitle:"Create Account",signInSubtitle:"Sign in to access your MindCanvas workspace.",signUpSubtitle:"Sign up to start organizing your ideas on a visual canvas.",primaryCheckoutProvider:"dodo",runtimeHost:"",canonicalHost:"mindexec.pages.dev",features:_e,marketingTool:Ce};function z(e){const t=j(e),o=N(t);return o?Ae(t,o):{...P,runtimeHost:t,canonicalHost:P.canonicalHost,features:{...P.features},marketingTool:{...P.marketingTool}}}function Se(e){return e.marketingTool.enabled?D(e.marketingTool.homeRoute):"/"}function F(e){return e.marketingTool.enabled&&e.marketingTool.toolKey?`/tools/${e.marketingTool.toolKey}`:Se(e)}function Te(e,t){const o=j(e.canonicalHost||e.runtimeHost);return o?`https://${o}${D(t)}`:""}function V(e,t){if(e.marketingTool.enabled&&!e.marketingTool.allowMindCanvasRoute&&(t==="/mindcanvas"||t==="/mindmap"))return!1;switch(t){case"/agent":return e.features.enableAgentWorkspace;case"/code":return e.features.enableCodeWorkspace;case"/planmaster":case"/planagent":return e.features.enablePlanWorkspace;case"/company-core":return e.features.enableCompanyCore;case"/execution-mode":return e.features.enableExecutionTest;default:return!0}}function xe(e,t){const o=V(e,t),n=F(e),a=o?t:n;return{route:t,enabled:o,fallbackRoute:n,canonicalUrl:Te(e,a),title:Re(e,a),description:Me(e,a)}}function j(e){const t=String(e??"").trim();if(!t)return"";try{return new URL(t).hostname.trim().toLowerCase().replace(/^www\./,"")}catch{return t.trim().replace(/^https?:\/\//i,"").replace(/^www\./,"").replace(/\/+$/,"").toLowerCase()}}function D(e){if(!e||!String(e).trim())return"/";let t=String(e).trim();return t.startsWith("/")||(t=`/${t}`),t.length>1&&(t=t.replace(/\/+$/,"")),t||"/"}function Ae(e,t){const o=j(t.liveUrl)||e;return{...P,variantKey:"mini-tool",slug:t.key,brandName:t.title,productName:t.title,appTitle:`${t.title} - Free local browser tool`,runtimeHost:e,canonicalHost:o,features:{...P.features,enableAgentWorkspace:!1,enableCodeWorkspace:!1,enablePlanWorkspace:!1,enableCompanyCore:!1,enableExecutionTest:!1,enableTemplateStudio:!1,enableProjectPopup:!1,enablePromptDebugger:!1,enablePointBadge:!1,enableResetData:!1},marketingTool:{...P.marketingTool,enabled:!0,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:t.key,heroEyebrow:t.heroEyebrow,heroTitle:t.heroTitle,heroSubtitle:t.heroSubtitle,primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"More free tools",secondaryCtaHref:"https://mindexec.pages.dev/tools",publicUrl:t.liveUrl,privacyNote:t.privacyNote}}}function Re(e,t){if(e.marketingTool.enabled&&t.startsWith("/tools/"))return e.appTitle;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas | MindExec";case"/planmaster":case"/planagent":return"PlanMaster | MindExec";case"/pricing":return"MindExec Pricing";case"/login":return e.signInTitle;case"/forgot-password":return"Reset your MindExec password";case"/reset-password":return"Set a new MindExec password";case"/tools":return"Free Browser Tools | MindExec";case"/youtube":return"YouTube Capture | MindExec";case"/code":return"CodeMaster | MindExec";case"/agent":return"Agent Workspace | MindExec";case"/execution-mode":return"Execution Mode | MindExec";case"/company-core":return"Company Core | MindExec";case"/admin/dashboard":return"Admin Dashboard | MindExec";case"/not-found":return"Content not found | MindExec";case"/":default:return e.appTitle}}function Me(e,t){if(e.marketingTool.enabled)return e.marketingTool.heroSubtitle||e.marketingTool.privacyNote;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas keeps notes, assets, AI tasks, and execution evidence together on a local-first visual board.";case"/planmaster":case"/planagent":return"PlanMaster turns goals into practical plans, stages, and execution checklists.";case"/pricing":return"MindExec pricing for free local tools and paid MindCanvas project workflows.";case"/tools":return"Free local browser tools that feed larger MindExec and MindCanvas workflows.";case"/code":case"/agent":return"CodeMaster previews code workflows and adapter-gated agent execution for local projects.";case"/execution-mode":return"Execution Mode tests deterministic browser-local Concept IR before live adapters are connected.";case"/company-core":return"Company Core organizes SaaS blueprint, growth, approval, and publishing decisions.";default:return"MindExec is an AI execution canvas for solo builders, researchers, developers, and creators."}}const Le=i.lazy(()=>b(async()=>{const{MindCanvas:e}=await import("./MindCanvas-wBB9fMPS.js");return{MindCanvas:e}},__vite__mapDeps([6,3,7,2,4,5,8,9,1,0,10,11,12])).then(({MindCanvas:e})=>({default:e}))),Ne=i.lazy(()=>b(async()=>{const{PlanMasterPage:e}=await import("./PlanMasterPage-juSUgUYZ.js");return{PlanMasterPage:e}},__vite__mapDeps([13,3,7,2,4,5,8,14])).then(({PlanMasterPage:e})=>({default:e}))),je=i.lazy(()=>b(async()=>{const{PricingPage:e}=await import("./PricingPage-7NW6HJxV.js");return{PricingPage:e}},__vite__mapDeps([15,3,16,4,5,17,18,1,0,2,19])).then(({PricingPage:e})=>({default:e}))),De=i.lazy(()=>b(async()=>{const{LoginPage:e}=await import("./AuthPages-BtLsYX_F.js");return{LoginPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({LoginPage:e})=>({default:e}))),Ue=i.lazy(()=>b(async()=>{const{ForgotPasswordPage:e}=await import("./AuthPages-BtLsYX_F.js");return{ForgotPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ForgotPasswordPage:e})=>({default:e}))),Ie=i.lazy(()=>b(async()=>{const{ResetPasswordPage:e}=await import("./AuthPages-BtLsYX_F.js");return{ResetPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ResetPasswordPage:e})=>({default:e}))),Oe=i.lazy(()=>b(async()=>{const{ToolsDirectoryPage:e}=await import("./ToolPages-n6d8tLbT.js");return{ToolsDirectoryPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({ToolsDirectoryPage:e})=>({default:e}))),Be=i.lazy(()=>b(async()=>{const{MarketingToolPage:e}=await import("./ToolPages-n6d8tLbT.js");return{MarketingToolPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({MarketingToolPage:e})=>({default:e}))),He=i.lazy(()=>b(async()=>{const{YouTubeSearchPage:e}=await import("./YouTubeSearchPage-52qOcKbo.js");return{YouTubeSearchPage:e}},__vite__mapDeps([25,3,2,4,5,10,26])).then(({YouTubeSearchPage:e})=>({default:e}))),Ke=i.lazy(()=>b(async()=>{const{CompanyCorePage:e}=await import("./CompanyCorePage-CVw3X796.js");return{CompanyCorePage:e}},__vite__mapDeps([27,3,2,4,5,28])).then(({CompanyCorePage:e})=>({default:e}))),$e=i.lazy(()=>b(async()=>{const{AdminDashboardPage:e}=await import("./AdminDashboardPage-CptFPV__.js");return{AdminDashboardPage:e}},__vite__mapDeps([29,3,1,4,0,2,5,30])).then(({AdminDashboardPage:e})=>({default:e}))),ze=i.lazy(()=>b(async()=>{const{CodePage:e}=await import("./CodePage-CtcukAw7.js");return{CodePage:e}},__vite__mapDeps([31,3,2,4,5,11,8,32,33])).then(({CodePage:e})=>({default:e}))),Fe=i.lazy(()=>b(async()=>{const{ExecutionModePage:e}=await import("./ExecutionModePage-BxZvRmyD.js");return{ExecutionModePage:e}},__vite__mapDeps([34,3,2,4,5,11,8,35])).then(({ExecutionModePage:e})=>({default:e}))),Ve=i.lazy(()=>b(async()=>{const{MarketingHome:e}=await import("./MarketingHome-BsyerRpe.js");return{MarketingHome:e}},__vite__mapDeps([36,3,16,4,5,17,23,37])).then(({MarketingHome:e})=>({default:e}))),We=i.lazy(()=>b(async()=>{const{AppSidebar:e}=await import("./AppSidebar-6q9MElKP.js");return{AppSidebar:e}},__vite__mapDeps([38,3,1,4,5])).then(({AppSidebar:e})=>({default:e}))),qe=new Set(["/","/mindcanvas","/planmaster","/tools","/youtube","/code","/pricing","/company-core","/login"]);function Ge(e,t=window.location.hostname){const o=N(t);if(o&&(e==="/"||e==="/tools"))return`/tools/${o.key}`;if(e==="/agent")return"/agent";if(e==="/forgot-password")return"/forgot-password";if(e==="/reset-password")return"/reset-password";let n="/not-found";return e==="/"?n="/":e==="/mindmap"?n="/mindmap":e==="/planagent"?n="/planagent":e==="/execution-mode"?n="/execution-mode":e==="/not-found"?n="/not-found":e.startsWith("/tools/")&&(n=e),qe.has(e)?n=e:e==="/admin/dashboard"&&(n="/admin/dashboard"),n}function Ye(e,t=window.location.hostname){const o=z(t),n=Ge(e,t);return V(o,n)?n:F(o)}function W(e,t=window.location.hostname){const o=Ye(e,t);return{route:o,stalePath:o==="/not-found"&&e!=="/not-found"?e:""}}function M(e){const t=window.location.pathname,{route:o,stalePath:n}=W(t,window.location.hostname);return o==="/not-found"&&t!=="/not-found"?(window.history.replaceState({stalePath:t},"","/not-found"),h.emit("route.notFound.normalize",{source:e,from:n||t,to:"/not-found"})):D(t)!==o&&!(t==="/"&&o.startsWith("/tools/"))&&!(t==="/tools"&&o.startsWith("/tools/"))&&(window.history.replaceState({stalePath:t},"",o),h.emit("productProfile.route.fallback",{source:e,from:t,to:o})),o}function C(e,t,o){if(o===void 0){delete e.dataset[t];return}e.dataset[t]=o}function Xe(){const e=i.useMemo(()=>z(window.location.hostname),[]),t=i.useMemo(()=>N(window.location.hostname),[]),[o,n]=i.useState(()=>W(window.location.pathname,window.location.hostname).route),a=o==="/mindcanvas"||o==="/mindmap",[c,u]=i.useState(()=>a),s=i.useMemo(()=>xe(e,o),[e,o]),[m,p]=i.useState([]);i.useEffect(()=>{n(M("initial"));const l=()=>n(M("popstate"));return window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l)},[]);const d=i.useCallback(l=>{window.history.pushState({},"",l),n(l)},[]),y=i.useCallback(l=>{n(M(l))},[]);i.useEffect(()=>{!a||c||(u(!0),h.emit("route.keepAlive.mindcanvas",{route:o,mounted:!0,source:"route-activate"}))},[a,c,o]);const g=o==="/planmaster"||o==="/planagent",f=o.startsWith("/tools/")?o.slice(7):null,k=e.marketingTool.enabled&&e.marketingTool.hideAppChrome,E=c||a;return i.useEffect(()=>{const l=document.documentElement,v={productProfile:l.dataset.productProfile,productVariant:l.dataset.productVariant,canonicalHost:l.dataset.canonicalHost,routeCanonical:l.dataset.routeCanonical,routeEnabled:l.dataset.routeEnabled,marketingToolKey:l.dataset.marketingToolKey};return l.dataset.productProfile=e.slug,l.dataset.productVariant=e.variantKey,l.dataset.canonicalHost=e.canonicalHost,l.dataset.routeCanonical=s.canonicalUrl,l.dataset.routeEnabled=s.enabled?"true":"false",e.marketingTool.toolKey?l.dataset.marketingToolKey=e.marketingTool.toolKey:delete l.dataset.marketingToolKey,h.emit("productProfile.route.applied",{route:o,variantKey:e.variantKey,slug:e.slug,canonicalHost:e.canonicalHost,canonicalUrl:s.canonicalUrl,routeEnabled:s.enabled,fallbackRoute:s.fallbackRoute,marketingToolKey:e.marketingTool.toolKey}),()=>{C(l,"productProfile",v.productProfile),C(l,"productVariant",v.productVariant),C(l,"canonicalHost",v.canonicalHost),C(l,"routeCanonical",v.routeCanonical),C(l,"routeEnabled",v.routeEnabled),C(l,"marketingToolKey",v.marketingToolKey)}},[e.canonicalHost,e.marketingTool.toolKey,e.slug,e.variantKey,o,s.canonicalUrl,s.enabled,s.fallbackRoute]),r.jsxs("div",{className:`${a?"app app--canvas":"app"} ${k?"app--mini-tool":""}`,"data-product-profile":e.slug,"data-product-variant":e.variantKey,"data-canonical-host":e.canonicalHost,"data-route-enabled":s.enabled?"true":"false","data-route-canonical":s.canonicalUrl,"data-marketing-tool-key":e.marketingTool.toolKey||void 0,children:[!k&&r.jsx(i.Suspense,{fallback:r.jsx(Qe,{}),children:r.jsx(We,{route:o,navigate:d,canvasActions:a?m:[]})}),r.jsxs("main",{className:"app-main",children:[r.jsx(be,{onRouteReplaced:y}),r.jsx(Pe,{route:o}),r.jsx(ye,{resetKey:o,onNavigateHome:()=>d("/mindcanvas"),children:r.jsxs(i.Suspense,{fallback:r.jsx(Je,{route:o}),children:[o==="/"&&r.jsx(Ve,{navigate:d}),E&&r.jsx("section",{className:"route-keepalive route-keepalive--mindcanvas","data-testid":"mindcanvas-keepalive-host","data-route-keepalive":"mindcanvas","data-route-active":a?"true":"false",hidden:!a,"aria-hidden":a?void 0:"true",children:r.jsx(Le,{navigate:d,onSidebarActionsChange:p})}),g&&r.jsx(Ne,{navigate:d}),o==="/pricing"&&r.jsx(je,{navigate:d}),o==="/login"&&r.jsx(De,{navigate:d}),o==="/forgot-password"&&r.jsx(Ue,{navigate:d}),o==="/reset-password"&&r.jsx(Ie,{navigate:d}),o==="/tools"&&r.jsx(Oe,{navigate:d}),f&&r.jsx(Be,{toolKey:f,navigate:d,miniHost:(t==null?void 0:t.key)===f}),o==="/youtube"&&r.jsx(He,{navigate:d}),(o==="/code"||o==="/agent")&&r.jsx(ze,{}),o==="/execution-mode"&&r.jsx(Fe,{}),o==="/not-found"&&r.jsx(Ze,{navigate:d}),o==="/company-core"&&r.jsx(Ke,{}),o==="/admin/dashboard"&&r.jsx($e,{})]})})]})]})}function Je({route:e}){return i.useEffect(()=>{h.emit("route.lazyFallback.rendered",{route:e})},[e]),r.jsxs("div",{className:"route-lazy-fallback","data-testid":"route-lazy-fallback","data-route":e,children:[r.jsx("span",{className:"route-lazy-spinner","aria-hidden":"true"}),r.jsx("span",{children:"Loading MindExec surface..."})]})}function Qe(){return r.jsxs("aside",{className:"app-sidebar app-sidebar--loading","aria-label":"MindExec navigation loading",children:[r.jsx("div",{className:"sidebar-brand sidebar-placeholder"}),r.jsx("div",{className:"sidebar-divider"}),r.jsx("nav",{className:"sidebar-nav",children:Array.from({length:8},(e,t)=>r.jsx("div",{className:"sidebar-icon sidebar-placeholder"},t))}),r.jsx("div",{className:"sidebar-spacer"}),r.jsx("div",{className:"sidebar-icon sidebar-placeholder"})]})}function Ze({navigate:e}){return r.jsx("div",{className:"page not-found-page",children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Not Found"}),r.jsx("h1",{children:"Content not found."}),r.jsx("p",{children:"The route exists as a React shell so stale Blazor links land cleanly."}),r.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e("/"),children:"Go home"})]})})}X();async function et(){await $(),Y.createRoot(document.getElementById("root")).render(r.jsx(Xe,{}))}et();export{Z as A,b as _,_ as a,L as b,rt as c,ie as d,nt as g,$ as p,B as s};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/supabaseAuthAdapter-CuJuASQT.js","assets/productionAdapterConfig-C5jfk6oG.js","assets/canvas-runtime-D3amtMwe.js","assets/vendor-react-BXzpOyCS.js","assets/app-runtime-xD2Z3NdN.js","assets/vendor-icons-DE3gIReG.js","assets/MindCanvas-D2KUYkht.js","assets/storage-RP5Dyxmq.js","assets/runtimeSettingsPersistenceProjection-BoNWmYjU.js","assets/vendor-msgpack-BE8aAsr3.js","assets/toolHandoff-D5e5f7t5.js","assets/executionModeSettings-NJqurj-o.js","assets/MindCanvas-DtqOZnoW.css","assets/PlanMasterPage-juSUgUYZ.js","assets/PlanMasterPage-CJ36rep-.css","assets/PricingPage-CRYu70dw.js","assets/LaunchLeadCapture-Bx9LM0IX.js","assets/LaunchLeadCapture-CiRI1shz.css","assets/pricingCheckoutShell-O-DnwmbU.js","assets/PricingPage-Cg_0i_ZR.css","assets/AuthPages-5GKA3wfI.js","assets/AuthPages-BrH6kRcv.css","assets/ToolPages-n6d8tLbT.js","assets/marketingTools-DN_rnHeB.js","assets/ToolPages-DIB187pZ.css","assets/YouTubeSearchPage-52qOcKbo.js","assets/YouTubeSearchPage-IPPa_BIH.css","assets/CompanyCorePage-CVw3X796.js","assets/CompanyCorePage-ChBnq1ve.css","assets/AdminDashboardPage-B4MSG01F.js","assets/AdminDashboardPage-B2vz2Px9.css","assets/CodePage-CtcukAw7.js","assets/code-agent-runtime-B5PPZd1t.js","assets/CodePage-Bncc352E.css","assets/ExecutionModePage-BxZvRmyD.js","assets/ExecutionModePage-TLuld9l3.css","assets/MarketingHome-BsyerRpe.js","assets/MarketingHome-DPzaYzA_.css","assets/AppSidebar-DLLJHBdZ.js"])))=>i.map(i=>d[i]);
2
+ var q=Object.defineProperty;var G=(e,t,o)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o;var x=(e,t,o)=>G(e,typeof t!="symbol"?t+"":t,o);import{r as i,j as r,R as Y}from"./vendor-react-BXzpOyCS.js";import{R as h,i as X}from"./app-runtime-xD2Z3NdN.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const c of a)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function o(a){const c={};return a.integrity&&(c.integrity=a.integrity),a.referrerPolicy&&(c.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?c.credentials="include":a.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function n(a){if(a.ep)return;a.ep=!0;const c=o(a);fetch(a.href,c)}})();const J="modulepreload",Q=function(e){return"/"+e},U={},b=function(t,o,n){let a=Promise.resolve();if(o&&o.length>0){let u=function(p){return Promise.all(p.map(d=>Promise.resolve(d).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),m=(s==null?void 0:s.nonce)||(s==null?void 0:s.getAttribute("nonce"));a=u(o.map(p=>{if(p=Q(p),p in U)return;U[p]=!0;const d=p.endsWith(".css"),y=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${y}`))return;const g=document.createElement("link");if(g.rel=d?"stylesheet":J,d||(g.as="script"),g.crossOrigin="",g.href=p,m&&g.setAttribute("nonce",m),document.head.appendChild(g),d)return new Promise((f,k)=>{g.addEventListener("load",f),g.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${p}`)))})}))}function c(u){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=u,window.dispatchEvent(s),!s.defaultPrevented)throw u}return a.then(u=>{for(const s of u||[])s.status==="rejected"&&c(s.reason);return t().catch(c)})},L="mindexec-local-auth-shell-v2",Z="mindexec-react-auth-shell-session-changed",ee="supabase-callback@mindexec.local";function te(e){const t=e;return!!(t&&typeof t=="object"&&typeof t.userId=="string"&&typeof t.email=="string"&&t.provider==="Google"&&typeof t.signedInAt=="string")}function oe(e){const t=e.toLowerCase();return t.includes("access_token=")||t.includes("refresh_token=")||t.includes("provider_token=")||t.includes("provider_refresh_token=")||t.includes("expires_in=")||t.includes("token_type=")||t.includes("type=recovery")||t.includes("type=invite")||t.includes("error=")||t.includes("error_description=")||t.includes("code=")}function ae(e){const t=e.split("=",2)[0].toLowerCase();return t==="access_token"||t==="refresh_token"||t==="provider_token"||t==="provider_refresh_token"||t==="expires_in"||t==="expires_at"||t==="token_type"||t==="type"||t==="error"||t==="error_code"||t==="error_description"||t==="code"}function I(e){const t=e.trim().replace(/^[?#]/,"");return t?t.split("&").filter(Boolean).filter(n=>!ae(n)).join("&"):""}function ne(e){const t=(e||"").trim();if(!t||!t.startsWith("/")||t.startsWith("//")||t.includes("\\"))return"";try{const o=new URL(t,window.location.origin);return o.origin!==window.location.origin?"":`${o.pathname}${o.search}${o.hash}`}catch{return""}}function re(e){const t=new URL(e,window.location.origin),o=`${t.search}&${t.hash}`,n=oe(o);if(!n)return{hasAuthPayload:!1,cleanedPath:`${t.pathname}${t.search}${t.hash}`,shouldCreateLocalShell:!1,shouldRouteToMindCanvas:!1,hasError:!1,hasRecovery:!1,hasInvite:!1,hasCode:!1,hasToken:!1};const a=I(t.search),c=I(t.hash),u=/(?:^|[&#?])error=/i.test(o)||/(?:^|[&#?])error_description=/i.test(o),s=/(?:^|[&#?])type=recovery(?:&|$)/i.test(o),m=/(?:^|[&#?])type=invite(?:&|$)/i.test(o),p=/(?:^|[&#?])code=/i.test(o),d=/(?:^|[&#?])(?:access_token|refresh_token)=/i.test(o),y=ne(t.searchParams.get("next"));let g=`${t.pathname}${a?`?${a}`:""}${c?`#${c}`:""}`;const f=t.pathname==="/"||t.pathname==="",k=t.pathname==="/login",E=!u&&!s&&!m&&(p||d),l=E&&!y&&(f||k);if(y&&E)g=y;else if(l){const v=new URLSearchParams(a);v.delete("next");const S=v.toString();g=`/mindcanvas${S?`?${S}`:""}`}return{hasAuthPayload:n,cleanedPath:g,shouldCreateLocalShell:!u&&!s&&!m&&(p||d),shouldRouteToMindCanvas:l,hasError:u,hasRecovery:s,hasInvite:m,hasCode:p,hasToken:d}}function se(e){return`local-google-${e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-")||"user"}`}function O(e){try{window.dispatchEvent(new CustomEvent(Z,{detail:{signedIn:!!e,source:(e==null?void 0:e.source)??"cleared",hasEmail:!!(e!=null&&e.email)}}))}catch{}}function nt(){try{const e=window.localStorage.getItem(L);if(!e)return null;const t=JSON.parse(e);return te(t)?t:null}catch{return null}}function ie(e="builder@mindexec.local",t="manual-google-shell"){const o=e.trim().toLowerCase()||"builder@mindexec.local",n={userId:typeof crypto<"u"&&"randomUUID"in crypto?`local-google-${crypto.randomUUID()}`:se(o),email:o,provider:"Google",signedInAt:new Date().toISOString(),source:t};return B(n)}function B(e){try{window.localStorage.setItem(L,JSON.stringify(e))}catch{}return h.emit(e.source==="supabase-provider-session"?"auth.supabase.sessionShell":"auth.google.localShell",{provider:e.provider,hasEmail:!!e.email,source:e.source}),O(e),e}function rt(){try{window.localStorage.removeItem(L)}catch{}h.emit("auth.localShell.cleared"),O(null)}const le={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1},ce="mindexec-production-adapter-runtime-env-loaded";function H(e){return!!(e&&typeof e=="object"&&!Array.isArray(e))}function w(e,t){let o=e;for(const n of t){if(!H(o))return"";o=o[n]}return typeof o=="string"?o.trim():""}function de(e,t){let o=e;for(const n of t){if(!H(o)||!(n in o))return null;o=o[n]}if(typeof o=="boolean")return o;if(typeof o=="string"){const n=o.trim().toLowerCase();if(["1","true","yes","on"].includes(n))return!0;if(["0","false","no","off"].includes(n))return!1}return null}function A(e,t,o){o&&(e[t]=o)}function ue(e,t,o){o!==null&&(e[t]=String(o))}function pe(e){return de(e,["ProjectStorage","CloudProjectsEnabled"])}function me(e){const t=w(e,["Supabase","Url"]),o=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),n=w(e,["Supabase","ServiceRoleKey"]);return!!(t&&o&&!n)}function he(e){const t={},o=pe(e),n=me(e),a=w(e,["Supabase","Url"]),c=w(e,["Supabase","PublishableKey"])||w(e,["Supabase","Key"])||w(e,["Supabase","AnonKey"]),u=w(e,["CloudflareR2","PublicBaseUrl"])||w(e,["CloudStorage","PublicBaseUrl"])||w(e,["CloudStorage","PublicUrl"]);return ue(t,"VITE_MINDEXEC_CLOUD_PROJECTS_ENABLED",o),n&&(A(t,"VITE_MINDEXEC_SUPABASE_URL",a),A(t,"VITE_MINDEXEC_SUPABASE_PUBLISHABLE_KEY",c)),A(t,"VITE_MINDEXEC_CLOUD_STORAGE_PUBLIC_URL",u),t}function ge(){return le??{}}function K(){return typeof window>"u"?{}:window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__??{}}function fe(e){if(!(typeof window>"u")){window.__MINDEXEC_PRODUCTION_ADAPTER_RUNTIME_ENV__={...K(),...e};try{window.dispatchEvent(new CustomEvent(ce,{detail:{keys:Object.keys(e).sort()}}))}catch{}}}function _(){return{...K(),...ge()}}let T=null;async function $(e=typeof fetch=="function"?fetch.bind(globalThis):null){return typeof window>"u"||!e?_():T||(T=(async()=>{try{const t=await e("/appsettings.json",{cache:"no-store",credentials:"same-origin"});if(!t.ok)return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:`http-${t.status}`}),_();const o=t.headers.get("content-type")||"";if(o&&!o.toLowerCase().includes("json"))return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:"non-json-response"}),_();const n=await t.json(),a=he(n);return fe(a),h.emit("productionAdapter.runtimeConfig.loaded",{source:"appsettings.json",keys:Object.keys(a).sort()}),_()}catch(t){return h.emit("productionAdapter.runtimeConfig.skipped",{source:"appsettings.json",reason:t instanceof Error?t.message:String(t)}),_()}})(),T)}function be({onRouteReplaced:e}){const t=i.useRef(!1);return i.useEffect(()=>{if(t.current)return;t.current=!0,(async()=>{const n=window.location.href,a=re(n);if(!a.hasAuthPayload)return;const c=await $();let u={mode:"not-checked",canAttempt:!1},s=!1,m="",p=!1,d=null,y=null;if(!a.hasError&&!a.hasRecovery&&!a.hasInvite&&(a.hasCode||a.hasToken)){const{completeSupabaseAuthCallback:f,resolveSupabaseAuthAdapterState:k,syncSupabaseAuthSessionToLocalBridge:E}=await b(async()=>{const{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}=await import("./supabaseAuthAdapter-CuJuASQT.js");return{completeSupabaseAuthCallback:l,resolveSupabaseAuthAdapterState:v,syncSupabaseAuthSessionToLocalBridge:S}},__vite__mapDeps([0,1,2,3,4,5]));u=k(c),p=u.canAttempt,d=f,y=E}if(p&&d)try{const f=await d(c,n);f.session&&(B({...f.session,source:"supabase-provider-session"}),s=!0,y&&await y(c,"auth-callback"))}catch(f){m=f instanceof Error?f.message:String(f)}else a.shouldCreateLocalShell&&ie(ee,"supabase-callback-shell");h.emit(a.hasError||m?"auth.callback.error":"auth.callback.cleaned",{cleanedPath:a.cleanedPath,shouldCreateLocalShell:!p&&a.shouldCreateLocalShell,shouldRouteToMindCanvas:a.shouldRouteToMindCanvas,hasCode:a.hasCode,hasToken:a.hasToken,hasRecovery:a.hasRecovery,hasInvite:a.hasInvite,providerMode:u.mode,providerAttempted:p,providerSessionCreated:s,providerError:m});const g=`${window.location.pathname}${window.location.search}${window.location.hash}`;a.cleanedPath!==g&&(window.history.replaceState({authCallbackCleaned:!0},"",a.cleanedPath),e("auth-callback-bootstrap"))})()},[e]),null}class ye extends i.Component{constructor(){super(...arguments);x(this,"state",{error:null});x(this,"retry",()=>{this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{resetKey:this.props.resetKey,reason:"manual-retry"})})}static getDerivedStateFromError(o){return{error:o}}componentDidCatch(o,n){const a=(o==null?void 0:o.message)||"Unknown runtime error.";h.emit("runtime.errorBoundary.caught",{resetKey:this.props.resetKey,message:a,stack:(o==null?void 0:o.stack)||"",componentStack:n.componentStack}),console.error("[LoggingErrorBoundary] Unhandled React error.",o,n)}componentDidUpdate(o){o.resetKey!==this.props.resetKey&&this.state.error&&(this.setState({error:null}),h.emit("runtime.errorBoundary.reset",{from:o.resetKey,to:this.props.resetKey,reason:"route-change"}))}render(){const{error:o}=this.state;return o?r.jsx("div",{className:"page runtime-error-page","data-testid":"runtime-error-boundary","data-error-boundary-reset-key":this.props.resetKey,children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Runtime Guard"}),r.jsx("h1",{children:"Something broke inside this React surface."}),r.jsx("p",{children:"The error was captured locally so the whole app shell can stay recoverable."}),r.jsxs("div",{className:"runtime-error-message","data-testid":"runtime-error-boundary-message",children:[r.jsx("span",{className:"runtime-error-symbol","aria-hidden":"true",children:"!"}),r.jsx("span",{children:o.message||"Unknown runtime error."})]}),r.jsxs("div",{className:"action-row",children:[r.jsx("button",{className:"btn btn-primary",type:"button",onClick:this.retry,"data-testid":"runtime-error-boundary-retry",children:"Retry"}),this.props.onNavigateHome&&r.jsx("button",{className:"btn btn-secondary",type:"button",onClick:this.props.onNavigateHome,"data-testid":"runtime-error-boundary-home",children:"MindCanvas"})]})]})}):this.props.children}}const we="main",ve="h1",R="data-route-focus-target",ke=30;function Pe({route:e,rootSelector:t=we,selector:o=ve}){return i.useEffect(()=>{let n=!1,a=0;const c=u=>{if(n)return;const s=document.querySelector(t),m=(s==null?void 0:s.querySelector(o))??document.querySelector(o);for(const p of document.querySelectorAll(`[${R}="true"]`))p.removeAttribute(R);if(!m){if(u<ke){a=window.requestAnimationFrame(()=>c(u+1));return}h.emit("route.focusOnNavigate.skipped",{route:e,selector:o,reason:"missing-target",attempts:u});return}m.hasAttribute("tabindex")||m.setAttribute("tabindex","-1"),m.setAttribute(R,"true"),m.focus({preventScroll:!1}),h.emit("route.focusOnNavigate.applied",{route:e,selector:o,tagName:m.tagName.toLowerCase(),text:(m.textContent||"").trim().slice(0,90),attempts:u})};return a=window.requestAnimationFrame(()=>c(1)),()=>{n=!0,window.cancelAnimationFrame(a)}},[e,t,o]),null}const Ee=[{key:"markdown-viewer",liveUrl:"https://mdview-die.pages.dev",hostnames:["mdview.pages.dev","mdview-die.pages.dev","mdview.mindexec.io","markdown-viewer.pages.dev","markdown-viewer.mindexec.io"],title:"Free Online Markdown Viewer",heroEyebrow:"Free online markdown viewer",heroTitle:"Preview Markdown instantly in your browser",heroSubtitle:"Paste or open a markdown file, review the rendered result, and move bigger writing work into MindCanvas when it needs structure.",privacyNote:"Runs locally in your browser. No upload required."},{key:"bulk-markdown-viewer",liveUrl:"https://bulkmd.pages.dev",hostnames:["bulkmd.pages.dev","bulkmd.mindexec.io","bulk-markdown-viewer.pages.dev","bulk-markdown-viewer.mindexec.io"],title:"Bulk Markdown Viewer",heroEyebrow:"Bulk markdown preview",heroTitle:"Review multiple markdown snippets at once",heroSubtitle:"Paste a stack of markdown entries and scan them locally before turning the useful pieces into a MindCanvas board.",privacyNote:"Local browser-only preview. No account and no upload step."},{key:"readme-previewer",liveUrl:"https://readme-1o4.pages.dev",hostnames:["readme.pages.dev","readme-1o4.pages.dev","readme-previewer.pages.dev","readme.mindexec.io","readme-previewer.mindexec.io"],title:"README Previewer",heroEyebrow:"README previewer",heroTitle:"Preview README markdown before you publish",heroSubtitle:"Check headings, tables, links, and launch notes quickly, then keep bigger documentation work organized in MindCanvas.",privacyNote:"Local preview for README text. No repository access required."},{key:"markdown-to-html",liveUrl:"https://md2html-4r7.pages.dev",hostnames:["md2html.pages.dev","md2html-4r7.pages.dev","md2html.mindexec.io","markdown-to-html.pages.dev","markdown-to-html.mindexec.io"],title:"Markdown to HTML Preview",heroEyebrow:"Markdown to HTML",heroTitle:"Turn markdown into clean HTML preview",heroSubtitle:"Render markdown locally, copy the HTML shape, and move reusable publishing notes into MindCanvas.",privacyNote:"Conversion runs in-browser and keeps your text local."},{key:"markdown-outline",liveUrl:"https://mdoutln.pages.dev",hostnames:["mdoutln.pages.dev","mdoutln.mindexec.io","markdown-outline.pages.dev","markdown-outline.mindexec.io"],title:"Markdown Outline Generator",heroEyebrow:"Markdown outline generator",heroTitle:"Extract a document outline from markdown",heroSubtitle:"Scan headings, section depth, and missing structure before your document becomes a larger project.",privacyNote:"Outline extraction runs locally in this browser."},{key:"markdown-table-formatter",liveUrl:"https://mdtable-3ik.pages.dev",hostnames:["mdtable.pages.dev","mdtable-3ik.pages.dev","mdtable.mindexec.io","markdown-table-formatter.pages.dev","markdown-table-formatter.mindexec.io"],title:"Markdown Table Formatter",heroEyebrow:"Markdown table formatter",heroTitle:"Clean up markdown tables locally",heroSubtitle:"Paste a rough markdown table and get a cleaner version for docs, READMEs, and launch notes.",privacyNote:"Table formatting happens locally with no upload."},{key:"markdown-link-checker",liveUrl:"https://markdown-link-checker.pages.dev",hostnames:["mdcheck.pages.dev","markdown-link-checker.pages.dev","mdcheck.mindexec.io","markdown-link-checker.mindexec.io"],title:"Markdown Link Checker",heroEyebrow:"Markdown link checker",heroTitle:"Catch risky markdown links before publishing",heroSubtitle:"Find empty, localhost, JavaScript, and suspicious links locally before a README or docs page goes live.",privacyNote:"Link checks run locally against the pasted markdown."},{key:"browser-notepad",liveUrl:"https://quickpad.pages.dev",hostnames:["quickpad.pages.dev","quickpad.mindexec.io","browser-notepad.pages.dev","browser-notepad.mindexec.io"],title:"Browser Notepad",heroEyebrow:"Browser notepad",heroTitle:"Write quick notes without a sign-in",heroSubtitle:"Capture rough thoughts locally, then move the notes worth keeping into MindCanvas.",privacyNote:"Notes are stored locally in this browser unless you copy them elsewhere."},{key:"clipboard-board",liveUrl:"https://clipbrd.pages.dev",hostnames:["clipbrd.pages.dev","clipbrd.mindexec.io","clipboard-board.pages.dev","clipboard-board.mindexec.io"],title:"Local Clipboard Board",heroEyebrow:"Local clipboard board",heroTitle:"Collect snippets into a small local board",heroSubtitle:"Paste short ideas, snippets, and fragments into one local surface before promoting the useful set to MindCanvas.",privacyNote:"Clipboard notes stay local to this browser session."}];function N(e){const t=e.toLowerCase().replace(/^www\./,"");return Ee.find(o=>o.hostnames.some(n=>n.toLowerCase()===t))}const Ce={enabled:!1,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:"",heroEyebrow:"Free local tool",heroTitle:"",heroSubtitle:"",primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"",secondaryCtaHref:"",publicUrl:"",privacyNote:"Runs locally in your browser. No login. No database storage."},_e={enableAgentWorkspace:!0,enableCodeWorkspace:!0,enablePlanWorkspace:!0,enableCompanyCore:!0,enableExecutionTest:!0,enableTemplateStudio:!0,enableProjectPopup:!0,enablePromptDebugger:!0,enablePointBadge:!0,enableResetData:!0},P={variantKey:"platform",slug:"mindexec",brandName:"MindExec",productName:"MindCanvas",appTitle:"MindExec",workspaceNounSingular:"canvas",workspaceNounPlural:"canvases",signInTitle:"Welcome Back",signUpTitle:"Create Account",signInSubtitle:"Sign in to access your MindCanvas workspace.",signUpSubtitle:"Sign up to start organizing your ideas on a visual canvas.",primaryCheckoutProvider:"dodo",runtimeHost:"",canonicalHost:"mindexec.pages.dev",features:_e,marketingTool:Ce};function z(e){const t=j(e),o=N(t);return o?Ae(t,o):{...P,runtimeHost:t,canonicalHost:P.canonicalHost,features:{...P.features},marketingTool:{...P.marketingTool}}}function Se(e){return e.marketingTool.enabled?D(e.marketingTool.homeRoute):"/"}function F(e){return e.marketingTool.enabled&&e.marketingTool.toolKey?`/tools/${e.marketingTool.toolKey}`:Se(e)}function Te(e,t){const o=j(e.canonicalHost||e.runtimeHost);return o?`https://${o}${D(t)}`:""}function V(e,t){if(e.marketingTool.enabled&&!e.marketingTool.allowMindCanvasRoute&&(t==="/mindcanvas"||t==="/mindmap"))return!1;switch(t){case"/agent":return e.features.enableAgentWorkspace;case"/code":return e.features.enableCodeWorkspace;case"/planmaster":case"/planagent":return e.features.enablePlanWorkspace;case"/company-core":return e.features.enableCompanyCore;case"/execution-mode":return e.features.enableExecutionTest;default:return!0}}function xe(e,t){const o=V(e,t),n=F(e),a=o?t:n;return{route:t,enabled:o,fallbackRoute:n,canonicalUrl:Te(e,a),title:Re(e,a),description:Me(e,a)}}function j(e){const t=String(e??"").trim();if(!t)return"";try{return new URL(t).hostname.trim().toLowerCase().replace(/^www\./,"")}catch{return t.trim().replace(/^https?:\/\//i,"").replace(/^www\./,"").replace(/\/+$/,"").toLowerCase()}}function D(e){if(!e||!String(e).trim())return"/";let t=String(e).trim();return t.startsWith("/")||(t=`/${t}`),t.length>1&&(t=t.replace(/\/+$/,"")),t||"/"}function Ae(e,t){const o=j(t.liveUrl)||e;return{...P,variantKey:"mini-tool",slug:t.key,brandName:t.title,productName:t.title,appTitle:`${t.title} - Free local browser tool`,runtimeHost:e,canonicalHost:o,features:{...P.features,enableAgentWorkspace:!1,enableCodeWorkspace:!1,enablePlanWorkspace:!1,enableCompanyCore:!1,enableExecutionTest:!1,enableTemplateStudio:!1,enableProjectPopup:!1,enablePromptDebugger:!1,enablePointBadge:!1,enableResetData:!1},marketingTool:{...P.marketingTool,enabled:!0,hideAppChrome:!0,allowMindCanvasRoute:!1,homeRoute:"/",toolKey:t.key,heroEyebrow:t.heroEyebrow,heroTitle:t.heroTitle,heroSubtitle:t.heroSubtitle,primaryCtaText:"Open MindCanvas",primaryCtaHref:"https://mindexec.pages.dev/mindcanvas",secondaryCtaText:"More free tools",secondaryCtaHref:"https://mindexec.pages.dev/tools",publicUrl:t.liveUrl,privacyNote:t.privacyNote}}}function Re(e,t){if(e.marketingTool.enabled&&t.startsWith("/tools/"))return e.appTitle;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas | MindExec";case"/planmaster":case"/planagent":return"PlanMaster | MindExec";case"/pricing":return"MindExec Pricing";case"/login":return e.signInTitle;case"/forgot-password":return"Reset your MindExec password";case"/reset-password":return"Set a new MindExec password";case"/tools":return"Free Browser Tools | MindExec";case"/youtube":return"YouTube Capture | MindExec";case"/code":return"CodeMaster | MindExec";case"/agent":return"Agent Workspace | MindExec";case"/execution-mode":return"Execution Mode | MindExec";case"/company-core":return"Company Core | MindExec";case"/admin/dashboard":return"Admin Dashboard | MindExec";case"/not-found":return"Content not found | MindExec";case"/":default:return e.appTitle}}function Me(e,t){if(e.marketingTool.enabled)return e.marketingTool.heroSubtitle||e.marketingTool.privacyNote;switch(t){case"/mindcanvas":case"/mindmap":return"MindCanvas keeps notes, assets, AI tasks, and execution evidence together on a local-first visual board.";case"/planmaster":case"/planagent":return"PlanMaster turns goals into practical plans, stages, and execution checklists.";case"/pricing":return"MindExec pricing for free local tools and paid MindCanvas project workflows.";case"/tools":return"Free local browser tools that feed larger MindExec and MindCanvas workflows.";case"/code":case"/agent":return"CodeMaster previews code workflows and adapter-gated agent execution for local projects.";case"/execution-mode":return"Execution Mode tests deterministic browser-local Concept IR before live adapters are connected.";case"/company-core":return"Company Core organizes SaaS blueprint, growth, approval, and publishing decisions.";default:return"MindExec is an AI execution canvas for solo builders, researchers, developers, and creators."}}const Le=i.lazy(()=>b(async()=>{const{MindCanvas:e}=await import("./MindCanvas-D2KUYkht.js");return{MindCanvas:e}},__vite__mapDeps([6,3,7,2,4,5,8,9,1,0,10,11,12])).then(({MindCanvas:e})=>({default:e}))),Ne=i.lazy(()=>b(async()=>{const{PlanMasterPage:e}=await import("./PlanMasterPage-juSUgUYZ.js");return{PlanMasterPage:e}},__vite__mapDeps([13,3,7,2,4,5,8,14])).then(({PlanMasterPage:e})=>({default:e}))),je=i.lazy(()=>b(async()=>{const{PricingPage:e}=await import("./PricingPage-CRYu70dw.js");return{PricingPage:e}},__vite__mapDeps([15,3,16,4,5,17,18,1,0,2,19])).then(({PricingPage:e})=>({default:e}))),De=i.lazy(()=>b(async()=>{const{LoginPage:e}=await import("./AuthPages-5GKA3wfI.js");return{LoginPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({LoginPage:e})=>({default:e}))),Ue=i.lazy(()=>b(async()=>{const{ForgotPasswordPage:e}=await import("./AuthPages-5GKA3wfI.js");return{ForgotPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ForgotPasswordPage:e})=>({default:e}))),Ie=i.lazy(()=>b(async()=>{const{ResetPasswordPage:e}=await import("./AuthPages-5GKA3wfI.js");return{ResetPasswordPage:e}},__vite__mapDeps([20,3,18,4,1,0,2,5,21])).then(({ResetPasswordPage:e})=>({default:e}))),Oe=i.lazy(()=>b(async()=>{const{ToolsDirectoryPage:e}=await import("./ToolPages-n6d8tLbT.js");return{ToolsDirectoryPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({ToolsDirectoryPage:e})=>({default:e}))),Be=i.lazy(()=>b(async()=>{const{MarketingToolPage:e}=await import("./ToolPages-n6d8tLbT.js");return{MarketingToolPage:e}},__vite__mapDeps([22,3,23,2,4,5,10,24])).then(({MarketingToolPage:e})=>({default:e}))),He=i.lazy(()=>b(async()=>{const{YouTubeSearchPage:e}=await import("./YouTubeSearchPage-52qOcKbo.js");return{YouTubeSearchPage:e}},__vite__mapDeps([25,3,2,4,5,10,26])).then(({YouTubeSearchPage:e})=>({default:e}))),Ke=i.lazy(()=>b(async()=>{const{CompanyCorePage:e}=await import("./CompanyCorePage-CVw3X796.js");return{CompanyCorePage:e}},__vite__mapDeps([27,3,2,4,5,28])).then(({CompanyCorePage:e})=>({default:e}))),$e=i.lazy(()=>b(async()=>{const{AdminDashboardPage:e}=await import("./AdminDashboardPage-B4MSG01F.js");return{AdminDashboardPage:e}},__vite__mapDeps([29,3,1,4,0,2,5,30])).then(({AdminDashboardPage:e})=>({default:e}))),ze=i.lazy(()=>b(async()=>{const{CodePage:e}=await import("./CodePage-CtcukAw7.js");return{CodePage:e}},__vite__mapDeps([31,3,2,4,5,11,8,32,33])).then(({CodePage:e})=>({default:e}))),Fe=i.lazy(()=>b(async()=>{const{ExecutionModePage:e}=await import("./ExecutionModePage-BxZvRmyD.js");return{ExecutionModePage:e}},__vite__mapDeps([34,3,2,4,5,11,8,35])).then(({ExecutionModePage:e})=>({default:e}))),Ve=i.lazy(()=>b(async()=>{const{MarketingHome:e}=await import("./MarketingHome-BsyerRpe.js");return{MarketingHome:e}},__vite__mapDeps([36,3,16,4,5,17,23,37])).then(({MarketingHome:e})=>({default:e}))),We=i.lazy(()=>b(async()=>{const{AppSidebar:e}=await import("./AppSidebar-DLLJHBdZ.js");return{AppSidebar:e}},__vite__mapDeps([38,3,1,4,5])).then(({AppSidebar:e})=>({default:e}))),qe=new Set(["/","/mindcanvas","/planmaster","/tools","/youtube","/code","/pricing","/company-core","/login"]);function Ge(e,t=window.location.hostname){const o=N(t);if(o&&(e==="/"||e==="/tools"))return`/tools/${o.key}`;if(e==="/agent")return"/agent";if(e==="/forgot-password")return"/forgot-password";if(e==="/reset-password")return"/reset-password";let n="/not-found";return e==="/"?n="/":e==="/mindmap"?n="/mindmap":e==="/planagent"?n="/planagent":e==="/execution-mode"?n="/execution-mode":e==="/not-found"?n="/not-found":e.startsWith("/tools/")&&(n=e),qe.has(e)?n=e:e==="/admin/dashboard"&&(n="/admin/dashboard"),n}function Ye(e,t=window.location.hostname){const o=z(t),n=Ge(e,t);return V(o,n)?n:F(o)}function W(e,t=window.location.hostname){const o=Ye(e,t);return{route:o,stalePath:o==="/not-found"&&e!=="/not-found"?e:""}}function M(e){const t=window.location.pathname,{route:o,stalePath:n}=W(t,window.location.hostname);return o==="/not-found"&&t!=="/not-found"?(window.history.replaceState({stalePath:t},"","/not-found"),h.emit("route.notFound.normalize",{source:e,from:n||t,to:"/not-found"})):D(t)!==o&&!(t==="/"&&o.startsWith("/tools/"))&&!(t==="/tools"&&o.startsWith("/tools/"))&&(window.history.replaceState({stalePath:t},"",o),h.emit("productProfile.route.fallback",{source:e,from:t,to:o})),o}function C(e,t,o){if(o===void 0){delete e.dataset[t];return}e.dataset[t]=o}function Xe(){const e=i.useMemo(()=>z(window.location.hostname),[]),t=i.useMemo(()=>N(window.location.hostname),[]),[o,n]=i.useState(()=>W(window.location.pathname,window.location.hostname).route),a=o==="/mindcanvas"||o==="/mindmap",[c,u]=i.useState(()=>a),s=i.useMemo(()=>xe(e,o),[e,o]),[m,p]=i.useState([]);i.useEffect(()=>{n(M("initial"));const l=()=>n(M("popstate"));return window.addEventListener("popstate",l),()=>window.removeEventListener("popstate",l)},[]);const d=i.useCallback(l=>{window.history.pushState({},"",l),n(l)},[]),y=i.useCallback(l=>{n(M(l))},[]);i.useEffect(()=>{!a||c||(u(!0),h.emit("route.keepAlive.mindcanvas",{route:o,mounted:!0,source:"route-activate"}))},[a,c,o]);const g=o==="/planmaster"||o==="/planagent",f=o.startsWith("/tools/")?o.slice(7):null,k=e.marketingTool.enabled&&e.marketingTool.hideAppChrome,E=c||a;return i.useEffect(()=>{const l=document.documentElement,v={productProfile:l.dataset.productProfile,productVariant:l.dataset.productVariant,canonicalHost:l.dataset.canonicalHost,routeCanonical:l.dataset.routeCanonical,routeEnabled:l.dataset.routeEnabled,marketingToolKey:l.dataset.marketingToolKey};return l.dataset.productProfile=e.slug,l.dataset.productVariant=e.variantKey,l.dataset.canonicalHost=e.canonicalHost,l.dataset.routeCanonical=s.canonicalUrl,l.dataset.routeEnabled=s.enabled?"true":"false",e.marketingTool.toolKey?l.dataset.marketingToolKey=e.marketingTool.toolKey:delete l.dataset.marketingToolKey,h.emit("productProfile.route.applied",{route:o,variantKey:e.variantKey,slug:e.slug,canonicalHost:e.canonicalHost,canonicalUrl:s.canonicalUrl,routeEnabled:s.enabled,fallbackRoute:s.fallbackRoute,marketingToolKey:e.marketingTool.toolKey}),()=>{C(l,"productProfile",v.productProfile),C(l,"productVariant",v.productVariant),C(l,"canonicalHost",v.canonicalHost),C(l,"routeCanonical",v.routeCanonical),C(l,"routeEnabled",v.routeEnabled),C(l,"marketingToolKey",v.marketingToolKey)}},[e.canonicalHost,e.marketingTool.toolKey,e.slug,e.variantKey,o,s.canonicalUrl,s.enabled,s.fallbackRoute]),r.jsxs("div",{className:`${a?"app app--canvas":"app"} ${k?"app--mini-tool":""}`,"data-product-profile":e.slug,"data-product-variant":e.variantKey,"data-canonical-host":e.canonicalHost,"data-route-enabled":s.enabled?"true":"false","data-route-canonical":s.canonicalUrl,"data-marketing-tool-key":e.marketingTool.toolKey||void 0,children:[!k&&r.jsx(i.Suspense,{fallback:r.jsx(Qe,{}),children:r.jsx(We,{route:o,navigate:d,canvasActions:a?m:[]})}),r.jsxs("main",{className:"app-main",children:[r.jsx(be,{onRouteReplaced:y}),r.jsx(Pe,{route:o}),r.jsx(ye,{resetKey:o,onNavigateHome:()=>d("/mindcanvas"),children:r.jsxs(i.Suspense,{fallback:r.jsx(Je,{route:o}),children:[o==="/"&&r.jsx(Ve,{navigate:d}),E&&r.jsx("section",{className:"route-keepalive route-keepalive--mindcanvas","data-testid":"mindcanvas-keepalive-host","data-route-keepalive":"mindcanvas","data-route-active":a?"true":"false",hidden:!a,"aria-hidden":a?void 0:"true",children:r.jsx(Le,{navigate:d,onSidebarActionsChange:p})}),g&&r.jsx(Ne,{navigate:d}),o==="/pricing"&&r.jsx(je,{navigate:d}),o==="/login"&&r.jsx(De,{navigate:d}),o==="/forgot-password"&&r.jsx(Ue,{navigate:d}),o==="/reset-password"&&r.jsx(Ie,{navigate:d}),o==="/tools"&&r.jsx(Oe,{navigate:d}),f&&r.jsx(Be,{toolKey:f,navigate:d,miniHost:(t==null?void 0:t.key)===f}),o==="/youtube"&&r.jsx(He,{navigate:d}),(o==="/code"||o==="/agent")&&r.jsx(ze,{}),o==="/execution-mode"&&r.jsx(Fe,{}),o==="/not-found"&&r.jsx(Ze,{navigate:d}),o==="/company-core"&&r.jsx(Ke,{}),o==="/admin/dashboard"&&r.jsx($e,{})]})})]})]})}function Je({route:e}){return i.useEffect(()=>{h.emit("route.lazyFallback.rendered",{route:e})},[e]),r.jsxs("div",{className:"route-lazy-fallback","data-testid":"route-lazy-fallback","data-route":e,children:[r.jsx("span",{className:"route-lazy-spinner","aria-hidden":"true"}),r.jsx("span",{children:"Loading MindExec surface..."})]})}function Qe(){return r.jsxs("aside",{className:"app-sidebar app-sidebar--loading","aria-label":"MindExec navigation loading",children:[r.jsx("div",{className:"sidebar-brand sidebar-placeholder"}),r.jsx("div",{className:"sidebar-divider"}),r.jsx("nav",{className:"sidebar-nav",children:Array.from({length:8},(e,t)=>r.jsx("div",{className:"sidebar-icon sidebar-placeholder"},t))}),r.jsx("div",{className:"sidebar-spacer"}),r.jsx("div",{className:"sidebar-icon sidebar-placeholder"})]})}function Ze({navigate:e}){return r.jsx("div",{className:"page not-found-page",children:r.jsxs("section",{className:"execution-panel",children:[r.jsx("div",{className:"eyebrow",children:"Not Found"}),r.jsx("h1",{children:"Content not found."}),r.jsx("p",{children:"The route exists as a React shell so stale Blazor links land cleanly."}),r.jsx("button",{className:"btn btn-primary",type:"button",onClick:()=>e("/"),children:"Go home"})]})})}X();async function et(){await $(),Y.createRoot(document.getElementById("root")).render(r.jsx(Xe,{}))}et();export{Z as A,b as _,_ as a,L as b,rt as c,ie as d,nt as g,$ as p,B as s};
@@ -7,11 +7,11 @@
7
7
  name="description"
8
8
  content="MindExec React is a fast AI execution canvas for solo builders, notes, assets, and task graphs."
9
9
  />
10
- <meta name="build-version" content="ai-flow-language-status-hidden-2026-06-27" />
10
+ <meta name="build-version" content="flow-gap-run-source-visibility-2026-06-27" />
11
11
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
12
12
  <link rel="manifest" href="/manifest.webmanifest" />
13
13
  <title>MindExec React</title>
14
- <script type="module" crossorigin src="/assets/index-De6zm3_M.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-DlyqQyXw.js"></script>
15
15
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BXzpOyCS.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/app-runtime-xD2Z3NdN.js">
17
17
  <link rel="stylesheet" crossorigin href="/assets/index-yNpEK-gp.css">