diff --git a/cmd/verstak-gui/frontend-dist/assets/main-bQpH1es2.css b/cmd/verstak-gui/frontend-dist/assets/main-Bl-yCbt2.css
similarity index 55%
rename from cmd/verstak-gui/frontend-dist/assets/main-bQpH1es2.css
rename to cmd/verstak-gui/frontend-dist/assets/main-Bl-yCbt2.css
index 43e1912..43cd760 100644
--- a/cmd/verstak-gui/frontend-dist/assets/main-bQpH1es2.css
+++ b/cmd/verstak-gui/frontend-dist/assets/main-Bl-yCbt2.css
@@ -1 +1 @@
-.file-row.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:default;transition:background .12s;min-height:52px;-webkit-user-select:none;user-select:none;position:relative}.file-row.svelte-1skuef2.svelte-1skuef2:hover{background:#1e1e30}.file-row--selected.svelte-1skuef2.svelte-1skuef2{background:#1e1e3a;outline:1px solid #3a3a6c}.file-row--selected.svelte-1skuef2.svelte-1skuef2:hover{background:#252545}.file-row.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:-2px}.file-row-icon.svelte-1skuef2.svelte-1skuef2{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#888}.file-row-body.svelte-1skuef2.svelte-1skuef2{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-row-name.svelte-1skuef2.svelte-1skuef2{font-size:13px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.file-row-meta.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}.meta-sep.svelte-1skuef2.svelte-1skuef2{color:#444}.file-row-actions.svelte-1skuef2.svelte-1skuef2{display:flex;gap:2px;align-items:center;opacity:0;transition:opacity .15s ease;flex-shrink:0}.file-row.svelte-1skuef2:hover .file-row-actions.svelte-1skuef2{opacity:1}.action-btn.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#ccc}.action-btn-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222;color:#ff6b6b}.action-btn.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-backdrop.svelte-1skuef2.svelte-1skuef2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu.svelte-1skuef2.svelte-1skuef2{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;z-index:100;min-width:220px;box-shadow:0 4px 16px #00000080}.menu-item.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;background:transparent;color:#ccc;font-size:12px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit}.menu-item.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#fff}.menu-item-danger.svelte-1skuef2.svelte-1skuef2{color:#ff6b6b}.menu-item-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222}.menu-item.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-sep.svelte-1skuef2.svelte-1skuef2{height:1px;background:#2a2a3c;margin:4px 8px}.breadcrumbs.svelte-csi2lb{display:flex;align-items:center;gap:4px;padding:8px 0;font-size:13px;color:#999}.sep.svelte-csi2lb{color:#444}.crumb.svelte-csi2lb{font-size:13px}.crumb--current.svelte-csi2lb{color:#ccc}.crumb--link.svelte-csi2lb{background:none;border:none;padding:2px 4px;color:#888;cursor:pointer;border-radius:3px;font-family:inherit;font-size:13px;transition:color .12s,background .12s}.crumb--link.svelte-csi2lb:hover{color:#ccc;background:#1e1e30}.crumb--link.svelte-csi2lb:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.overlay.svelte-1cw3u0m{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.svelte-1cw3u0m{background:#14141f;border:1px solid #2a2a3c;border-radius:10px;width:90vw;max-width:900px;height:85vh;max-height:700px;display:flex;flex-direction:column;overflow:hidden}.preview-header.svelte-1cw3u0m{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.preview-title.svelte-1cw3u0m{display:flex;align-items:center;gap:8px;color:#ddd;font-size:14px;min-width:0}.preview-name.svelte-1cw3u0m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-meta.svelte-1cw3u0m{font-size:11px;color:#666;margin-left:auto;white-space:nowrap}.preview-actions.svelte-1cw3u0m{display:flex;gap:4px;flex-shrink:0;margin-left:8px}.action-btn.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1cw3u0m:hover{background:#2a2a3c;color:#ccc}.action-btn.svelte-1cw3u0m:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.action-btn-close.svelte-1cw3u0m{color:#ff6b6b}.action-btn-close.svelte-1cw3u0m:hover{background:#3a2222;color:#f44}.preview-body.svelte-1cw3u0m{flex:1;overflow:auto;min-height:0}.preview-status.svelte-1cw3u0m{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:#888;font-size:14px}.preview-image-container.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;padding:16px;min-height:200px;background:#0e0e18}.preview-image.svelte-1cw3u0m{max-width:100%;max-height:calc(85vh - 100px);object-fit:contain;border-radius:4px}.preview-text.svelte-1cw3u0m{margin:0;padding:16px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.5;color:#ccc;white-space:pre-wrap;word-wrap:break-word;overflow:auto}.preview-pdf-container.svelte-1cw3u0m{width:100%;height:100%}.preview-pdf.svelte-1cw3u0m{width:100%;height:100%;border:none}.btn-sm.svelte-1cw3u0m{padding:6px 14px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;transition:background .12s}.btn-sm.svelte-1cw3u0m:hover{background:#223}.overlay.svelte-1fv6yyk{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-1fv6yyk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:360px;max-width:90vw}h3.svelte-1fv6yyk{font-size:18px;margin-bottom:12px;color:#e4e4ef}.message.svelte-1fv6yyk{font-size:14px;color:#aaa;margin-bottom:20px;line-height:1.4}.actions.svelte-1fv6yyk{display:flex;gap:8px;justify-content:flex-end}.btn.svelte-1fv6yyk{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-1fv6yyk:hover{background:#223}.btn-primary.svelte-1fv6yyk{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1fv6yyk:hover{background:#4f46e5}.btn-danger.svelte-1fv6yyk{background:#dc2626;border-color:#dc2626;color:#fff}.btn-danger.svelte-1fv6yyk:hover{background:#b91c1c}.btn.svelte-1fv6yyk:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.tree-item.svelte-zj71cl.svelte-zj71cl{display:flex;align-items:center;height:32px;padding-right:8px;cursor:default;font-size:13px;color:#ccc;-webkit-user-select:none;user-select:none}.tree-item.svelte-zj71cl.svelte-zj71cl:hover{background:#223}.tree-item.selected.svelte-zj71cl.svelte-zj71cl{background:#2a2a4a;color:#fff;font-weight:500}.tree-item.drop-valid.svelte-zj71cl.svelte-zj71cl{background:#1a3a1a;outline:1px solid #4ade80;outline-offset:-1px}.tree-item.drop-invalid.svelte-zj71cl.svelte-zj71cl{background:#3a1a1a;outline:1px solid #ff6b6b;outline-offset:-1px}.tree-toggle.svelte-zj71cl.svelte-zj71cl{background:none;border:none;color:#666;cursor:pointer;padding:0;width:20px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit;line-height:1;font-size:12px}.tree-toggle.svelte-zj71cl.svelte-zj71cl:hover{color:#a5b4fc}.tree-toggle-placeholder.svelte-zj71cl.svelte-zj71cl{display:inline-block;width:20px;flex-shrink:0}.tree-icon.svelte-zj71cl.svelte-zj71cl{display:inline-flex;align-items:center;justify-content:center;width:20px;height:32px;flex-shrink:0;color:#888;margin-right:4px;cursor:pointer}.tree-icon.svelte-zj71cl.svelte-zj71cl:hover,.tree-item.selected.svelte-zj71cl .tree-icon.svelte-zj71cl{color:#a5b4fc}.tree-label.svelte-zj71cl.svelte-zj71cl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:32px}.first-run-screen.svelte-a9f1pd.svelte-a9f1pd{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--bg, #13131f)}.first-run-card.svelte-a9f1pd.svelte-a9f1pd{max-width:520px;width:100%;padding:2.5rem;background:var(--surface, #1e1e2e);border-radius:12px;border:1px solid var(--border, #2a2a3e);text-align:center}.first-run-logo.svelte-a9f1pd.svelte-a9f1pd{display:block;width:64px;height:64px;margin:0 auto .5rem}.first-run-card.svelte-a9f1pd h1.svelte-a9f1pd{margin:0 0 .75rem;font-size:1.5rem;color:var(--text, #e0e0e0)}.first-run-desc.svelte-a9f1pd.svelte-a9f1pd{color:var(--text-dim, #888);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.input-row.svelte-a9f1pd.svelte-a9f1pd{display:flex;gap:.5rem}.input-row.svelte-a9f1pd input.svelte-a9f1pd{flex:1}.path-info.svelte-a9f1pd.svelte-a9f1pd{text-align:left;font-size:.85rem;padding:.5rem .75rem;margin-top:.5rem;background:var(--surface-alt, #252538);border-radius:6px;color:var(--text-dim, #888)}.error-msg.svelte-a9f1pd.svelte-a9f1pd{text-align:left;font-size:.85rem;padding:.5rem .75rem;margin-top:.5rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b}.first-run-actions.svelte-a9f1pd.svelte-a9f1pd{display:flex;gap:.75rem;justify-content:center;margin-top:1.5rem}.btn-lg.svelte-a9f1pd.svelte-a9f1pd{padding:.65rem 1.5rem;font-size:1rem}.form-group.svelte-a9f1pd.svelte-a9f1pd{margin-bottom:1rem;text-align:left}.form-label.svelte-a9f1pd.svelte-a9f1pd{display:block;font-size:.85rem;color:var(--text-dim, #888);margin-bottom:.4rem}.recovery-screen.svelte-s3o8c3.svelte-s3o8c3{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--bg, #13131f)}.recovery-card.svelte-s3o8c3.svelte-s3o8c3{max-width:480px;width:100%;padding:2.5rem;background:var(--surface, #1e1e2e);border-radius:12px;border:1px solid var(--border, #2a2a3e);text-align:center}.recovery-icon.svelte-s3o8c3.svelte-s3o8c3{font-size:2.5rem;margin-bottom:.5rem;color:#f59e0b}.recovery-card.svelte-s3o8c3 h1.svelte-s3o8c3{margin:0 0 .75rem;font-size:1.4rem;color:var(--text, #e0e0e0)}.recovery-desc.svelte-s3o8c3.svelte-s3o8c3{color:var(--text-dim, #888);margin-bottom:.5rem;font-size:.9rem}.recovery-path.svelte-s3o8c3.svelte-s3o8c3{display:block;padding:.5rem .75rem;background:var(--surface-alt, #252538);border-radius:6px;font-size:.85rem;color:var(--text-dim, #aaa);word-break:break-all;margin-bottom:1.5rem}.error-msg.svelte-s3o8c3.svelte-s3o8c3{padding:.5rem .75rem;margin-bottom:1rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:.85rem}.recovery-actions.svelte-s3o8c3.svelte-s3o8c3{display:flex;flex-direction:column;gap:.6rem}.btn-lg.svelte-s3o8c3.svelte-s3o8c3{padding:.65rem 1.25rem;font-size:.95rem;width:100%}.modal-desc.svelte-s3o8c3.svelte-s3o8c3{color:var(--text-dim, #888);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.modal-overlay.svelte-s3o8c3.svelte-s3o8c3{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.svelte-s3o8c3.svelte-s3o8c3{background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:10px;padding:1.5rem;max-width:420px;width:90%}.modal.svelte-s3o8c3 h3.svelte-s3o8c3{margin:0 0 .75rem}.modal-actions.svelte-s3o8c3.svelte-s3o8c3{display:flex;gap:.5rem;justify-content:flex-end}.settings-sidebar.svelte-8ag2z0{width:200px;min-width:200px;border-right:1px solid var(--border, #2a2a3e);padding:.75rem 0;overflow-y:auto;background:var(--surface, #1e1e2e)}.settings-nav-item.svelte-8ag2z0{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem 1rem;border:none;background:transparent;color:var(--text-dim, #888);font-size:.9rem;cursor:pointer;text-align:left;transition:background .15s,color .15s;font-family:inherit}.settings-nav-item.svelte-8ag2z0:hover:not(.disabled){background:var(--surface-alt, #252538);color:var(--text, #e0e0e0)}.settings-nav-item.active.svelte-8ag2z0{background:var(--accent-bg, rgba(99, 102, 241, .15));color:var(--accent, #818cf8);font-weight:600;position:relative}.settings-nav-item.active.svelte-8ag2z0:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--accent, #818cf8);border-radius:0 2px 2px 0}.settings-nav-item.disabled.svelte-8ag2z0{opacity:.4;cursor:default}.settings-nav-icon.svelte-8ag2z0{width:1.4rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.settings-nav-label.svelte-8ag2z0{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-section.svelte-1e2uhdh.svelte-1e2uhdh{padding:1.5rem;max-width:560px}.settings-section.svelte-1e2uhdh h2.svelte-1e2uhdh{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-1e2uhdh.svelte-1e2uhdh{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-1e2uhdh.svelte-1e2uhdh{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.card-title.svelte-1e2uhdh.svelte-1e2uhdh{font-size:.9rem;font-weight:600;color:var(--text, #e0e0e0);margin:0 0 .75rem}.form-group.svelte-1e2uhdh.svelte-1e2uhdh{margin-bottom:0}.label-text.svelte-1e2uhdh.svelte-1e2uhdh{display:block;font-size:.85rem;color:var(--text-dim, #888);margin-bottom:.3rem}.settings-actions.svelte-1e2uhdh.svelte-1e2uhdh{display:flex;align-items:center;gap:.75rem;margin-top:1rem}.save-notice.svelte-1e2uhdh.svelte-1e2uhdh{padding:.4rem .75rem;background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:6px;color:#34d399;font-size:.85rem}.settings-section.svelte-1zbky3.svelte-1zbky3{padding:1.5rem;max-width:600px}.settings-section.svelte-1zbky3 h2.svelte-1zbky3{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-1zbky3.svelte-1zbky3{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-1zbky3.svelte-1zbky3{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.notice.svelte-1zbky3.svelte-1zbky3{padding:.5rem .75rem;margin-bottom:.75rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:.85rem}.info-row.svelte-1zbky3.svelte-1zbky3{display:flex;padding:.4rem 0;border-bottom:1px solid var(--border, #2a2a3e);font-size:.9rem}.info-row.svelte-1zbky3.svelte-1zbky3:last-child{border-bottom:none}.info-label.svelte-1zbky3.svelte-1zbky3{width:120px;min-width:120px;color:var(--text-dim, #888)}.info-value.svelte-1zbky3.svelte-1zbky3{color:var(--text, #e0e0e0);word-break:break-all}.info-value.mono.svelte-1zbky3.svelte-1zbky3{font-family:monospace;font-size:.85rem}.info-value.small.svelte-1zbky3.svelte-1zbky3{font-size:.8rem}.workspace-actions.svelte-1zbky3.svelte-1zbky3{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.btn.svelte-1zbky3.svelte-1zbky3{padding:.45rem .8rem;border:1px solid var(--border, #2a2a3e);border-radius:6px;background:var(--surface-light, #232338);color:var(--text, #e0e0e0);font-size:.85rem;cursor:pointer}.btn.svelte-1zbky3.svelte-1zbky3:hover{background:var(--accent, #4a7c59);border-color:var(--accent, #4a7c59)}.no-data.svelte-1zbky3.svelte-1zbky3{color:var(--text-dim, #888);font-style:italic;margin:0}.settings-section.svelte-ksamnw.svelte-ksamnw{padding:1.5rem;max-width:560px}.settings-section.svelte-ksamnw h2.svelte-ksamnw{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-ksamnw.svelte-ksamnw{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.loading.svelte-ksamnw.svelte-ksamnw,.no-data.svelte-ksamnw.svelte-ksamnw{color:var(--text-dim, #888);font-style:italic}.template-list.svelte-ksamnw.svelte-ksamnw{display:flex;flex-direction:column;gap:.5rem}.template-item.svelte-ksamnw.svelte-ksamnw{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:var(--surface-alt, #252538);border-radius:6px;border:1px solid var(--border, #2a2a3e)}.template-info.svelte-ksamnw.svelte-ksamnw{display:flex;align-items:center;gap:.5rem}.template-name.svelte-ksamnw.svelte-ksamnw{color:var(--text, #e0e0e0);font-size:.9rem}.template-type.svelte-ksamnw.svelte-ksamnw{color:var(--text-dim, #888);font-size:.8rem}.toggle-label.svelte-ksamnw.svelte-ksamnw{display:flex;align-items:center;gap:.4rem;cursor:pointer}.toggle-text.svelte-ksamnw.svelte-ksamnw{font-size:.8rem;color:var(--text-dim, #888)}input[type=checkbox].svelte-ksamnw.svelte-ksamnw{accent-color:var(--accent, #818cf8)}.settings-plugins.svelte-i9gngw.svelte-i9gngw{padding:1.5rem}h3.svelte-i9gngw.svelte-i9gngw{margin:0 0 .25rem;font-size:1.1rem;color:var(--text, #e0e0e0)}.hint.svelte-i9gngw.svelte-i9gngw{margin:0 0 1rem;font-size:.85rem;color:var(--text-dim, #888)}.loading.svelte-i9gngw.svelte-i9gngw{color:var(--text-dim, #888)}.error.svelte-i9gngw.svelte-i9gngw{color:#f87171;background:#f871711a;padding:.5rem .75rem;border-radius:6px}.empty-state.svelte-i9gngw.svelte-i9gngw{text-align:center;padding:3rem 1rem;color:var(--text-dim, #888)}.empty-state.svelte-i9gngw code.svelte-i9gngw{background:var(--surface-alt, #252538);padding:.15rem .4rem;border-radius:3px;font-size:.85rem}.plugin-list.svelte-i9gngw.svelte-i9gngw{display:flex;flex-direction:column;gap:.5rem}.plugin-card.svelte-i9gngw.svelte-i9gngw{display:flex;align-items:center;justify-content:space-between;background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:.75rem 1rem;gap:1rem}.plugin-info.svelte-i9gngw.svelte-i9gngw{flex:1;min-width:0}.plugin-name.svelte-i9gngw.svelte-i9gngw{font-weight:600;color:var(--text, #e0e0e0);display:flex;align-items:center;gap:.5rem}.plugin-version.svelte-i9gngw.svelte-i9gngw{font-size:.75rem;color:var(--text-dim, #888);font-weight:400}.plugin-desc.svelte-i9gngw.svelte-i9gngw{font-size:.85rem;color:var(--text-dim, #aaa);margin-top:.15rem}.plugin-meta.svelte-i9gngw.svelte-i9gngw{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin-top:.25rem;font-size:.75rem;color:var(--text-dim, #888)}.plugin-toggle.svelte-i9gngw.svelte-i9gngw{flex-shrink:0}.toggle-btn.svelte-i9gngw.svelte-i9gngw{position:relative;width:44px;height:24px;background:var(--surface-alt, #333);border-radius:12px;border:1px solid var(--border, #444);cursor:pointer;padding:0;transition:background .2s}.toggle-btn.active.svelte-i9gngw.svelte-i9gngw{background:#6366f1;border-color:#6366f1}.toggle-knob.svelte-i9gngw.svelte-i9gngw{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px #0000004d}.toggle-btn.active.svelte-i9gngw .toggle-knob.svelte-i9gngw{left:22px}.toggle-group.svelte-i9gngw.svelte-i9gngw{display:flex;align-items:center;gap:6px}.install-btn.svelte-i9gngw.svelte-i9gngw{padding:6px 14px;background:#6366f1;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}.install-btn.svelte-i9gngw.svelte-i9gngw:hover{filter:brightness(1.15)}.uninstall-btn.svelte-i9gngw.svelte-i9gngw{width:28px;height:28px;background:var(--surface, #1a1a2e);color:#ef4444;border:1px solid rgba(239,68,68,.3);border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:all .15s}.uninstall-btn.svelte-i9gngw.svelte-i9gngw:hover{opacity:1;background:#ef44441a}.settings-section.svelte-1fx1e1e.svelte-1fx1e1e{padding:1.5rem;max-width:600px}.settings-section.svelte-1fx1e1e h2.svelte-1fx1e1e{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-1fx1e1e.svelte-1fx1e1e{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-1fx1e1e.svelte-1fx1e1e{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.info-row.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;padding:.4rem 0;border-bottom:1px solid var(--border, #2a2a3e);font-size:.9rem}.info-row.svelte-1fx1e1e.svelte-1fx1e1e:last-child{border-bottom:none}.info-label.svelte-1fx1e1e.svelte-1fx1e1e{width:180px;min-width:180px;color:var(--text-dim, #888)}.info-value.svelte-1fx1e1e.svelte-1fx1e1e{color:var(--text, #e0e0e0);word-break:break-all}.info-value.mono.svelte-1fx1e1e.svelte-1fx1e1e{font-family:monospace;font-size:.85rem}.info-value.error.svelte-1fx1e1e.svelte-1fx1e1e{color:#ff6b6b}.status-ok.svelte-1fx1e1e.svelte-1fx1e1e{color:#34d399;font-weight:600}.status-err.svelte-1fx1e1e.svelte-1fx1e1e{color:#ff6b6b}.sync-actions.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.sync-interval.svelte-1fx1e1e.svelte-1fx1e1e{margin-bottom:0}.interval-row.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;align-items:center}.interval-row.svelte-1fx1e1e input.svelte-1fx1e1e{width:100px}.sync-setup.svelte-1fx1e1e .form-group.svelte-1fx1e1e{margin-bottom:1rem}.sync-setup.svelte-1fx1e1e .form-group.svelte-1fx1e1e:last-of-type{margin-bottom:0}.sync-setup-actions.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;margin-top:1rem}.connection-result.svelte-1fx1e1e.svelte-1fx1e1e{margin-top:.75rem;padding:.4rem .75rem;border-radius:6px;font-size:.85rem}.connection-result.ok.svelte-1fx1e1e.svelte-1fx1e1e{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#34d399}.connection-result.fail.svelte-1fx1e1e.svelte-1fx1e1e{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);color:#ff6b6b}.error-msg.svelte-1fx1e1e.svelte-1fx1e1e{padding:.5rem .75rem;margin-bottom:.75rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:.85rem}.result-msg.svelte-1fx1e1e.svelte-1fx1e1e{padding:.5rem .75rem;margin-bottom:.75rem;background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:6px;color:#34d399;font-size:.85rem}.result-msg.warning.svelte-1fx1e1e.svelte-1fx1e1e{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b}.modal-overlay.svelte-1fx1e1e.svelte-1fx1e1e{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;border:none;padding:0;cursor:pointer;width:100%;color:inherit;font:inherit}.modal.svelte-1fx1e1e.svelte-1fx1e1e{background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:10px;padding:1.5rem;max-width:420px;width:90%;cursor:default}.modal.svelte-1fx1e1e h3.svelte-1fx1e1e{margin:0 0 .75rem}.modal-desc.svelte-1fx1e1e.svelte-1fx1e1e{color:var(--text-dim, #888);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.modal-actions.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;justify-content:flex-end}.settings-section.svelte-19bo7bn.svelte-19bo7bn{padding:1.5rem;max-width:500px}.settings-section.svelte-19bo7bn h2.svelte-19bo7bn{margin:0 0 .5rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-19bo7bn.svelte-19bo7bn{color:var(--text-dim, #888);font-size:.85rem}.settings-section.svelte-13i6m7m.svelte-13i6m7m{padding:1.5rem;max-width:600px}.settings-section.svelte-13i6m7m h2.svelte-13i6m7m{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-13i6m7m.svelte-13i6m7m{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-13i6m7m.svelte-13i6m7m{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.form-group.svelte-13i6m7m.svelte-13i6m7m{margin-bottom:1rem}.form-group.svelte-13i6m7m.svelte-13i6m7m:last-child{margin-bottom:0}.label-text.svelte-13i6m7m.svelte-13i6m7m{display:block;color:var(--text-dim, #888);font-size:.85rem;margin-bottom:.35rem}input[type=number].svelte-13i6m7m.svelte-13i6m7m{width:120px;padding:.4rem .6rem;background:var(--bg, #13131f);border:1px solid var(--border, #2a2a3e);border-radius:6px;color:var(--text, #e0e0e0);font-size:.9rem}input[type=number].svelte-13i6m7m.svelte-13i6m7m:disabled{opacity:.5}.field-hint.svelte-13i6m7m.svelte-13i6m7m{color:var(--text-dim, #666);font-size:.75rem;margin-top:.35rem}.toggle-label.svelte-13i6m7m.svelte-13i6m7m{display:flex;align-items:center;gap:.5rem;cursor:pointer}.toggle-text.svelte-13i6m7m.svelte-13i6m7m{color:var(--text, #e0e0e0);font-size:.9rem}.bridge-status.svelte-13i6m7m.svelte-13i6m7m{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border, #2a2a3e)}.info-row.svelte-13i6m7m.svelte-13i6m7m{display:flex;padding:.3rem 0;font-size:.85rem}.info-label.svelte-13i6m7m.svelte-13i6m7m{width:140px;min-width:140px;color:var(--text-dim, #888)}.info-value.svelte-13i6m7m.svelte-13i6m7m{color:var(--text, #e0e0e0)}.info-value.mono.svelte-13i6m7m.svelte-13i6m7m{font-family:monospace;font-size:.85rem}.status-ok.svelte-13i6m7m.svelte-13i6m7m{color:#34d399;font-weight:600}.status-off.svelte-13i6m7m.svelte-13i6m7m{color:#888}.actions.svelte-13i6m7m.svelte-13i6m7m{display:flex;gap:.5rem;flex-wrap:wrap}.status-msg.svelte-13i6m7m.svelte-13i6m7m{padding:.5rem .75rem;margin-bottom:.75rem;border-radius:6px;font-size:.85rem}.status-msg.ok.svelte-13i6m7m.svelte-13i6m7m{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#34d399}.status-msg.error.svelte-13i6m7m.svelte-13i6m7m{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);color:#ff6b6b}.settings-overlay.svelte-zf2zsc.svelte-zf2zsc{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:900;border:none;padding:0;cursor:pointer;width:100%;color:inherit;font:inherit}.settings-window.svelte-zf2zsc.svelte-zf2zsc{display:flex;flex-direction:column;width:800px;max-width:90vw;height:600px;max-height:85vh;background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0006}.settings-header.svelte-zf2zsc.svelte-zf2zsc{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border, #2a2a3e);flex-shrink:0}.settings-header.svelte-zf2zsc h2.svelte-zf2zsc{margin:0;font-size:1.1rem;color:var(--text, #e0e0e0)}.close-btn.svelte-zf2zsc.svelte-zf2zsc{background:transparent;border:none;color:var(--text-dim, #888);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center}.close-btn.svelte-zf2zsc.svelte-zf2zsc:hover{color:var(--text, #e0e0e0);background:var(--surface-alt, #252538)}.settings-body.svelte-zf2zsc.svelte-zf2zsc{display:flex;flex:1;overflow:hidden}.settings-content.svelte-zf2zsc.svelte-zf2zsc{flex:1;overflow-y:auto;background:var(--bg, #13131f)}.sync-status-widget.svelte-1rxbx0{font-size:.8rem;padding:.4rem .5rem}.sync-status-row.svelte-1rxbx0{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sync-dot.svelte-1rxbx0{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-connected.svelte-1rxbx0{background:#34d399;box-shadow:0 0 4px #34d39966}.dot-warning.svelte-1rxbx0{background:#f59e0b}.dot-disabled.svelte-1rxbx0{background:#555}.dot-syncing.svelte-1rxbx0{background:#818cf8;animation:svelte-1rxbx0-pulse 1s infinite}@keyframes svelte-1rxbx0-pulse{0%,to{opacity:1}50%{opacity:.4}}.sync-label.svelte-1rxbx0{color:var(--text-dim, #888);white-space:nowrap}.sync-count.svelte-1rxbx0{color:var(--accent, #818cf8);font-weight:600}.sync-actions-row.svelte-1rxbx0{display:flex;gap:.3rem;margin-left:auto}.sync-message.svelte-1rxbx0{margin-top:.25rem;color:var(--text-dim, #888);line-height:1.25}.sync-message-warning.svelte-1rxbx0{color:#f59e0b}.btn-xs.svelte-1rxbx0{padding:.2rem .5rem;font-size:.75rem;border:1px solid var(--border, #2a2a3e);background:var(--surface-alt, #252538);color:var(--text-dim, #888);border-radius:4px;cursor:pointer;white-space:nowrap}.btn-xs.svelte-1rxbx0:hover{background:var(--border, #2a2a3e);color:var(--text, #e0e0e0)}.btn-xs.svelte-1rxbx0:disabled{opacity:.5;cursor:default}.btn-link.svelte-1rxbx0{border:none;background:transparent;color:var(--accent, #818cf8);text-decoration:underline}.btn-link.svelte-1rxbx0:hover{color:#a5b4fc;background:transparent}.browser-events.svelte-slao4o.svelte-slao4o{padding:8px 0}.browser-header.svelte-slao4o.svelte-slao4o{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0 4px}.browser-header.svelte-slao4o h3.svelte-slao4o{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim, #8892b0);margin:0}.refresh-btn.svelte-slao4o.svelte-slao4o{background:var(--surface2, #1e2d50);border:none;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:12px;transition:background .2s}.refresh-btn.svelte-slao4o.svelte-slao4o:hover{background:var(--surface, #16213e)}.empty-state.svelte-slao4o.svelte-slao4o{padding:24px;text-align:center}.empty-text.svelte-slao4o.svelte-slao4o,.loading.svelte-slao4o.svelte-slao4o{color:var(--text-dim, #8892b0);font-style:italic;font-size:12px}.event-list.svelte-slao4o.svelte-slao4o{display:flex;flex-direction:column;gap:4px}.event-item.svelte-slao4o.svelte-slao4o{display:flex;gap:8px;padding:6px 8px;background:var(--surface, #16213e);border-radius:6px;transition:background .15s}.event-item.pending.svelte-slao4o.svelte-slao4o{border-left:2px solid var(--accent, #0f9b8e)}.event-icon.svelte-slao4o.svelte-slao4o{font-size:16px;line-height:1.4;min-width:20px;text-align:center}.event-body.svelte-slao4o.svelte-slao4o{flex:1;min-width:0}.event-domain.svelte-slao4o.svelte-slao4o{font-size:11px;color:var(--accent, #0f9b8e);font-weight:500}.event-title.svelte-slao4o.svelte-slao4o{font-size:12px;color:var(--text, #e0e0e0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta.svelte-slao4o.svelte-slao4o{display:flex;gap:8px;margin-top:2px}.duration.svelte-slao4o.svelte-slao4o,.time.svelte-slao4o.svelte-slao4o{font-size:10px;color:var(--text-dim, #8892b0)}.status-badge.svelte-slao4o.svelte-slao4o{font-size:9px;padding:1px 4px;border-radius:3px;text-transform:uppercase}.status-accepted.svelte-slao4o.svelte-slao4o{background:#2ecc7133;color:#2ecc71}.status-dismissed.svelte-slao4o.svelte-slao4o{background:#e74c3c33;color:#e74c3c}.status-attached.svelte-slao4o.svelte-slao4o{background:#3498db33;color:#3498db}.event-text.svelte-slao4o.svelte-slao4o{font-size:11px;color:var(--text-dim, #8892b0);font-style:italic;margin-top:2px;padding:2px 6px;background:#ffffff08;border-radius:3px}.event-actions.svelte-slao4o.svelte-slao4o{display:flex;gap:2px;align-items:flex-start}.event-actions.svelte-slao4o button.svelte-slao4o{background:none;border:1px solid var(--surface2, #1e2d50);border-radius:4px;width:24px;height:24px;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.btn-accept.svelte-slao4o.svelte-slao4o:hover{background:#2ecc7133;border-color:#2ecc71}.btn-attach.svelte-slao4o.svelte-slao4o:hover{background:#3498db33;border-color:#3498db}.btn-dismiss.svelte-slao4o.svelte-slao4o:hover{background:#e74c3c33;border-color:#e74c3c}.today-screen.svelte-ii7vwz.svelte-ii7vwz{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;min-height:20px}.today-date.svelte-ii7vwz.svelte-ii7vwz{font-size:13px;color:#666}.today-tabs.svelte-ii7vwz.svelte-ii7vwz{display:flex;gap:0;border-bottom:1px solid #2a2a3c;margin-bottom:16px}.today-tab.svelte-ii7vwz.svelte-ii7vwz{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit;position:relative}.today-tab.svelte-ii7vwz.svelte-ii7vwz:hover{color:#a5b4fc}.today-tab.active.svelte-ii7vwz.svelte-ii7vwz{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.tab-badge.svelte-ii7vwz.svelte-ii7vwz{background:#6366f1;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;margin-left:6px;line-height:1.4;vertical-align:middle}.today-tab-content.svelte-ii7vwz.svelte-ii7vwz{flex:1}.today-empty.svelte-ii7vwz.svelte-ii7vwz{padding:48px 24px;text-align:center}.today-empty.svelte-ii7vwz p.svelte-ii7vwz{color:#666;font-size:14px;margin:0}.today-empty.svelte-ii7vwz .hint.svelte-ii7vwz{font-size:12px;color:#555;margin-top:8px}.tab-controls.svelte-ii7vwz.svelte-ii7vwz{margin-bottom:12px}.sort-controls.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:6px}.sort-btn.svelte-ii7vwz.svelte-ii7vwz{padding:4px 10px;border:1px solid #2a2a3c;background:#13131f;color:#888;border-radius:4px;font-size:12px;cursor:pointer;font-family:inherit}.sort-btn.svelte-ii7vwz.svelte-ii7vwz:hover{border-color:#3a3a5c;color:#ccc}.sort-btn.active.svelte-ii7vwz.svelte-ii7vwz{border-color:#6366f1;color:#a5b4fc;background:#6366f114}.sort-dir.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0;margin-left:4px}.feed-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:2px}.feed-item.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.feed-item.svelte-ii7vwz.svelte-ii7vwz:hover{background:#1a1a28}.feed-icon.svelte-ii7vwz.svelte-ii7vwz{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:2px}.feed-body.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0}.feed-title-line.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}.feed-type.svelte-ii7vwz.svelte-ii7vwz{font-size:13px;color:#8888a0}.feed-colon.svelte-ii7vwz.svelte-ii7vwz{color:#555}.feed-title.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef;font-weight:500}.feed-title.svelte-ii7vwz.svelte-ii7vwz:hover{text-decoration:underline}.feed-meta-line.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:8px;margin-top:2px}.feed-path.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#8ea0d8;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-event-type.svelte-ii7vwz.svelte-ii7vwz{font-size:10px;color:#a5b4fc;background:#6366f11a;padding:2px 8px;border-radius:8px;font-weight:500}.feed-time.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#555;margin-left:auto;flex-shrink:0}.feed-nav-btn.svelte-ii7vwz.svelte-ii7vwz{background:none;border:none;color:#555;cursor:pointer;padding:4px;border-radius:4px;flex-shrink:0;margin-top:2px}.feed-nav-btn.svelte-ii7vwz.svelte-ii7vwz:hover{color:#a5b4fc;background:#1e1e30}.link-btn.svelte-ii7vwz.svelte-ii7vwz{background:none;border:none;padding:0;color:#a5b4fc;font:inherit;cursor:pointer;text-align:left}.link-btn.svelte-ii7vwz.svelte-ii7vwz:hover{text-decoration:underline}.suggestions-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:6px}.suggestion-card.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;align-items:stretch;padding:0;background:#1e1e32;border-radius:6px;margin-bottom:6px;gap:0;border:1px solid transparent}.suggestion-card.svelte-ii7vwz.svelte-ii7vwz:last-child{margin-bottom:0}.suggestion-card.expanded.svelte-ii7vwz.svelte-ii7vwz{border-color:#3a3a5c}.suggestion-main.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;cursor:pointer;gap:10px;min-height:38px}.suggestion-info.svelte-ii7vwz.svelte-ii7vwz{flex:1;display:flex;flex-direction:column;gap:2px}.suggestion-node.svelte-ii7vwz.svelte-ii7vwz{color:#a5b4fc;font-weight:600;font-size:13px;text-decoration:none;cursor:pointer}.suggestion-node.svelte-ii7vwz.svelte-ii7vwz:hover{text-decoration:underline}.suggestion-summary.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef}.suggestion-meta.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0;margin-top:2px}.suggestion-actions.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:6px;flex-shrink:0}.suggestion-min-input.svelte-ii7vwz.svelte-ii7vwz{width:54px;padding:3px 7px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;text-align:center}.suggestion-min-label.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0}.suggestion-confidence-dot.svelte-ii7vwz.svelte-ii7vwz{width:9px;height:9px;border-radius:999px;background:#77798a;box-shadow:0 0 0 3px #77798a1f;flex:0 0 auto}.suggestion-confidence-dot.low.svelte-ii7vwz.svelte-ii7vwz{background:#ef4444;box-shadow:0 0 0 3px #ef44441f}.suggestion-confidence-dot.medium.svelte-ii7vwz.svelte-ii7vwz{background:#fbbf24;box-shadow:0 0 0 3px #fbbf241f}.suggestion-confidence-dot.high.svelte-ii7vwz.svelte-ii7vwz{background:#34d399;box-shadow:0 0 0 3px #34d3991f}.suggestion-detail.svelte-ii7vwz.svelte-ii7vwz{width:100%;padding:6px 10px 8px;border-top:1px solid #2a2a3c}.suggestion-detail-title.svelte-ii7vwz.svelte-ii7vwz{font-size:10px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;padding:4px 0}.suggestion-detail-event.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:7px;padding:2px 0;font-size:12px;color:#b0b0c0}.suggestion-event-time.svelte-ii7vwz.svelte-ii7vwz{color:#a0a0b8;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:48px}.suggestion-event-type.svelte-ii7vwz.svelte-ii7vwz{color:#8888a0;font-size:11px;background:#1a1a2e;padding:1px 6px;border-radius:3px}.suggestion-event-title.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-event-path.svelte-ii7vwz.svelte-ii7vwz{max-width:220px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn.svelte-ii7vwz.svelte-ii7vwz{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn.svelte-ii7vwz.svelte-ii7vwz:hover{background:#223}.btn-primary.svelte-ii7vwz.svelte-ii7vwz{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-ii7vwz.svelte-ii7vwz:hover{background:#4f46e5}.btn-sm.svelte-ii7vwz.svelte-ii7vwz{padding:4px 10px;font-size:12px}.btn-danger.svelte-ii7vwz.svelte-ii7vwz{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-ii7vwz.svelte-ii7vwz:hover{background:#3a2222}.ip-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:2px}.ip-item.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.ip-item.svelte-ii7vwz.svelte-ii7vwz:hover{background:#1a1a28}.ip-icon.svelte-ii7vwz.svelte-ii7vwz{width:20px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.ip-body.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0}.ip-title.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef;display:block}.ip-path.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#8ea0d8;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.ip-type.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#666;flex-shrink:0}.ip-time.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#555;flex-shrink:0;margin-left:8px}.capture-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:6px}.capture-item.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28;cursor:pointer}.capture-item.svelte-ii7vwz.svelte-ii7vwz:hover{border-color:#3a3a5c;background:#1e1e32}.capture-icon.svelte-ii7vwz.svelte-ii7vwz{font-size:18px;width:28px;text-align:center;flex-shrink:0}.capture-body.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0}.capture-title.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef;font-weight:500;display:block}.capture-meta.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0;display:block;margin-top:2px}.capture-time.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#555;flex-shrink:0}.plugin-page.svelte-xgfxht.svelte-xgfxht{padding:1.5rem;height:100%;display:flex;flex-direction:column}.loading.svelte-xgfxht.svelte-xgfxht{color:var(--text-dim, #888)}.empty-state.svelte-xgfxht.svelte-xgfxht{text-align:center;padding:3rem 1rem;color:var(--text-dim, #888)}.empty-state.svelte-xgfxht code.svelte-xgfxht{background:var(--surface-alt, #252538);padding:.15rem .4rem;border-radius:3px;font-size:.85rem}.plugin-frame-container.svelte-xgfxht.svelte-xgfxht{flex:1;display:flex;flex-direction:column;min-height:0}.plugin-error-bar.svelte-xgfxht.svelte-xgfxht{padding:.5rem 1rem;background:#f871711f;border:1px solid #f87171;border-bottom:none;border-radius:8px 8px 0 0;color:#f87171;font-size:.85rem;flex-shrink:0}.plugin-frame.svelte-xgfxht.svelte-xgfxht{flex:1;border:1px solid var(--border, #2a2a3e);border-radius:8px;background:#fff;width:100%;min-height:400px;display:block}.plugin-frame-container.svelte-xgfxht .plugin-frame.svelte-xgfxht{border-radius:0 0 8px 8px;border-top:none}.global-search.svelte-1dlr37h{position:relative;flex:1 1 360px;min-width:180px;max-width:520px}.global-search-input.svelte-1dlr37h{width:100%;height:32px;padding:0 12px;border:1px solid #2a2a3c;border-radius:6px;background:#10101a;color:#e4e4ef;font:inherit;font-size:13px}.global-search-input.svelte-1dlr37h:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f12e}.global-search-results.svelte-1dlr37h{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:160;max-height:min(360px,calc(100vh - 88px));overflow-y:auto;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;box-shadow:0 14px 36px #00000061;padding:4px}.global-search-result.svelte-1dlr37h{display:flex;flex-direction:column;gap:2px;width:100%;border:0;background:transparent;color:#e4e4ef;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;font:inherit}.global-search-result.svelte-1dlr37h:hover,.global-search-result.selected.svelte-1dlr37h{background:#252545}.global-search-title.svelte-1dlr37h{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-meta.svelte-1dlr37h{font-size:11px;color:#a0a0bc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-snippet.svelte-1dlr37h{font-size:12px;color:#767690;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-empty.svelte-1dlr37h{padding:10px 12px;color:#8888a0;font-size:12px}.header.svelte-7x8q9h{padding:10px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:16px;flex-shrink:0;min-height:52px}.header-left.svelte-7x8q9h{display:flex;align-items:center;gap:8px;min-width:120px;flex:0 1 auto;overflow:hidden}.header-title.svelte-7x8q9h{font-size:15px;font-weight:600;color:#e4e4ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-title.placeholder.svelte-7x8q9h{color:#666;font-weight:500}.header-subtitle.svelte-7x8q9h{font-size:11px;color:#8888a0;background:#1e1e2e;padding:2px 8px;border-radius:10px;white-space:nowrap}.header-right.svelte-7x8q9h{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:8px}@media (max-width: 760px){.header.svelte-7x8q9h{padding:8px 12px;gap:10px;align-items:flex-start;flex-wrap:wrap}.header-left.svelte-7x8q9h{flex:1 1 100%}.header-right.svelte-7x8q9h{flex:1 1 100%;justify-content:stretch}}.md-editor.svelte-1etjgc1{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.md-editor.mode-edit.svelte-1etjgc1{height:auto}.md-toolbar.svelte-1etjgc1{display:flex;align-items:center;gap:2px;padding:5px 10px;border-bottom:1px solid #2a2a3c;background:#16161f;flex-shrink:0;flex-wrap:wrap}.md-toolbar-group.svelte-1etjgc1{display:flex;align-items:center;gap:1px}.md-toolbar-sep.svelte-1etjgc1{width:1px;height:18px;background:#2a2a3c;margin:0 4px;flex-shrink:0}.md-toolbar-btn.svelte-1etjgc1{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#999;cursor:pointer;transition:background .12s,color .12s;padding:0}.md-toolbar-btn.svelte-1etjgc1:hover{background:#2a2a3c;color:#e4e4ef}.md-toolbar-btn.svelte-1etjgc1:active{background:#333350}.md-toolbar-btn.svelte-1etjgc1:focus-visible{outline:2px solid #818cf8;outline-offset:1px}.md-toolbar-btn--internal.svelte-1etjgc1{color:#67e8f9}.md-toolbar-btn--internal.svelte-1etjgc1:hover{background:#67e8f91a;color:#a5f3fc}.md-btn-label.svelte-1etjgc1{font-size:13px;font-weight:700;font-family:SF Mono,Fira Code,monospace;line-height:1}.md-btn-bold.svelte-1etjgc1{font-weight:900}.md-btn-italic.svelte-1etjgc1{font-style:italic;font-family:Georgia,serif}.md-btn-sm.svelte-1etjgc1{font-size:10px}.md-btn-quote.svelte-1etjgc1{font-size:16px;font-family:Georgia,serif}.md-textarea.svelte-1etjgc1{flex:1;width:100%;min-height:0;border:none;outline:none;background:#13131f;color:#e4e4ef;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:14px;line-height:1.65;padding:16px 20px;resize:none;-moz-tab-size:2;tab-size:2;overflow-y:auto}.md-textarea.svelte-1etjgc1::placeholder{color:#444;font-style:italic}.markdown-body.svelte-jdvhib{color:#e4e4ef;font-size:15px;line-height:1.7;word-wrap:break-word;overflow-wrap:break-word;max-width:720px}.md-empty.svelte-jdvhib{color:#555;font-style:italic;padding:24px 0}.md-error.svelte-jdvhib{background:#3a2222;border:1px solid #5a2a2a;border-radius:8px;padding:16px;color:#f88}.md-error-detail.svelte-jdvhib{font-size:12px;color:#c66;margin-top:8px}.markdown-body h1{font-size:28px;font-weight:700;margin:32px 0 16px;padding-bottom:8px;border-bottom:1px solid #2a2a3c;color:#f0f0f8}.markdown-body h2{font-size:22px;font-weight:600;margin:28px 0 14px;padding-bottom:6px;border-bottom:1px solid #22223a;color:#e8e8f0}.markdown-body h3{font-size:18px;font-weight:600;margin:24px 0 12px;color:#ddd}.markdown-body h4{font-size:16px;font-weight:600;margin:20px 0 10px;color:#ccc}.markdown-body h5,.markdown-body h6{font-size:14px;font-weight:600;margin:16px 0 8px;color:#bbb}.markdown-body p{margin:12px 0}.markdown-body .md-link{color:#818cf8;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s,color .15s;cursor:pointer}.markdown-body .md-link:hover{color:#a5b4fc;border-bottom-color:#818cf8}.markdown-body .md-link--internal{color:#67e8f9;font-weight:500}.markdown-body .md-link--internal:hover{color:#a5f3fc;border-bottom-color:#67e8f9}.markdown-body .md-link--blocked{color:#666;text-decoration:line-through;cursor:not-allowed}.markdown-body strong{font-weight:700;color:#f0f0f8}.markdown-body em{font-style:italic}.markdown-body del{text-decoration:line-through;color:#888}.markdown-body ul{padding-left:24px;margin:12px 0;list-style-type:disc}.markdown-body ol{padding-left:24px;margin:12px 0;list-style-type:decimal}.markdown-body li{margin:4px 0;line-height:1.6}.markdown-body li>ul,.markdown-body li>ol{margin:4px 0}.markdown-body .md-task-item{list-style:none;display:flex;align-items:flex-start;gap:8px;margin:4px 0}.markdown-body .md-task-checkbox{margin-top:3px;flex-shrink:0;accent-color:#818cf8}.markdown-body .md-task-text{flex:1}.markdown-body blockquote{margin:16px 0;padding:12px 16px;border-left:3px solid #818cf8;background:#818cf80f;border-radius:0 6px 6px 0;color:#bbb;font-style:italic}.markdown-body blockquote p{margin:4px 0}.markdown-body .md-code-inline{background:#1e1e38;color:#f59e0b;padding:2px 6px;border-radius:4px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px}.markdown-body .md-code-block{background:#0d1117;border:1px solid #21262d;border-radius:8px;padding:16px;margin:16px 0;overflow-x:auto;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.55;color:#c9d1d9}.markdown-body .md-code-block code{background:none;padding:0;border-radius:0;font-size:inherit}.markdown-body .hljs{color:#c9d1d9}.markdown-body .hljs-comment{color:#8b949e}.markdown-body .hljs-keyword{color:#ff7b72}.markdown-body .hljs-string{color:#a5d6ff}.markdown-body .hljs-number{color:#79c0ff}.markdown-body .hljs-function{color:#d2a8ff}.markdown-body .hljs-class,.markdown-body .hljs-variable{color:#ffa657}.markdown-body .hljs-operator{color:#ff7b72}.markdown-body .hljs-punctuation{color:#c9d1d9}.markdown-body .hljs-tag{color:#7ee787}.markdown-body .hljs-attr{color:#79c0ff}.markdown-body .hljs-title{color:#d2a8ff}.markdown-body .hljs-built_in{color:#ffa657}.markdown-body .hljs-literal{color:#79c0ff}.markdown-body .hljs-type{color:#ffa657}.markdown-body .hljs-params{color:#c9d1d9}.markdown-body .hljs-property{color:#79c0ff}.markdown-body .hljs-regexp{color:#a5d6ff}.markdown-body .hljs-meta{color:#8b949e}.markdown-body .hljs-doctag{color:#ff7b72}.markdown-body .hljs-name{color:#7ee787}.markdown-body .hljs-section{color:#1f6feb;font-weight:700}.markdown-body .hljs-symbol{color:#79c0ff}.markdown-body .hljs-bullet{color:#f2cc60}.markdown-body .hljs-code{color:#c9d1d9}.markdown-body .hljs-emphasis{font-style:italic}.markdown-body .hljs-strong{font-weight:700}.markdown-body .hljs-addition{color:#aff5b4;background:#033a16}.markdown-body .hljs-deletion{color:#ffdcd7;background:#67060c}.markdown-body table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}.markdown-body thead{background:#1a1a2e}.markdown-body th{padding:10px 14px;text-align:left;font-weight:600;color:#c4c4d4;border-bottom:2px solid #2a2a3c}.markdown-body td{padding:8px 14px;border-bottom:1px solid #1e1e30}.markdown-body tbody tr:hover{background:#818cf80a}.markdown-body hr{border:none;border-top:1px solid #2a2a3c;margin:24px 0}.markdown-body .md-image-blocked{display:inline-block;background:#1a1a2e;border:1px dashed #3a3a5c;border-radius:6px;padding:8px 14px;color:#666;font-size:13px;font-style:italic;margin:8px 0}.note-editor-panel.svelte-8tdyp9.svelte-8tdyp9{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.mode-switcher.svelte-8tdyp9.svelte-8tdyp9{display:flex;align-items:center;gap:2px;padding:5px 12px;border-bottom:1px solid #2a2a3c;background:#14141f;flex-shrink:0}.mode-btn.svelte-8tdyp9.svelte-8tdyp9{padding:4px 12px;border:1px solid transparent;border-radius:4px;background:transparent;color:#888;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.mode-btn.svelte-8tdyp9.svelte-8tdyp9:hover{color:#ccc;background:#1e1e30}.mode-btn.active.svelte-8tdyp9.svelte-8tdyp9{color:#e4e4ef;background:#22223a;border-color:#333350;font-weight:500}.mode-btn.svelte-8tdyp9.svelte-8tdyp9:focus-visible{outline:2px solid #818cf8;outline-offset:1px}.panel-content.svelte-8tdyp9.svelte-8tdyp9{flex:1;display:flex;min-height:0;overflow:hidden}.mode-preview.svelte-8tdyp9 .panel-content.svelte-8tdyp9{overflow-y:auto}.preview-pane.svelte-8tdyp9.svelte-8tdyp9{flex:1;padding:24px;overflow-y:auto}.split-pane.svelte-8tdyp9.svelte-8tdyp9{flex:1;display:flex;min-height:0;overflow:hidden}.split-editor.svelte-8tdyp9.svelte-8tdyp9{flex:1;display:flex;flex-direction:column;min-width:0;border-right:1px solid #2a2a3c;overflow:hidden}.split-preview.svelte-8tdyp9.svelte-8tdyp9{flex:1;min-width:0;overflow-y:auto;padding:20px 24px;background:#11111c}.picker-modal-overlay.svelte-12kipyi{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.picker-modal.svelte-12kipyi{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;width:480px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.picker-header.svelte-12kipyi{padding:12px 16px;border-bottom:1px solid #2a2a3c}.picker-search-input.svelte-12kipyi{width:100%;padding:8px 12px;border:1px solid #2a2a3c;border-radius:6px;background:#13131f;color:#e4e4ef;font-size:14px;font-family:inherit;outline:none;box-sizing:border-box}.picker-search-input.svelte-12kipyi:focus{border-color:#818cf8}.picker-types.svelte-12kipyi{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid #2a2a3c}.picker-type-btn.svelte-12kipyi{padding:4px 12px;border:1px solid #2a2a3c;border-radius:4px;background:#13131f;color:#999;font-size:12px;font-family:inherit;cursor:pointer}.picker-type-btn.svelte-12kipyi:hover:not(:disabled){background:#1e1e38;color:#ccc}.picker-type-btn.active.svelte-12kipyi{background:#2a2a4a;color:#e4e4ef;border-color:#6366f1}.picker-type-btn.disabled.svelte-12kipyi{opacity:.4;cursor:not-allowed}.picker-secret-placeholder.svelte-12kipyi{padding:32px;text-align:center;color:#666;font-size:14px}.picker-results.svelte-12kipyi{flex:1;overflow-y:auto;min-height:0;max-height:300px}.picker-loading.svelte-12kipyi,.picker-error.svelte-12kipyi,.picker-empty.svelte-12kipyi{padding:24px;text-align:center;color:#666;font-size:13px}.picker-error.svelte-12kipyi{color:#f88}.picker-result.svelte-12kipyi{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 16px;border:none;border-bottom:1px solid #1e1e30;background:transparent;color:#e4e4ef;font-size:13px;font-family:inherit;text-align:left;cursor:pointer}.picker-result.svelte-12kipyi:last-child{border-bottom:none}.picker-result.svelte-12kipyi:hover,.picker-result.selected.svelte-12kipyi{background:#1e1e38}.picker-result-title.svelte-12kipyi{font-weight:500}.picker-result-path.svelte-12kipyi{font-size:11px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-footer.svelte-12kipyi{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #2a2a3c}.svelte-5mstt.svelte-5mstt,.svelte-5mstt.svelte-5mstt:before,.svelte-5mstt.svelte-5mstt:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-5mstt.svelte-5mstt{display:flex;width:100vw;height:100vh;overflow:hidden;background:#13131f;color:#e4e4ef;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.capture-drop-overlay.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#13131f6b;border:2px dashed #818cf8}.capture-drop-box.svelte-5mstt.svelte-5mstt{max-width:min(520px,calc(100vw - 48px));padding:14px 18px;border:1px solid #3a3a5c;border-radius:8px;background:#1a1a28;color:#e4e4ef;font-size:14px;font-weight:600;box-shadow:0 12px 32px #00000059;text-align:center}.sidebar.svelte-5mstt.svelte-5mstt{width:260px;min-width:200px;height:100vh;display:flex;flex-direction:column;background:#1a1a28;border-right:1px solid #2a2a3c;flex-shrink:0;overflow:hidden}.sidebar-brand.svelte-5mstt.svelte-5mstt{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-5mstt.svelte-5mstt{display:block;width:20px;height:20px;flex-shrink:0}.brand-name.svelte-5mstt.svelte-5mstt{font-size:16px;font-weight:600}.sidebar-nav.svelte-5mstt.svelte-5mstt{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.nav-label.svelte-5mstt.svelte-5mstt{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-5mstt.svelte-5mstt{display:block;width:100%;padding:8px 20px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:0;font-family:inherit}.nav-item.svelte-5mstt.svelte-5mstt:hover{background:#223}.nav-item.selected.svelte-5mstt.svelte-5mstt{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-5mstt.svelte-5mstt{min-height:32px}.workspace-tree-area.drop-valid.svelte-5mstt.svelte-5mstt{outline:2px dashed #4ade80;outline-offset:-2px;background:#4ade800d}.nav-empty.svelte-5mstt.svelte-5mstt{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-5mstt.svelte-5mstt{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}.nav-add-btn.svelte-5mstt.svelte-5mstt{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-5mstt.svelte-5mstt:hover{color:#ccc}.context-menu-backdrop.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-5mstt.svelte-5mstt{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;min-width:180px;box-shadow:0 8px 24px #0006}.context-menu-section.svelte-5mstt.svelte-5mstt{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-5mstt.svelte-5mstt{display:flex;width:100%;padding:6px 12px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit;align-items:center;gap:6px}.context-menu-item.svelte-5mstt.svelte-5mstt:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-5mstt.svelte-5mstt{color:#ff6b6b}.context-menu-item.danger.svelte-5mstt.svelte-5mstt:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-5mstt.svelte-5mstt{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-5mstt.svelte-5mstt{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-5mstt.svelte-5mstt{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.sidebar-footer-row.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;justify-content:space-between}.version.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555;text-align:center}.main.svelte-5mstt.svelte-5mstt{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header-actions.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.sidebar-settings-btn.svelte-5mstt.svelte-5mstt{background:transparent;border:none;border-radius:6px;padding:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#666;font-family:inherit;width:32px;height:32px}.sidebar-settings-btn.svelte-5mstt.svelte-5mstt:hover{background:#1e1e38;color:#a5b4fc}.sidebar-settings-btn.svelte-5mstt.svelte-5mstt:active{background:#252545;color:#818cf8}.error-banner.svelte-5mstt.svelte-5mstt{background:#3a2222;color:#f88;padding:8px 24px;font-size:12px;border-bottom:1px solid #4a2222;flex-shrink:0;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dismiss-btn.svelte-5mstt.svelte-5mstt{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-5mstt.svelte-5mstt:hover{color:#f44}.tabs.svelte-5mstt.svelte-5mstt{display:flex;align-items:stretch;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-5mstt.svelte-5mstt{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-5mstt.svelte-5mstt:hover{color:#a5b4fc}.tab.active.svelte-5mstt.svelte-5mstt{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.tab-separator.svelte-5mstt.svelte-5mstt{width:1px;height:22px;margin:8px 10px 0;background:#2a2a3c;flex-shrink:0}.tab-content.svelte-5mstt.svelte-5mstt{flex:1;overflow-y:auto}.note-editor-header.svelte-5mstt.svelte-5mstt{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-5mstt.svelte-5mstt{font-size:16px;font-weight:500}.dirty-mark.svelte-5mstt.svelte-5mstt{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-5mstt.svelte-5mstt{margin-left:auto;display:flex;gap:8px}.note-rename-btn.svelte-5mstt.svelte-5mstt{opacity:0;margin-left:6px;color:#666}.note-editor-header.svelte-5mstt:hover .note-rename-btn.svelte-5mstt{opacity:1}.note-rename-btn.svelte-5mstt.svelte-5mstt:hover{color:#ccc}.note-rename-inline.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;flex:1}.note-rename-input.svelte-5mstt.svelte-5mstt{flex:1;padding:6px 10px;border:1px solid #2a2a3c;border-radius:4px;background:#13131f;color:#e4e4ef;font-size:14px;font-family:inherit;outline:none}.note-rename-input.svelte-5mstt.svelte-5mstt:focus{border-color:#818cf8}.note-card.svelte-5mstt.svelte-5mstt{position:relative}.note-card-info.svelte-5mstt.svelte-5mstt{flex:1;min-width:0}.note-card-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:4px;opacity:0;transition:opacity .12s}.note-card.svelte-5mstt:hover .note-card-actions.svelte-5mstt{opacity:1}.note-action-btn.svelte-5mstt.svelte-5mstt{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.note-action-btn.svelte-5mstt.svelte-5mstt:hover{background:#2a2a3c;color:#ccc}.note-action-danger.svelte-5mstt.svelte-5mstt:hover{background:#ef444426;color:#f87171}.form-group.svelte-5mstt.svelte-5mstt{margin-bottom:14px}.form-group.svelte-5mstt label.svelte-5mstt{display:block;font-size:12px;color:#888;margin-bottom:4px}.form-group.svelte-5mstt input.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;border-radius:4px;background:#13131f;color:#e4e4ef;font-size:14px;font-family:inherit;outline:none;box-sizing:border-box}.form-group.svelte-5mstt input.svelte-5mstt:focus{border-color:#818cf8}.overview.svelte-5mstt.svelte-5mstt{padding:24px}.overview.svelte-5mstt h2.svelte-5mstt{font-size:24px;margin-bottom:16px}.meta-grid.svelte-5mstt.svelte-5mstt{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-5mstt.svelte-5mstt{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-5mstt.svelte-5mstt{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-5mstt.svelte-5mstt{padding:10px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.qa-btn.svelte-5mstt.svelte-5mstt:hover{background:#223}.qa-btn.svelte-5mstt.svelte-5mstt:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-5mstt.svelte-5mstt{margin-bottom:24px}.recent-section.svelte-5mstt h3.svelte-5mstt{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-5mstt.svelte-5mstt{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-5mstt.svelte-5mstt:hover{background:#1a1a28}.recent-date.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555}.recent-entry.svelte-5mstt.svelte-5mstt{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-5mstt.svelte-5mstt{padding:24px}.tab-toolbar.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.create-form.svelte-5mstt.svelte-5mstt{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-5mstt input.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit;margin-bottom:8px}.create-form.svelte-5mstt input.svelte-5mstt:focus{outline:none;border-color:#6366f1}.form-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px}.notes-list.svelte-5mstt.svelte-5mstt{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-5mstt.svelte-5mstt{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c}.note-card-title.svelte-5mstt.svelte-5mstt{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555}.worklog-tab.svelte-5mstt.svelte-5mstt{padding:24px}.worklog-toolbar.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.worklog-entry.svelte-5mstt.svelte-5mstt{padding:12px 0;border-bottom:1px solid #1a1a28}.suggestions-title.svelte-5mstt.svelte-5mstt{font-size:13px;font-weight:600;color:#a5b4fc;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.suggestion-summary.svelte-5mstt.svelte-5mstt{font-size:14px;color:#e4e4ef}.suggestion-meta.svelte-5mstt.svelte-5mstt{font-size:12px;color:#8888a0;margin-top:2px}.suggestion-main.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;cursor:pointer;gap:10px;min-height:38px}.suggestion-card.expanded.svelte-5mstt.svelte-5mstt{border-color:#3a3a5c}.suggestion-detail.svelte-5mstt.svelte-5mstt{width:100%;padding:6px 10px 8px;border-top:1px solid #2a2a3c}.suggestion-detail-title.svelte-5mstt.svelte-5mstt{font-size:10px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;padding:4px 0}.suggestion-detail-event.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:7px;padding:2px 0;font-size:12px;color:#b0b0c0}.suggestion-event-time.svelte-5mstt.svelte-5mstt{color:#a0a0b8;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:48px}.suggestion-event-type.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:11px;background:#1a1a2e;padding:1px 6px;border-radius:3px}.suggestion-event-title.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-event-path.svelte-5mstt.svelte-5mstt{max-width:220px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-card.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;align-items:stretch;padding:0;background:#1e1e32;border-radius:6px;margin-bottom:6px;gap:0;border:1px solid transparent}.suggestion-card.svelte-5mstt.svelte-5mstt:last-child{margin-bottom:0}.suggestion-info.svelte-5mstt.svelte-5mstt{flex:1;display:flex;flex-direction:column;gap:2px}.suggestion-node.svelte-5mstt.svelte-5mstt{color:#a5b4fc;font-weight:600;font-size:13px;text-decoration:none;cursor:pointer}.suggestion-node.svelte-5mstt.svelte-5mstt:hover{text-decoration:underline}.suggestion-actions.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:6px;flex-shrink:0}.suggestion-min-input.svelte-5mstt.svelte-5mstt{width:54px;padding:3px 7px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;text-align:center}.suggestion-min-label.svelte-5mstt.svelte-5mstt{font-size:12px;color:#8888a0}.suggestion-confidence-dot.svelte-5mstt.svelte-5mstt{width:9px;height:9px;border-radius:999px;background:#77798a;box-shadow:0 0 0 3px #77798a1f;flex:0 0 auto}.suggestion-confidence-dot.low.svelte-5mstt.svelte-5mstt{background:#ef4444;box-shadow:0 0 0 3px #ef44441f}.suggestion-confidence-dot.medium.svelte-5mstt.svelte-5mstt{background:#fbbf24;box-shadow:0 0 0 3px #fbbf241f}.suggestion-confidence-dot.high.svelte-5mstt.svelte-5mstt{background:#34d399;box-shadow:0 0 0 3px #34d3991f}.inbox-screen.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.inbox-screen.drop-valid.svelte-5mstt.svelte-5mstt{outline:2px dashed #4ade80;outline-offset:-4px;background:#4ade800a}.inbox-header.svelte-5mstt.svelte-5mstt{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.inbox-header.svelte-5mstt p.svelte-5mstt{margin:0;color:#a0a0b8;font-size:13px}.inbox-capture-status.svelte-5mstt.svelte-5mstt{color:#8ee6b1;font-size:12px}.inbox-list.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:8px}.inbox-item.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28;cursor:pointer}.inbox-item.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c;background:#1e1e32}.inbox-item-main.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.inbox-item-title.svelte-5mstt.svelte-5mstt{color:#e4e4ef;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-item-meta.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:12px}.inbox-item-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:6px;flex-shrink:0;align-items:center}.inbox-icon-btn.svelte-5mstt.svelte-5mstt{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #2a2a3c;border-radius:6px;background:#13131f;color:#a0a0b8;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.inbox-icon-slot.svelte-5mstt.svelte-5mstt{width:30px;height:30px;display:inline-block;flex:0 0 30px}.inbox-icon-btn.svelte-5mstt.svelte-5mstt:hover{color:#e4e4ef;border-color:#3a3a5c;background:#222238}.inbox-icon-btn-primary.svelte-5mstt.svelte-5mstt{color:#a5b4fc;border-color:#34346a}.inbox-icon-btn-primary.svelte-5mstt.svelte-5mstt:hover{color:#fff;border-color:#6366f1;background:#272750}.inbox-icon-btn-danger.svelte-5mstt.svelte-5mstt{color:#f87171;border-color:#4a252c}.inbox-icon-btn-danger.svelte-5mstt.svelte-5mstt:hover{color:#fff;border-color:#dc2626;background:#3a1f24}.inbox-tab.svelte-5mstt.svelte-5mstt{padding:24px}.inbox-controls.svelte-5mstt.svelte-5mstt{margin-bottom:12px}.inbox-sort-row.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sort-btn.svelte-5mstt.svelte-5mstt{padding:4px 10px;border:1px solid #2a2a3c;background:#13131f;color:#888;border-radius:4px;font-size:12px;cursor:pointer;font-family:inherit}.sort-btn.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c;color:#ccc}.sort-btn.active.svelte-5mstt.svelte-5mstt{border-color:#6366f1;color:#a5b4fc;background:#6366f114}.sort-dir.svelte-5mstt.svelte-5mstt{font-size:12px;color:#8888a0;margin-left:2px}.inbox-controls-divider.svelte-5mstt.svelte-5mstt{width:1px;height:20px;background:#2a2a3c;margin:0 4px}.inbox-group.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.inbox-group-header.svelte-5mstt.svelte-5mstt{font-size:12px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px;padding:8px 0 6px;margin-bottom:6px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:8px}.inbox-group-count.svelte-5mstt.svelte-5mstt{font-size:10px;color:#8888a0;background:#1e1e30;padding:1px 6px;border-radius:8px}.links-tab.svelte-5mstt.svelte-5mstt{padding:24px}.links-list.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:8px}.link-card.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28}.link-card.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c;background:#1e1e32}.link-main.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,220px) auto;gap:8px 12px;align-items:baseline}.link-title.svelte-5mstt.svelte-5mstt{color:#e4e4ef;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-url.svelte-5mstt.svelte-5mstt{color:#a5b4fc;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-date.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:12px;white-space:nowrap}.link-note.svelte-5mstt.svelte-5mstt{grid-column:1 / -1;color:#8888a0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;flex-shrink:0}.link-status.svelte-5mstt.svelte-5mstt{margin-top:12px;color:#8ee6b1;font-size:12px}.trash-screen.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.trash-header.svelte-5mstt.svelte-5mstt{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.trash-header.svelte-5mstt p.svelte-5mstt{margin:0;color:#8888a0;font-size:12px}.trash-browser.svelte-5mstt.svelte-5mstt{max-width:980px}.trash-section.svelte-5mstt.svelte-5mstt{min-width:0}.trash-section.svelte-5mstt h3.svelte-5mstt{margin:0 0 10px;font-size:13px;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px}.trash-section-head.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-height:36px}.trash-section-head.svelte-5mstt h3.svelte-5mstt{margin:0 0 2px}.trash-section-head.svelte-5mstt p.svelte-5mstt{margin:0;color:#8888a0;font-size:12px}.trash-row.svelte-5mstt.svelte-5mstt{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28;margin-bottom:8px}.trash-row.folder.svelte-5mstt.svelte-5mstt{background:#1b2132;border-color:#303856}.trash-row.selected.svelte-5mstt.svelte-5mstt{border-color:#6366f1;background:#20203a}.trash-row-icon.svelte-5mstt.svelte-5mstt{color:#a5b4fc;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:4px;border-radius:4px;background:transparent;border:none}.trash-row-icon.svelte-5mstt.svelte-5mstt:hover{background:#222238;color:#e4e4ef}.trash-row-main.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px;min-width:0;padding:2px 0;cursor:pointer;background:transparent;border:none;color:inherit;font:inherit;text-align:left;width:100%;border-radius:4px}.trash-row-main.svelte-5mstt.svelte-5mstt:hover{background:#ffffff08}.trash-row-main.svelte-5mstt:hover .trash-row-title.svelte-5mstt{color:#a5b4fc}.trash-row-main.svelte-5mstt.svelte-5mstt:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.trash-row-title.svelte-5mstt.svelte-5mstt{min-width:0;color:#e4e4ef;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-row-meta.svelte-5mstt.svelte-5mstt{color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-row-date.svelte-5mstt.svelte-5mstt{color:#666;font-size:11px}.trash-row-actions.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:6px;justify-content:flex-end}.trash-empty-line.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:13px;margin:0}.journal-screen.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.journal-tabs.svelte-5mstt.svelte-5mstt{display:flex;gap:0;border-bottom:1px solid #2a2a3c;margin-bottom:16px}.journal-tab.svelte-5mstt.svelte-5mstt{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit;position:relative}.journal-tab.svelte-5mstt.svelte-5mstt:hover{color:#a5b4fc}.journal-tab.active.svelte-5mstt.svelte-5mstt{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.journal-header.svelte-5mstt.svelte-5mstt{margin-bottom:24px}.journal-summary.svelte-5mstt.svelte-5mstt{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:16px;background:#1a1a2e;border-radius:8px;border:1px solid #2a2a3c}.summary-total.svelte-5mstt.svelte-5mstt{font-size:18px;font-weight:700;color:#e4e4ef;width:100%;margin-bottom:4px}.summary-section.svelte-5mstt.svelte-5mstt{flex:1;min-width:200px}.summary-label.svelte-5mstt.svelte-5mstt{font-size:12px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.summary-row.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;font-size:13px;padding:4px 0;border-bottom:1px solid #2a2a3c}.summary-row.svelte-5mstt span.svelte-5mstt:first-child{flex:1;color:#e4e4ef}.summary-count.svelte-5mstt.svelte-5mstt{color:#8888a0}.journal-table-wrap.svelte-5mstt.svelte-5mstt{overflow-x:auto}.journal-table.svelte-5mstt.svelte-5mstt{width:100%;border-collapse:collapse;font-size:13px}.journal-table.svelte-5mstt th.svelte-5mstt{text-align:left;padding:8px 12px;border-bottom:2px solid #2a2a3c;color:#b0b0c8;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.journal-table.svelte-5mstt td.svelte-5mstt{padding:8px 12px;border-bottom:1px solid #1a1a28;color:#e4e4ef}.journal-table.svelte-5mstt tr:hover td.svelte-5mstt{background:#1e1e32}.journal-table.svelte-5mstt .link-btn.svelte-5mstt{color:#a5b4fc}.journal-path-cell.svelte-5mstt.svelte-5mstt{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a0a0b8;font-size:12px}.journal-min-cell.svelte-5mstt.svelte-5mstt{text-align:right;font-variant-numeric:tabular-nums}.journal-date-cell.svelte-5mstt.svelte-5mstt{color:#b0b0c0;white-space:nowrap}.journal-bool-cell.svelte-5mstt.svelte-5mstt{text-align:center;color:#a0a0b8}.journal-row.svelte-5mstt.svelte-5mstt{cursor:pointer}.journal-row.svelte-5mstt:hover td.svelte-5mstt{background:#1e1e32}.journal-row.expanded.svelte-5mstt td.svelte-5mstt{background:#1a1a30;border-bottom:none}.journal-summary-cell.svelte-5mstt.svelte-5mstt{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-row-detail.svelte-5mstt td.svelte-5mstt{padding:0 12px 12px;background:#16162a}.journal-detail-body.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:12px;padding:8px 0}.journal-detail-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end}.journal-detail-section.svelte-5mstt.svelte-5mstt{font-size:13px}.journal-detail-label.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;display:block;margin-bottom:4px}.journal-detail-section.svelte-5mstt p.svelte-5mstt{margin:0;color:#c0c0d0}.journal-event-row.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0}.journal-event-time.svelte-5mstt.svelte-5mstt{color:#a0a0b8;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:48px}.journal-event-type.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:11px;background:#1a1a2e;padding:1px 6px;border-radius:3px}.journal-event-title.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-node-picker.svelte-5mstt input[type=text].svelte-5mstt{padding:6px 10px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;font-family:inherit;width:240px}.journal-search-dropdown.svelte-5mstt.svelte-5mstt{position:absolute;top:100%;left:0;right:0;z-index:50;background:#1a1a28;border:1px solid #2a2a3c;border-radius:6px;margin-top:4px;max-height:240px;overflow-y:auto;min-width:260px}.journal-search-item.svelte-5mstt.svelte-5mstt{display:block;width:100%;padding:8px 12px;border:none;background:transparent;color:#e4e4ef;cursor:pointer;font-family:inherit;font-size:13px;text-align:left}.journal-search-item.svelte-5mstt.svelte-5mstt:hover{background:#2a2a4a}.journal-search-title.svelte-5mstt.svelte-5mstt{display:block;font-weight:500}.journal-search-path.svelte-5mstt.svelte-5mstt{display:block;font-size:11px;color:#8888a0;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-selected-node.svelte-5mstt.svelte-5mstt{cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#1e1e3a;border:1px solid #3a3a5c;border-radius:4px;font-size:13px;color:#a5b4fc;white-space:nowrap;font-family:inherit}.journal-selected-node.svelte-5mstt.svelte-5mstt:hover{background:#2a2a4a}.journal-node-clear.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:14px;margin-left:4px}.journal-status-msg.svelte-5mstt.svelte-5mstt{font-size:12px;color:#34d399;padding:4px 8px;background:#1a2a1e;border-radius:4px}.journal-include-chk.svelte-5mstt.svelte-5mstt{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}.link-btn.svelte-5mstt.svelte-5mstt{background:none;border:none;padding:0;color:#a5b4fc;font:inherit;cursor:pointer;text-align:left}.link-btn.svelte-5mstt.svelte-5mstt:hover{text-decoration:underline}.nav-badge.svelte-5mstt.svelte-5mstt{background:#6366f1;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;margin-left:6px;line-height:1.4}.actions-tab.svelte-5mstt.svelte-5mstt{padding:24px}.action-card.svelte-5mstt.svelte-5mstt{background:#1a1a28;padding:12px 16px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.action-info.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-5mstt.svelte-5mstt{font-weight:500}.action-type.svelte-5mstt.svelte-5mstt{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555;font-family:SF Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.action-btns.svelte-5mstt.svelte-5mstt{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-5mstt .btn-danger.svelte-5mstt{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-5mstt .btn-danger.svelte-5mstt:hover{background:#3a2222}.empty-state.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-5mstt p.svelte-5mstt{margin:0;font-size:14px;color:#666}.empty-state.svelte-5mstt .empty-icon.svelte-5mstt{margin-bottom:12px;color:#444}.empty-state.svelte-5mstt .hint.svelte-5mstt{font-size:12px;color:#555;margin-top:6px}.empty-state.svelte-5mstt .empty-actions.svelte-5mstt{display:flex;gap:8px;justify-content:center;margin-top:16px}.welcome.svelte-5mstt.svelte-5mstt{padding:48px 24px;text-align:center}.welcome.svelte-5mstt h2.svelte-5mstt{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-5mstt p.svelte-5mstt{color:#666;font-size:14px}.error-text.svelte-5mstt.svelte-5mstt{color:#f88}.modal-overlay.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-5mstt.svelte-5mstt{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-5mstt h3.svelte-5mstt{font-size:18px;margin-bottom:16px}.modal.svelte-5mstt textarea.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit;min-height:60px;resize:vertical;box-sizing:border-box}.modal-worklog.svelte-5mstt.svelte-5mstt{width:460px}.form-group.svelte-5mstt.svelte-5mstt{margin-bottom:12px}.form-row.svelte-5mstt.svelte-5mstt{display:flex;gap:16px;margin-bottom:12px}.form-group.svelte-5mstt label.svelte-5mstt{display:block}.form-group.svelte-5mstt .label-text.svelte-5mstt,.form-group.svelte-5mstt .form-label.svelte-5mstt{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-5mstt input.svelte-5mstt,.form-group.svelte-5mstt select.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.form-group.svelte-5mstt select.svelte-5mstt{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.form-group.svelte-5mstt input.svelte-5mstt:focus,.form-group.svelte-5mstt select.svelte-5mstt:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.assign-search.svelte-5mstt.svelte-5mstt{position:relative}.assign-search-results.svelte-5mstt.svelte-5mstt{position:absolute;left:0;right:0;top:100%;z-index:110;margin-top:4px;background:#1a1a28;border:1px solid #2a2a3c;border-radius:6px;max-height:220px;overflow-y:auto}.assign-search-result.svelte-5mstt.svelte-5mstt{width:100%;display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-bottom:1px solid #24243a;background:transparent;color:#e4e4ef;text-align:left;cursor:pointer;font-family:inherit}.assign-search-result.svelte-5mstt.svelte-5mstt:hover{background:#222238}.assign-search-result.svelte-5mstt span.svelte-5mstt:last-child{color:#8888a0;font-size:12px;flex-shrink:0}.assign-hint.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:11px;margin-top:4px}.assign-status.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:12px}.btn.svelte-5mstt.svelte-5mstt{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn.svelte-5mstt svg,.inbox-icon-btn.svelte-5mstt svg{flex-shrink:0}.btn.svelte-5mstt.svelte-5mstt:hover{background:#223}.btn-primary.svelte-5mstt.svelte-5mstt{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-5mstt.svelte-5mstt:hover{background:#4f46e5}.btn.svelte-5mstt.svelte-5mstt:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-5mstt.svelte-5mstt{padding:4px 10px;font-size:12px}.btn-danger.svelte-5mstt.svelte-5mstt{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-5mstt.svelte-5mstt:hover{background:#3a2222}.settings-section select,.settings-section input[type=text],.settings-section input[type=url],.settings-section input[type=number],.settings-section input[type=password]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:100%;padding:.5rem .75rem;background:#13131f;border:1px solid #2a2a3e;border-radius:6px;color:#e0e0e0;font-size:.9rem;font-family:inherit;transition:border-color .15s,box-shadow .15s}.settings-section select{padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:.85rem}.settings-section select:hover,.settings-section input:hover{border-color:#3a3a5e}.settings-section select:focus,.settings-section input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.settings-section select:disabled,.settings-section input:disabled{opacity:.45;cursor:not-allowed;border-color:#2a2a3e}.settings-section select option{background:#1e1e2e;color:#e0e0e0}.files-tab.svelte-5mstt.svelte-5mstt{padding:20px}.files-tab.svelte-5mstt .tab-toolbar.svelte-5mstt{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column}.back-btn.svelte-5mstt.svelte-5mstt{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.import-summary.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.summary-row.svelte-5mstt.svelte-5mstt{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.summary-warn.svelte-5mstt.svelte-5mstt{margin-top:8px;padding:8px 12px;background:#3a2a22;border-radius:6px;color:#fa6;font-size:13px}.rename-error.svelte-5mstt.svelte-5mstt{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #2a2a3c;background:#13131f;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;width:100%;text-align:left}.template-card.svelte-5mstt.svelte-5mstt:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-5mstt.svelte-5mstt{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-5mstt.svelte-5mstt{font-weight:500}.template-card-desc.svelte-5mstt.svelte-5mstt{font-size:11px;color:#888}.activity-tab.svelte-5mstt.svelte-5mstt{padding:24px}.activity-events.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-5mstt.svelte-5mstt:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-5mstt.svelte-5mstt{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-path.svelte-5mstt.svelte-5mstt{max-width:240px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-5mstt.svelte-5mstt{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-5mstt.svelte-5mstt{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.activity-feed-events.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-5mstt.svelte-5mstt{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-5mstt.svelte-5mstt:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-5mstt.svelte-5mstt{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-5mstt.svelte-5mstt{flex:1;min-width:0}.activity-feed-title.svelte-5mstt.svelte-5mstt{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-5mstt.svelte-5mstt{font-size:11px;color:#666}.activity-feed-target.svelte-5mstt.svelte-5mstt{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555}.journal-filter-section.svelte-5mstt.svelte-5mstt{margin-bottom:12px;padding:12px 16px;background:#1a1a2e;border:1px solid #2a2a3c;border-radius:8px}.journal-filter-heading.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.journal-filters-row.svelte-5mstt.svelte-5mstt{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end}.journal-filters-row.svelte-5mstt label.svelte-5mstt{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#8888a0}.journal-filters-row.svelte-5mstt input[type=date].svelte-5mstt{padding:5px 8px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:12px;font-family:inherit}.journal-filters-row.svelte-5mstt .checkbox-label.svelte-5mstt{flex-direction:row;align-items:center;gap:6px;cursor:pointer}.journal-filters-row.svelte-5mstt .checkbox-label input.svelte-5mstt{width:auto}.journal-export-section.svelte-5mstt.svelte-5mstt{padding:8px 16px;background:#1a1a2e;border:1px solid #2a2a3c;border-radius:8px}.journal-export-heading.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.journal-export-row.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;align-items:center}.journal-toggle-col.svelte-5mstt.svelte-5mstt{width:32px;min-width:32px;text-align:center;padding:8px 4px!important}.journal-toggle-icon.svelte-5mstt.svelte-5mstt{color:#6366f1;font-size:12px}.worklog-entry.svelte-5mstt.svelte-5mstt{padding:8px 12px;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:6px;cursor:pointer}.worklog-entry.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c}.worklog-entry.expanded.svelte-5mstt.svelte-5mstt{border-color:#6366f1}.worklog-entry-head.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;font-size:13px;color:#e4e4ef}.worklog-toggle.svelte-5mstt.svelte-5mstt{color:#6366f1;font-size:12px;width:16px;text-align:center;flex-shrink:0}.worklog-entry-summary.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worklog-entry-path.svelte-5mstt.svelte-5mstt{max-width:240px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worklog-entry-mins.svelte-5mstt.svelte-5mstt{color:#b0b0c8;font-variant-numeric:tabular-nums;white-space:nowrap}.worklog-entry-date.svelte-5mstt.svelte-5mstt{color:#b0b0c0;font-size:12px;white-space:nowrap}.worklog-entry-detail.svelte-5mstt.svelte-5mstt{margin-top:8px;padding-top:8px;border-top:1px solid #2a2a3c;display:flex;flex-direction:column;gap:8px}.worklog-entry-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end}.wl-detail-section.svelte-5mstt.svelte-5mstt{font-size:13px}.wl-detail-label.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;display:block;margin-bottom:2px}.wl-detail-section.svelte-5mstt p.svelte-5mstt{margin:0;color:#c0c0d0}.wl-tag-billable.svelte-5mstt.svelte-5mstt{font-size:10px;color:#34d399;background:#1a2a1e;padding:1px 6px;border-radius:8px;white-space:nowrap}.wl-tag-approx.svelte-5mstt.svelte-5mstt{font-size:10px;color:#fbbf24;background:#2a2a1a;padding:1px 6px;border-radius:8px;white-space:nowrap}.checkbox-label-inline.svelte-5mstt.svelte-5mstt{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#e4e4ef;cursor:pointer}.checkbox-label-inline.svelte-5mstt input.svelte-5mstt{width:auto}.note-editor-wrapper.svelte-5mstt.svelte-5mstt{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.verstak-toast.svelte-5mstt.svelte-5mstt{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1e1e38;border:1px solid #3a3a5c;border-radius:8px;padding:12px 20px;color:#e4e4ef;font-size:13px;z-index:9999;box-shadow:0 4px 20px #0006;animation:svelte-5mstt-toast-in .2s ease-out}@keyframes svelte-5mstt-toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-overlay.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9998}.modal-box.svelte-5mstt.svelte-5mstt{background:#1a1a2e;border:1px solid #2a2a3c;border-radius:10px;padding:24px;width:420px;max-width:90vw;display:flex;flex-direction:column;gap:14px}.modal-box.svelte-5mstt h3.svelte-5mstt{font-size:16px;font-weight:600;color:#e4e4ef;margin:0}.modal-box.svelte-5mstt label.svelte-5mstt{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#888}.modal-box.svelte-5mstt input[type=text].svelte-5mstt{padding:8px 12px;border:1px solid #2a2a3c;border-radius:6px;background:#13131f;color:#e4e4ef;font-size:13px;font-family:inherit;outline:none}.modal-box.svelte-5mstt input[type=text].svelte-5mstt:focus{border-color:#818cf8}.modal-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
+.file-row.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:default;transition:background .12s;min-height:52px;-webkit-user-select:none;user-select:none;position:relative}.file-row.svelte-1skuef2.svelte-1skuef2:hover{background:#1e1e30}.file-row--selected.svelte-1skuef2.svelte-1skuef2{background:#1e1e3a;outline:1px solid #3a3a6c}.file-row--selected.svelte-1skuef2.svelte-1skuef2:hover{background:#252545}.file-row.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:-2px}.file-row-icon.svelte-1skuef2.svelte-1skuef2{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#888}.file-row-body.svelte-1skuef2.svelte-1skuef2{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-row-name.svelte-1skuef2.svelte-1skuef2{font-size:13px;color:#ddd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.file-row-meta.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:4px;font-size:11px;color:#666}.meta-sep.svelte-1skuef2.svelte-1skuef2{color:#444}.file-row-actions.svelte-1skuef2.svelte-1skuef2{display:flex;gap:2px;align-items:center;opacity:0;transition:opacity .15s ease;flex-shrink:0}.file-row.svelte-1skuef2:hover .file-row-actions.svelte-1skuef2{opacity:1}.action-btn.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#ccc}.action-btn-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222;color:#ff6b6b}.action-btn.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-backdrop.svelte-1skuef2.svelte-1skuef2{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.menu.svelte-1skuef2.svelte-1skuef2{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;z-index:100;min-width:220px;box-shadow:0 4px 16px #00000080}.menu-item.svelte-1skuef2.svelte-1skuef2{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;background:transparent;color:#ccc;font-size:12px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit}.menu-item.svelte-1skuef2.svelte-1skuef2:hover{background:#2a2a3c;color:#fff}.menu-item-danger.svelte-1skuef2.svelte-1skuef2{color:#ff6b6b}.menu-item-danger.svelte-1skuef2.svelte-1skuef2:hover{background:#3a2222}.menu-item.svelte-1skuef2.svelte-1skuef2:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.menu-sep.svelte-1skuef2.svelte-1skuef2{height:1px;background:#2a2a3c;margin:4px 8px}.breadcrumbs.svelte-csi2lb{display:flex;align-items:center;gap:4px;padding:8px 0;font-size:13px;color:#999}.sep.svelte-csi2lb{color:#444}.crumb.svelte-csi2lb{font-size:13px}.crumb--current.svelte-csi2lb{color:#ccc}.crumb--link.svelte-csi2lb{background:none;border:none;padding:2px 4px;color:#888;cursor:pointer;border-radius:3px;font-family:inherit;font-size:13px;transition:color .12s,background .12s}.crumb--link.svelte-csi2lb:hover{color:#ccc;background:#1e1e30}.crumb--link.svelte-csi2lb:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.overlay.svelte-1cw3u0m{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.svelte-1cw3u0m{background:#14141f;border:1px solid #2a2a3c;border-radius:10px;width:90vw;max-width:900px;height:85vh;max-height:700px;display:flex;flex-direction:column;overflow:hidden}.preview-header.svelte-1cw3u0m{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.preview-title.svelte-1cw3u0m{display:flex;align-items:center;gap:8px;color:#ddd;font-size:14px;min-width:0}.preview-name.svelte-1cw3u0m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-meta.svelte-1cw3u0m{font-size:11px;color:#666;margin-left:auto;white-space:nowrap}.preview-actions.svelte-1cw3u0m{display:flex;gap:4px;flex-shrink:0;margin-left:8px}.action-btn.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.action-btn.svelte-1cw3u0m:hover{background:#2a2a3c;color:#ccc}.action-btn.svelte-1cw3u0m:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.action-btn-close.svelte-1cw3u0m{color:#ff6b6b}.action-btn-close.svelte-1cw3u0m:hover{background:#3a2222;color:#f44}.preview-body.svelte-1cw3u0m{flex:1;overflow:auto;min-height:0}.preview-status.svelte-1cw3u0m{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:#888;font-size:14px}.preview-image-container.svelte-1cw3u0m{display:flex;align-items:center;justify-content:center;padding:16px;min-height:200px;background:#0e0e18}.preview-image.svelte-1cw3u0m{max-width:100%;max-height:calc(85vh - 100px);object-fit:contain;border-radius:4px}.preview-text.svelte-1cw3u0m{margin:0;padding:16px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.5;color:#ccc;white-space:pre-wrap;word-wrap:break-word;overflow:auto}.preview-pdf-container.svelte-1cw3u0m{width:100%;height:100%}.preview-pdf.svelte-1cw3u0m{width:100%;height:100%;border:none}.btn-sm.svelte-1cw3u0m{padding:6px 14px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;transition:background .12s}.btn-sm.svelte-1cw3u0m:hover{background:#223}.overlay.svelte-1fv6yyk{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.modal.svelte-1fv6yyk{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:360px;max-width:90vw}h3.svelte-1fv6yyk{font-size:18px;margin-bottom:12px;color:#e4e4ef}.message.svelte-1fv6yyk{font-size:14px;color:#aaa;margin-bottom:20px;line-height:1.4}.actions.svelte-1fv6yyk{display:flex;gap:8px;justify-content:flex-end}.btn.svelte-1fv6yyk{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit}.btn.svelte-1fv6yyk:hover{background:#223}.btn-primary.svelte-1fv6yyk{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1fv6yyk:hover{background:#4f46e5}.btn-danger.svelte-1fv6yyk{background:#dc2626;border-color:#dc2626;color:#fff}.btn-danger.svelte-1fv6yyk:hover{background:#b91c1c}.btn.svelte-1fv6yyk:focus-visible{outline:2px solid #5588ff;outline-offset:1px}.tree-item.svelte-zj71cl.svelte-zj71cl{display:flex;align-items:center;height:32px;padding-right:8px;cursor:default;font-size:13px;color:#ccc;-webkit-user-select:none;user-select:none}.tree-item.svelte-zj71cl.svelte-zj71cl:hover{background:#223}.tree-item.selected.svelte-zj71cl.svelte-zj71cl{background:#2a2a4a;color:#fff;font-weight:500}.tree-item.drop-valid.svelte-zj71cl.svelte-zj71cl{background:#1a3a1a;outline:1px solid #4ade80;outline-offset:-1px}.tree-item.drop-invalid.svelte-zj71cl.svelte-zj71cl{background:#3a1a1a;outline:1px solid #ff6b6b;outline-offset:-1px}.tree-toggle.svelte-zj71cl.svelte-zj71cl{background:none;border:none;color:#666;cursor:pointer;padding:0;width:20px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit;line-height:1;font-size:12px}.tree-toggle.svelte-zj71cl.svelte-zj71cl:hover{color:#a5b4fc}.tree-toggle-placeholder.svelte-zj71cl.svelte-zj71cl{display:inline-block;width:20px;flex-shrink:0}.tree-icon.svelte-zj71cl.svelte-zj71cl{display:inline-flex;align-items:center;justify-content:center;width:20px;height:32px;flex-shrink:0;color:#888;margin-right:4px;cursor:pointer}.tree-icon.svelte-zj71cl.svelte-zj71cl:hover,.tree-item.selected.svelte-zj71cl .tree-icon.svelte-zj71cl{color:#a5b4fc}.tree-label.svelte-zj71cl.svelte-zj71cl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;line-height:32px}.first-run-screen.svelte-a9f1pd.svelte-a9f1pd{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--bg, #13131f)}.first-run-card.svelte-a9f1pd.svelte-a9f1pd{max-width:520px;width:100%;padding:2.5rem;background:var(--surface, #1e1e2e);border-radius:12px;border:1px solid var(--border, #2a2a3e);text-align:center}.first-run-logo.svelte-a9f1pd.svelte-a9f1pd{display:block;width:64px;height:64px;margin:0 auto .5rem}.first-run-card.svelte-a9f1pd h1.svelte-a9f1pd{margin:0 0 .75rem;font-size:1.5rem;color:var(--text, #e0e0e0)}.first-run-desc.svelte-a9f1pd.svelte-a9f1pd{color:var(--text-dim, #888);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.input-row.svelte-a9f1pd.svelte-a9f1pd{display:flex;gap:.5rem}.input-row.svelte-a9f1pd input.svelte-a9f1pd{flex:1}.path-info.svelte-a9f1pd.svelte-a9f1pd{text-align:left;font-size:.85rem;padding:.5rem .75rem;margin-top:.5rem;background:var(--surface-alt, #252538);border-radius:6px;color:var(--text-dim, #888)}.error-msg.svelte-a9f1pd.svelte-a9f1pd{text-align:left;font-size:.85rem;padding:.5rem .75rem;margin-top:.5rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b}.first-run-actions.svelte-a9f1pd.svelte-a9f1pd{display:flex;gap:.75rem;justify-content:center;margin-top:1.5rem}.btn-lg.svelte-a9f1pd.svelte-a9f1pd{padding:.65rem 1.5rem;font-size:1rem}.form-group.svelte-a9f1pd.svelte-a9f1pd{margin-bottom:1rem;text-align:left}.form-label.svelte-a9f1pd.svelte-a9f1pd{display:block;font-size:.85rem;color:var(--text-dim, #888);margin-bottom:.4rem}.recovery-screen.svelte-s3o8c3.svelte-s3o8c3{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:var(--bg, #13131f)}.recovery-card.svelte-s3o8c3.svelte-s3o8c3{max-width:480px;width:100%;padding:2.5rem;background:var(--surface, #1e1e2e);border-radius:12px;border:1px solid var(--border, #2a2a3e);text-align:center}.recovery-icon.svelte-s3o8c3.svelte-s3o8c3{font-size:2.5rem;margin-bottom:.5rem;color:#f59e0b}.recovery-card.svelte-s3o8c3 h1.svelte-s3o8c3{margin:0 0 .75rem;font-size:1.4rem;color:var(--text, #e0e0e0)}.recovery-desc.svelte-s3o8c3.svelte-s3o8c3{color:var(--text-dim, #888);margin-bottom:.5rem;font-size:.9rem}.recovery-path.svelte-s3o8c3.svelte-s3o8c3{display:block;padding:.5rem .75rem;background:var(--surface-alt, #252538);border-radius:6px;font-size:.85rem;color:var(--text-dim, #aaa);word-break:break-all;margin-bottom:1.5rem}.error-msg.svelte-s3o8c3.svelte-s3o8c3{padding:.5rem .75rem;margin-bottom:1rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:.85rem}.recovery-actions.svelte-s3o8c3.svelte-s3o8c3{display:flex;flex-direction:column;gap:.6rem}.btn-lg.svelte-s3o8c3.svelte-s3o8c3{padding:.65rem 1.25rem;font-size:.95rem;width:100%}.modal-desc.svelte-s3o8c3.svelte-s3o8c3{color:var(--text-dim, #888);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.modal-overlay.svelte-s3o8c3.svelte-s3o8c3{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.svelte-s3o8c3.svelte-s3o8c3{background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:10px;padding:1.5rem;max-width:420px;width:90%}.modal.svelte-s3o8c3 h3.svelte-s3o8c3{margin:0 0 .75rem}.modal-actions.svelte-s3o8c3.svelte-s3o8c3{display:flex;gap:.5rem;justify-content:flex-end}.settings-sidebar.svelte-8ag2z0{width:200px;min-width:200px;border-right:1px solid var(--border, #2a2a3e);padding:.75rem 0;overflow-y:auto;background:var(--surface, #1e1e2e)}.settings-nav-item.svelte-8ag2z0{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem 1rem;border:none;background:transparent;color:var(--text-dim, #888);font-size:.9rem;cursor:pointer;text-align:left;transition:background .15s,color .15s;font-family:inherit}.settings-nav-item.svelte-8ag2z0:hover:not(.disabled){background:var(--surface-alt, #252538);color:var(--text, #e0e0e0)}.settings-nav-item.active.svelte-8ag2z0{background:var(--accent-bg, rgba(99, 102, 241, .15));color:var(--accent, #818cf8);font-weight:600;position:relative}.settings-nav-item.active.svelte-8ag2z0:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--accent, #818cf8);border-radius:0 2px 2px 0}.settings-nav-item.disabled.svelte-8ag2z0{opacity:.4;cursor:default}.settings-nav-icon.svelte-8ag2z0{width:1.4rem;height:1rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.settings-nav-label.svelte-8ag2z0{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-section.svelte-1e2uhdh.svelte-1e2uhdh{padding:1.5rem;max-width:560px}.settings-section.svelte-1e2uhdh h2.svelte-1e2uhdh{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-1e2uhdh.svelte-1e2uhdh{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-1e2uhdh.svelte-1e2uhdh{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.card-title.svelte-1e2uhdh.svelte-1e2uhdh{font-size:.9rem;font-weight:600;color:var(--text, #e0e0e0);margin:0 0 .75rem}.form-group.svelte-1e2uhdh.svelte-1e2uhdh{margin-bottom:0}.label-text.svelte-1e2uhdh.svelte-1e2uhdh{display:block;font-size:.85rem;color:var(--text-dim, #888);margin-bottom:.3rem}.settings-actions.svelte-1e2uhdh.svelte-1e2uhdh{display:flex;align-items:center;gap:.75rem;margin-top:1rem}.save-notice.svelte-1e2uhdh.svelte-1e2uhdh{padding:.4rem .75rem;background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:6px;color:#34d399;font-size:.85rem}.settings-section.svelte-1zbky3.svelte-1zbky3{padding:1.5rem;max-width:600px}.settings-section.svelte-1zbky3 h2.svelte-1zbky3{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-1zbky3.svelte-1zbky3{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-1zbky3.svelte-1zbky3{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.notice.svelte-1zbky3.svelte-1zbky3{padding:.5rem .75rem;margin-bottom:.75rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:.85rem}.info-row.svelte-1zbky3.svelte-1zbky3{display:flex;padding:.4rem 0;border-bottom:1px solid var(--border, #2a2a3e);font-size:.9rem}.info-row.svelte-1zbky3.svelte-1zbky3:last-child{border-bottom:none}.info-label.svelte-1zbky3.svelte-1zbky3{width:120px;min-width:120px;color:var(--text-dim, #888)}.info-value.svelte-1zbky3.svelte-1zbky3{color:var(--text, #e0e0e0);word-break:break-all}.info-value.mono.svelte-1zbky3.svelte-1zbky3{font-family:monospace;font-size:.85rem}.info-value.small.svelte-1zbky3.svelte-1zbky3{font-size:.8rem}.workspace-actions.svelte-1zbky3.svelte-1zbky3{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.btn.svelte-1zbky3.svelte-1zbky3{padding:.45rem .8rem;border:1px solid var(--border, #2a2a3e);border-radius:6px;background:var(--surface-light, #232338);color:var(--text, #e0e0e0);font-size:.85rem;cursor:pointer}.btn.svelte-1zbky3.svelte-1zbky3:hover{background:var(--accent, #4a7c59);border-color:var(--accent, #4a7c59)}.no-data.svelte-1zbky3.svelte-1zbky3{color:var(--text-dim, #888);font-style:italic;margin:0}.settings-section.svelte-ksamnw.svelte-ksamnw{padding:1.5rem;max-width:560px}.settings-section.svelte-ksamnw h2.svelte-ksamnw{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-ksamnw.svelte-ksamnw{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.loading.svelte-ksamnw.svelte-ksamnw,.no-data.svelte-ksamnw.svelte-ksamnw{color:var(--text-dim, #888);font-style:italic}.template-list.svelte-ksamnw.svelte-ksamnw{display:flex;flex-direction:column;gap:.5rem}.template-item.svelte-ksamnw.svelte-ksamnw{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;background:var(--surface-alt, #252538);border-radius:6px;border:1px solid var(--border, #2a2a3e)}.template-info.svelte-ksamnw.svelte-ksamnw{display:flex;align-items:center;gap:.5rem}.template-name.svelte-ksamnw.svelte-ksamnw{color:var(--text, #e0e0e0);font-size:.9rem}.template-type.svelte-ksamnw.svelte-ksamnw{color:var(--text-dim, #888);font-size:.8rem}.toggle-label.svelte-ksamnw.svelte-ksamnw{display:flex;align-items:center;gap:.4rem;cursor:pointer}.toggle-text.svelte-ksamnw.svelte-ksamnw{font-size:.8rem;color:var(--text-dim, #888)}input[type=checkbox].svelte-ksamnw.svelte-ksamnw{accent-color:var(--accent, #818cf8)}.settings-plugins.svelte-i9gngw.svelte-i9gngw{padding:1.5rem}h3.svelte-i9gngw.svelte-i9gngw{margin:0 0 .25rem;font-size:1.1rem;color:var(--text, #e0e0e0)}.hint.svelte-i9gngw.svelte-i9gngw{margin:0 0 1rem;font-size:.85rem;color:var(--text-dim, #888)}.loading.svelte-i9gngw.svelte-i9gngw{color:var(--text-dim, #888)}.error.svelte-i9gngw.svelte-i9gngw{color:#f87171;background:#f871711a;padding:.5rem .75rem;border-radius:6px}.empty-state.svelte-i9gngw.svelte-i9gngw{text-align:center;padding:3rem 1rem;color:var(--text-dim, #888)}.empty-state.svelte-i9gngw code.svelte-i9gngw{background:var(--surface-alt, #252538);padding:.15rem .4rem;border-radius:3px;font-size:.85rem}.plugin-list.svelte-i9gngw.svelte-i9gngw{display:flex;flex-direction:column;gap:.5rem}.plugin-card.svelte-i9gngw.svelte-i9gngw{display:flex;align-items:center;justify-content:space-between;background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:.75rem 1rem;gap:1rem}.plugin-info.svelte-i9gngw.svelte-i9gngw{flex:1;min-width:0}.plugin-name.svelte-i9gngw.svelte-i9gngw{font-weight:600;color:var(--text, #e0e0e0);display:flex;align-items:center;gap:.5rem}.plugin-version.svelte-i9gngw.svelte-i9gngw{font-size:.75rem;color:var(--text-dim, #888);font-weight:400}.plugin-desc.svelte-i9gngw.svelte-i9gngw{font-size:.85rem;color:var(--text-dim, #aaa);margin-top:.15rem}.plugin-meta.svelte-i9gngw.svelte-i9gngw{display:flex;flex-wrap:wrap;gap:.25rem .75rem;margin-top:.25rem;font-size:.75rem;color:var(--text-dim, #888)}.plugin-toggle.svelte-i9gngw.svelte-i9gngw{flex-shrink:0}.toggle-btn.svelte-i9gngw.svelte-i9gngw{position:relative;width:44px;height:24px;background:var(--surface-alt, #333);border-radius:12px;border:1px solid var(--border, #444);cursor:pointer;padding:0;transition:background .2s}.toggle-btn.active.svelte-i9gngw.svelte-i9gngw{background:#6366f1;border-color:#6366f1}.toggle-knob.svelte-i9gngw.svelte-i9gngw{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px #0000004d}.toggle-btn.active.svelte-i9gngw .toggle-knob.svelte-i9gngw{left:22px}.toggle-group.svelte-i9gngw.svelte-i9gngw{display:flex;align-items:center;gap:6px}.install-btn.svelte-i9gngw.svelte-i9gngw{padding:6px 14px;background:#6366f1;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}.install-btn.svelte-i9gngw.svelte-i9gngw:hover{filter:brightness(1.15)}.uninstall-btn.svelte-i9gngw.svelte-i9gngw{width:28px;height:28px;background:var(--surface, #1a1a2e);color:#ef4444;border:1px solid rgba(239,68,68,.3);border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:all .15s}.uninstall-btn.svelte-i9gngw.svelte-i9gngw:hover{opacity:1;background:#ef44441a}.settings-section.svelte-1fx1e1e.svelte-1fx1e1e{padding:1.5rem;max-width:600px}.settings-section.svelte-1fx1e1e h2.svelte-1fx1e1e{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-1fx1e1e.svelte-1fx1e1e{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-1fx1e1e.svelte-1fx1e1e{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.info-row.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;padding:.4rem 0;border-bottom:1px solid var(--border, #2a2a3e);font-size:.9rem}.info-row.svelte-1fx1e1e.svelte-1fx1e1e:last-child{border-bottom:none}.info-label.svelte-1fx1e1e.svelte-1fx1e1e{width:180px;min-width:180px;color:var(--text-dim, #888)}.info-value.svelte-1fx1e1e.svelte-1fx1e1e{color:var(--text, #e0e0e0);word-break:break-all}.info-value.mono.svelte-1fx1e1e.svelte-1fx1e1e{font-family:monospace;font-size:.85rem}.info-value.error.svelte-1fx1e1e.svelte-1fx1e1e{color:#ff6b6b}.status-ok.svelte-1fx1e1e.svelte-1fx1e1e{color:#34d399;font-weight:600}.status-err.svelte-1fx1e1e.svelte-1fx1e1e{color:#ff6b6b}.sync-actions.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.sync-interval.svelte-1fx1e1e.svelte-1fx1e1e{margin-bottom:0}.interval-row.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;align-items:center}.interval-row.svelte-1fx1e1e input.svelte-1fx1e1e{width:100px}.sync-setup.svelte-1fx1e1e .form-group.svelte-1fx1e1e{margin-bottom:1rem}.sync-setup.svelte-1fx1e1e .form-group.svelte-1fx1e1e:last-of-type{margin-bottom:0}.sync-setup-actions.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;margin-top:1rem}.connection-result.svelte-1fx1e1e.svelte-1fx1e1e{margin-top:.75rem;padding:.4rem .75rem;border-radius:6px;font-size:.85rem}.connection-result.ok.svelte-1fx1e1e.svelte-1fx1e1e{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#34d399}.connection-result.fail.svelte-1fx1e1e.svelte-1fx1e1e{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);color:#ff6b6b}.error-msg.svelte-1fx1e1e.svelte-1fx1e1e{padding:.5rem .75rem;margin-bottom:.75rem;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:6px;color:#ff6b6b;font-size:.85rem}.result-msg.svelte-1fx1e1e.svelte-1fx1e1e{padding:.5rem .75rem;margin-bottom:.75rem;background:#34d3991a;border:1px solid rgba(52,211,153,.3);border-radius:6px;color:#34d399;font-size:.85rem}.result-msg.warning.svelte-1fx1e1e.svelte-1fx1e1e{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b}.modal-overlay.svelte-1fx1e1e.svelte-1fx1e1e{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;border:none;padding:0;cursor:pointer;width:100%;color:inherit;font:inherit}.modal.svelte-1fx1e1e.svelte-1fx1e1e{background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:10px;padding:1.5rem;max-width:420px;width:90%;cursor:default}.modal.svelte-1fx1e1e h3.svelte-1fx1e1e{margin:0 0 .75rem}.modal-desc.svelte-1fx1e1e.svelte-1fx1e1e{color:var(--text-dim, #888);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.modal-actions.svelte-1fx1e1e.svelte-1fx1e1e{display:flex;gap:.5rem;justify-content:flex-end}.settings-section.svelte-19bo7bn.svelte-19bo7bn{padding:1.5rem;max-width:500px}.settings-section.svelte-19bo7bn h2.svelte-19bo7bn{margin:0 0 .5rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-19bo7bn.svelte-19bo7bn{color:var(--text-dim, #888);font-size:.85rem}.settings-section.svelte-13i6m7m.svelte-13i6m7m{padding:1.5rem;max-width:600px}.settings-section.svelte-13i6m7m h2.svelte-13i6m7m{margin:0 0 .25rem;font-size:1.2rem;color:var(--text, #e0e0e0)}.section-desc.svelte-13i6m7m.svelte-13i6m7m{color:var(--text-dim, #888);font-size:.85rem;margin-bottom:1.25rem;line-height:1.4}.settings-card.svelte-13i6m7m.svelte-13i6m7m{background:var(--surface-alt, #1e1e30);border:1px solid var(--border, #2a2a3e);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.form-group.svelte-13i6m7m.svelte-13i6m7m{margin-bottom:1rem}.form-group.svelte-13i6m7m.svelte-13i6m7m:last-child{margin-bottom:0}.label-text.svelte-13i6m7m.svelte-13i6m7m{display:block;color:var(--text-dim, #888);font-size:.85rem;margin-bottom:.35rem}input[type=number].svelte-13i6m7m.svelte-13i6m7m{width:120px;padding:.4rem .6rem;background:var(--bg, #13131f);border:1px solid var(--border, #2a2a3e);border-radius:6px;color:var(--text, #e0e0e0);font-size:.9rem}input[type=number].svelte-13i6m7m.svelte-13i6m7m:disabled{opacity:.5}.field-hint.svelte-13i6m7m.svelte-13i6m7m{color:var(--text-dim, #666);font-size:.75rem;margin-top:.35rem}.toggle-label.svelte-13i6m7m.svelte-13i6m7m{display:flex;align-items:center;gap:.5rem;cursor:pointer}.toggle-text.svelte-13i6m7m.svelte-13i6m7m{color:var(--text, #e0e0e0);font-size:.9rem}.bridge-status.svelte-13i6m7m.svelte-13i6m7m{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border, #2a2a3e)}.info-row.svelte-13i6m7m.svelte-13i6m7m{display:flex;padding:.3rem 0;font-size:.85rem}.info-label.svelte-13i6m7m.svelte-13i6m7m{width:140px;min-width:140px;color:var(--text-dim, #888)}.info-value.svelte-13i6m7m.svelte-13i6m7m{color:var(--text, #e0e0e0)}.info-value.mono.svelte-13i6m7m.svelte-13i6m7m{font-family:monospace;font-size:.85rem}.status-ok.svelte-13i6m7m.svelte-13i6m7m{color:#34d399;font-weight:600}.status-off.svelte-13i6m7m.svelte-13i6m7m{color:#888}.actions.svelte-13i6m7m.svelte-13i6m7m{display:flex;gap:.5rem;flex-wrap:wrap}.status-msg.svelte-13i6m7m.svelte-13i6m7m{padding:.5rem .75rem;margin-bottom:.75rem;border-radius:6px;font-size:.85rem}.status-msg.ok.svelte-13i6m7m.svelte-13i6m7m{background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#34d399}.status-msg.error.svelte-13i6m7m.svelte-13i6m7m{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);color:#ff6b6b}.settings-overlay.svelte-zf2zsc.svelte-zf2zsc{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:900;border:none;padding:0;cursor:pointer;width:100%;color:inherit;font:inherit}.settings-window.svelte-zf2zsc.svelte-zf2zsc{display:flex;flex-direction:column;width:800px;max-width:90vw;height:600px;max-height:85vh;background:var(--surface, #1e1e2e);border:1px solid var(--border, #2a2a3e);border-radius:12px;overflow:hidden;box-shadow:0 8px 32px #0006}.settings-header.svelte-zf2zsc.svelte-zf2zsc{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border, #2a2a3e);flex-shrink:0}.settings-header.svelte-zf2zsc h2.svelte-zf2zsc{margin:0;font-size:1.1rem;color:var(--text, #e0e0e0)}.close-btn.svelte-zf2zsc.svelte-zf2zsc{background:transparent;border:none;color:var(--text-dim, #888);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center}.close-btn.svelte-zf2zsc.svelte-zf2zsc:hover{color:var(--text, #e0e0e0);background:var(--surface-alt, #252538)}.settings-body.svelte-zf2zsc.svelte-zf2zsc{display:flex;flex:1;overflow:hidden}.settings-content.svelte-zf2zsc.svelte-zf2zsc{flex:1;overflow-y:auto;background:var(--bg, #13131f)}.sync-status-widget.svelte-1rxbx0{font-size:.8rem;padding:.4rem .5rem}.sync-status-row.svelte-1rxbx0{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sync-dot.svelte-1rxbx0{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-connected.svelte-1rxbx0{background:#34d399;box-shadow:0 0 4px #34d39966}.dot-warning.svelte-1rxbx0{background:#f59e0b}.dot-disabled.svelte-1rxbx0{background:#555}.dot-syncing.svelte-1rxbx0{background:#818cf8;animation:svelte-1rxbx0-pulse 1s infinite}@keyframes svelte-1rxbx0-pulse{0%,to{opacity:1}50%{opacity:.4}}.sync-label.svelte-1rxbx0{color:var(--text-dim, #888);white-space:nowrap}.sync-count.svelte-1rxbx0{color:var(--accent, #818cf8);font-weight:600}.sync-actions-row.svelte-1rxbx0{display:flex;gap:.3rem;margin-left:auto}.sync-message.svelte-1rxbx0{margin-top:.25rem;color:var(--text-dim, #888);line-height:1.25}.sync-message-warning.svelte-1rxbx0{color:#f59e0b}.btn-xs.svelte-1rxbx0{padding:.2rem .5rem;font-size:.75rem;border:1px solid var(--border, #2a2a3e);background:var(--surface-alt, #252538);color:var(--text-dim, #888);border-radius:4px;cursor:pointer;white-space:nowrap}.btn-xs.svelte-1rxbx0:hover{background:var(--border, #2a2a3e);color:var(--text, #e0e0e0)}.btn-xs.svelte-1rxbx0:disabled{opacity:.5;cursor:default}.btn-link.svelte-1rxbx0{border:none;background:transparent;color:var(--accent, #818cf8);text-decoration:underline}.btn-link.svelte-1rxbx0:hover{color:#a5b4fc;background:transparent}.browser-events.svelte-slao4o.svelte-slao4o{padding:8px 0}.browser-header.svelte-slao4o.svelte-slao4o{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0 4px}.browser-header.svelte-slao4o h3.svelte-slao4o{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim, #8892b0);margin:0}.refresh-btn.svelte-slao4o.svelte-slao4o{background:var(--surface2, #1e2d50);border:none;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:12px;transition:background .2s}.refresh-btn.svelte-slao4o.svelte-slao4o:hover{background:var(--surface, #16213e)}.empty-state.svelte-slao4o.svelte-slao4o{padding:24px;text-align:center}.empty-text.svelte-slao4o.svelte-slao4o,.loading.svelte-slao4o.svelte-slao4o{color:var(--text-dim, #8892b0);font-style:italic;font-size:12px}.event-list.svelte-slao4o.svelte-slao4o{display:flex;flex-direction:column;gap:4px}.event-item.svelte-slao4o.svelte-slao4o{display:flex;gap:8px;padding:6px 8px;background:var(--surface, #16213e);border-radius:6px;transition:background .15s}.event-item.pending.svelte-slao4o.svelte-slao4o{border-left:2px solid var(--accent, #0f9b8e)}.event-icon.svelte-slao4o.svelte-slao4o{font-size:16px;line-height:1.4;min-width:20px;text-align:center}.event-body.svelte-slao4o.svelte-slao4o{flex:1;min-width:0}.event-domain.svelte-slao4o.svelte-slao4o{font-size:11px;color:var(--accent, #0f9b8e);font-weight:500}.event-title.svelte-slao4o.svelte-slao4o{font-size:12px;color:var(--text, #e0e0e0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta.svelte-slao4o.svelte-slao4o{display:flex;gap:8px;margin-top:2px}.duration.svelte-slao4o.svelte-slao4o,.time.svelte-slao4o.svelte-slao4o{font-size:10px;color:var(--text-dim, #8892b0)}.status-badge.svelte-slao4o.svelte-slao4o{font-size:9px;padding:1px 4px;border-radius:3px;text-transform:uppercase}.status-accepted.svelte-slao4o.svelte-slao4o{background:#2ecc7133;color:#2ecc71}.status-dismissed.svelte-slao4o.svelte-slao4o{background:#e74c3c33;color:#e74c3c}.status-attached.svelte-slao4o.svelte-slao4o{background:#3498db33;color:#3498db}.event-text.svelte-slao4o.svelte-slao4o{font-size:11px;color:var(--text-dim, #8892b0);font-style:italic;margin-top:2px;padding:2px 6px;background:#ffffff08;border-radius:3px}.event-actions.svelte-slao4o.svelte-slao4o{display:flex;gap:2px;align-items:flex-start}.event-actions.svelte-slao4o button.svelte-slao4o{background:none;border:1px solid var(--surface2, #1e2d50);border-radius:4px;width:24px;height:24px;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s}.btn-accept.svelte-slao4o.svelte-slao4o:hover{background:#2ecc7133;border-color:#2ecc71}.btn-attach.svelte-slao4o.svelte-slao4o:hover{background:#3498db33;border-color:#3498db}.btn-dismiss.svelte-slao4o.svelte-slao4o:hover{background:#e74c3c33;border-color:#e74c3c}.today-screen.svelte-ii7vwz.svelte-ii7vwz{padding:24px;overflow-y:auto;flex:1}.today-header.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;min-height:20px}.today-date.svelte-ii7vwz.svelte-ii7vwz{font-size:13px;color:#666}.today-tabs.svelte-ii7vwz.svelte-ii7vwz{display:flex;gap:0;border-bottom:1px solid #2a2a3c;margin-bottom:16px}.today-tab.svelte-ii7vwz.svelte-ii7vwz{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit;position:relative}.today-tab.svelte-ii7vwz.svelte-ii7vwz:hover{color:#a5b4fc}.today-tab.active.svelte-ii7vwz.svelte-ii7vwz{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.tab-badge.svelte-ii7vwz.svelte-ii7vwz{background:#6366f1;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;margin-left:6px;line-height:1.4;vertical-align:middle}.today-tab-content.svelte-ii7vwz.svelte-ii7vwz{flex:1}.today-empty.svelte-ii7vwz.svelte-ii7vwz{padding:48px 24px;text-align:center}.today-empty.svelte-ii7vwz p.svelte-ii7vwz{color:#666;font-size:14px;margin:0}.today-empty.svelte-ii7vwz .hint.svelte-ii7vwz{font-size:12px;color:#555;margin-top:8px}.tab-controls.svelte-ii7vwz.svelte-ii7vwz{margin-bottom:12px}.sort-controls.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:6px}.sort-btn.svelte-ii7vwz.svelte-ii7vwz{padding:4px 10px;border:1px solid #2a2a3c;background:#13131f;color:#888;border-radius:4px;font-size:12px;cursor:pointer;font-family:inherit}.sort-btn.svelte-ii7vwz.svelte-ii7vwz:hover{border-color:#3a3a5c;color:#ccc}.sort-btn.active.svelte-ii7vwz.svelte-ii7vwz{border-color:#6366f1;color:#a5b4fc;background:#6366f114}.sort-dir.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0;margin-left:4px}.feed-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:2px}.feed-item.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.feed-item.svelte-ii7vwz.svelte-ii7vwz:hover{background:#1a1a28}.feed-icon.svelte-ii7vwz.svelte-ii7vwz{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:2px}.feed-body.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0}.feed-title-line.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}.feed-type.svelte-ii7vwz.svelte-ii7vwz{font-size:13px;color:#8888a0}.feed-colon.svelte-ii7vwz.svelte-ii7vwz{color:#555}.feed-title.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef;font-weight:500}.feed-title.svelte-ii7vwz.svelte-ii7vwz:hover{text-decoration:underline}.feed-meta-line.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:8px;margin-top:2px}.feed-path.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#8ea0d8;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-event-type.svelte-ii7vwz.svelte-ii7vwz{font-size:10px;color:#a5b4fc;background:#6366f11a;padding:2px 8px;border-radius:8px;font-weight:500}.feed-time.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#555;margin-left:auto;flex-shrink:0}.feed-nav-btn.svelte-ii7vwz.svelte-ii7vwz{background:none;border:none;color:#555;cursor:pointer;padding:4px;border-radius:4px;flex-shrink:0;margin-top:2px}.feed-nav-btn.svelte-ii7vwz.svelte-ii7vwz:hover{color:#a5b4fc;background:#1e1e30}.link-btn.svelte-ii7vwz.svelte-ii7vwz{background:none;border:none;padding:0;color:#a5b4fc;font:inherit;cursor:pointer;text-align:left}.link-btn.svelte-ii7vwz.svelte-ii7vwz:hover{text-decoration:underline}.suggestions-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:6px}.suggestion-card.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;align-items:stretch;padding:0;background:#1e1e32;border-radius:6px;margin-bottom:6px;gap:0;border:1px solid transparent}.suggestion-card.svelte-ii7vwz.svelte-ii7vwz:last-child{margin-bottom:0}.suggestion-card.expanded.svelte-ii7vwz.svelte-ii7vwz{border-color:#3a3a5c}.suggestion-main.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;cursor:pointer;gap:10px;min-height:38px}.suggestion-info.svelte-ii7vwz.svelte-ii7vwz{flex:1;display:flex;flex-direction:column;gap:2px}.suggestion-node.svelte-ii7vwz.svelte-ii7vwz{color:#a5b4fc;font-weight:600;font-size:13px;text-decoration:none;cursor:pointer}.suggestion-node.svelte-ii7vwz.svelte-ii7vwz:hover{text-decoration:underline}.suggestion-summary.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef}.suggestion-meta.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0;margin-top:2px}.suggestion-actions.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:6px;flex-shrink:0}.suggestion-min-input.svelte-ii7vwz.svelte-ii7vwz{width:54px;padding:3px 7px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;text-align:center}.suggestion-min-label.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0}.suggestion-confidence-dot.svelte-ii7vwz.svelte-ii7vwz{width:9px;height:9px;border-radius:999px;background:#77798a;box-shadow:0 0 0 3px #77798a1f;flex:0 0 auto}.suggestion-confidence-dot.low.svelte-ii7vwz.svelte-ii7vwz{background:#ef4444;box-shadow:0 0 0 3px #ef44441f}.suggestion-confidence-dot.medium.svelte-ii7vwz.svelte-ii7vwz{background:#fbbf24;box-shadow:0 0 0 3px #fbbf241f}.suggestion-confidence-dot.high.svelte-ii7vwz.svelte-ii7vwz{background:#34d399;box-shadow:0 0 0 3px #34d3991f}.suggestion-detail.svelte-ii7vwz.svelte-ii7vwz{width:100%;padding:6px 10px 8px;border-top:1px solid #2a2a3c}.suggestion-detail-title.svelte-ii7vwz.svelte-ii7vwz{font-size:10px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;padding:4px 0}.suggestion-detail-event.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:7px;padding:2px 0;font-size:12px;color:#b0b0c0}.suggestion-event-time.svelte-ii7vwz.svelte-ii7vwz{color:#a0a0b8;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:48px}.suggestion-event-type.svelte-ii7vwz.svelte-ii7vwz{color:#8888a0;font-size:11px;background:#1a1a2e;padding:1px 6px;border-radius:3px}.suggestion-event-title.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-event-path.svelte-ii7vwz.svelte-ii7vwz{max-width:220px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn.svelte-ii7vwz.svelte-ii7vwz{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn.svelte-ii7vwz.svelte-ii7vwz:hover{background:#223}.btn-primary.svelte-ii7vwz.svelte-ii7vwz{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-ii7vwz.svelte-ii7vwz:hover{background:#4f46e5}.btn-sm.svelte-ii7vwz.svelte-ii7vwz{padding:4px 10px;font-size:12px}.btn-danger.svelte-ii7vwz.svelte-ii7vwz{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-ii7vwz.svelte-ii7vwz:hover{background:#3a2222}.ip-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:2px}.ip-item.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.ip-item.svelte-ii7vwz.svelte-ii7vwz:hover{background:#1a1a28}.ip-icon.svelte-ii7vwz.svelte-ii7vwz{width:20px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.ip-body.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0}.ip-title.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef;display:block}.ip-path.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#8ea0d8;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.ip-type.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#666;flex-shrink:0}.ip-time.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#555;flex-shrink:0;margin-left:8px}.capture-list.svelte-ii7vwz.svelte-ii7vwz{display:flex;flex-direction:column;gap:6px}.capture-item.svelte-ii7vwz.svelte-ii7vwz{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28;cursor:pointer}.capture-item.svelte-ii7vwz.svelte-ii7vwz:hover{border-color:#3a3a5c;background:#1e1e32}.capture-icon.svelte-ii7vwz.svelte-ii7vwz{font-size:18px;width:28px;text-align:center;flex-shrink:0}.capture-body.svelte-ii7vwz.svelte-ii7vwz{flex:1;min-width:0}.capture-title.svelte-ii7vwz.svelte-ii7vwz{font-size:14px;color:#e4e4ef;font-weight:500;display:block}.capture-meta.svelte-ii7vwz.svelte-ii7vwz{font-size:12px;color:#8888a0;display:block;margin-top:2px}.capture-time.svelte-ii7vwz.svelte-ii7vwz{font-size:11px;color:#555;flex-shrink:0}.plugin-page.svelte-xgfxht.svelte-xgfxht{padding:1.5rem;height:100%;display:flex;flex-direction:column}.loading.svelte-xgfxht.svelte-xgfxht{color:var(--text-dim, #888)}.empty-state.svelte-xgfxht.svelte-xgfxht{text-align:center;padding:3rem 1rem;color:var(--text-dim, #888)}.empty-state.svelte-xgfxht code.svelte-xgfxht{background:var(--surface-alt, #252538);padding:.15rem .4rem;border-radius:3px;font-size:.85rem}.plugin-frame-container.svelte-xgfxht.svelte-xgfxht{flex:1;display:flex;flex-direction:column;min-height:0}.plugin-error-bar.svelte-xgfxht.svelte-xgfxht{padding:.5rem 1rem;background:#f871711f;border:1px solid #f87171;border-bottom:none;border-radius:8px 8px 0 0;color:#f87171;font-size:.85rem;flex-shrink:0}.plugin-frame.svelte-xgfxht.svelte-xgfxht{flex:1;border:1px solid var(--border, #2a2a3e);border-radius:8px;background:#fff;width:100%;min-height:400px;display:block}.plugin-frame-container.svelte-xgfxht .plugin-frame.svelte-xgfxht{border-radius:0 0 8px 8px;border-top:none}.global-search.svelte-1dlr37h{position:relative;flex:1 1 360px;min-width:180px;max-width:520px}.global-search-input.svelte-1dlr37h{width:100%;height:32px;padding:0 12px;border:1px solid #2a2a3c;border-radius:6px;background:#10101a;color:#e4e4ef;font:inherit;font-size:13px}.global-search-input.svelte-1dlr37h:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f12e}.global-search-results.svelte-1dlr37h{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:160;max-height:min(360px,calc(100vh - 88px));overflow-y:auto;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;box-shadow:0 14px 36px #00000061;padding:4px}.global-search-result.svelte-1dlr37h{display:flex;flex-direction:column;gap:2px;width:100%;border:0;background:transparent;color:#e4e4ef;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;font:inherit}.global-search-result.svelte-1dlr37h:hover,.global-search-result.selected.svelte-1dlr37h{background:#252545}.global-search-title.svelte-1dlr37h{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-meta.svelte-1dlr37h{font-size:11px;color:#a0a0bc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-snippet.svelte-1dlr37h{font-size:12px;color:#767690;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-empty.svelte-1dlr37h{padding:10px 12px;color:#8888a0;font-size:12px}.header.svelte-7x8q9h{padding:10px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:16px;flex-shrink:0;min-height:52px}.header-left.svelte-7x8q9h{display:flex;align-items:center;gap:8px;min-width:120px;flex:0 1 auto;overflow:hidden}.header-title.svelte-7x8q9h{font-size:15px;font-weight:600;color:#e4e4ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-title.placeholder.svelte-7x8q9h{color:#666;font-weight:500}.header-subtitle.svelte-7x8q9h{font-size:11px;color:#8888a0;background:#1e1e2e;padding:2px 8px;border-radius:10px;white-space:nowrap}.header-right.svelte-7x8q9h{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:8px}@media (max-width: 760px){.header.svelte-7x8q9h{padding:8px 12px;gap:10px;align-items:flex-start;flex-wrap:wrap}.header-left.svelte-7x8q9h{flex:1 1 100%}.header-right.svelte-7x8q9h{flex:1 1 100%;justify-content:stretch}}.md-editor.svelte-1etjgc1{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.md-editor.mode-edit.svelte-1etjgc1{height:auto}.md-toolbar.svelte-1etjgc1{display:flex;align-items:center;gap:2px;padding:5px 10px;border-bottom:1px solid #2a2a3c;background:#16161f;flex-shrink:0;flex-wrap:wrap}.md-toolbar-group.svelte-1etjgc1{display:flex;align-items:center;gap:1px}.md-toolbar-sep.svelte-1etjgc1{width:1px;height:18px;background:#2a2a3c;margin:0 4px;flex-shrink:0}.md-toolbar-btn.svelte-1etjgc1{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:#999;cursor:pointer;transition:background .12s,color .12s;padding:0}.md-toolbar-btn.svelte-1etjgc1:hover{background:#2a2a3c;color:#e4e4ef}.md-toolbar-btn.svelte-1etjgc1:active{background:#333350}.md-toolbar-btn.svelte-1etjgc1:focus-visible{outline:2px solid #818cf8;outline-offset:1px}.md-toolbar-btn--internal.svelte-1etjgc1{color:#67e8f9}.md-toolbar-btn--internal.svelte-1etjgc1:hover{background:#67e8f91a;color:#a5f3fc}.md-btn-label.svelte-1etjgc1{font-size:13px;font-weight:700;font-family:SF Mono,Fira Code,monospace;line-height:1}.md-btn-bold.svelte-1etjgc1{font-weight:900}.md-btn-italic.svelte-1etjgc1{font-style:italic;font-family:Georgia,serif}.md-btn-sm.svelte-1etjgc1{font-size:10px}.md-btn-quote.svelte-1etjgc1{font-size:16px;font-family:Georgia,serif}.md-textarea.svelte-1etjgc1{flex:1;width:100%;min-height:0;border:none;outline:none;background:#13131f;color:#e4e4ef;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:14px;line-height:1.65;padding:16px 20px;resize:none;-moz-tab-size:2;tab-size:2;overflow-y:auto}.md-textarea.svelte-1etjgc1::placeholder{color:#444;font-style:italic}.markdown-body.svelte-jdvhib{color:#e4e4ef;font-size:15px;line-height:1.7;word-wrap:break-word;overflow-wrap:break-word;max-width:720px}.md-empty.svelte-jdvhib{color:#555;font-style:italic;padding:24px 0}.md-error.svelte-jdvhib{background:#3a2222;border:1px solid #5a2a2a;border-radius:8px;padding:16px;color:#f88}.md-error-detail.svelte-jdvhib{font-size:12px;color:#c66;margin-top:8px}.markdown-body h1{font-size:28px;font-weight:700;margin:32px 0 16px;padding-bottom:8px;border-bottom:1px solid #2a2a3c;color:#f0f0f8}.markdown-body h2{font-size:22px;font-weight:600;margin:28px 0 14px;padding-bottom:6px;border-bottom:1px solid #22223a;color:#e8e8f0}.markdown-body h3{font-size:18px;font-weight:600;margin:24px 0 12px;color:#ddd}.markdown-body h4{font-size:16px;font-weight:600;margin:20px 0 10px;color:#ccc}.markdown-body h5,.markdown-body h6{font-size:14px;font-weight:600;margin:16px 0 8px;color:#bbb}.markdown-body p{margin:12px 0}.markdown-body .md-link{color:#818cf8;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s,color .15s;cursor:pointer}.markdown-body .md-link:hover{color:#a5b4fc;border-bottom-color:#818cf8}.markdown-body .md-link--internal{color:#67e8f9;font-weight:500}.markdown-body .md-link--internal:hover{color:#a5f3fc;border-bottom-color:#67e8f9}.markdown-body .md-link--blocked{color:#666;text-decoration:line-through;cursor:not-allowed}.markdown-body strong{font-weight:700;color:#f0f0f8}.markdown-body em{font-style:italic}.markdown-body del{text-decoration:line-through;color:#888}.markdown-body ul{padding-left:24px;margin:12px 0;list-style-type:disc}.markdown-body ol{padding-left:24px;margin:12px 0;list-style-type:decimal}.markdown-body li{margin:4px 0;line-height:1.6}.markdown-body li>ul,.markdown-body li>ol{margin:4px 0}.markdown-body .md-task-item{list-style:none;display:flex;align-items:flex-start;gap:8px;margin:4px 0}.markdown-body .md-task-checkbox{margin-top:3px;flex-shrink:0;accent-color:#818cf8}.markdown-body .md-task-text{flex:1}.markdown-body blockquote{margin:16px 0;padding:12px 16px;border-left:3px solid #818cf8;background:#818cf80f;border-radius:0 6px 6px 0;color:#bbb;font-style:italic}.markdown-body blockquote p{margin:4px 0}.markdown-body .md-code-inline{background:#1e1e38;color:#f59e0b;padding:2px 6px;border-radius:4px;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px}.markdown-body .md-code-block{background:#0d1117;border:1px solid #21262d;border-radius:8px;padding:16px;margin:16px 0;overflow-x:auto;font-family:SF Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.55;color:#c9d1d9}.markdown-body .md-code-block code{background:none;padding:0;border-radius:0;font-size:inherit}.markdown-body .hljs{color:#c9d1d9}.markdown-body .hljs-comment{color:#8b949e}.markdown-body .hljs-keyword{color:#ff7b72}.markdown-body .hljs-string{color:#a5d6ff}.markdown-body .hljs-number{color:#79c0ff}.markdown-body .hljs-function{color:#d2a8ff}.markdown-body .hljs-class,.markdown-body .hljs-variable{color:#ffa657}.markdown-body .hljs-operator{color:#ff7b72}.markdown-body .hljs-punctuation{color:#c9d1d9}.markdown-body .hljs-tag{color:#7ee787}.markdown-body .hljs-attr{color:#79c0ff}.markdown-body .hljs-title{color:#d2a8ff}.markdown-body .hljs-built_in{color:#ffa657}.markdown-body .hljs-literal{color:#79c0ff}.markdown-body .hljs-type{color:#ffa657}.markdown-body .hljs-params{color:#c9d1d9}.markdown-body .hljs-property{color:#79c0ff}.markdown-body .hljs-regexp{color:#a5d6ff}.markdown-body .hljs-meta{color:#8b949e}.markdown-body .hljs-doctag{color:#ff7b72}.markdown-body .hljs-name{color:#7ee787}.markdown-body .hljs-section{color:#1f6feb;font-weight:700}.markdown-body .hljs-symbol{color:#79c0ff}.markdown-body .hljs-bullet{color:#f2cc60}.markdown-body .hljs-code{color:#c9d1d9}.markdown-body .hljs-emphasis{font-style:italic}.markdown-body .hljs-strong{font-weight:700}.markdown-body .hljs-addition{color:#aff5b4;background:#033a16}.markdown-body .hljs-deletion{color:#ffdcd7;background:#67060c}.markdown-body table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}.markdown-body thead{background:#1a1a2e}.markdown-body th{padding:10px 14px;text-align:left;font-weight:600;color:#c4c4d4;border-bottom:2px solid #2a2a3c}.markdown-body td{padding:8px 14px;border-bottom:1px solid #1e1e30}.markdown-body tbody tr:hover{background:#818cf80a}.markdown-body hr{border:none;border-top:1px solid #2a2a3c;margin:24px 0}.markdown-body .md-image-blocked{display:inline-block;background:#1a1a2e;border:1px dashed #3a3a5c;border-radius:6px;padding:8px 14px;color:#666;font-size:13px;font-style:italic;margin:8px 0}.note-editor-panel.svelte-8tdyp9.svelte-8tdyp9{display:flex;flex-direction:column;flex:1;min-height:0;height:100%}.mode-switcher.svelte-8tdyp9.svelte-8tdyp9{display:flex;align-items:center;gap:2px;padding:5px 12px;border-bottom:1px solid #2a2a3c;background:#14141f;flex-shrink:0}.mode-btn.svelte-8tdyp9.svelte-8tdyp9{padding:4px 12px;border:1px solid transparent;border-radius:4px;background:transparent;color:#888;font-size:12px;font-family:inherit;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.mode-btn.svelte-8tdyp9.svelte-8tdyp9:hover{color:#ccc;background:#1e1e30}.mode-btn.active.svelte-8tdyp9.svelte-8tdyp9{color:#e4e4ef;background:#22223a;border-color:#333350;font-weight:500}.mode-btn.svelte-8tdyp9.svelte-8tdyp9:focus-visible{outline:2px solid #818cf8;outline-offset:1px}.panel-content.svelte-8tdyp9.svelte-8tdyp9{flex:1;display:flex;min-height:0;overflow:hidden}.mode-preview.svelte-8tdyp9 .panel-content.svelte-8tdyp9{overflow-y:auto}.preview-pane.svelte-8tdyp9.svelte-8tdyp9{flex:1;padding:24px;overflow-y:auto}.split-pane.svelte-8tdyp9.svelte-8tdyp9{flex:1;display:flex;min-height:0;overflow:hidden}.split-editor.svelte-8tdyp9.svelte-8tdyp9{flex:1;display:flex;flex-direction:column;min-width:0;border-right:1px solid #2a2a3c;overflow:hidden}.split-preview.svelte-8tdyp9.svelte-8tdyp9{flex:1;min-width:0;overflow-y:auto;padding:20px 24px;background:#11111c}.picker-modal-overlay.svelte-12kipyi{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.picker-modal.svelte-12kipyi{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;width:480px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.picker-header.svelte-12kipyi{padding:12px 16px;border-bottom:1px solid #2a2a3c}.picker-search-input.svelte-12kipyi{width:100%;padding:8px 12px;border:1px solid #2a2a3c;border-radius:6px;background:#13131f;color:#e4e4ef;font-size:14px;font-family:inherit;outline:none;box-sizing:border-box}.picker-search-input.svelte-12kipyi:focus{border-color:#818cf8}.picker-types.svelte-12kipyi{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid #2a2a3c}.picker-type-btn.svelte-12kipyi{padding:4px 12px;border:1px solid #2a2a3c;border-radius:4px;background:#13131f;color:#999;font-size:12px;font-family:inherit;cursor:pointer}.picker-type-btn.svelte-12kipyi:hover:not(:disabled){background:#1e1e38;color:#ccc}.picker-type-btn.active.svelte-12kipyi{background:#2a2a4a;color:#e4e4ef;border-color:#6366f1}.picker-type-btn.disabled.svelte-12kipyi{opacity:.4;cursor:not-allowed}.picker-secret-placeholder.svelte-12kipyi{padding:32px;text-align:center;color:#666;font-size:14px}.picker-results.svelte-12kipyi{flex:1;overflow-y:auto;min-height:0;max-height:300px}.picker-loading.svelte-12kipyi,.picker-error.svelte-12kipyi,.picker-empty.svelte-12kipyi{padding:24px;text-align:center;color:#666;font-size:13px}.picker-error.svelte-12kipyi{color:#f88}.picker-result.svelte-12kipyi{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 16px;border:none;border-bottom:1px solid #1e1e30;background:transparent;color:#e4e4ef;font-size:13px;font-family:inherit;text-align:left;cursor:pointer}.picker-result.svelte-12kipyi:last-child{border-bottom:none}.picker-result.svelte-12kipyi:hover,.picker-result.selected.svelte-12kipyi{background:#1e1e38}.picker-result-title.svelte-12kipyi{font-weight:500}.picker-result-path.svelte-12kipyi{font-size:11px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-footer.svelte-12kipyi{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid #2a2a3c}.error-banner.svelte-13wzf1z{background:#3a2222;color:#f88;padding:8px 24px;font-size:12px;border-bottom:1px solid #4a2222;flex-shrink:0;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.dismiss-btn.svelte-13wzf1z{background:none;border:none;color:#f66;cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:2px}.dismiss-btn.svelte-13wzf1z:hover{color:#f44}.capture-drop-overlay.svelte-1vln5q{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;pointer-events:none;display:flex;align-items:center;justify-content:center;background:#13131f6b;border:2px dashed #818cf8}.capture-drop-box.svelte-1vln5q{max-width:min(520px,calc(100vw - 48px));padding:14px 18px;border:1px solid #3a3a5c;border-radius:8px;background:#1a1a28;color:#e4e4ef;font-size:14px;font-weight:600;box-shadow:0 12px 32px #00000059;text-align:center}.overview.svelte-1sxmeg5.svelte-1sxmeg5{padding:24px}.node-title.svelte-1sxmeg5.svelte-1sxmeg5{font-size:24px;margin-bottom:16px;color:#e4e4ef}.meta-grid.svelte-1sxmeg5.svelte-1sxmeg5{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:24px}.meta-item.svelte-1sxmeg5.svelte-1sxmeg5{background:#1a1a28;padding:12px 16px;border-radius:8px}.meta-label.svelte-1sxmeg5.svelte-1sxmeg5{display:block;font-size:11px;color:#666;margin-bottom:4px;text-transform:uppercase}.quick-actions.svelte-1sxmeg5.svelte-1sxmeg5{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.qa-btn.svelte-1sxmeg5.svelte-1sxmeg5{padding:10px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.qa-btn.svelte-1sxmeg5.svelte-1sxmeg5:hover{background:#223}.qa-btn.svelte-1sxmeg5.svelte-1sxmeg5:disabled{opacity:.4;cursor:not-allowed}.recent-section.svelte-1sxmeg5.svelte-1sxmeg5{margin-bottom:24px}.recent-section.svelte-1sxmeg5 h3.svelte-1sxmeg5{font-size:13px;color:#666;text-transform:uppercase;margin-bottom:8px}.recent-note.svelte-1sxmeg5.svelte-1sxmeg5{padding:8px 12px;border-radius:6px;cursor:pointer;display:flex;justify-content:space-between}.recent-note.svelte-1sxmeg5.svelte-1sxmeg5:hover{background:#1a1a28}.recent-date.svelte-1sxmeg5.svelte-1sxmeg5{font-size:11px;color:#555}.recent-entry.svelte-1sxmeg5.svelte-1sxmeg5{padding:6px 0;font-size:13px;color:#888;border-bottom:1px solid #1a1a28}.notes-tab.svelte-109wv4d.svelte-109wv4d{padding:24px}.tab-toolbar.svelte-109wv4d.svelte-109wv4d{margin-bottom:16px}.create-form.svelte-109wv4d.svelte-109wv4d{background:#1a1a28;padding:16px;border-radius:8px;margin-bottom:16px}.create-form.svelte-109wv4d input.svelte-109wv4d{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit;margin-bottom:8px;outline:none}.create-form.svelte-109wv4d input.svelte-109wv4d:focus{border-color:#6366f1}.form-actions.svelte-109wv4d.svelte-109wv4d{display:flex;gap:8px}.notes-list.svelte-109wv4d.svelte-109wv4d{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.note-card.svelte-109wv4d.svelte-109wv4d{background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:16px;cursor:pointer}.note-card.svelte-109wv4d.svelte-109wv4d:hover{border-color:#3a3a5c}.note-card-title.svelte-109wv4d.svelte-109wv4d{font-size:14px;font-weight:500;margin-bottom:4px}.note-card-date.svelte-109wv4d.svelte-109wv4d{font-size:11px;color:#555}.note-card-info.svelte-109wv4d.svelte-109wv4d{flex:1;min-width:0}.note-card-actions.svelte-109wv4d.svelte-109wv4d{display:flex;gap:4px;opacity:0;transition:opacity .12s}.note-card.svelte-109wv4d:hover .note-card-actions.svelte-109wv4d{opacity:1}.note-action-btn.svelte-109wv4d.svelte-109wv4d{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#666;cursor:pointer;transition:background .12s,color .12s}.note-action-btn.svelte-109wv4d.svelte-109wv4d:hover{background:#2a2a3c;color:#ccc}.note-action-danger.svelte-109wv4d.svelte-109wv4d:hover{background:#ef444426;color:#f87171}.empty-state.svelte-109wv4d.svelte-109wv4d{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-109wv4d p.svelte-109wv4d{margin:0;font-size:14px;color:#666}.empty-state.svelte-109wv4d .hint.svelte-109wv4d{font-size:12px;color:#555;margin-top:6px}.btn.svelte-109wv4d.svelte-109wv4d{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn.svelte-109wv4d.svelte-109wv4d:hover{background:#223}.btn-primary.svelte-109wv4d.svelte-109wv4d{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-109wv4d.svelte-109wv4d:hover{background:#4f46e5}.files-tab.svelte-1ne4y1t.svelte-1ne4y1t{padding:20px}.files-tab.svelte-1ne4y1t .tab-toolbar.svelte-1ne4y1t{display:flex;gap:8px;align-items:center;margin-bottom:16px}.file-list.svelte-1ne4y1t.svelte-1ne4y1t{display:flex;flex-direction:column}.back-btn.svelte-1ne4y1t.svelte-1ne4y1t{margin-bottom:4px;display:inline-flex;align-items:center;gap:4px}.empty-state.svelte-1ne4y1t.svelte-1ne4y1t{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-1ne4y1t p.svelte-1ne4y1t{margin:0;font-size:14px;color:#666}.empty-state.svelte-1ne4y1t .hint.svelte-1ne4y1t{font-size:12px;color:#555;margin-top:6px}.empty-icon.svelte-1ne4y1t.svelte-1ne4y1t{margin-bottom:12px;color:#333}.empty-actions.svelte-1ne4y1t.svelte-1ne4y1t{display:flex;gap:8px;justify-content:center;margin-top:16px}.btn.svelte-1ne4y1t.svelte-1ne4y1t{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn.svelte-1ne4y1t.svelte-1ne4y1t:hover{background:#223}.btn.svelte-1ne4y1t.svelte-1ne4y1t:disabled{opacity:.4;cursor:not-allowed}.btn-primary.svelte-1ne4y1t.svelte-1ne4y1t{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-1ne4y1t.svelte-1ne4y1t:hover{background:#4f46e5}.btn-sm.svelte-1ne4y1t.svelte-1ne4y1t{padding:4px 10px;font-size:12px}.modal-overlay.svelte-1ne4y1t.svelte-1ne4y1t{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center}.modal-box.svelte-1ne4y1t.svelte-1ne4y1t{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;min-width:320px;max-width:560px;width:90vw}.modal-box.svelte-1ne4y1t h3.svelte-1ne4y1t{margin:0 0 16px;font-size:16px}.import-summary.svelte-1ne4y1t.svelte-1ne4y1t{margin-bottom:16px;font-size:13px}.import-summary.svelte-1ne4y1t p.svelte-1ne4y1t{margin:4px 0}.form-actions.svelte-1ne4y1t.svelte-1ne4y1t{display:flex;gap:8px;justify-content:flex-end}.svelte-5mstt.svelte-5mstt,.svelte-5mstt.svelte-5mstt:before,.svelte-5mstt.svelte-5mstt:after{box-sizing:border-box;margin:0;padding:0}.app.svelte-5mstt.svelte-5mstt{display:flex;width:100vw;height:100vh;overflow:hidden;background:#13131f;color:#e4e4ef;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.sidebar.svelte-5mstt.svelte-5mstt{width:260px;min-width:200px;height:100vh;display:flex;flex-direction:column;background:#1a1a28;border-right:1px solid #2a2a3c;flex-shrink:0;overflow:hidden}.sidebar-brand.svelte-5mstt.svelte-5mstt{padding:16px 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #2a2a3c;flex-shrink:0}.logo.svelte-5mstt.svelte-5mstt{display:block;width:20px;height:20px;flex-shrink:0}.brand-name.svelte-5mstt.svelte-5mstt{font-size:16px;font-weight:600}.sidebar-nav.svelte-5mstt.svelte-5mstt{flex:1;overflow-y:auto;padding:12px 0}.nav-group.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.nav-label.svelte-5mstt.svelte-5mstt{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px}.nav-item.svelte-5mstt.svelte-5mstt{display:block;width:100%;padding:8px 20px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:0;font-family:inherit}.nav-item.svelte-5mstt.svelte-5mstt:hover{background:#223}.nav-item.selected.svelte-5mstt.svelte-5mstt{background:#2a2a4a;color:#fff;font-weight:500}.workspace-tree-area.svelte-5mstt.svelte-5mstt{min-height:32px}.workspace-tree-area.drop-valid.svelte-5mstt.svelte-5mstt{outline:2px dashed #4ade80;outline-offset:-2px;background:#4ade800d}.nav-empty.svelte-5mstt.svelte-5mstt{padding:8px 20px;color:#555;font-size:12px}.nav-label-row.svelte-5mstt.svelte-5mstt{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666;padding:4px 20px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between}.nav-add-btn.svelte-5mstt.svelte-5mstt{background:none;border:none;color:#666;cursor:pointer;font-size:16px;padding:0 4px;font-family:inherit;line-height:1}.nav-add-btn.svelte-5mstt.svelte-5mstt:hover{color:#ccc}.context-menu-backdrop.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200}.context-menu.svelte-5mstt.svelte-5mstt{position:fixed;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;padding:4px;min-width:180px;box-shadow:0 8px 24px #0006}.context-menu-section.svelte-5mstt.svelte-5mstt{padding:6px 12px;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#666}.context-menu-item.svelte-5mstt.svelte-5mstt{display:flex;width:100%;padding:6px 12px;border:none;background:none;color:#ccc;font-size:13px;text-align:left;cursor:pointer;border-radius:4px;font-family:inherit;align-items:center;gap:6px}.context-menu-item.svelte-5mstt.svelte-5mstt:hover{background:#223;color:#fff}.context-menu-item.danger.svelte-5mstt.svelte-5mstt{color:#ff6b6b}.context-menu-item.danger.svelte-5mstt.svelte-5mstt:hover{background:#3a2222;color:#ff6b6b}.context-menu-divider.svelte-5mstt.svelte-5mstt{height:1px;background:#2a2a3c;margin:4px 0}.create-context.svelte-5mstt.svelte-5mstt{font-size:12px;color:#888;margin-bottom:12px}.sidebar-footer.svelte-5mstt.svelte-5mstt{padding:8px 12px;border-top:1px solid #2a2a3c;flex-shrink:0;display:flex;flex-direction:column;gap:4px}.sidebar-footer-row.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;justify-content:space-between}.version.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555;text-align:center}.main.svelte-5mstt.svelte-5mstt{flex:1;display:flex;flex-direction:column;height:100vh;min-width:0;overflow:hidden;background:#13131f}.header-actions.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.sidebar-settings-btn.svelte-5mstt.svelte-5mstt{background:transparent;border:none;border-radius:6px;padding:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#666;font-family:inherit;width:32px;height:32px}.sidebar-settings-btn.svelte-5mstt.svelte-5mstt:hover{background:#1e1e38;color:#a5b4fc}.sidebar-settings-btn.svelte-5mstt.svelte-5mstt:active{background:#252545;color:#818cf8}.tabs.svelte-5mstt.svelte-5mstt{display:flex;align-items:stretch;border-bottom:1px solid #2a2a3c;flex-shrink:0;padding:0 24px}.tab.svelte-5mstt.svelte-5mstt{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit}.tab.svelte-5mstt.svelte-5mstt:hover{color:#a5b4fc}.tab.active.svelte-5mstt.svelte-5mstt{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.tab-separator.svelte-5mstt.svelte-5mstt{width:1px;height:22px;margin:8px 10px 0;background:#2a2a3c;flex-shrink:0}.tab-content.svelte-5mstt.svelte-5mstt{flex:1;overflow-y:auto}.note-editor-header.svelte-5mstt.svelte-5mstt{padding:12px 24px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:12px;flex-shrink:0}.note-title.svelte-5mstt.svelte-5mstt{font-size:16px;font-weight:500}.dirty-mark.svelte-5mstt.svelte-5mstt{color:#f59e0b;font-size:10px}.note-editor-actions.svelte-5mstt.svelte-5mstt{margin-left:auto;display:flex;gap:8px}.note-rename-btn.svelte-5mstt.svelte-5mstt{opacity:0;margin-left:6px;color:#666}.note-editor-header.svelte-5mstt:hover .note-rename-btn.svelte-5mstt{opacity:1}.note-rename-btn.svelte-5mstt.svelte-5mstt:hover{color:#ccc}.note-rename-inline.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;flex:1}.note-rename-input.svelte-5mstt.svelte-5mstt{flex:1;padding:6px 10px;border:1px solid #2a2a3c;border-radius:4px;background:#13131f;color:#e4e4ef;font-size:14px;font-family:inherit;outline:none}.note-rename-input.svelte-5mstt.svelte-5mstt:focus{border-color:#818cf8}.form-group.svelte-5mstt.svelte-5mstt{margin-bottom:14px}.form-group.svelte-5mstt label.svelte-5mstt{display:block;font-size:12px;color:#888;margin-bottom:4px}.form-group.svelte-5mstt input.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;border-radius:4px;background:#13131f;color:#e4e4ef;font-size:14px;font-family:inherit;outline:none;box-sizing:border-box}.form-group.svelte-5mstt input.svelte-5mstt:focus{border-color:#818cf8}.tab-toolbar.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.worklog-tab.svelte-5mstt.svelte-5mstt{padding:24px}.worklog-toolbar.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.worklog-entry.svelte-5mstt.svelte-5mstt{padding:12px 0;border-bottom:1px solid #1a1a28}.suggestions-title.svelte-5mstt.svelte-5mstt{font-size:13px;font-weight:600;color:#a5b4fc;margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.suggestion-summary.svelte-5mstt.svelte-5mstt{font-size:14px;color:#e4e4ef}.suggestion-meta.svelte-5mstt.svelte-5mstt{font-size:12px;color:#8888a0;margin-top:2px}.suggestion-main.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;cursor:pointer;gap:10px;min-height:38px}.suggestion-card.expanded.svelte-5mstt.svelte-5mstt{border-color:#3a3a5c}.suggestion-detail.svelte-5mstt.svelte-5mstt{width:100%;padding:6px 10px 8px;border-top:1px solid #2a2a3c}.suggestion-detail-title.svelte-5mstt.svelte-5mstt{font-size:10px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;padding:4px 0}.suggestion-detail-event.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:7px;padding:2px 0;font-size:12px;color:#b0b0c0}.suggestion-event-time.svelte-5mstt.svelte-5mstt{color:#a0a0b8;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:48px}.suggestion-event-type.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:11px;background:#1a1a2e;padding:1px 6px;border-radius:3px}.suggestion-event-title.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-event-path.svelte-5mstt.svelte-5mstt{max-width:220px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-card.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;align-items:stretch;padding:0;background:#1e1e32;border-radius:6px;margin-bottom:6px;gap:0;border:1px solid transparent}.suggestion-card.svelte-5mstt.svelte-5mstt:last-child{margin-bottom:0}.suggestion-info.svelte-5mstt.svelte-5mstt{flex:1;display:flex;flex-direction:column;gap:2px}.suggestion-node.svelte-5mstt.svelte-5mstt{color:#a5b4fc;font-weight:600;font-size:13px;text-decoration:none;cursor:pointer}.suggestion-node.svelte-5mstt.svelte-5mstt:hover{text-decoration:underline}.suggestion-actions.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:6px;flex-shrink:0}.suggestion-min-input.svelte-5mstt.svelte-5mstt{width:54px;padding:3px 7px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;text-align:center}.suggestion-min-label.svelte-5mstt.svelte-5mstt{font-size:12px;color:#8888a0}.suggestion-confidence-dot.svelte-5mstt.svelte-5mstt{width:9px;height:9px;border-radius:999px;background:#77798a;box-shadow:0 0 0 3px #77798a1f;flex:0 0 auto}.suggestion-confidence-dot.low.svelte-5mstt.svelte-5mstt{background:#ef4444;box-shadow:0 0 0 3px #ef44441f}.suggestion-confidence-dot.medium.svelte-5mstt.svelte-5mstt{background:#fbbf24;box-shadow:0 0 0 3px #fbbf241f}.suggestion-confidence-dot.high.svelte-5mstt.svelte-5mstt{background:#34d399;box-shadow:0 0 0 3px #34d3991f}.inbox-screen.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.inbox-screen.drop-valid.svelte-5mstt.svelte-5mstt{outline:2px dashed #4ade80;outline-offset:-4px;background:#4ade800a}.inbox-header.svelte-5mstt.svelte-5mstt{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.inbox-header.svelte-5mstt p.svelte-5mstt{margin:0;color:#a0a0b8;font-size:13px}.inbox-capture-status.svelte-5mstt.svelte-5mstt{color:#8ee6b1;font-size:12px}.inbox-list.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:8px}.inbox-item.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28;cursor:pointer}.inbox-item.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c;background:#1e1e32}.inbox-item-main.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.inbox-item-title.svelte-5mstt.svelte-5mstt{color:#e4e4ef;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-item-meta.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:12px}.inbox-item-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:6px;flex-shrink:0;align-items:center}.inbox-icon-btn.svelte-5mstt.svelte-5mstt{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #2a2a3c;border-radius:6px;background:#13131f;color:#a0a0b8;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.inbox-icon-slot.svelte-5mstt.svelte-5mstt{width:30px;height:30px;display:inline-block;flex:0 0 30px}.inbox-icon-btn.svelte-5mstt.svelte-5mstt:hover{color:#e4e4ef;border-color:#3a3a5c;background:#222238}.inbox-icon-btn-primary.svelte-5mstt.svelte-5mstt{color:#a5b4fc;border-color:#34346a}.inbox-icon-btn-primary.svelte-5mstt.svelte-5mstt:hover{color:#fff;border-color:#6366f1;background:#272750}.inbox-icon-btn-danger.svelte-5mstt.svelte-5mstt{color:#f87171;border-color:#4a252c}.inbox-icon-btn-danger.svelte-5mstt.svelte-5mstt:hover{color:#fff;border-color:#dc2626;background:#3a1f24}.inbox-tab.svelte-5mstt.svelte-5mstt{padding:24px}.inbox-controls.svelte-5mstt.svelte-5mstt{margin-bottom:12px}.inbox-sort-row.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sort-btn.svelte-5mstt.svelte-5mstt{padding:4px 10px;border:1px solid #2a2a3c;background:#13131f;color:#888;border-radius:4px;font-size:12px;cursor:pointer;font-family:inherit}.sort-btn.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c;color:#ccc}.sort-btn.active.svelte-5mstt.svelte-5mstt{border-color:#6366f1;color:#a5b4fc;background:#6366f114}.sort-dir.svelte-5mstt.svelte-5mstt{font-size:12px;color:#8888a0;margin-left:2px}.inbox-controls-divider.svelte-5mstt.svelte-5mstt{width:1px;height:20px;background:#2a2a3c;margin:0 4px}.inbox-group.svelte-5mstt.svelte-5mstt{margin-bottom:16px}.inbox-group-header.svelte-5mstt.svelte-5mstt{font-size:12px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px;padding:8px 0 6px;margin-bottom:6px;border-bottom:1px solid #2a2a3c;display:flex;align-items:center;gap:8px}.inbox-group-count.svelte-5mstt.svelte-5mstt{font-size:10px;color:#8888a0;background:#1e1e30;padding:1px 6px;border-radius:8px}.links-tab.svelte-5mstt.svelte-5mstt{padding:24px}.links-list.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:8px}.link-card.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28}.link-card.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c;background:#1e1e32}.link-main.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,220px) auto;gap:8px 12px;align-items:baseline}.link-title.svelte-5mstt.svelte-5mstt{color:#e4e4ef;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-url.svelte-5mstt.svelte-5mstt{color:#a5b4fc;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-date.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:12px;white-space:nowrap}.link-note.svelte-5mstt.svelte-5mstt{grid-column:1 / -1;color:#8888a0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;flex-shrink:0}.link-status.svelte-5mstt.svelte-5mstt{margin-top:12px;color:#8ee6b1;font-size:12px}.trash-screen.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.trash-header.svelte-5mstt.svelte-5mstt{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.trash-header.svelte-5mstt p.svelte-5mstt{margin:0;color:#8888a0;font-size:12px}.trash-browser.svelte-5mstt.svelte-5mstt{max-width:980px}.trash-section.svelte-5mstt.svelte-5mstt{min-width:0}.trash-section.svelte-5mstt h3.svelte-5mstt{margin:0 0 10px;font-size:13px;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px}.trash-section-head.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:10px;margin-bottom:10px;min-height:36px}.trash-section-head.svelte-5mstt h3.svelte-5mstt{margin:0 0 2px}.trash-section-head.svelte-5mstt p.svelte-5mstt{margin:0;color:#8888a0;font-size:12px}.trash-row.svelte-5mstt.svelte-5mstt{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:1px solid #2a2a3c;border-radius:8px;background:#1a1a28;margin-bottom:8px}.trash-row.folder.svelte-5mstt.svelte-5mstt{background:#1b2132;border-color:#303856}.trash-row.selected.svelte-5mstt.svelte-5mstt{border-color:#6366f1;background:#20203a}.trash-row-icon.svelte-5mstt.svelte-5mstt{color:#a5b4fc;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:4px;border-radius:4px;background:transparent;border:none}.trash-row-icon.svelte-5mstt.svelte-5mstt:hover{background:#222238;color:#e4e4ef}.trash-row-main.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px;min-width:0;padding:2px 0;cursor:pointer;background:transparent;border:none;color:inherit;font:inherit;text-align:left;width:100%;border-radius:4px}.trash-row-main.svelte-5mstt.svelte-5mstt:hover{background:#ffffff08}.trash-row-main.svelte-5mstt:hover .trash-row-title.svelte-5mstt{color:#a5b4fc}.trash-row-main.svelte-5mstt.svelte-5mstt:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.trash-row-title.svelte-5mstt.svelte-5mstt{min-width:0;color:#e4e4ef;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-row-meta.svelte-5mstt.svelte-5mstt{color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trash-row-date.svelte-5mstt.svelte-5mstt{color:#666;font-size:11px}.trash-row-actions.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:6px;justify-content:flex-end}.trash-empty-line.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:13px;margin:0}.journal-screen.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.journal-tabs.svelte-5mstt.svelte-5mstt{display:flex;gap:0;border-bottom:1px solid #2a2a3c;margin-bottom:16px}.journal-tab.svelte-5mstt.svelte-5mstt{padding:10px 16px;border:none;background:none;color:#888;font-size:13px;cursor:pointer;border-bottom:2px solid transparent;font-family:inherit;position:relative}.journal-tab.svelte-5mstt.svelte-5mstt:hover{color:#a5b4fc}.journal-tab.active.svelte-5mstt.svelte-5mstt{color:#e4e4ef;border-bottom-color:#818cf8;background:#6366f11f;font-weight:600}.journal-header.svelte-5mstt.svelte-5mstt{margin-bottom:24px}.journal-summary.svelte-5mstt.svelte-5mstt{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:16px;background:#1a1a2e;border-radius:8px;border:1px solid #2a2a3c}.summary-total.svelte-5mstt.svelte-5mstt{font-size:18px;font-weight:700;color:#e4e4ef;width:100%;margin-bottom:4px}.summary-section.svelte-5mstt.svelte-5mstt{flex:1;min-width:200px}.summary-label.svelte-5mstt.svelte-5mstt{font-size:12px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.summary-row.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;font-size:13px;padding:4px 0;border-bottom:1px solid #2a2a3c}.summary-row.svelte-5mstt span.svelte-5mstt:first-child{flex:1;color:#e4e4ef}.summary-count.svelte-5mstt.svelte-5mstt{color:#8888a0}.journal-table-wrap.svelte-5mstt.svelte-5mstt{overflow-x:auto}.journal-table.svelte-5mstt.svelte-5mstt{width:100%;border-collapse:collapse;font-size:13px}.journal-table.svelte-5mstt th.svelte-5mstt{text-align:left;padding:8px 12px;border-bottom:2px solid #2a2a3c;color:#b0b0c8;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.journal-table.svelte-5mstt td.svelte-5mstt{padding:8px 12px;border-bottom:1px solid #1a1a28;color:#e4e4ef}.journal-table.svelte-5mstt tr:hover td.svelte-5mstt{background:#1e1e32}.journal-table.svelte-5mstt .link-btn.svelte-5mstt{color:#a5b4fc}.journal-path-cell.svelte-5mstt.svelte-5mstt{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a0a0b8;font-size:12px}.journal-min-cell.svelte-5mstt.svelte-5mstt{text-align:right;font-variant-numeric:tabular-nums}.journal-date-cell.svelte-5mstt.svelte-5mstt{color:#b0b0c0;white-space:nowrap}.journal-bool-cell.svelte-5mstt.svelte-5mstt{text-align:center;color:#a0a0b8}.journal-row.svelte-5mstt.svelte-5mstt{cursor:pointer}.journal-row.svelte-5mstt:hover td.svelte-5mstt{background:#1e1e32}.journal-row.expanded.svelte-5mstt td.svelte-5mstt{background:#1a1a30;border-bottom:none}.journal-summary-cell.svelte-5mstt.svelte-5mstt{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-row-detail.svelte-5mstt td.svelte-5mstt{padding:0 12px 12px;background:#16162a}.journal-detail-body.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:12px;padding:8px 0}.journal-detail-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end}.journal-detail-section.svelte-5mstt.svelte-5mstt{font-size:13px}.journal-detail-label.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;display:block;margin-bottom:4px}.journal-detail-section.svelte-5mstt p.svelte-5mstt{margin:0;color:#c0c0d0}.journal-event-row.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:#b0b0c0}.journal-event-time.svelte-5mstt.svelte-5mstt{color:#a0a0b8;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:48px}.journal-event-type.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:11px;background:#1a1a2e;padding:1px 6px;border-radius:3px}.journal-event-title.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-node-picker.svelte-5mstt input[type=text].svelte-5mstt{padding:6px 10px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:13px;font-family:inherit;width:240px}.journal-search-dropdown.svelte-5mstt.svelte-5mstt{position:absolute;top:100%;left:0;right:0;z-index:50;background:#1a1a28;border:1px solid #2a2a3c;border-radius:6px;margin-top:4px;max-height:240px;overflow-y:auto;min-width:260px}.journal-search-item.svelte-5mstt.svelte-5mstt{display:block;width:100%;padding:8px 12px;border:none;background:transparent;color:#e4e4ef;cursor:pointer;font-family:inherit;font-size:13px;text-align:left}.journal-search-item.svelte-5mstt.svelte-5mstt:hover{background:#2a2a4a}.journal-search-title.svelte-5mstt.svelte-5mstt{display:block;font-weight:500}.journal-search-path.svelte-5mstt.svelte-5mstt{display:block;font-size:11px;color:#8888a0;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journal-selected-node.svelte-5mstt.svelte-5mstt{cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#1e1e3a;border:1px solid #3a3a5c;border-radius:4px;font-size:13px;color:#a5b4fc;white-space:nowrap;font-family:inherit}.journal-selected-node.svelte-5mstt.svelte-5mstt:hover{background:#2a2a4a}.journal-node-clear.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:14px;margin-left:4px}.journal-status-msg.svelte-5mstt.svelte-5mstt{font-size:12px;color:#34d399;padding:4px 8px;background:#1a2a1e;border-radius:4px}.journal-include-chk.svelte-5mstt.svelte-5mstt{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}.link-btn.svelte-5mstt.svelte-5mstt{background:none;border:none;padding:0;color:#a5b4fc;font:inherit;cursor:pointer;text-align:left}.link-btn.svelte-5mstt.svelte-5mstt:hover{text-decoration:underline}.nav-badge.svelte-5mstt.svelte-5mstt{background:#6366f1;color:#fff;font-size:10px;font-weight:700;border-radius:10px;padding:1px 6px;margin-left:6px;line-height:1.4}.actions-tab.svelte-5mstt.svelte-5mstt{padding:24px}.action-card.svelte-5mstt.svelte-5mstt{background:#1a1a28;padding:12px 16px;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.action-info.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.action-title.svelte-5mstt.svelte-5mstt{font-weight:500}.action-type.svelte-5mstt.svelte-5mstt{font-size:11px;color:#888;background:#223;padding:2px 8px;border-radius:10px;white-space:nowrap}.action-data.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555;font-family:SF Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.action-btns.svelte-5mstt.svelte-5mstt{display:flex;gap:4px;flex-shrink:0}.action-btns.svelte-5mstt .btn-danger.svelte-5mstt{color:#ff6b6b;border-color:#4a2222;padding:4px 8px}.action-btns.svelte-5mstt .btn-danger.svelte-5mstt:hover{background:#3a2222}.empty-state.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-state.svelte-5mstt p.svelte-5mstt{margin:0;font-size:14px;color:#666}.welcome.svelte-5mstt.svelte-5mstt{padding:48px 24px;text-align:center}.welcome.svelte-5mstt h2.svelte-5mstt{font-size:32px;font-weight:300;color:#8888a4;margin-bottom:16px}.welcome.svelte-5mstt p.svelte-5mstt{color:#666;font-size:14px}.error-text.svelte-5mstt.svelte-5mstt{color:#f88}.modal-overlay.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal.svelte-5mstt.svelte-5mstt{background:#1a1a28;border:1px solid #2a2a3c;border-radius:12px;padding:24px;width:400px;max-width:90vw}.modal.svelte-5mstt h3.svelte-5mstt{font-size:18px;margin-bottom:16px}.modal.svelte-5mstt textarea.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit;min-height:60px;resize:vertical;box-sizing:border-box}.modal-worklog.svelte-5mstt.svelte-5mstt{width:460px}.form-group.svelte-5mstt.svelte-5mstt{margin-bottom:12px}.form-row.svelte-5mstt.svelte-5mstt{display:flex;gap:16px;margin-bottom:12px}.form-group.svelte-5mstt label.svelte-5mstt{display:block}.form-group.svelte-5mstt .label-text.svelte-5mstt,.form-group.svelte-5mstt .form-label.svelte-5mstt{display:block;font-size:12px;color:#666;margin-bottom:4px}.form-group.svelte-5mstt input.svelte-5mstt,.form-group.svelte-5mstt select.svelte-5mstt{width:100%;padding:8px 12px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:14px;font-family:inherit}.form-group.svelte-5mstt select.svelte-5mstt{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:32px}.form-group.svelte-5mstt input.svelte-5mstt:focus,.form-group.svelte-5mstt select.svelte-5mstt:focus{outline:none;border-color:#6366f1}.modal-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.assign-search.svelte-5mstt.svelte-5mstt{position:relative}.assign-search-results.svelte-5mstt.svelte-5mstt{position:absolute;left:0;right:0;top:100%;z-index:110;margin-top:4px;background:#1a1a28;border:1px solid #2a2a3c;border-radius:6px;max-height:220px;overflow-y:auto}.assign-search-result.svelte-5mstt.svelte-5mstt{width:100%;display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-bottom:1px solid #24243a;background:transparent;color:#e4e4ef;text-align:left;cursor:pointer;font-family:inherit}.assign-search-result.svelte-5mstt.svelte-5mstt:hover{background:#222238}.assign-search-result.svelte-5mstt span.svelte-5mstt:last-child{color:#8888a0;font-size:12px;flex-shrink:0}.assign-hint.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:11px;margin-top:4px}.assign-status.svelte-5mstt.svelte-5mstt{color:#8888a0;font-size:12px}.btn.svelte-5mstt.svelte-5mstt{padding:8px 16px;border:1px solid #2a2a3c;background:#1a1a28;color:#ccc;border-radius:6px;cursor:pointer;font-size:13px;font-family:inherit;display:inline-flex;align-items:center;gap:6px}.btn.svelte-5mstt svg,.inbox-icon-btn.svelte-5mstt svg{flex-shrink:0}.btn.svelte-5mstt.svelte-5mstt:hover{background:#223}.btn-primary.svelte-5mstt.svelte-5mstt{background:#6366f1;border-color:#6366f1;color:#fff}.btn-primary.svelte-5mstt.svelte-5mstt:hover{background:#4f46e5}.btn.svelte-5mstt.svelte-5mstt:disabled{opacity:.4;cursor:not-allowed}.btn-sm.svelte-5mstt.svelte-5mstt{padding:4px 10px;font-size:12px}.btn-danger.svelte-5mstt.svelte-5mstt{color:#ff6b6b;border-color:#4a2222}.btn-danger.svelte-5mstt.svelte-5mstt:hover{background:#3a2222}.settings-section select,.settings-section input[type=text],.settings-section input[type=url],.settings-section input[type=number],.settings-section input[type=password]{appearance:none;-webkit-appearance:none;-moz-appearance:none;width:100%;padding:.5rem .75rem;background:#13131f;border:1px solid #2a2a3e;border-radius:6px;color:#e0e0e0;font-size:.9rem;font-family:inherit;transition:border-color .15s,box-shadow .15s}.settings-section select{padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:.85rem}.settings-section select:hover,.settings-section input:hover{border-color:#3a3a5e}.settings-section select:focus,.settings-section input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.settings-section select:disabled,.settings-section input:disabled{opacity:.45;cursor:not-allowed;border-color:#2a2a3e}.settings-section select option{background:#1e1e2e;color:#e0e0e0}.summary-row.svelte-5mstt.svelte-5mstt{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px solid #2a2a3c}.rename-error.svelte-5mstt.svelte-5mstt{color:#ff6b6b;font-size:12px;margin-top:4px}.template-cards.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.template-card.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #2a2a3c;background:#13131f;color:#ccc;border-radius:8px;cursor:pointer;font-size:13px;font-family:inherit;width:100%;text-align:left}.template-card.svelte-5mstt.svelte-5mstt:hover{background:#1e1e30;border-color:#3a3a5c}.template-card.selected.svelte-5mstt.svelte-5mstt{background:#2a2a50;border-color:#6366f1;color:#e4e4ef}.template-card-text.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px;min-width:0}.template-card-title.svelte-5mstt.svelte-5mstt{font-weight:500}.template-card-desc.svelte-5mstt.svelte-5mstt{font-size:11px;color:#888}.activity-tab.svelte-5mstt.svelte-5mstt{padding:24px}.activity-events.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px}.activity-event.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:#b0b0c0;cursor:pointer}.activity-event.svelte-5mstt.svelte-5mstt:hover{background:#1a1a28;color:#e4e4ef}.activity-event-icon.svelte-5mstt.svelte-5mstt{width:18px;text-align:center;color:#6366f1;font-size:13px;flex-shrink:0}.activity-event-title.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-path.svelte-5mstt.svelte-5mstt{max-width:240px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-event-type.svelte-5mstt.svelte-5mstt{font-size:11px;color:#666;flex-shrink:0}.activity-event-target.svelte-5mstt.svelte-5mstt{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px;flex-shrink:0}.activity-event-time.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555;margin-left:8px;flex-shrink:0}.activity-feed.svelte-5mstt.svelte-5mstt{padding:24px;overflow-y:auto;flex:1}.activity-feed-events.svelte-5mstt.svelte-5mstt{display:flex;flex-direction:column;gap:2px}.activity-feed-event.svelte-5mstt.svelte-5mstt{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:8px;cursor:pointer}.activity-feed-event.svelte-5mstt.svelte-5mstt:hover{background:#1a1a28;color:#e4e4ef}.activity-feed-icon.svelte-5mstt.svelte-5mstt{width:20px;text-align:center;color:#6366f1;font-size:14px;flex-shrink:0;margin-top:1px}.activity-feed-body.svelte-5mstt.svelte-5mstt{flex:1;min-width:0}.activity-feed-title.svelte-5mstt.svelte-5mstt{font-size:14px;color:#e4e4ef}.activity-feed-meta.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;margin-top:2px}.activity-feed-type.svelte-5mstt.svelte-5mstt{font-size:11px;color:#666}.activity-feed-target.svelte-5mstt.svelte-5mstt{font-size:10px;color:#555;background:#1e1e2e;padding:1px 6px;border-radius:8px}.activity-feed-time.svelte-5mstt.svelte-5mstt{font-size:11px;color:#555}.journal-filter-section.svelte-5mstt.svelte-5mstt{margin-bottom:12px;padding:12px 16px;background:#1a1a2e;border:1px solid #2a2a3c;border-radius:8px}.journal-filter-heading.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px}.journal-filters-row.svelte-5mstt.svelte-5mstt{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-end}.journal-filters-row.svelte-5mstt label.svelte-5mstt{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#8888a0}.journal-filters-row.svelte-5mstt input[type=date].svelte-5mstt{padding:5px 8px;border:1px solid #2a2a3c;background:#13131f;color:#e4e4ef;border-radius:4px;font-size:12px;font-family:inherit}.journal-filters-row.svelte-5mstt .checkbox-label.svelte-5mstt{flex-direction:row;align-items:center;gap:6px;cursor:pointer}.journal-filters-row.svelte-5mstt .checkbox-label input.svelte-5mstt{width:auto}.journal-export-section.svelte-5mstt.svelte-5mstt{padding:8px 16px;background:#1a1a2e;border:1px solid #2a2a3c;border-radius:8px}.journal-export-heading.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}.journal-export-row.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;align-items:center}.journal-toggle-col.svelte-5mstt.svelte-5mstt{width:32px;min-width:32px;text-align:center;padding:8px 4px!important}.journal-toggle-icon.svelte-5mstt.svelte-5mstt{color:#6366f1;font-size:12px}.worklog-entry.svelte-5mstt.svelte-5mstt{padding:8px 12px;background:#1a1a28;border:1px solid #2a2a3c;border-radius:8px;margin-bottom:6px;cursor:pointer}.worklog-entry.svelte-5mstt.svelte-5mstt:hover{border-color:#3a3a5c}.worklog-entry.expanded.svelte-5mstt.svelte-5mstt{border-color:#6366f1}.worklog-entry-head.svelte-5mstt.svelte-5mstt{display:flex;align-items:center;gap:8px;font-size:13px;color:#e4e4ef}.worklog-toggle.svelte-5mstt.svelte-5mstt{color:#6366f1;font-size:12px;width:16px;text-align:center;flex-shrink:0}.worklog-entry-summary.svelte-5mstt.svelte-5mstt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worklog-entry-path.svelte-5mstt.svelte-5mstt{max-width:240px;color:#8ea0d8;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worklog-entry-mins.svelte-5mstt.svelte-5mstt{color:#b0b0c8;font-variant-numeric:tabular-nums;white-space:nowrap}.worklog-entry-date.svelte-5mstt.svelte-5mstt{color:#b0b0c0;font-size:12px;white-space:nowrap}.worklog-entry-detail.svelte-5mstt.svelte-5mstt{margin-top:8px;padding-top:8px;border-top:1px solid #2a2a3c;display:flex;flex-direction:column;gap:8px}.worklog-entry-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end}.wl-detail-section.svelte-5mstt.svelte-5mstt{font-size:13px}.wl-detail-label.svelte-5mstt.svelte-5mstt{font-size:11px;font-weight:600;color:#a5b4fc;text-transform:uppercase;letter-spacing:.3px;display:block;margin-bottom:2px}.wl-detail-section.svelte-5mstt p.svelte-5mstt{margin:0;color:#c0c0d0}.wl-tag-billable.svelte-5mstt.svelte-5mstt{font-size:10px;color:#34d399;background:#1a2a1e;padding:1px 6px;border-radius:8px;white-space:nowrap}.wl-tag-approx.svelte-5mstt.svelte-5mstt{font-size:10px;color:#fbbf24;background:#2a2a1a;padding:1px 6px;border-radius:8px;white-space:nowrap}.checkbox-label-inline.svelte-5mstt.svelte-5mstt{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#e4e4ef;cursor:pointer}.checkbox-label-inline.svelte-5mstt input.svelte-5mstt{width:auto}.note-editor-wrapper.svelte-5mstt.svelte-5mstt{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.verstak-toast.svelte-5mstt.svelte-5mstt{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#1e1e38;border:1px solid #3a3a5c;border-radius:8px;padding:12px 20px;color:#e4e4ef;font-size:13px;z-index:9999;box-shadow:0 4px 20px #0006;animation:svelte-5mstt-toast-in .2s ease-out}@keyframes svelte-5mstt-toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-overlay.svelte-5mstt.svelte-5mstt{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9998}.modal-box.svelte-5mstt.svelte-5mstt{background:#1a1a2e;border:1px solid #2a2a3c;border-radius:10px;padding:24px;width:420px;max-width:90vw;display:flex;flex-direction:column;gap:14px}.modal-box.svelte-5mstt h3.svelte-5mstt{font-size:16px;font-weight:600;color:#e4e4ef;margin:0}.modal-box.svelte-5mstt label.svelte-5mstt{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#888}.modal-box.svelte-5mstt input[type=text].svelte-5mstt{padding:8px 12px;border:1px solid #2a2a3c;border-radius:6px;background:#13131f;color:#e4e4ef;font-size:13px;font-family:inherit;outline:none}.modal-box.svelte-5mstt input[type=text].svelte-5mstt:focus{border-color:#818cf8}.modal-actions.svelte-5mstt.svelte-5mstt{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}
diff --git a/cmd/verstak-gui/frontend-dist/assets/main-CzfuqGWF.js b/cmd/verstak-gui/frontend-dist/assets/main-CzfuqGWF.js
deleted file mode 100644
index 17e905a..0000000
--- a/cmd/verstak-gui/frontend-dist/assets/main-CzfuqGWF.js
+++ /dev/null
@@ -1,87 +0,0 @@
-var i_=Object.defineProperty;var o_=(n,e,t)=>e in n?i_(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var et=(n,e,t)=>o_(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))l(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&l(i)}).observe(document,{childList:!0,subtree:!0});function t(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function l(s){if(s.ep)return;s.ep=!0;const o=t(s);fetch(s.href,o)}})();function ie(){}function r_(n,e){for(const t in e)n[t]=e[t];return n}function ad(n){return n()}function wr(){return Object.create(null)}function Te(n){n.forEach(ad)}function Pn(n){return typeof n=="function"}function ft(n,e){return n!=n?e==e:n!==e||n&&typeof n=="object"||typeof n=="function"}let Rs;function jl(n,e){return n===e?!0:(Rs||(Rs=document.createElement("a")),Rs.href=e,n===Rs.href)}function a_(n){return Object.keys(n).length===0}function c_(n,e,t,l){if(n){const s=cd(n,e,t,l);return n[0](s)}}function cd(n,e,t,l){return n[1]&&l?r_(t.ctx.slice(),n[1](l(e))):t.ctx}function u_(n,e,t,l){if(n[2]&&l){const s=n[2](l(t));if(e.dirty===void 0)return s;if(typeof s=="object"){const o=[],i=Math.max(e.dirty.length,s.length);for(let c=0;c32){const e=[],t=n.ctx.length/32;for(let l=0;ln.removeEventListener(e,t,l)}function Xs(n){return function(e){return e.preventDefault(),n.call(this,e)}}function He(n){return function(e){return e.stopPropagation(),n.call(this,e)}}function $t(n){return function(e){e.target===this&&n.call(this,e)}}function r(n,e,t){t==null?n.removeAttribute(e):n.getAttribute(e)!==t&&n.setAttribute(e,t)}function Hl(n){return n===""?null:+n}function p_(n){return Array.from(n.childNodes)}function Q(n,e){e=""+e,n.data!==e&&(n.data=e)}function Ie(n,e){n.value=e??""}function sn(n,e,t,l){t==null?n.style.removeProperty(e):n.style.setProperty(e,t,"")}function Yn(n,e,t){for(let l=0;l{const s=n.$$.callbacks[e];if(s){const o=m_(e,t,{cancelable:l});return s.slice().forEach(i=>{i.call(n,o)}),!o.defaultPrevented}return!0}}function Qi(n,e){const t=n.$$.callbacks[e.type];t&&t.slice().forEach(l=>l.call(this,e))}const zl=[],zn=[];let Fl=[];const Er=[],ud=Promise.resolve();let Hi=!1;function fd(){Hi||(Hi=!0,ud.then(dd))}function g_(){return fd(),ud}function vl(n){Fl.push(n)}const Ri=new Set;let Ml=0;function dd(){if(Ml!==0)return;const n=rs;do{try{for(;Mln.indexOf(l)===-1?e.push(l):t.push(l)),t.forEach(l=>l()),Fl=e}const Fs=new Set;let hl;function Tt(){hl={r:0,c:[],p:hl}}function St(){hl.r||Te(hl.c),hl=hl.p}function he(n,e){n&&n.i&&(Fs.delete(n),n.i(e))}function we(n,e,t,l){if(n&&n.o){if(Fs.has(n))return;Fs.add(n),hl.c.push(()=>{Fs.delete(n),l&&(t&&n.d(1),l())}),n.o(e)}else l&&l()}function ve(n){return(n==null?void 0:n.length)!==void 0?n:Array.from(n)}function pd(n,e){we(n,1,1,()=>{e.delete(n.key)})}function md(n,e,t,l,s,o,i,c,u,d,m,g){let h=n.length,_=o.length,b=h;const k={};for(;b--;)k[n[b].key]=b;const E=[],y=new Map,T=new Map,N=[];for(b=_;b--;){const R=g(s,o,b),L=t(R);let z=i.get(L);z?N.push(()=>z.p(R,e)):(z=d(L,R),z.c()),y.set(L,E[b]=z),L in k&&T.set(L,Math.abs(b-k[L]))}const A=new Set,I=new Set;function M(R){he(R,1),R.m(c,m),i.set(R.key,R),m=R.first,_--}for(;h&&_;){const R=E[_-1],L=n[h-1],z=R.key,U=L.key;R===L?(m=R.first,h--,_--):y.has(U)?!i.has(z)||A.has(z)?M(R):I.has(U)?h--:T.get(z)>T.get(U)?(I.add(z),M(R)):(A.add(U),h--):(u(L,i),h--)}for(;h--;){const R=n[h];y.has(R.key)||u(R,i)}for(;_;)M(E[_-1]);return Te(N),E}function Qe(n){n&&n.c()}function Ye(n,e,t){const{fragment:l,after_update:s}=n.$$;l&&l.m(e,t),vl(()=>{const o=n.$$.on_mount.map(ad).filter(Pn);n.$$.on_destroy?n.$$.on_destroy.push(...o):Te(o),n.$$.on_mount=[]}),s.forEach(vl)}function Xe(n,e){const t=n.$$;t.fragment!==null&&(__(t.after_update),Te(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function b_(n,e){n.$$.dirty[0]===-1&&(zl.push(n),fd(),n.$$.dirty.fill(0)),n.$$.dirty[e/31|0]|=1<{const b=_.length?_[0]:h;return d.ctx&&s(d.ctx[g],d.ctx[g]=b)&&(!d.skip_bound&&d.bound[g]&&d.bound[g](b),m&&b_(n,g)),h}):[],d.update(),m=!0,Te(d.before_update),d.fragment=l?l(d.ctx):!1,e.target){if(e.hydrate){const g=p_(e.target);d.fragment&&d.fragment.l(g),g.forEach(S)}else d.fragment&&d.fragment.c();e.intro&&he(n.$$.fragment),Ye(n,e.target,e.anchor),dd()}os(u)}class pt{constructor(){et(this,"$$");et(this,"$$set")}$destroy(){Xe(this,1),this.$destroy=ie}$on(e,t){if(!Pn(t))return ie;const l=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return l.push(t),()=>{const s=l.indexOf(t);s!==-1&&l.splice(s,1)}}$set(e){this.$$set&&!a_(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const v_="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(v_);function k_(n){let e,t;return{c(){e=oe("path"),t=oe("polyline"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function w_(n){let e,t,l,s,o;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("line"),o=oe("polyline"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","16"),r(l,"y1","13"),r(l,"x2","8"),r(l,"y2","13"),r(s,"x1","16"),r(s,"y1","17"),r(s,"x2","8"),r(s,"y2","17"),r(o,"points","10 9 9 9 8 9")},m(i,c){C(i,e,c),C(i,t,c),C(i,l,c),C(i,s,c),C(i,o,c)},d(i){i&&(S(e),S(t),S(l),S(s),S(o))}}}function y_(n){let e,t;return{c(){e=oe("polyline"),t=oe("polyline"),r(e,"points","16 18 22 12 16 6"),r(t,"points","8 6 2 12 8 18")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function E_(n){let e,t,l,s;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("rect"),r(e,"d","M21 8v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8"),r(t,"points","7 3 12 8 17 3"),r(l,"x1","3"),r(l,"y1","8"),r(l,"x2","21"),r(l,"y2","8"),r(s,"x","10"),r(s,"y","12"),r(s,"width","4"),r(s,"height","4"),r(s,"rx","1")},m(o,i){C(o,e,i),C(o,t,i),C(o,l,i),C(o,s,i)},d(o){o&&(S(e),S(t),S(l),S(s))}}}function T_(n){let e,t,l,s,o;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("line"),o=oe("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","9"),r(l,"y1","12"),r(l,"x2","15"),r(l,"y2","12"),r(s,"x1","9"),r(s,"y1","15"),r(s,"x2","13"),r(s,"y2","15"),r(o,"x1","12"),r(o,"y1","15"),r(o,"x2","12"),r(o,"y2","18")},m(i,c){C(i,e,c),C(i,t,c),C(i,l,c),C(i,s,c),C(i,o,c)},d(i){i&&(S(e),S(t),S(l),S(s),S(o))}}}function S_(n){let e,t,l,s,o,i;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("line"),o=oe("line"),i=oe("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","8"),r(l,"y1","12"),r(l,"x2","16"),r(l,"y2","12"),r(s,"x1","8"),r(s,"y1","16"),r(s,"x2","16"),r(s,"y2","16"),r(o,"x1","8"),r(o,"y1","14"),r(o,"x2","12"),r(o,"y2","14"),r(i,"x1","12"),r(i,"y1","12"),r(i,"x2","12"),r(i,"y2","18")},m(c,u){C(c,e,u),C(c,t,u),C(c,l,u),C(c,s,u),C(c,o,u),C(c,i,u)},d(c){c&&(S(e),S(t),S(l),S(s),S(o),S(i))}}}function C_(n){let e,t,l,s;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","16"),r(l,"y1","13"),r(l,"x2","8"),r(l,"y2","13"),r(s,"x1","16"),r(s,"y1","17"),r(s,"x2","8"),r(s,"y2","17")},m(o,i){C(o,e,i),C(o,t,i),C(o,l,i),C(o,s,i)},d(o){o&&(S(e),S(t),S(l),S(s))}}}function A_(n){let e,t,l,s,o;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("line"),o=oe("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","8"),r(l,"y1","12"),r(l,"x2","16"),r(l,"y2","12"),r(s,"x1","8"),r(s,"y1","16"),r(s,"x2","16"),r(s,"y2","16"),r(o,"x1","8"),r(o,"y1","14"),r(o,"x2","12"),r(o,"y2","14")},m(i,c){C(i,e,c),C(i,t,c),C(i,l,c),C(i,s,c),C(i,o,c)},d(i){i&&(S(e),S(t),S(l),S(s),S(o))}}}function N_(n){let e,t,l;return{c(){e=oe("path"),t=oe("circle"),l=oe("circle"),r(e,"d","M9 18V5l12-2v13"),r(t,"cx","6"),r(t,"cy","18"),r(t,"r","3"),r(l,"cx","18"),r(l,"cy","16"),r(l,"r","3")},m(s,o){C(s,e,o),C(s,t,o),C(s,l,o)},d(s){s&&(S(e),S(t),S(l))}}}function R_(n){let e,t;return{c(){e=oe("rect"),t=oe("polyline"),r(e,"x","2"),r(e,"y","4"),r(e,"width","20"),r(e,"height","16"),r(e,"rx","2"),r(t,"points","10 9 16 12 10 15 10 9")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function I_(n){let e,t,l;return{c(){e=oe("rect"),t=oe("circle"),l=oe("polyline"),r(e,"x","3"),r(e,"y","3"),r(e,"width","18"),r(e,"height","18"),r(e,"rx","2"),r(e,"ry","2"),r(t,"cx","8.5"),r(t,"cy","8.5"),r(t,"r","1.5"),r(l,"points","21 15 16 10 5 21")},m(s,o){C(s,e,o),C(s,t,o),C(s,l,o)},d(s){s&&(S(e),S(t),S(l))}}}function M_(n){let e;return{c(){e=oe("path"),r(e,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function L_(n){let e;function t(o,i){return o[0]==="folder"?M_:o[0]==="image"?I_:o[0]==="video"?R_:o[0]==="audio"?N_:o[0]==="pdf"?A_:o[0]==="document"?C_:o[0]==="spreadsheet"?S_:o[0]==="presentation"?T_:o[0]==="archive"?E_:o[0]==="code"?y_:o[0]==="text"?w_:k_}let l=t(n),s=l(n);return{c(){e=oe("svg"),s.c(),r(e,"width",n[1]),r(e,"height",n[1]),r(e,"viewBox","0 0 24 24"),r(e,"fill","none"),r(e,"stroke","currentColor"),r(e,"stroke-width","1.5"),r(e,"stroke-linecap","round"),r(e,"stroke-linejoin","round"),r(e,"xmlns","http://www.w3.org/2000/svg")},m(o,i){C(o,e,i),s.m(e,null)},p(o,[i]){l!==(l=t(o))&&(s.d(1),s=l(o),s&&(s.c(),s.m(e,null))),i&2&&r(e,"width",o[1]),i&2&&r(e,"height",o[1])},i:ie,o:ie,d(o){o&&S(e),s.d()}}}function O_(n,e,t){let{kind:l="generic"}=e,{size:s=20}=e;return n.$$set=o=>{"kind"in o&&t(0,l=o.kind),"size"in o&&t(1,s=o.size)},[l,s]}class gd extends pt{constructor(e){super(),dt(this,e,O_,L_,ft,{kind:0,size:1})}}const D_={"nav.today":"Сегодня","nav.inbox":"Неразобранное","nav.trash":"Корзина","nav.activity":"Активность","nav.journal":"Журнал","nav.clients":"Клиенты","nav.projects":"Проекты","nav.recipes":"Рецепты","nav.documents":"Документы","nav.archive":"Архив","nav.sections":"Разделы","nav.cases":"Дела","nav.noCases":"Нет дел","nav.sync":"Синхронизация","nav.syncSettings":"Настройки синхронизации","nav.syncNow":"Синхронизировать","nav.selectPrompt":"Выберите раздел или дело","nav.brand":"Верстак","nav.system":"Системное","nav.workspace":"Рабочее пространство","nav.noNodes":"Нет узлов","nav.openFolder":"Открыть папку","nav.createInside":"Создать внутри","nav.createNode":"Создать элемент","nav.moveToRoot":"Переместить в корень","inbox.subtitle":"Захваченные материалы, которые нужно разложить по делам","inbox.sortByDate":"по дате","inbox.sortByName":"по имени","inbox.sortByType":"по типу","inbox.sortAsc":"по возрастанию","inbox.sortDesc":"по убыванию","inbox.groupByContext":"Группировать по месту захвата","inbox.noContext":"Без места захвата","inbox.empty":"Неразобранных элементов нет","inbox.pasteClipboard":"Вставить из буфера","inbox.captured":"Добавлено","inbox.clipboardEmpty":"Буфер обмена пуст","inbox.clipboardUnavailable":"Буфер обмена недоступен","inbox.assign":"Разложить","inbox.keepHere":"Прикрепить в захваченном месте","inbox.localEmpty":"Для этого дела неразобранных материалов нет","inbox.capturedIn":"Захвачено в","inbox.suggestedTarget":"Цель","inbox.assignTitle":"Разложить материал","inbox.assignTarget":"Дело","inbox.assignSearchPlaceholder":"Найти дело","inbox.assignSearchHint":"Начните набирать название Дела","inbox.deleteTitle":"Удалить материал","inbox.deleteConfirm":"Удалить «{title}» из неразобранного?","capture.kind.text":"Текст","capture.kind.url":"Ссылка","capture.kind.file":"Файл","capture.kind.folder":"Папка","capture.kind.image":"Изображение","capture.source.clipboard":"Буфер обмена","capture.source.clipboard_button":"Кнопка буфера","capture.source.drop":"Перетаскивание","capture.source.paste":"Вставка","capture.source.browser":"Браузер","capture.source.manual":"Вручную","capture.dropOverlayNode":"Будет добавлено в Неразобранное для: {title}","capture.dropOverlayGlobal":"Будет добавлено в глобальное Неразобранное","trash.openFolder":"Открыть папку корзины","trash.empty":"Корзина пуста","trash.emptyTrash":"Очистить корзину","trash.restore":"Восстановить","trash.deletedNodes":"Удаленные элементы","tab.overview":"Обзор","tab.notes":"Заметки","tab.files":"Файлы","tab.inbox":"Неразобранное","tab.links":"Ссылки","tab.actions":"Действия","tab.worklog":"Журнал","tab.activity":"Активность","common.save":"Сохранить","common.cancel":"Отмена","common.delete":"Удалить","common.rename":"Переименовать","common.close":"Закрыть","common.create":"Создать","common.confirm":"Подтверждение","common.back":"← Назад","common.backLabel":"Назад","common.loading":"Загрузка...","common.error":"Ошибка:","common.yes":"Да","common.ok":"OK","common.copy":"Копировать","common.cut":"Вырезать","common.paste":"Вставить","common.duplicate":"Дублировать","common.run":"Запустить","common.test":"Test","common.all":"Все","common.open":"Открыть","common.no":"Нет","common.date":"Дата","common.search":"Найти","common.testAgain":"Проверить","common.connect":"Подключиться","common.disconnect":"Отключиться","common.settings":"Настройки","common.name":"Название","common.type":"Тип","common.section":"Раздел","common.created":"Создано","common.empty":"Нет","common.newName":"Новое имя","search.placeholder":"Поиск по Верстаку...","search.noResults":"Ничего не найдено","welcome.title":"Верстак","welcome.selectSection":"Выберите раздел в боковой панели.","welcome.createCase":"Или создайте новое дело кнопкой «+».","welcome.addCase":"Добавить дело","event.noteCreated":"Заметка создана","event.noteUpdated":"Заметка изменена","event.fileAdded":"Файл добавлен","event.fileDeleted":"Файл удалён","event.fileRenamed":"Файл переименован","event.fileCopied":"Файл скопирован","event.fileMoved":"Файл перемещён","event.folderAdded":"Папка добавлена","event.folderDeleted":"Папка удалена","event.folderRenamed":"Папка переименована","event.caseCreated":"Дело создано","event.caseUpdated":"Дело изменено","event.noteDeleted":"Заметка удалена","event.folderMoved":"Папка перемещена","event.nodeDeleted":"Узел удалён","event.actionCreated":"Действие создано","event.actionDone":"Действие выполнено","event.worklogAdded":"Запись времени добавлена","kind.project":"Проект","kind.client":"Клиент","kind.document":"Документ","kind.recipe":"Рецепт","kind.folder":"Папка","kind.note":"Заметка","kind.file":"Файл","kind.archive":"Архив","kind.case":"Дело","kind.link":"Ссылка","kind.action":"Действие","links.empty":"Ссылок пока нет","links.editTitle":"Редактировать ссылку","links.note":"Заметка","links.copyUrl":"Копировать URL","links.copied":"URL скопирован","links.copyUnavailable":"Не удалось скопировать URL","links.deleteTitle":"Удалить ссылку","links.deleteConfirm":"Удалить ссылку «{title}»?","action.openUrl":"Открыть URL","action.openFile":"Открыть файл","action.openFolder":"Открыть папку","action.runCommand":"Запустить команду","action.runScript":"Запустить скрипт","action.openTerminal":"Открыть терминал","action.launchApp":"Запустить приложение","action.addAction":"+ Добавить действие","action.newAction":"Новое действие","action.noActions":"Действий пока нет","action.run":"Запустить","action.dataUrl":"URL","action.dataPath":"Путь","action.dataCommand":"Команда","action.urlPlaceholder":"https://example.com","action.pathPlaceholder":"/path/to/file","action.commandPlaceholder":"команда","action.namePlaceholder":"Например: Открыть сайт","note.add":"+ Добавить заметку","note.new":"Новая заметка","note.title":"Название заметки","note.noNotes":"Нет заметок","note.createFirst":"Создайте первую заметку для этого дела.","note.placeholder":"Начните писать...","note.unsavedTitle":"Несохранённые изменения","note.unsavedMessage":"Закрыть редактор? Все несохранённые изменения будут потеряны.","note.unsavedClose":"Закрыть","note.mode.edit":"Редактор","note.mode.preview":"Просмотр","note.mode.split":"Разделённый","note.toolbar.bold":"Жирный (Ctrl+B)","note.toolbar.italic":"Курсив (Ctrl+I)","note.toolbar.heading":"Заголовок","note.toolbar.link":"Ссылка","note.toolbar.code":"Код","note.toolbar.codeBlock":"Блок кода","note.toolbar.bulletList":"Маркированный список","note.toolbar.numberedList":"Нумерованный список","note.toolbar.checkbox":"Чекбокс","note.toolbar.quote":"Цитата","note.toolbar.internalLink":"Внутренняя ссылка Verstak","note.internal.secretNotImplemented":"Сейф доступов ещё не реализован","note.internal.caseNotFound":"Дело не найдено","note.internal.noteNotFound":"Заметка не найдена","note.internal.fileNotFound":"Файл не найден","note.internal.fileFound":"Файл найден: {title}","note.rename":"Переименовать заметку","note.deleteConfirm":"Удалить заметку «{title}»?","note.renameError":"Не удалось переименовать заметку","note.internalLink.title":"Вставить внутреннюю ссылку","note.internalLink.label":"Текст ссылки","note.internalLink.url":"Адрес ссылки","note.internalLink.labelPlaceholder":"Например: Админка","note.internalLink.urlPlaceholder":"verstak://secret/sec_...","note.preview.empty":"Пустая заметка. Переключитесь в режим редактора, чтобы начать писать.","note.preview.error":"Ошибка рендеринга markdown","link.label":"Текст ссылки","link.url":"URL или verstak:// ссылка","link.urlPlaceholder":"https://... или verstak://secret/sec_...","link.insert":"Вставить","file.addFile":"+ Добавить файл","file.addFolder":"+ Добавить папку","file.newFile":"+ Новый файл","file.addFileSimple":"Добавить файл","file.addFolderSimple":"Добавить папку","file.noFiles":"В этой папке пока нет файлов","file.noFilesCase":"В этом проекте пока нет файлов","file.hint":"Добавьте файл или папку, чтобы сохранить материалы проекта.","file.root":"Файлы","file.preview":"Предпросмотр","file.openExternal":"Открыть во внешней программе","file.openFolder":"Открыть папку","file.showInExplorer":"Показать в проводнике","file.more":"Ещё","file.delete":"Удалить","file.ariaFolder":"Папка","file.ariaFile":"Файл","file.scanning":"Сканирование...","file.pickSingle":"Выберите файл","file.pickMultiple":"Выберите файлы","file.pickDirectory":"Выберите папку","file.importTitle":"Добавить в","file.importFiles":"Файлов:","file.importFolders":"Папок:","file.importSize":"Размер:","file.importCopy":"Скопировать","file.importLink":"Привязать","file.selectCaseFirst":"Сначала выберите дело для добавления файлов","worklog.title":"Журнал","worklog.whatDone":"Что сделано","worklog.minutes":"Мин","worklog.min":"мин","worklog.log":"Записать","worklog.addEntry":"Добавить запись","worklog.acceptSuggestion":"Принять предложение","worklog.editEntry":"Редактировать запись","worklog.deleteEntry":"Удалить запись","worklog.deleteConfirm":"Удалить эту запись работы? Связанные события останутся в активности, но связь с записью будет удалена.","worklog.date":"Дата","worklog.empty":"Записей работы пока нет","worklog.details":"Детали","worklog.source":"Источник","worklog.sourceSuggestion":"Из предложения","worklog.sourceSuggestionNoEvents":"Из предложения, но связанные события отсутствуют","worklog.sourceManual":"Ручная запись","worklog.sourceUnknown":"Источник неизвестен","worklog.suggestions":"Предложения на сегодня","worklog.apply":"Применить","sync.title":"Синхронизация","sync.settings":"Настройки синхронизации","sync.status":"Статус","sync.server":"Сервер","sync.device":"Устройство","sync.deviceId":"ID устройства","sync.unpushed":"Неотправлено","sync.lastSync":"Последняя синх.","sync.revoked":"Отозвано","sync.connected":"Подключено","sync.notConnected":"Не подключено","sync.disabled":"Отключена","sync.serverUrl":"URL сервера","sync.serverUrlPlaceholder":"https://example.com:47732","sync.username":"Логин","sync.usernamePlaceholder":"username","sync.password":"Пароль","sync.passwordPlaceholder":"password","sync.interval":"Автосинхронизация (мин)","sync.saveInterval":"Сохранить интервал","sync.syncNow":"Синхронизировать","sync.disconnect":"Отключиться","sync.connect":"Подключиться","sync.test":"Проверить","sync.settingsSaved":"интервал сохранён","today.title":"Сегодня","today.changedCases":"Изменён сегодня","today.timeline":"Лента за сегодня","today.empty":"Сегодня пока тихо","today.emptyHint":"Здесь появятся дела, заметки, файлы и действия, с которыми вы работали сегодня.","today.plural.case_one":"дело","today.plural.case_few":"дела","today.plural.case_many":"дел","today.plural.note_one":"заметка","today.plural.note_few":"заметки","today.plural.note_many":"заметок","today.plural.file_one":"файл","today.plural.file_few":"файла","today.plural.file_many":"файлов","today.plural.event_one":"событие","today.plural.event_few":"события","today.plural.event_many":"событий","today.feed":"Лента","today.suggestionsTab":"Предложения","today.inProgress":"В работе","today.captured":"Захвачено","today.feedEmpty":"Сегодня событий нет","today.inProgressEmpty":"Сегодня ничего не изменяли","today.capturedEmpty":"Сегодня ничего не захвачено","today.feedHint":"События за сегодня: изменения файлов, заметок, действий и другие события.","today.sortByTime":"по времени","today.sortByName":"по имени","today.sortByType":"по типу","today.sortAsc":"по возрастанию","today.sortDesc":"по убыванию","journal.title":"Журнал работы","journal.worklogTab":"Журнал работы","journal.empty":"Нет записей за выбранный период","journal.dateFrom":"От","journal.dateTo":"До","journal.filter":"Фильтр","journal.total":"Всего","journal.exportCSV":"CSV","journal.exportMarkdown":"Markdown","journal.billable":"К оплате","journal.billableYes":"К оплате","journal.billableNo":"Не к оплате","journal.billableHint":"К оплате — можно включать в счёт клиенту","journal.approx":"Тип времени","journal.approxExact":"Точное","journal.approxEstimated":"Оценочное","journal.approxHint":"Оценочное — время предложено системой или введено как примерное","journal.includeChildrenDisabledHint":"Работает только при выбранном деле/клиенте/проекте","journal.node":"Дело","journal.path":"Путь","journal.byDay":"По дням","journal.byNode":"По делам","journal.includeChildren":"Учитывать вложенные дела","journal.nodeSearch":"Поиск дела...","journal.relatedEvents":"Связанные события","journal.filterHeading":"Фильтры","journal.exportHeading":"Экспорт отчёта","journal.reset":"Сбросить","suggest.title":"Предложения на сегодня","suggest.apply":"Записать","suggest.dismiss":"Скрыть","suggest.open":"Открыть","suggest.confidence.low":"Низкая уверенность","suggest.confidence.medium":"Средняя уверенность","suggest.confidence.high":"Высокая уверенность","suggest.minutes":"мин","suggest.edit":"Изменить","suggest.noSuggestions":"Нет предложений для журнала","suggest.detectedEvents":"Что обнаружено","activity.title":"Активность","activity.empty":"Активность пока не зафиксирована","activity.perCaseEmpty":"Активность пока не зафиксирована","overview.type":"Тип","overview.section":"Раздел","overview.created":"Создано","overview.newNote":"Новая заметка","overview.addFile":"Добавить файл","overview.addAction":"Добавить действие","overview.logTime":"Записать время","overview.recentNotes":"Последние заметки","overview.recentEntries":"Последние записи","rename.title":"Переименовать","rename.emptyError":"Имя не может быть пустым","rename.invalidError":"Недопустимое имя","delete.confirmTitle":"Удаление","delete.confirmMessage":"Удалить","delete.folder":"папку","delete.file":"файл","template.optionNone":"Пустое дело","template.optional":"Шаблон (опционально)","template.none.desc":"Без шаблона, простой узел-контейнер","template.folder":"Папка","template.folder.desc":"Папка для группировки элементов внутри рабочего пространства","template.project":"Проект","template.project.desc":"Отдельный проект или задача с файлами, заметками и журналом","template.client":"Клиент","template.client.desc":"Организация или человек, для которых ведутся работы","template.document":"Документ","template.document.desc":"Документ с описанием, заметками и файлами","template.recipe":"Рецепт","template.recipe.desc":"Повторяемая процедура или инструкция","template.note":"Заметка","template.file":"Файл","template.select":"Выберите тип","mime.jpeg":"Изображение JPEG","mime.png":"Изображение PNG","mime.gif":"Изображение GIF","mime.webp":"Изображение WebP","mime.svg":"Изображение SVG","mime.bmp":"Изображение BMP","mime.tiff":"Изображение TIFF","mime.avif":"Изображение AVIF","mime.pdf":"PDF документ","mime.word":"Документ Word","mime.excel":"Таблица Excel","mime.ppt":"Презентация PowerPoint","mime.zip":"ZIP архив","mime.gzip":"GZIP архив","mime.tar":"TAR архив","mime.sevenz":"7z архив","mime.rar":"RAR архив","mime.text":"Текстовый файл","mime.html":"HTML файл","mime.css":"CSS файл","mime.js":"JavaScript файл","mime.json":"JSON файл","mime.xml":"XML файл","mime.yaml":"YAML файл","mime.binary":"Бинарный файл","mime.executable":"Исполняемый файл","mime.folder":"Папка","mime.unknown":"Неизвестно","mime.file":"Файл","error.nameEmpty":"Имя не может быть пустым","error.nameInvalid":"Недопустимое имя","error.selectCaseFirst":"Сначала выберите дело","error.vaultNotOpen":"Хранилище не открыто","delete.files":"файлов ({count})","file.namePrompt":"Введите имя файла:","file.pdfUnavailable":"Предпросмотр PDF недоступен.","file.previewUnavailable":"Предпросмотр недоступен для этого типа файлов.","case.new":"Новое дело","case.namePlaceholder":"Название дела","settings.title":"Настройки","settings.general":"Общие","settings.generalDesc":"Основные настройки интерфейса.","settings.workspace":"Рабочее пространство","settings.workspaceDesc":"Управление хранилищем данных.","settings.appearance":"Внешний вид","settings.localization":"Локализация","settings.templates":"Шаблоны","settings.plugins":"Плагины","settings.files":"Файлы","settings.activity":"Активность","settings.sync":"Синхронизация","settings.backup":"Резервные копии","settings.close":"Закрыть настройки","settings.noPlugins":"Плагины пока не установлены.","settings.openPluginsDir":"Открыть папку plugins","settings.activityStub":"Здесь будут настройки отслеживания активности.","settings.backupStub":"Здесь будут настройки резервного копирования.","settings.theme":"Тема интерфейса","settings.themeSystem":"Системная","settings.themeLight":"Светлая","settings.themeDark":"Тёмная","settings.language":"Язык интерфейса","settings.langRu":"Русский","settings.langEn":"Английский","settings.langSoon":"будет доступно позже","settings.save":"Сохранить настройки","settings.saved":"Настройки сохранены","settings.vaultPath":"Путь к рабочему пространству","settings.noVaultInfo":"Нет информации о хранилище.","settings.vaultInfo":"Информация о рабочем пространстве","settings.openVault":"Открыть папку vault","settings.changeVault":"Изменить путь","settings.checkIntegrity":"Проверить целостность","settings.templatesDesc":"Включите или выключите шаблоны создания элементов.","settings.templateEnabled":"Включён","settings.templateDisabled":"Выключен","settings.filesStub":"Здесь будут настройки файлового хранилища.","settings.syncEnabled":"Синхронизация включена","settings.syncDisabled":"Синхронизация отключена","settings.syncDesc":"Настройте подключение к серверу синхронизации.","settings.serverUrl":"URL сервера","settings.deviceName":"Имя устройства","settings.deviceId":"ID устройства","settings.lastSync":"Последняя синхронизация","settings.lastError":"Последняя ошибка","settings.pendingChanges":"Ожидающие изменения","settings.checkConnection":"Проверить подключение","settings.syncNow":"Синхронизировать сейчас","settings.reconnect":"Переподключить","settings.disconnect":"Отключить устройство","settings.resetKey":"Сбросить ключ","settings.confirmDisconnect":"Вы уверены, что хотите отключить устройство?","settings.confirmDisconnectDesc":"Синхронизация будет остановлена. Для повторного подключения потребуется логин и пароль.","settings.confirmResetKey":"Сбросить ключ синхронизации?","settings.confirmResetKeyDesc":"Текущий ключ устройства будет удалён. Потребуется переподключение.","settings.connected":"Подключено","settings.disconnected":"Не подключено","settings.notConfigured":"Не настроено","settings.error":"Ошибка","settings.revoked":"Отозвано","settings.status":"Статус","firstrun.title":"Добро пожаловать в Верстак","firstrun.desc":"Верстак хранит данные в локальном рабочем пространстве — vault.","firstrun.pathLabel":"Путь к vault","firstrun.defaultPath":"Путь по умолчанию","firstrun.browse":"Выбрать папку","firstrun.create":"Создать рабочее пространство","firstrun.quit":"Выйти","firstrun.pathExists":"Папка существует. Будет создан новый vault.","firstrun.pathHasVault":"Найден существующий vault. Будет подключён.","firstrun.pathNew":"Путь не существует. Будет создан новый vault.","firstrun.errorNoWrite":"Нет прав на запись в выбранную папку.","firstrun.creating":"Создание рабочего пространства...","firstrun.created":"Рабочее пространство создано!","recovery.title":"Рабочее пространство не найдено","recovery.expected":"Ожидался путь","recovery.choose":"Выбрать другой vault","recovery.create":"Создать новый vault","recovery.settings":"Открыть настройки","recovery.quit":"Выйти","recovery.createConfirm":"Будет создано новое пустое рабочее пространство. Старый путь в настройках будет заменён.","recovery.createConfirmTitle":"Создать новое рабочее пространство?","sync.status.connected":"Синхронизация доступна","sync.status.disconnected":"Сервер недоступен","sync.status.disabled":"Синхронизация не настроена","sync.status.syncing":"Синхронизация...","sync.status.error":"Ошибка синхронизации","sync.changes":"изменений","sync.details":"Подробнее","sync.configure":"Настроить","sync.retry":"Повторить","sync.run":"Синхронизировать","sync.running":"Синхронизация...","sync.conflictsCount":"Конфликты: {count}","sync.applyErrorsCount":"Ошибки применения: {count}","sync.pushedPulled":"Отправлено: {pushed}, получено: {pulled}","error.generic":"Произошла ошибка","error.invalidCredentials":"Неверный логин или пароль","error.accountBlocked":"Аккаунт заблокирован","error.emailNotConfirmed":"Email не подтверждён","error.tokenInvalid":"Неверный или просроченный токен","error.tokenExpired":"Срок действия токена истёк"},P_={"nav.today":"Today","nav.inbox":"Inbox","nav.trash":"Trash","nav.activity":"Activity","nav.journal":"Journal","nav.clients":"Clients","nav.projects":"Projects","nav.recipes":"Recipes","nav.documents":"Documents","nav.archive":"Archive","nav.sections":"Sections","nav.cases":"Cases","nav.noCases":"No cases","nav.sync":"Sync","nav.syncSettings":"Sync settings","nav.syncNow":"Sync now","nav.selectPrompt":"Select a section or case","nav.brand":"Verstak","nav.system":"System","nav.workspace":"Workspace","nav.noNodes":"No nodes","nav.openFolder":"Open folder","nav.createInside":"Create inside","nav.createNode":"Create element","nav.moveToRoot":"Move to root","inbox.subtitle":"Captured materials that still need to be assigned to cases","inbox.sortByDate":"by date","inbox.sortByName":"by name","inbox.sortByType":"by type","inbox.sortAsc":"ascending","inbox.sortDesc":"descending","inbox.groupByContext":"Group by capture location","inbox.noContext":"No capture location","inbox.empty":"No unprocessed items","inbox.pasteClipboard":"Paste from clipboard","inbox.captured":"Added","inbox.clipboardEmpty":"Clipboard is empty","inbox.clipboardUnavailable":"Clipboard is unavailable","inbox.assign":"Assign","inbox.keepHere":"Attach at captured location","inbox.localEmpty":"No unprocessed materials for this case","inbox.capturedIn":"Captured in","inbox.suggestedTarget":"Target","inbox.assignTitle":"Assign material","inbox.assignTarget":"Case","inbox.assignSearchPlaceholder":"Find case","inbox.assignSearchHint":"Start typing a Case name","inbox.deleteTitle":"Delete material","inbox.deleteConfirm":'Delete "{title}" from inbox?',"capture.kind.text":"Text","capture.kind.url":"Link","capture.kind.file":"File","capture.kind.folder":"Folder","capture.kind.image":"Image","capture.source.clipboard":"Clipboard","capture.source.clipboard_button":"Clipboard button","capture.source.drop":"Drop","capture.source.paste":"Paste","capture.source.browser":"Browser","capture.source.manual":"Manual","capture.dropOverlayNode":"Will be added to Inbox for: {title}","capture.dropOverlayGlobal":"Will be added to global Inbox","trash.openFolder":"Open trash folder","trash.empty":"Trash is empty","trash.emptyTrash":"Empty trash","trash.restore":"Restore","trash.deletedNodes":"Deleted items","tab.overview":"Overview","tab.notes":"Notes","tab.files":"Files","tab.inbox":"Inbox","tab.links":"Links","tab.actions":"Actions","tab.worklog":"Work Log","tab.activity":"Activity","common.save":"Save","common.cancel":"Cancel","common.delete":"Delete","common.rename":"Rename","common.close":"Close","common.create":"Create","common.confirm":"Confirm","common.back":"← Back","common.backLabel":"Back","common.loading":"Loading...","common.error":"Error:","common.yes":"Yes","common.ok":"OK","common.copy":"Copy","common.cut":"Cut","common.paste":"Paste","common.duplicate":"Duplicate","common.run":"Run","common.test":"Test","common.all":"All","common.open":"Open","common.no":"No","common.date":"Date","common.search":"Search","common.testAgain":"Check","common.connect":"Connect","common.disconnect":"Disconnect","common.settings":"Settings","common.name":"Name","common.type":"Type","common.section":"Section","common.created":"Created","common.empty":"None","common.newName":"New name","search.placeholder":"Search Verstak...","search.noResults":"No results found","welcome.title":"Verstak","welcome.selectSection":"Select a section in the sidebar.","welcome.createCase":"Or create a new case with the + button.","welcome.addCase":"Add case","event.noteCreated":"Note created","event.noteUpdated":"Note updated","event.fileAdded":"File added","event.fileDeleted":"File deleted","event.fileRenamed":"File renamed","event.fileCopied":"File copied","event.fileMoved":"File moved","event.folderAdded":"Folder added","event.folderDeleted":"Folder deleted","event.folderRenamed":"Folder renamed","event.caseCreated":"Case created","event.caseUpdated":"Case updated","event.noteDeleted":"Note deleted","event.folderMoved":"Folder moved","event.nodeDeleted":"Node deleted","event.actionCreated":"Action created","event.actionDone":"Action completed","event.worklogAdded":"Time entry added","kind.project":"Project","kind.client":"Client","kind.document":"Document","kind.recipe":"Recipe","kind.folder":"Folder","kind.note":"Note","kind.file":"File","kind.archive":"Archive","kind.case":"Case","kind.link":"Link","kind.action":"Action","links.empty":"No links yet","links.editTitle":"Edit link","links.note":"Note","links.copyUrl":"Copy URL","links.copied":"URL copied","links.copyUnavailable":"Could not copy URL","links.deleteTitle":"Delete link","links.deleteConfirm":'Delete link "{title}"?',"action.openUrl":"Open URL","action.openFile":"Open file","action.openFolder":"Open folder","action.runCommand":"Run command","action.runScript":"Run script","action.openTerminal":"Open terminal","action.launchApp":"Launch app","action.addAction":"+ Add action","action.newAction":"New action","action.noActions":"No actions yet","action.run":"Run","action.dataUrl":"URL","action.dataPath":"Path","action.dataCommand":"Command","action.urlPlaceholder":"https://example.com","action.pathPlaceholder":"/path/to/file","action.commandPlaceholder":"command","action.namePlaceholder":"Example: Open website","note.add":"+ Add note","note.new":"New note","note.title":"Note title","note.noNotes":"No notes","note.createFirst":"Create the first note for this case.","note.placeholder":"Start writing...","note.unsavedTitle":"Unsaved changes","note.unsavedMessage":"Close the editor? All unsaved changes will be lost.","note.unsavedClose":"Close","note.mode.edit":"Edit","note.mode.preview":"Preview","note.mode.split":"Split","note.toolbar.bold":"Bold (Ctrl+B)","note.toolbar.italic":"Italic (Ctrl+I)","note.toolbar.heading":"Heading","note.toolbar.link":"Link","note.toolbar.code":"Code","note.toolbar.codeBlock":"Code block","note.toolbar.bulletList":"Bullet list","note.toolbar.numberedList":"Numbered list","note.toolbar.checkbox":"Checkbox","note.toolbar.quote":"Quote","note.toolbar.internalLink":"Verstak internal link","note.internal.secretNotImplemented":"Secrets vault is not yet implemented","note.internal.caseNotImplemented":"Case navigation is not yet implemented","note.internal.noteNotImplemented":"Note navigation is not yet implemented","note.internal.fileNotImplemented":"File navigation is not yet implemented","note.rename":"Rename note","note.deleteConfirm":'Delete note "{title}"?',"note.renameError":"Failed to rename note","note.internalLink.title":"Insert internal link","note.internalLink.label":"Link text","note.internalLink.url":"Link address","note.internalLink.labelPlaceholder":"e.g. Admin panel","note.internalLink.urlPlaceholder":"verstak://secret/sec_...","note.preview.empty":"Empty note. Switch to edit mode to start writing.","note.preview.error":"Markdown render error","link.label":"Link text","link.url":"URL or verstak:// link","link.urlPlaceholder":"https://... or verstak://secret/sec_...","link.insert":"Insert","file.addFile":"+ Add file","file.addFolder":"+ Add folder","file.newFile":"+ New file","file.addFileSimple":"Add file","file.addFolderSimple":"Add folder","file.noFiles":"No files in this folder yet","file.noFilesCase":"No files in this project yet","file.hint":"Add a file or folder to store project materials.","file.root":"Files","file.preview":"Preview","file.openExternal":"Open in external program","file.openFolder":"Open folder","file.showInExplorer":"Show in explorer","file.more":"More","file.delete":"Delete","file.ariaFolder":"Folder","file.ariaFile":"File","file.scanning":"Scanning...","file.pickSingle":"Select file","file.pickMultiple":"Select files","file.pickDirectory":"Select folder","file.importTitle":"Add to","file.importFiles":"Files:","file.importFolders":"Folders:","file.importSize":"Size:","file.importCopy":"Copy","file.importLink":"Link","file.selectCaseFirst":"Select a case before adding files","worklog.title":"Work Log","worklog.whatDone":"What was done","worklog.minutes":"Min","worklog.min":"min","worklog.log":"Log","worklog.addEntry":"Add entry","worklog.acceptSuggestion":"Accept suggestion","worklog.editEntry":"Edit entry","worklog.deleteEntry":"Delete entry","worklog.deleteConfirm":"Delete this work entry? Related events stay in activity, but their link to this entry will be removed.","worklog.date":"Date","worklog.empty":"No work logged yet","worklog.details":"Details","worklog.source":"Source","worklog.sourceSuggestion":"From suggestion","worklog.sourceSuggestionNoEvents":"From suggestion, but related events missing","worklog.sourceManual":"Manual entry","worklog.sourceUnknown":"Unknown source","worklog.suggestions":"Suggestions for today","worklog.apply":"Apply","sync.title":"Sync","sync.settings":"Sync settings","sync.status":"Status","sync.server":"Server","sync.device":"Device","sync.deviceId":"Device ID","sync.unpushed":"Unpushed","sync.lastSync":"Last sync","sync.revoked":"Revoked","sync.connected":"Connected","sync.notConnected":"Not connected","sync.disabled":"Disabled","sync.serverUrl":"Server URL","sync.serverUrlPlaceholder":"https://example.com:47732","sync.username":"Username","sync.usernamePlaceholder":"username","sync.password":"Password","sync.passwordPlaceholder":"password","sync.interval":"Auto sync (min)","sync.saveInterval":"Save interval","sync.syncNow":"Sync now","sync.disconnect":"Disconnect","sync.connect":"Connect","sync.test":"Check","sync.settingsSaved":"interval saved","today.title":"Today","today.changedCases":"Changed today","today.timeline":"Timeline for today","today.empty":"Nothing happened today yet","today.emptyHint":"Cases, notes, files, and actions you worked with today will appear here.","today.plural.case_one":"case","today.plural.case_few":"cases","today.plural.case_many":"cases","today.plural.note_one":"note","today.plural.note_few":"notes","today.plural.note_many":"notes","today.plural.file_one":"file","today.plural.file_few":"files","today.plural.file_many":"files","today.plural.event_one":"event","today.plural.event_few":"events","today.plural.event_many":"events","today.feed":"Feed","today.suggestionsTab":"Suggestions","today.inProgress":"In Progress","today.captured":"Captured","today.feedEmpty":"No events today","today.inProgressEmpty":"Nothing modified today","today.capturedEmpty":"Nothing captured today","today.feedHint":"Today's events: file changes, notes, actions and other events.","today.sortByTime":"by time","today.sortByName":"by name","today.sortByType":"by type","today.sortAsc":"ascending","today.sortDesc":"descending","journal.title":"Work Log","journal.worklogTab":"Work Log","journal.empty":"No entries for the selected period","journal.dateFrom":"From","journal.dateTo":"To","journal.filter":"Filter","journal.total":"Total","journal.exportCSV":"CSV","journal.exportMarkdown":"Markdown","journal.billable":"Billable","journal.billableYes":"Billable","journal.billableNo":"Not billable","journal.billableHint":"Billable — can be included in client invoice","journal.approx":"Time type","journal.approxExact":"Exact","journal.approxEstimated":"Estimated","journal.approxHint":"Estimated — time suggested by the system or entered as approximate","journal.includeChildrenDisabledHint":"Only works when a case/client/project is selected","journal.node":"Case","journal.path":"Path","journal.byDay":"By day","journal.byNode":"By case","journal.includeChildren":"Include subtasks","journal.nodeSearch":"Search case...","journal.relatedEvents":"Related events","journal.filterHeading":"Filters","journal.exportHeading":"Export Report","journal.reset":"Reset","suggest.title":"Suggestions","suggest.apply":"Log","suggest.dismiss":"Dismiss","suggest.open":"Open","suggest.confidence.low":"Low confidence","suggest.confidence.medium":"Medium confidence","suggest.confidence.high":"High confidence","suggest.minutes":"min","suggest.edit":"Edit","suggest.noSuggestions":"No suggestions","suggest.detectedEvents":"What was detected","activity.title":"Activity","activity.empty":"No activity recorded yet","activity.perCaseEmpty":"No activity recorded yet","overview.type":"Type","overview.section":"Section","overview.created":"Created","overview.newNote":"New note","overview.addFile":"Add file","overview.addAction":"Add action","overview.logTime":"Log time","overview.recentNotes":"Recent notes","overview.recentEntries":"Recent entries","rename.title":"Rename","rename.emptyError":"Name cannot be empty","rename.invalidError":"Invalid name","delete.confirmTitle":"Delete","delete.confirmMessage":"Delete","delete.folder":"folder","delete.file":"file","template.optionNone":"Empty case","template.optional":"Template (optional)","template.none.desc":"No template, simple container node","template.folder":"Folder","template.folder.desc":"A folder to group items inside a workspace","template.project":"Project","template.project.desc":"A distinct project or task with files, notes and work log","template.client":"Client","template.client.desc":"An organization or person for whom work is performed","template.document":"Document","template.document.desc":"A document with description, notes and files","template.recipe":"Recipe","template.recipe.desc":"A repeatable procedure or instruction","template.note":"Note","template.file":"File","template.select":"Select type","mime.jpeg":"JPEG image","mime.png":"PNG image","mime.gif":"GIF image","mime.webp":"WebP image","mime.svg":"SVG image","mime.bmp":"BMP image","mime.tiff":"TIFF image","mime.avif":"AVIF image","mime.pdf":"PDF document","mime.word":"Word document","mime.excel":"Excel spreadsheet","mime.ppt":"PowerPoint presentation","mime.zip":"ZIP archive","mime.gzip":"GZIP archive","mime.tar":"TAR archive","mime.sevenz":"7z archive","mime.rar":"RAR archive","mime.text":"Text file","mime.html":"HTML file","mime.css":"CSS file","mime.js":"JavaScript file","mime.json":"JSON file","mime.xml":"XML file","mime.yaml":"YAML file","mime.binary":"Binary file","mime.executable":"Executable file","mime.folder":"Folder","mime.unknown":"Unknown","mime.file":"File","error.nameEmpty":"Name cannot be empty","error.nameInvalid":"Invalid name","error.selectCaseFirst":"Select a case first","error.vaultNotOpen":"Vault not open","delete.files":"files ({count})","file.namePrompt":"Enter file name:","file.pdfUnavailable":"PDF preview is unavailable.","file.previewUnavailable":"Preview is unavailable for this file type.","case.new":"New case","case.namePlaceholder":"Case name","settings.title":"Settings","settings.general":"General","settings.generalDesc":"Basic interface settings.","settings.workspace":"Workspace","settings.workspaceDesc":"Manage data storage.","settings.appearance":"Appearance","settings.localization":"Localization","settings.templates":"Templates","settings.plugins":"Plugins","settings.files":"Files","settings.activity":"Activity","settings.sync":"Sync","settings.backup":"Backups","settings.close":"Close settings","settings.noPlugins":"No plugins installed yet.","settings.openPluginsDir":"Open plugins folder","settings.activityStub":"Activity tracking settings will be here.","settings.backupStub":"Backup settings will be here.","settings.theme":"Interface theme","settings.themeSystem":"System","settings.themeLight":"Light","settings.themeDark":"Dark","settings.language":"Interface language","settings.langRu":"Russian","settings.langEn":"English","settings.langSoon":"coming soon","settings.save":"Save settings","settings.saved":"Settings saved","settings.vaultPath":"Workspace path","settings.noVaultInfo":"No workspace information.","settings.vaultInfo":"Workspace information","settings.openVault":"Open vault folder","settings.changeVault":"Change path","settings.checkIntegrity":"Check integrity","settings.templatesDesc":"Enable or disable templates for creating items.","settings.templateEnabled":"Enabled","settings.templateDisabled":"Disabled","settings.filesStub":"File storage settings will be here.","settings.syncEnabled":"Sync enabled","settings.syncDisabled":"Sync disabled","settings.syncDesc":"Configure connection to the sync server.","settings.serverUrl":"Server URL","settings.deviceName":"Device name","settings.deviceId":"Device ID","settings.lastSync":"Last sync","settings.lastError":"Last error","settings.pendingChanges":"Pending changes","settings.checkConnection":"Check connection","settings.syncNow":"Sync now","settings.reconnect":"Reconnect","settings.disconnect":"Disconnect device","settings.resetKey":"Reset key","settings.confirmDisconnect":"Are you sure you want to disconnect this device?","settings.confirmDisconnectDesc":"Sync will stop. Reconnecting will require username and password.","settings.confirmResetKey":"Reset sync key?","settings.confirmResetKeyDesc":"The current device key will be removed. Reconnection will be required.","settings.connected":"Connected","settings.disconnected":"Disconnected","settings.notConfigured":"Not configured","settings.error":"Error","settings.revoked":"Revoked","settings.status":"Status","firstrun.title":"Welcome to Verstak","firstrun.desc":"Verstak stores data in a local workspace called a vault.","firstrun.pathLabel":"Vault path","firstrun.defaultPath":"Default path","firstrun.browse":"Choose folder","firstrun.create":"Create workspace","firstrun.quit":"Quit","firstrun.pathExists":"The folder exists. A new vault will be created.","firstrun.pathHasVault":"Existing vault found. It will be connected.","firstrun.pathNew":"The path does not exist. A new vault will be created.","firstrun.errorNoWrite":"No write permission for the selected folder.","firstrun.creating":"Creating workspace...","firstrun.created":"Workspace created!","recovery.title":"Workspace not found","recovery.expected":"Expected path","recovery.choose":"Choose another vault","recovery.create":"Create new vault","recovery.settings":"Open settings","recovery.quit":"Quit","recovery.createConfirm":"A new empty workspace will be created. The old path in settings will be replaced.","recovery.createConfirmTitle":"Create a new workspace?","sync.status.connected":"Sync available","sync.status.disconnected":"Server unavailable","sync.status.disabled":"Sync is not configured","sync.status.syncing":"Syncing...","sync.status.error":"Sync error","sync.changes":"changes","sync.details":"Details","sync.configure":"Configure","sync.retry":"Retry","sync.run":"Sync","sync.running":"Syncing...","sync.conflictsCount":"Conflicts: {count}","sync.applyErrorsCount":"Apply errors: {count}","sync.pushedPulled":"Pushed: {pushed}, pulled: {pulled}","error.generic":"An error occurred","error.invalidCredentials":"Invalid username or password","error.accountBlocked":"Account blocked","error.emailNotConfirmed":"Email not confirmed","error.tokenInvalid":"Invalid or expired token","error.tokenExpired":"Token expired"},Tr={ru:D_,en:P_};let Sr="ru";function v(n,e){var s;const t=Tr[Sr];let l=t==null?void 0:t[n];if(l==null&&Sr!=="ru"&&(l=(s=Tr.ru)==null?void 0:s[n]),l==null&&(l=n),e!=null)for(const[o,i]of Object.entries(e))l=l.replace(`{${o}}`,String(i));return l}function Hs(n){if(n==null||n<0)return"—";if(n===0)return"0 B";const e=["B","KB","MB","GB"],t=Math.min(Math.floor(Math.log(n)/Math.log(1024)),e.length-1),l=n/Math.pow(1024,t);return(t===0?l.toFixed(0):l.toFixed(1))+" "+e[t]}const Wi={"image/jpeg":v("mime.jpeg"),"image/png":v("mime.png"),"image/gif":v("mime.gif"),"image/webp":v("mime.webp"),"image/svg+xml":v("mime.svg"),"image/bmp":v("mime.bmp"),"image/tiff":v("mime.tiff"),"image/avif":v("mime.avif"),"application/pdf":v("mime.pdf"),"application/msword":v("mime.word"),"application/vnd.openxmlformats-officedocument.wordprocessingml.document":v("mime.word"),"application/vnd.ms-excel":v("mime.excel"),"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":v("mime.excel"),"application/vnd.ms-powerpoint":v("mime.ppt"),"application/vnd.openxmlformats-officedocument.presentationml.presentation":v("mime.ppt"),"application/zip":v("mime.zip"),"application/gzip":v("mime.gzip"),"application/x-tar":v("mime.tar"),"application/x-7z-compressed":v("mime.sevenz"),"application/x-rar-compressed":v("mime.rar"),"text/plain":v("mime.text"),"text/html":v("mime.html"),"text/css":v("mime.css"),"text/javascript":v("mime.js"),"application/json":v("mime.json"),"application/xml":v("mime.xml"),"application/x-yaml":v("mime.yaml"),"application/octet-stream":v("mime.binary"),"application/x-msdos-program":v("mime.executable"),"inode/directory":v("mime.folder")};function Cr(n){return n?Wi[n]||n:v("mime.unknown")}function z_(n){if(n.type==="folder")return v("mime.folder");const e=(n.mime||"").toLowerCase();if(Wi[e])return Wi[e];const l=(n.name||"").toLowerCase().split(".").pop();return l?l.toUpperCase():v("mime.file")}function hd(n){if(n.type==="folder")return"folder";const e=(n.mime||"").toLowerCase();if(e.startsWith("image/"))return"image";if(e.startsWith("video/"))return"video";if(e.startsWith("audio/"))return"audio";if(e.startsWith("text/"))return"text";if(e.includes("pdf"))return"pdf";if(e.includes("word")||e.includes("document"))return"document";if(e.includes("spreadsheet")||e.includes("excel"))return"spreadsheet";if(e.includes("presentation")||e.includes("powerpoint"))return"presentation";if(e.includes("zip")||e.includes("tar")||e.includes("gzip")||e.includes("rar")||e.includes("7z")||e.includes("compress"))return"archive";if(e.includes("json")||e.includes("xml")||e.includes("yaml")||e.includes("javascript")||e.includes("css")||e.includes("html"))return"code";const l=(n.name||"").toLowerCase().split(".").pop();return["js","ts","jsx","tsx","vue","svelte","py","rs","go","c","cpp","h","hpp","java","kt","swift","rb","php","pl","sh","bash","zsh","fish","yml","yaml","json","xml","toml","ini","cfg","conf","md","markdown","css","scss","less","sass","sql","graphql","proto","gradle","cmake","makefile","dockerfile","env","gitignore"].includes(l)?"code":"generic"}const _d=["image/jpeg","image/png","image/gif","image/webp","image/bmp","image/tiff","image/avif","image/svg+xml"],bd=["text/plain","text/html","text/css","text/javascript","application/json","application/xml","application/x-yaml","text/x-shellscript"],vd=["txt","log","conf","ini","yaml","yml","json","xml","csv","sh","py","js","ts","css","html","md","markdown","cfg"],kd=["jpg","jpeg","png","gif","webp","bmp","tiff","tif","avif","svg"];function Ii(n){if(n.type==="folder")return!1;const e=(n.mime||"").toLowerCase(),l=(n.name||"").toLowerCase().split(".").pop();return!!(_d.includes(e)||kd.includes(l)||e.includes("pdf")||bd.includes(e)||vd.includes(l))}function wd(n){const e=(n.mime||"").toLowerCase(),l=(n.name||"").toLowerCase().split(".").pop();return _d.includes(e)||kd.includes(l)}function yd(n){const e=(n.mime||"").toLowerCase(),l=(n.name||"").toLowerCase().split(".").pop();return bd.includes(e)||vd.includes(l)&&l!=="md"&&l!=="markdown"}function Ed(n){return(n.mime||"").toLowerCase().includes("pdf")}function xi(n){const e=(n.name||"").toLowerCase();return e.endsWith(".md")||e.endsWith(".markdown")}function B_(n){return wd(n)||Ed(n)}function F_(n){return yd(n)||xi(n)}const{window:j_}=Xi;function U_(n){let e,t,l,s=Hs(n[0].size)+"",o;return{c(){e=f("span"),e.textContent="·",t=w(),l=f("span"),o=H(s),r(e,"class","meta-sep svelte-1skuef2")},m(i,c){C(i,e,c),C(i,t,c),C(i,l,c),a(l,o)},p(i,c){c[0]&1&&s!==(s=Hs(i[0].size)+"")&&Q(o,s)},d(i){i&&(S(e),S(t),S(l))}}}function H_(n){let e,t,l,s,o;return{c(){e=f("button"),e.innerHTML=' ',t=w(),l=f("button"),l.innerHTML=' ',r(e,"class","action-btn svelte-1skuef2"),r(e,"title",v("file.openFolder")),r(e,"aria-label",v("file.openFolder")),r(l,"class","action-btn svelte-1skuef2"),r(l,"title",v("file.showInExplorer")),r(l,"aria-label",v("file.showInExplorer"))},m(i,c){C(i,e,c),C(i,t,c),C(i,l,c),s||(o=[P(e,"click",He(n[30])),P(l,"click",He(n[11]))],s=!0)},p:ie,d(i){i&&(S(e),S(t),S(l)),s=!1,Te(o)}}}function W_(n){let e,t,l,s,o,i,c;return{c(){e=f("button"),e.innerHTML=' ',t=w(),l=f("button"),l.innerHTML=' ',s=w(),o=f("button"),o.innerHTML=' ',r(e,"class","action-btn svelte-1skuef2"),r(e,"title",v("file.preview")),r(e,"aria-label",v("file.preview")),r(l,"class","action-btn svelte-1skuef2"),r(l,"title",v("file.openExternal")),r(l,"aria-label",v("file.openExternal")),r(o,"class","action-btn svelte-1skuef2"),r(o,"title",v("file.showInExplorer")),r(o,"aria-label",v("file.showInExplorer"))},m(u,d){C(u,e,d),C(u,t,d),C(u,l,d),C(u,s,d),C(u,o,d),i||(c=[P(e,"click",He(n[29])),P(l,"click",He(n[10])),P(o,"click",He(n[11]))],i=!0)},p:ie,d(u){u&&(S(e),S(t),S(l),S(s),S(o)),i=!1,Te(c)}}}function Ar(n){let e,t,l,s,o,i,c,u,d=v("common.open")+"",m,g,h,_,b,k,E,y,T=v("file.openExternal")+"",N,A,I,M,R,L,z=v("file.showInExplorer")+"",U,W,F,K,V,Y,G,D,j,B=v("common.rename")+"",J,Z,X,$,te,ne,de,Ae=v("common.duplicate")+"",ze,qe,Ne,ee,re,Se,Be,ge,We,mt=v("common.cut")+"",be,it,Oe,Ce,je,Ue,Pe,Fe=v("common.copy")+"",ue,ye,x,pe,me,Re,ot,Je,rt,tt=v("common.delete")+"",Ze,Ve,nt;return{c(){e=f("div"),t=w(),l=f("div"),s=f("button"),o=oe("svg"),i=oe("path"),c=oe("circle"),u=w(),m=H(d),g=w(),h=f("button"),_=oe("svg"),b=oe("path"),k=oe("polyline"),E=oe("line"),y=w(),N=H(T),A=w(),I=f("button"),M=oe("svg"),R=oe("path"),L=w(),U=H(z),W=w(),F=f("div"),K=w(),V=f("button"),Y=oe("svg"),G=oe("path"),D=oe("path"),j=w(),J=H(B),Z=w(),X=f("button"),$=oe("svg"),te=oe("rect"),ne=oe("path"),de=w(),ze=H(Ae),qe=w(),Ne=f("button"),ee=oe("svg"),re=oe("circle"),Se=oe("circle"),Be=oe("line"),ge=oe("line"),We=w(),be=H(mt),it=w(),Oe=f("button"),Ce=oe("svg"),je=oe("rect"),Ue=oe("path"),Pe=w(),ue=H(Fe),ye=w(),x=f("div"),pe=w(),me=f("button"),Re=oe("svg"),ot=oe("polyline"),Je=oe("path"),rt=w(),Ze=H(tt),r(e,"class","menu-backdrop svelte-1skuef2"),r(e,"role","presentation"),r(i,"d","M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"),r(c,"cx","12"),r(c,"cy","12"),r(c,"r","3"),r(o,"width","14"),r(o,"height","14"),r(o,"viewBox","0 0 24 24"),r(o,"fill","none"),r(o,"stroke","currentColor"),r(o,"stroke-width","2"),r(o,"stroke-linecap","round"),r(o,"stroke-linejoin","round"),r(s,"class","menu-item svelte-1skuef2"),r(s,"role","menuitem"),r(b,"d","M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"),r(k,"points","15 3 21 3 21 9"),r(E,"x1","10"),r(E,"y1","14"),r(E,"x2","21"),r(E,"y2","3"),r(_,"width","14"),r(_,"height","14"),r(_,"viewBox","0 0 24 24"),r(_,"fill","none"),r(_,"stroke","currentColor"),r(_,"stroke-width","2"),r(_,"stroke-linecap","round"),r(_,"stroke-linejoin","round"),r(h,"class","menu-item svelte-1skuef2"),r(h,"role","menuitem"),r(R,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"),r(M,"width","14"),r(M,"height","14"),r(M,"viewBox","0 0 24 24"),r(M,"fill","none"),r(M,"stroke","currentColor"),r(M,"stroke-width","2"),r(M,"stroke-linecap","round"),r(M,"stroke-linejoin","round"),r(I,"class","menu-item svelte-1skuef2"),r(I,"role","menuitem"),r(F,"class","menu-sep svelte-1skuef2"),r(G,"d","M12 20h9"),r(D,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"),r(Y,"width","14"),r(Y,"height","14"),r(Y,"viewBox","0 0 24 24"),r(Y,"fill","none"),r(Y,"stroke","currentColor"),r(Y,"stroke-width","2"),r(Y,"stroke-linecap","round"),r(Y,"stroke-linejoin","round"),r(V,"class","menu-item svelte-1skuef2"),r(V,"role","menuitem"),r(te,"x","9"),r(te,"y","9"),r(te,"width","13"),r(te,"height","13"),r(te,"rx","2"),r(te,"ry","2"),r(ne,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),r($,"width","14"),r($,"height","14"),r($,"viewBox","0 0 24 24"),r($,"fill","none"),r($,"stroke","currentColor"),r($,"stroke-width","2"),r($,"stroke-linecap","round"),r($,"stroke-linejoin","round"),r(X,"class","menu-item svelte-1skuef2"),r(X,"role","menuitem"),r(re,"cx","6"),r(re,"cy","6"),r(re,"r","3"),r(Se,"cx","6"),r(Se,"cy","18"),r(Se,"r","3"),r(Be,"x1","20"),r(Be,"y1","4"),r(Be,"x2","8.12"),r(Be,"y2","15.88"),r(ge,"x1","8.12"),r(ge,"y1","8.12"),r(ge,"x2","20"),r(ge,"y2","20"),r(ee,"width","14"),r(ee,"height","14"),r(ee,"viewBox","0 0 24 24"),r(ee,"fill","none"),r(ee,"stroke","currentColor"),r(ee,"stroke-width","2"),r(ee,"stroke-linecap","round"),r(ee,"stroke-linejoin","round"),r(Ne,"class","menu-item svelte-1skuef2"),r(Ne,"role","menuitem"),r(je,"x","9"),r(je,"y","9"),r(je,"width","13"),r(je,"height","13"),r(je,"rx","2"),r(je,"ry","2"),r(Ue,"d","M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"),r(Ce,"width","14"),r(Ce,"height","14"),r(Ce,"viewBox","0 0 24 24"),r(Ce,"fill","none"),r(Ce,"stroke","currentColor"),r(Ce,"stroke-width","2"),r(Ce,"stroke-linecap","round"),r(Ce,"stroke-linejoin","round"),r(Oe,"class","menu-item svelte-1skuef2"),r(Oe,"role","menuitem"),r(x,"class","menu-sep svelte-1skuef2"),r(ot,"points","3 6 5 6 21 6"),r(Je,"d","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"),r(Re,"width","14"),r(Re,"height","14"),r(Re,"viewBox","0 0 24 24"),r(Re,"fill","none"),r(Re,"stroke","currentColor"),r(Re,"stroke-width","2"),r(Re,"stroke-linecap","round"),r(Re,"stroke-linejoin","round"),r(me,"class","menu-item menu-item-danger svelte-1skuef2"),r(me,"role","menuitem"),r(l,"class","menu svelte-1skuef2"),sn(l,"left",n[3]+"px"),sn(l,"top",n[4]+"px"),sn(l,"position","fixed"),r(l,"role","menu"),r(l,"tabindex","-1")},m(fe,Me){C(fe,e,Me),C(fe,t,Me),C(fe,l,Me),a(l,s),a(s,o),a(o,i),a(o,c),a(s,u),a(s,m),a(l,g),a(l,h),a(h,_),a(_,b),a(_,k),a(_,E),a(h,y),a(h,N),a(l,A),a(l,I),a(I,M),a(M,R),a(I,L),a(I,U),a(l,W),a(l,F),a(l,K),a(l,V),a(V,Y),a(Y,G),a(Y,D),a(V,j),a(V,J),a(l,Z),a(l,X),a(X,$),a($,te),a($,ne),a(X,de),a(X,ze),a(l,qe),a(l,Ne),a(Ne,ee),a(ee,re),a(ee,Se),a(ee,Be),a(ee,ge),a(Ne,We),a(Ne,be),a(l,it),a(l,Oe),a(Oe,Ce),a(Ce,je),a(Ce,Ue),a(Oe,Pe),a(Oe,ue),a(l,ye),a(l,x),a(l,pe),a(l,me),a(me,Re),a(Re,ot),a(Re,Je),a(me,rt),a(me,Ze),Ve||(nt=[P(e,"click",He(n[19])),P(s,"click",n[17]),P(h,"click",n[10]),P(I,"click",n[11]),P(V,"click",n[13]),P(X,"click",n[14]),P(Ne,"click",n[15]),P(Oe,"click",n[16]),P(me,"click",n[12]),P(l,"click",He(n[28])),P(l,"keydown",n[31])],Ve=!0)},p(fe,Me){Me[0]&8&&sn(l,"left",fe[3]+"px"),Me[0]&16&&sn(l,"top",fe[4]+"px")},d(fe){fe&&(S(e),S(t),S(l)),Ve=!1,Te(nt)}}}function G_(n){let e,t,l,s,o,i,c=n[0].name+"",u,d,m,g,h,_,b,k,E,y,T,N,A,I,M,R,L,z,U,W,F,K;l=new gd({props:{kind:n[6],size:22}});let V=!n[7]&&U_(n);function Y(B,J){return B[7]?H_:W_}let D=Y(n)(n),j=n[2]&&Ar(n);return{c(){e=f("div"),t=f("div"),Qe(l.$$.fragment),s=w(),o=f("div"),i=f("div"),u=H(c),m=w(),g=f("div"),h=f("span"),h.textContent=`${n[8]}`,_=w(),V&&V.c(),b=w(),k=f("div"),D.c(),E=w(),y=f("button"),T=oe("svg"),N=oe("circle"),A=oe("circle"),I=oe("circle"),M=w(),R=f("button"),R.innerHTML=' ',z=w(),j&&j.c(),U=ht(),r(t,"class","file-row-icon svelte-1skuef2"),r(i,"class","file-row-name svelte-1skuef2"),r(i,"title",d=n[0].name),r(g,"class","file-row-meta svelte-1skuef2"),r(o,"class","file-row-body svelte-1skuef2"),r(N,"cx","12"),r(N,"cy","5"),r(N,"r","2"),r(A,"cx","12"),r(A,"cy","12"),r(A,"r","2"),r(I,"cx","12"),r(I,"cy","19"),r(I,"r","2"),r(T,"width","16"),r(T,"height","16"),r(T,"viewBox","0 0 24 24"),r(T,"fill","currentColor"),r(y,"class","action-btn svelte-1skuef2"),r(y,"title",v("file.more")),r(y,"aria-label",v("file.more")),r(y,"aria-expanded",n[2]),r(R,"class","action-btn action-btn-danger svelte-1skuef2"),r(R,"title",v("common.delete")),r(R,"aria-label",v("common.delete")),r(k,"class","file-row-actions svelte-1skuef2"),r(e,"class","file-row svelte-1skuef2"),r(e,"role","button"),r(e,"tabindex","0"),r(e,"draggable","true"),r(e,"aria-label",L=n[7]?v("file.ariaFolder")+" "+n[0].name:v("file.ariaFile")+" "+n[0].name),ce(e,"file-row--selected",n[1])},m(B,J){C(B,e,J),a(e,t),Ye(l,t,null),a(e,s),a(e,o),a(o,i),a(i,u),a(o,m),a(o,g),a(g,h),a(g,_),V&&V.m(g,null),a(e,b),a(e,k),D.m(k,null),a(k,E),a(k,y),a(y,T),a(T,N),a(T,A),a(T,I),a(k,M),a(k,R),C(B,z,J),j&&j.m(B,J),C(B,U,J),W=!0,F||(K=[P(j_,"click",n[19]),P(y,"click",He(n[18])),P(R,"click",He(n[12])),P(e,"click",n[9]),P(e,"keydown",n[24]),P(e,"contextmenu",n[23]),P(e,"dragstart",n[20]),P(e,"dragover",n[21]),P(e,"drop",n[22])],F=!0)},p(B,J){(!W||J[0]&1)&&c!==(c=B[0].name+"")&&Q(u,c),(!W||J[0]&1&&d!==(d=B[0].name))&&r(i,"title",d),B[7]||V.p(B,J),D.p(B,J),(!W||J[0]&4)&&r(y,"aria-expanded",B[2]),(!W||J[0]&1&&L!==(L=B[7]?v("file.ariaFolder")+" "+B[0].name:v("file.ariaFile")+" "+B[0].name))&&r(e,"aria-label",L),(!W||J[0]&2)&&ce(e,"file-row--selected",B[1]),B[2]?j?j.p(B,J):(j=Ar(B),j.c(),j.m(U.parentNode,U)):j&&(j.d(1),j=null)},i(B){W||(he(l.$$.fragment,B),W=!0)},o(B){we(l.$$.fragment,B),W=!1},d(B){B&&(S(e),S(z),S(U)),Xe(l),V&&V.d(),D.d(),j&&j.d(B),F=!1,Te(K)}}}function K_(n,e,t){let{item:l}=e,{selected:s=!1}=e,{onDragStart:o}=e,{onDragOver:i}=e,{onDrop:c}=e;const u=Bn(),d=hd(l),m=l.type==="folder",g=z_(l);let h=!1,_=0,b=0,k=null;function E(J){J.ctrlKey||J.metaKey?u("toggleSelect",l.id):J.shiftKey?u("rangeSelect",l.id):k?(clearTimeout(k),k=null,m?u("navigate",l.id):u("preview",l)):k=setTimeout(()=>{k=null,u("selectOne",l.id)},250)}function y(){u("openExternal",l.fileId)}function T(){t(2,h=!1),u("showInFolder",l.nodeId||l.id)}function N(){t(2,h=!1),u("delete",{id:l.id,type:l.type})}function A(){t(2,h=!1),u("rename",{id:l.id,name:l.name})}function I(){t(2,h=!1),u("duplicate",l.id)}function M(){t(2,h=!1),u("cut",l.id)}function R(){t(2,h=!1),u("copy",l.id)}function L(){t(2,h=!1),m?u("navigate",l.id):u("preview",l)}function z(){t(2,h=!h)}function U(){t(2,h=!1)}function W(J){o&&o(J,l.id)}function F(J){i&&m&&i(J,l.id)}function K(J){c&&m&&c(J,l.id)}function V(J){J.preventDefault(),t(3,_=Math.min(J.clientX,window.innerWidth-240)),t(4,b=Math.min(J.clientY,window.innerHeight-320)),t(2,h=!0)}function Y(J){(J.key==="Enter"||J.key===" ")&&(J.preventDefault(),E(J))}function G(J){Qi.call(this,n,J)}const D=()=>u("preview",l),j=()=>u("navigate",l.id),B=J=>{J.key==="Escape"&&(J.stopPropagation(),U())};return n.$$set=J=>{"item"in J&&t(0,l=J.item),"selected"in J&&t(1,s=J.selected),"onDragStart"in J&&t(25,o=J.onDragStart),"onDragOver"in J&&t(26,i=J.onDragOver),"onDrop"in J&&t(27,c=J.onDrop)},[l,s,h,_,b,u,d,m,g,E,y,T,N,A,I,M,R,L,z,U,W,F,K,V,Y,o,i,c,G,D,j,B]}class V_ extends pt{constructor(e){super(),dt(this,e,K_,G_,ft,{item:0,selected:1,onDragStart:25,onDragOver:26,onDrop:27},null,[-1,-1])}}function Nr(n,e,t){const l=n.slice();return l[4]=e[t],l[6]=t,l}function q_(n){let e;return{c(){e=f("span"),e.textContent="/",r(e,"class","sep svelte-csi2lb")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function Z_(n){let e,t=n[4].name+"",l,s,o;function i(){return n[2](n[6])}return{c(){e=f("button"),l=H(t),r(e,"class","crumb crumb--link svelte-csi2lb")},m(c,u){C(c,e,u),a(e,l),s||(o=P(e,"click",i),s=!0)},p(c,u){n=c,u&1&&t!==(t=n[4].name+"")&&Q(l,t)},d(c){c&&S(e),s=!1,o()}}}function Y_(n){let e,t=n[4].name+"",l;return{c(){e=f("span"),l=H(t),r(e,"class","crumb crumb--current svelte-csi2lb")},m(s,o){C(s,e,o),a(e,l)},p(s,o){o&1&&t!==(t=s[4].name+"")&&Q(l,t)},d(s){s&&S(e)}}}function Rr(n){let e,t,l=n[6]>0&&q_();function s(c,u){return c[6]===c[0].length-1?Y_:Z_}let o=s(n),i=o(n);return{c(){l&&l.c(),e=w(),i.c(),t=ht()},m(c,u){l&&l.m(c,u),C(c,e,u),i.m(c,u),C(c,t,u)},p(c,u){o===(o=s(c))&&i?i.p(c,u):(i.d(1),i=o(c),i&&(i.c(),i.m(t.parentNode,t)))},d(c){c&&(S(e),S(t)),l&&l.d(c),i.d(c)}}}function X_(n){let e,t=ve(n[0]),l=[];for(let s=0;so(c);return n.$$set=c=>{"crumbs"in c&&t(0,l=c.crumbs)},[l,o,i]}class Td extends pt{constructor(e){super(),dt(this,e,J_,X_,ft,{crumbs:0})}}function Q_(n){let e,t,l,s,o,i;return{c(){e=f("div"),t=f("p"),t.textContent=`${v("file.previewUnavailable")}`,l=w(),s=f("button"),s.textContent=`${v("file.openExternal")}`,r(s,"class","btn btn-sm svelte-1cw3u0m"),r(e,"class","preview-status svelte-1cw3u0m")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),o||(i=P(s,"click",n[9]),o=!0)},p:ie,d(c){c&&S(e),o=!1,i()}}}function x_(n){let e,t;function l(i,c){return c&2&&(e=null),e==null&&(e=!!(i[1]&&i[1].startsWith("data:"))),e?sb:lb}let s=l(n,-1),o=s(n);return{c(){o.c(),t=ht()},m(i,c){o.m(i,c),C(i,t,c)},p(i,c){s===(s=l(i,c))&&o?o.p(i,c):(o.d(1),o=s(i),o&&(o.c(),o.m(t.parentNode,t)))},d(i){i&&S(t),o.d(i)}}}function $_(n){let e,t,l;return{c(){e=f("pre"),t=f("code"),l=H(n[1]),r(e,"class","preview-text svelte-1cw3u0m")},m(s,o){C(s,e,o),a(e,t),a(t,l)},p(s,o){o&2&&Q(l,s[1])},d(s){s&&S(e)}}}function eb(n){let e,t,l,s;return{c(){e=f("div"),t=f("img"),jl(t.src,l=n[1])||r(t,"src",l),r(t,"alt",s=n[0].name),r(t,"class","preview-image svelte-1cw3u0m"),r(e,"class","preview-image-container svelte-1cw3u0m")},m(o,i){C(o,e,i),a(e,t)},p(o,i){i&2&&!jl(t.src,l=o[1])&&r(t,"src",l),i&1&&s!==(s=o[0].name)&&r(t,"alt",s)},d(o){o&&S(e)}}}function tb(n){let e,t,l,s,o,i,c;return{c(){e=f("div"),t=f("p"),l=H(n[3]),s=w(),o=f("button"),o.textContent=`${v("file.openExternal")}`,r(o,"class","btn btn-sm svelte-1cw3u0m"),r(e,"class","preview-status svelte-1cw3u0m")},m(u,d){C(u,e,d),a(e,t),a(t,l),a(e,s),a(e,o),i||(c=P(o,"click",n[9]),i=!0)},p(u,d){d&8&&Q(l,u[3])},d(u){u&&S(e),i=!1,c()}}}function nb(n){let e,t;return{c(){e=f("div"),t=f("p"),t.textContent=`${v("common.loading")}`,r(e,"class","preview-status svelte-1cw3u0m")},m(l,s){C(l,e,s),a(e,t)},p:ie,d(l){l&&S(e)}}}function lb(n){let e,t,l,s,o,i;return{c(){e=f("div"),t=f("p"),t.textContent=`${v("file.pdfUnavailable")}`,l=w(),s=f("button"),s.textContent=`${v("file.openExternal")}`,r(s,"class","btn btn-sm svelte-1cw3u0m"),r(e,"class","preview-status svelte-1cw3u0m")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),o||(i=P(s,"click",n[9]),o=!0)},p:ie,d(c){c&&S(e),o=!1,i()}}}function sb(n){let e,t,l;return{c(){e=f("div"),t=f("embed"),jl(t.src,l=n[1])||r(t,"src",l),r(t,"type","application/pdf"),r(t,"class","preview-pdf svelte-1cw3u0m"),r(e,"class","preview-pdf-container svelte-1cw3u0m")},m(s,o){C(s,e,o),a(e,t)},p(s,o){o&2&&!jl(t.src,l=s[1])&&r(t,"src",l)},d(s){s&&S(e)}}}function ib(n){let e,t,l,s,o,i,c,u=n[0].name+"",d,m,g,h,_=Hs(n[0].size)+"",b,k,E=Cr(n[0].mime)+"",y,T,N,A,I,M,R,L,z,U,W;o=new gd({props:{kind:n[8],size:18}});function F(Y,G){return Y[2]?nb:Y[3]?tb:Y[6]&&Y[1]?eb:Y[5]&&Y[1]?$_:Y[4]?x_:Q_}let K=F(n),V=K(n);return{c(){e=f("div"),t=f("div"),l=f("header"),s=f("div"),Qe(o.$$.fragment),i=w(),c=f("span"),d=H(u),g=w(),h=f("div"),b=H(_),k=H(" · "),y=H(E),T=w(),N=f("div"),A=f("button"),A.innerHTML=' ',I=w(),M=f("button"),M.innerHTML=' ',R=w(),L=f("div"),V.c(),r(c,"class","preview-name svelte-1cw3u0m"),r(c,"title",m=n[0].name),r(s,"class","preview-title svelte-1cw3u0m"),r(h,"class","preview-meta svelte-1cw3u0m"),r(A,"class","action-btn svelte-1cw3u0m"),r(A,"title",v("file.openExternal")),r(A,"aria-label",v("file.openExternal")),r(M,"class","action-btn action-btn-close svelte-1cw3u0m"),r(M,"title","Close"),r(M,"aria-label","Close preview"),r(N,"class","preview-actions svelte-1cw3u0m"),r(l,"class","preview-header svelte-1cw3u0m"),r(L,"class","preview-body svelte-1cw3u0m"),r(t,"class","modal svelte-1cw3u0m"),r(e,"class","overlay svelte-1cw3u0m"),r(e,"role","presentation")},m(Y,G){C(Y,e,G),a(e,t),a(t,l),a(l,s),Ye(o,s,null),a(s,i),a(s,c),a(c,d),a(l,g),a(l,h),a(h,b),a(h,k),a(h,y),a(l,T),a(l,N),a(N,A),a(N,I),a(N,M),a(t,R),a(t,L),V.m(L,null),z=!0,U||(W=[P(A,"click",n[9]),P(M,"click",n[10]),P(e,"click",$t(n[11])),P(e,"keydown",n[12])],U=!0)},p(Y,[G]){(!z||G&1)&&u!==(u=Y[0].name+"")&&Q(d,u),(!z||G&1&&m!==(m=Y[0].name))&&r(c,"title",m),(!z||G&1)&&_!==(_=Hs(Y[0].size)+"")&&Q(b,_),(!z||G&1)&&E!==(E=Cr(Y[0].mime)+"")&&Q(y,E),K===(K=F(Y))&&V?V.p(Y,G):(V.d(1),V=K(Y),V&&(V.c(),V.m(L,null)))},i(Y){z||(he(o.$$.fragment,Y),z=!0)},o(Y){we(o.$$.fragment,Y),z=!1},d(Y){Y&&S(e),Xe(o),V.d(),U=!1,Te(W)}}}function ob(n,e,t){let l,s,o,{item:i}=e,{content:c=""}=e,{loading:u=!1}=e,{error:d=""}=e;const m=Bn(),g=hd(i);function h(y){y.key==="Escape"&&m("close")}function _(){m("openExternal",i.fileId)}fs(()=>{window.addEventListener("keydown",h)}),ds(()=>{window.removeEventListener("keydown",h)});const b=()=>m("close"),k=()=>m("close"),E=y=>{y.key==="Escape"&&(y.preventDefault(),m("close"))};return n.$$set=y=>{"item"in y&&t(0,i=y.item),"content"in y&&t(1,c=y.content),"loading"in y&&t(2,u=y.loading),"error"in y&&t(3,d=y.error)},n.$$.update=()=>{n.$$.dirty&3&&t(6,l=wd(i)&&c&&c.startsWith("data:")),n.$$.dirty&1&&t(5,s=yd(i)||xi(i)),n.$$.dirty&1&&t(4,o=Ed(i))},[i,c,u,d,o,s,l,m,g,_,b,k,E]}class rb extends pt{constructor(e){super(),dt(this,e,ob,ib,ft,{item:0,content:1,loading:2,error:3})}}function ab(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y;return{c(){e=f("div"),t=f("div"),l=f("h3"),s=H(n[0]),o=w(),i=f("p"),c=H(n[1]),u=w(),d=f("div"),m=f("button"),g=H(n[2]),_=w(),b=f("button"),k=H(n[3]),r(l,"class","svelte-1fv6yyk"),r(i,"class","message svelte-1fv6yyk"),r(m,"class",h="btn "+(n[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk"),r(b,"class","btn svelte-1fv6yyk"),r(d,"class","actions svelte-1fv6yyk"),r(t,"class","modal svelte-1fv6yyk"),r(e,"class","overlay svelte-1fv6yyk"),r(e,"role","presentation")},m(T,N){C(T,e,N),a(e,t),a(t,l),a(l,s),a(t,o),a(t,i),a(i,c),a(t,u),a(t,d),a(d,m),a(m,g),a(d,_),a(d,b),a(b,k),E||(y=[P(m,"click",n[6]),P(b,"click",n[7]),P(e,"click",$t(n[8])),P(e,"keydown",n[9])],E=!0)},p(T,[N]){N&1&&Q(s,T[0]),N&2&&Q(c,T[1]),N&4&&Q(g,T[2]),N&16&&h!==(h="btn "+(T[4]?"btn-danger":"btn-primary")+" svelte-1fv6yyk")&&r(m,"class",h),N&8&&Q(k,T[3])},i:ie,o:ie,d(T){T&&S(e),E=!1,Te(y)}}}function cb(n,e,t){let{title:l=v("common.confirm")}=e,{message:s=""}=e,{confirmText:o=v("common.delete")}=e,{cancelText:i=v("common.cancel")}=e,{danger:c=!1}=e;const u=Bn(),d=()=>u("confirm"),m=()=>u("cancel"),g=()=>u("cancel"),h=_=>{_.key==="Escape"&&(_.preventDefault(),u("cancel"))};return n.$$set=_=>{"title"in _&&t(0,l=_.title),"message"in _&&t(1,s=_.message),"confirmText"in _&&t(2,o=_.confirmText),"cancelText"in _&&t(3,i=_.cancelText),"danger"in _&&t(4,c=_.danger)},[l,s,o,i,c,u,d,m,g,h]}class ub extends pt{constructor(e){super(),dt(this,e,cb,ab,ft,{title:0,message:1,confirmText:2,cancelText:3,danger:4})}}function fb(n){let e,t,l;return{c(){e=oe("circle"),t=oe("line"),l=oe("line"),r(e,"cx","12"),r(e,"cy","12"),r(e,"r","10"),r(t,"x1","12"),r(t,"y1","16"),r(t,"x2","12"),r(t,"y2","12"),r(l,"x1","12"),r(l,"y1","8"),r(l,"x2","12.01"),r(l,"y2","8")},m(s,o){C(s,e,o),C(s,t,o),C(s,l,o)},d(s){s&&(S(e),S(t),S(l))}}}function db(n){let e,t,l,s;return{c(){e=oe("rect"),t=oe("polyline"),l=oe("line"),s=oe("line"),r(e,"x","3"),r(e,"y","5"),r(e,"width","18"),r(e,"height","14"),r(e,"rx","2"),r(t,"points","3 10 21 10"),r(l,"x1","8"),r(l,"y1","5"),r(l,"x2","8"),r(l,"y2","19"),r(s,"x1","16"),r(s,"y1","5"),r(s,"x2","16"),r(s,"y2","19")},m(o,i){C(o,e,i),C(o,t,i),C(o,l,i),C(o,s,i)},d(o){o&&(S(e),S(t),S(l),S(s))}}}function pb(n){let e,t;return{c(){e=oe("path"),t=oe("polyline"),r(e,"d","M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"),r(t,"points","13 2 13 9 20 9")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function mb(n){let e,t;return{c(){e=oe("path"),t=oe("path"),r(e,"d","M12 20h9"),r(t,"d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function gb(n){let e,t,l,s,o;return{c(){e=oe("path"),t=oe("path"),l=oe("line"),s=oe("line"),o=oe("line"),r(e,"d","M4 19.5A2.5 2.5 0 0 1 6.5 17H20"),r(t,"d","M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"),r(l,"x1","8"),r(l,"y1","7"),r(l,"x2","16"),r(l,"y2","7"),r(s,"x1","8"),r(s,"y1","11"),r(s,"x2","14"),r(s,"y2","11"),r(o,"x1","8"),r(o,"y1","15"),r(o,"x2","12"),r(o,"y2","15")},m(i,c){C(i,e,c),C(i,t,c),C(i,l,c),C(i,s,c),C(i,o,c)},d(i){i&&(S(e),S(t),S(l),S(s),S(o))}}}function hb(n){let e,t,l,s;return{c(){e=oe("path"),t=oe("polyline"),l=oe("line"),s=oe("line"),r(e,"d","M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"),r(t,"points","14 2 14 8 20 8"),r(l,"x1","16"),r(l,"y1","13"),r(l,"x2","8"),r(l,"y2","13"),r(s,"x1","16"),r(s,"y1","17"),r(s,"x2","8"),r(s,"y2","17")},m(o,i){C(o,e,i),C(o,t,i),C(o,l,i),C(o,s,i)},d(o){o&&(S(e),S(t),S(l),S(s))}}}function _b(n){let e,t;return{c(){e=oe("path"),t=oe("circle"),r(e,"d","M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"),r(t,"cx","12"),r(t,"cy","7"),r(t,"r","4")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function bb(n){let e,t,l,s;return{c(){e=oe("rect"),t=oe("rect"),l=oe("rect"),s=oe("rect"),r(e,"x","3"),r(e,"y","3"),r(e,"width","7"),r(e,"height","7"),r(e,"rx","1"),r(t,"x","14"),r(t,"y","3"),r(t,"width","7"),r(t,"height","4"),r(t,"rx","1"),r(l,"x","14"),r(l,"y","10"),r(l,"width","7"),r(l,"height","11"),r(l,"rx","1"),r(s,"x","3"),r(s,"y","14"),r(s,"width","7"),r(s,"height","7"),r(s,"rx","1")},m(o,i){C(o,e,i),C(o,t,i),C(o,l,i),C(o,s,i)},d(o){o&&(S(e),S(t),S(l),S(s))}}}function vb(n){let e;return{c(){e=oe("path"),r(e,"d","M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function kb(n){let e;function t(o,i){return o[0]==="folder"?vb:o[0]==="project"?bb:o[0]==="client"?_b:o[0]==="document"?hb:o[0]==="recipe"?gb:o[0]==="note"?mb:o[0]==="file"?pb:o[0]==="case"?db:fb}let l=t(n),s=l(n);return{c(){e=oe("svg"),s.c(),r(e,"width",n[1]),r(e,"height",n[1]),r(e,"viewBox","0 0 24 24"),r(e,"fill","none"),r(e,"stroke","currentColor"),r(e,"stroke-width","1.5"),r(e,"stroke-linecap","round"),r(e,"stroke-linejoin","round"),r(e,"xmlns","http://www.w3.org/2000/svg")},m(o,i){C(o,e,i),s.m(e,null)},p(o,[i]){l!==(l=t(o))&&(s.d(1),s=l(o),s&&(s.c(),s.m(e,null))),i&2&&r(e,"width",o[1]),i&2&&r(e,"height",o[1])},i:ie,o:ie,d(o){o&&S(e),s.d()}}}function wb(n,e,t){let{kind:l="generic"}=e,{size:s=18}=e;return n.$$set=o=>{"kind"in o&&t(0,l=o.kind),"size"in o&&t(1,s=o.size)},[l,s]}class Js extends pt{constructor(e){super(),dt(this,e,wb,kb,ft,{kind:0,size:1})}}function Ir(n,e,t){const l=n.slice();return l[44]=e[t],l}function yb(n){let e;return{c(){e=f("span"),r(e,"class","tree-toggle-placeholder svelte-zj71cl")},m(t,l){C(t,e,l)},p:ie,d(t){t&&S(e)}}}function Eb(n){let e,t,l=n[1][n[44].id]?"▾":"▸",s,o,i;function c(){return n[25](n[44])}return{c(){e=f("button"),t=f("span"),s=H(l),r(t,"class","tree-arrow"),r(e,"class","tree-toggle svelte-zj71cl")},m(u,d){C(u,e,d),a(e,t),a(t,s),o||(i=P(e,"click",He(c)),o=!0)},p(u,d){n=u,d[0]&3&&l!==(l=n[1][n[44].id]?"▾":"▸")&&Q(s,l)},d(u){u&&S(e),o=!1,i()}}}function Mr(n){let e,t;return e=new Sd({props:{nodes:n[44].children||[],expanded:n[1],selectedNodeId:n[2],level:n[3]+1,onSelect:n[4],onToggle:n[5],onContextMenu:n[6],onDrop:n[7]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p(l,s){const o={};s[0]&1&&(o.nodes=l[44].children||[]),s[0]&2&&(o.expanded=l[1]),s[0]&4&&(o.selectedNodeId=l[2]),s[0]&8&&(o.level=l[3]+1),s[0]&16&&(o.onSelect=l[4]),s[0]&32&&(o.onToggle=l[5]),s[0]&64&&(o.onContextMenu=l[6]),s[0]&128&&(o.onDrop=l[7]),e.$set(o)},i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Lr(n,e){let t,l,s,o,i,c,u,d=e[44].title+"",m,g,h=e[1][e[44].id]&&Gi(e[44]),_,b,k,E;function y(D,j){return j[0]&1&&(l=null),l==null&&(l=!!ns(D[44])),l?Eb:yb}let T=y(e,[-1,-1]),N=T(e);i=new Js({props:{kind:Or(e[44]),size:16}});function A(...D){return e[26](e[44],...D)}function I(...D){return e[27](e[44],...D)}function M(){return e[28](e[44])}function R(...D){return e[29](e[44],...D)}function L(...D){return e[30](e[44],...D)}function z(...D){return e[31](e[44],...D)}function U(...D){return e[32](e[44],...D)}function W(...D){return e[33](e[44],...D)}function F(...D){return e[34](e[44],...D)}function K(...D){return e[35](e[44],...D)}function V(...D){return e[36](e[44],...D)}function Y(...D){return e[37](e[44],...D)}let G=h&&Mr(e);return{key:n,first:null,c(){t=f("div"),N.c(),s=w(),o=f("span"),Qe(i.$$.fragment),c=w(),u=f("span"),m=H(d),g=w(),G&&G.c(),_=ht(),r(o,"class","tree-icon svelte-zj71cl"),r(o,"role","button"),r(o,"tabindex","-1"),r(u,"class","tree-label svelte-zj71cl"),r(u,"role","button"),r(u,"tabindex","-1"),r(t,"class","tree-item svelte-zj71cl"),sn(t,"padding-left",e[3]*16+4+"px"),r(t,"draggable","true"),r(t,"role","button"),r(t,"tabindex","0"),ce(t,"selected",e[2]===e[44].id),ce(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),ce(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),this.first=t},m(D,j){C(D,t,j),N.m(t,null),a(t,s),a(t,o),Ye(i,o,null),a(t,c),a(t,u),a(u,m),C(D,g,j),G&&G.m(D,j),C(D,_,j),b=!0,k||(E=[P(o,"click",A),P(o,"keydown",I),P(o,"dblclick",He(e[24])),P(u,"click",He(M)),P(u,"keydown",R),P(t,"dragstart",L),P(t,"dragover",z),P(t,"dragleave",U),P(t,"drop",W),P(t,"click",F),P(t,"keydown",K),P(t,"dblclick",V),P(t,"contextmenu",Xs(Y))],k=!0)},p(D,j){e=D,T===(T=y(e,j))&&N?N.p(e,j):(N.d(1),N=T(e),N&&(N.c(),N.m(t,s)));const B={};j[0]&1&&(B.kind=Or(e[44])),i.$set(B),(!b||j[0]&1)&&d!==(d=e[44].title+"")&&Q(m,d),(!b||j[0]&8)&&sn(t,"padding-left",e[3]*16+4+"px"),(!b||j[0]&5)&&ce(t,"selected",e[2]===e[44].id),(!b||j[0]&769)&&ce(t,"drop-valid",e[8]===e[44].id&&e[9][e[44].id]),(!b||j[0]&769)&&ce(t,"drop-invalid",e[8]===e[44].id&&!e[9][e[44].id]),j[0]&3&&(h=e[1][e[44].id]&&Gi(e[44])),h?G?(G.p(e,j),j[0]&3&&he(G,1)):(G=Mr(e),G.c(),he(G,1),G.m(_.parentNode,_)):G&&(Tt(),we(G,1,1,()=>{G=null}),St())},i(D){b||(he(i.$$.fragment,D),he(G),b=!0)},o(D){we(i.$$.fragment,D),we(G),b=!1},d(D){D&&(S(t),S(g),S(_)),N.d(),Xe(i),G&&G.d(D),k=!1,Te(E)}}}function Tb(n){let e=[],t=new Map,l,s,o,i,c=ve(n[0]);const u=d=>d[44].id;for(let d=0;d0:n.has_children===!0}function Dr(n){const e={};function t(l,s){for(const o of l)e[o.id]=s,o.children&&t(o.children,o.id)}return t(n,""),e}function Pr(n){const e=[];function t(l){for(const s of l)e.push(s),s.children&&t(s.children)}return t(n),e}function Sb(n){try{return n.dataTransfer.getData("text/plain")}catch{return""}}function Cb(n,e,t){let l,s,o,{nodes:i=[]}=e,{expanded:c={}}=e,{selectedNodeId:u=""}=e,{level:d=0}=e,{onSelect:m=void 0}=e,{onToggle:g=void 0}=e,{onContextMenu:h=void 0}=e,{onDrop:_=void 0}=e,b={},k=null,E="",y="";const T=["folder","project","client","document","recipe","case"];ds(()=>{for(const ee of Object.keys(b))clearTimeout(b[ee]);k&&clearInterval(k)});function N(ee){return T.includes(ee.type)}function A(ee,re,Se){if(!ee||!re||re===ee.id||!N(ee))return!1;let Be=ee.id;for(;Be;){if(Be===re)return!1;Be=Se[Be]||""}return!0}function I(ee,re){ee.stopPropagation(),ee.dataTransfer.effectAllowed="move",ee.dataTransfer.setData("text/plain",re.id),t(21,E=re.id)}function M(ee,re){ee.preventDefault(),ee.stopPropagation(),ee.dataTransfer.dropEffect="move",y!==re.id&&t(8,y=re.id),ns(re)&&!c[re.id]&&!b[re.id]&&(b[re.id]=setTimeout(()=>{g&&g(re.id),delete b[re.id]},600));const Se=ee.currentTarget.closest(".workspace-tree-area");if(Se){const Be=Se.getBoundingClientRect(),ge=30;ee.clientY-Be.top{Se.scrollTop-=10},50)):Be.bottom-ee.clientY{Se.scrollTop+=10},50)):k&&(clearInterval(k),k=null)}}function R(ee,re){const Se=ee.relatedTarget;Se&&ee.currentTarget.contains(Se)||(y===re.id&&t(8,y=""),b[re.id]&&(clearTimeout(b[re.id]),delete b[re.id]),k&&(clearInterval(k),k=null))}function L(ee,re){ee.preventDefault(),ee.stopPropagation(),b[re.id]&&(clearTimeout(b[re.id]),delete b[re.id]),k&&(clearInterval(k),k=null);const Se=Pr(i),Be=Dr(Se),ge=Sb(ee);if(!A(re,ge,Be)){t(8,y=""),t(21,E="");return}_&&_(ge,re.id),t(8,y=""),t(21,E="")}function z(){t(8,y=""),t(21,E="");for(const ee of Object.keys(b))clearTimeout(b[ee]),delete b[ee];k&&(clearInterval(k),k=null)}function U(ee,re){ee.target.closest(".tree-toggle")||ee.target.closest(".tree-icon")||m&&m(re)}function W(ee,re){ns(re)&&g&&g(re.id)}function F(ee,re){(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),m&&m(re))}function K(ee,re){ee.stopPropagation(),ns(re)&&g&&g(re.id)}function V(ee,re){(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),ee.stopPropagation(),ns(re)&&g&&g(re.id))}function Y(ee,re){(ee.key==="Enter"||ee.key===" ")&&(ee.preventDefault(),m&&m(re))}function G(ee,re,Se){const Be={};function ge(We){for(const mt of We)Be[mt.id]=A(mt,re,Se),mt.children&&ge(mt.children)}return ge(ee),Be}function D(ee){Qi.call(this,n,ee)}const j=ee=>g&&g(ee.id),B=(ee,re)=>K(re,ee),J=(ee,re)=>V(re,ee),Z=ee=>m&&m(ee),X=(ee,re)=>Y(re,ee),$=(ee,re)=>I(re,ee),te=(ee,re)=>M(re,ee),ne=(ee,re)=>R(re,ee),de=(ee,re)=>L(re,ee),Ae=(ee,re)=>U(re,ee),ze=(ee,re)=>F(re,ee),qe=(ee,re)=>W(re,ee),Ne=(ee,re)=>h&&h(re,ee);return n.$$set=ee=>{"nodes"in ee&&t(0,i=ee.nodes),"expanded"in ee&&t(1,c=ee.expanded),"selectedNodeId"in ee&&t(2,u=ee.selectedNodeId),"level"in ee&&t(3,d=ee.level),"onSelect"in ee&&t(4,m=ee.onSelect),"onToggle"in ee&&t(5,g=ee.onToggle),"onContextMenu"in ee&&t(6,h=ee.onContextMenu),"onDrop"in ee&&t(7,_=ee.onDrop)},n.$$.update=()=>{n.$$.dirty[0]&1&&t(23,l=Pr(i)),n.$$.dirty[0]&8388608&&t(22,s=Dr(l)),n.$$.dirty[0]&14680064&&t(9,o=G(l,E,s))},[i,c,u,d,m,g,h,_,y,o,I,M,R,L,z,U,W,F,K,V,Y,E,s,l,D,j,B,J,Z,X,$,te,ne,de,Ae,ze,qe,Ne]}class Sd extends pt{constructor(e){super(),dt(this,e,Cb,Tb,ft,{nodes:0,expanded:1,selectedNodeId:2,level:3,onSelect:4,onToggle:5,onContextMenu:6,onDrop:7},null,[-1,-1])}}function zr(n){let e,t;return{c(){e=f("div"),t=H(n[4]),r(e,"class","path-info svelte-a9f1pd")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&16&&Q(t,l[4])},d(l){l&&S(e)}}}function Br(n){let e,t;return{c(){e=f("div"),t=H(n[3]),r(e,"class","error-msg svelte-a9f1pd")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&8&&Q(t,l[3])},d(l){l&&S(e)}}}function Ab(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y,T=v("firstrun.browse")+"",N,A,I,M,R,L,z=(n[2]?v("firstrun.creating"):v("firstrun.create"))+"",U,W,F,K,V,Y,G=n[4]&&zr(n),D=n[3]&&Br(n);return{c(){e=f("div"),t=f("div"),l=f("img"),o=w(),i=f("h1"),i.textContent=`${v("firstrun.title")}`,c=w(),u=f("p"),u.textContent=`${v("firstrun.desc")}`,d=w(),m=f("div"),g=f("label"),g.textContent=`${v("firstrun.pathLabel")}`,h=w(),_=f("div"),b=f("input"),E=w(),y=f("button"),N=H(T),A=w(),G&&G.c(),I=w(),D&&D.c(),M=w(),R=f("div"),L=f("button"),U=H(z),F=w(),K=f("button"),K.textContent=`${v("firstrun.quit")}`,r(l,"class","first-run-logo svelte-a9f1pd"),jl(l.src,s="/assets/app-icons/icon_64x64.png")||r(l,"src",s),r(l,"width","64"),r(l,"height","64"),r(l,"alt",""),r(i,"class","svelte-a9f1pd"),r(u,"class","first-run-desc svelte-a9f1pd"),r(g,"class","form-label svelte-a9f1pd"),r(g,"for","vault-path"),r(b,"id","vault-path"),r(b,"type","text"),r(b,"placeholder",k=n[1]||v("firstrun.defaultPath")),b.disabled=n[2],r(b,"class","svelte-a9f1pd"),r(y,"class","btn"),y.disabled=n[2],r(_,"class","input-row svelte-a9f1pd"),r(m,"class","form-group svelte-a9f1pd"),r(L,"class","btn btn-primary btn-lg svelte-a9f1pd"),L.disabled=W=!n[0].trim()||n[2],r(K,"class","btn btn-lg svelte-a9f1pd"),r(R,"class","first-run-actions svelte-a9f1pd"),r(t,"class","first-run-card svelte-a9f1pd"),r(e,"class","first-run-screen svelte-a9f1pd")},m(j,B){C(j,e,B),a(e,t),a(t,l),a(t,o),a(t,i),a(t,c),a(t,u),a(t,d),a(t,m),a(m,g),a(m,h),a(m,_),a(_,b),Ie(b,n[0]),a(_,E),a(_,y),a(y,N),a(t,A),G&&G.m(t,null),a(t,I),D&&D.m(t,null),a(t,M),a(t,R),a(R,L),a(L,U),a(R,F),a(R,K),V||(Y=[P(b,"input",n[12]),P(b,"input",n[6]),P(b,"keydown",n[9]),P(y,"click",n[5]),P(L,"click",n[7]),P(K,"click",n[8])],V=!0)},p(j,[B]){B&2&&k!==(k=j[1]||v("firstrun.defaultPath"))&&r(b,"placeholder",k),B&4&&(b.disabled=j[2]),B&1&&b.value!==j[0]&&Ie(b,j[0]),B&4&&(y.disabled=j[2]),j[4]?G?G.p(j,B):(G=zr(j),G.c(),G.m(t,I)):G&&(G.d(1),G=null),j[3]?D?D.p(j,B):(D=Br(j),D.c(),D.m(t,M)):D&&(D.d(1),D=null),B&4&&z!==(z=(j[2]?v("firstrun.creating"):v("firstrun.create"))+"")&&Q(U,z),B&5&&W!==(W=!j[0].trim()||j[2])&&(L.disabled=W)},i:ie,o:ie,d(j){j&&S(e),G&&G.d(),D&&D.d(),V=!1,Te(Y)}}}function Is(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function Nb(n,e,t){let{onComplete:l=null}=e,{onQuit:s=null}=e,o="",i="",c=!1,u="",d="",m=null;async function g(){try{const T=await Is("GetDefaultVaultPath");t(1,i=T||""),t(0,o=i||""),o&&await _()}catch{t(1,i="")}}g();async function h(){try{const T=await Is("PickDirectory");T&&(t(0,o=T),await _())}catch(T){t(3,u=String(T))}}async function _(){if(!o||!o.trim()){t(4,d=""),m=null;return}try{m=await Is("CheckVaultPath",o.trim()),m&&t(4,d=m.description)}catch{t(4,d=""),m=null}}async function b(){if(!(!o||!o.trim())){if(t(2,c=!0),t(3,u=""),m&&!m.writable){t(3,u=v("firstrun.errorNoWrite")),t(2,c=!1);return}try{const T=await Is("CreateVault",o.trim());T&&T.status==="ready"&&l&&l(T)}catch(T){t(3,u=String(T))}t(2,c=!1)}}function k(){s&&s()}function E(T){T.key==="Enter"&&!c&&o.trim()&&b()}function y(){o=this.value,t(0,o)}return n.$$set=T=>{"onComplete"in T&&t(10,l=T.onComplete),"onQuit"in T&&t(11,s=T.onQuit)},[o,i,c,u,d,h,_,b,k,E,l,s,y]}class Rb extends pt{constructor(e){super(),dt(this,e,Nb,Ab,ft,{onComplete:10,onQuit:11})}}function Fr(n){let e,t;return{c(){e=f("div"),t=H(n[2]),r(e,"class","error-msg svelte-s3o8c3")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&4&&Q(t,l[2])},d(l){l&&S(e)}}}function jr(n){let e,t,l,s,o,i,c,u,d=v("common.yes")+"",m,g,h,_,b;return{c(){e=f("div"),t=f("div"),l=f("h3"),l.textContent=`${v("recovery.createConfirmTitle")}`,s=w(),o=f("p"),o.textContent=`${v("recovery.createConfirm")}`,i=w(),c=f("div"),u=f("button"),m=H(d),g=w(),h=f("button"),h.textContent=`${v("common.cancel")}`,r(l,"class","svelte-s3o8c3"),r(o,"class","modal-desc svelte-s3o8c3"),r(u,"class","btn btn-primary"),u.disabled=n[1],r(h,"class","btn"),r(c,"class","modal-actions svelte-s3o8c3"),r(t,"class","modal svelte-s3o8c3"),r(e,"class","modal-overlay svelte-s3o8c3"),r(e,"role","button"),r(e,"tabindex","0")},m(k,E){C(k,e,E),a(e,t),a(t,l),a(t,s),a(t,o),a(t,i),a(t,c),a(c,u),a(u,m),a(c,g),a(c,h),_||(b=[P(u,"click",n[6]),P(h,"click",n[7]),P(e,"click",$t(n[7])),P(e,"keydown",n[11])],_=!0)},p(k,E){E&2&&(u.disabled=k[1])},d(k){k&&S(e),_=!1,Te(b)}}}function Ib(n){let e,t,l,s,o,i,c,u,d,m=(n[0]||"—")+"",g,h,_,b,k,E=v("recovery.choose")+"",y,T,N,A=v("recovery.create")+"",I,M,R,L,z,U,W,F=n[2]&&Fr(n),K=n[3]&&jr(n);return{c(){e=f("div"),t=f("div"),l=f("div"),l.textContent="⚠",s=w(),o=f("h1"),o.textContent=`${v("recovery.title")}`,i=w(),c=f("p"),c.textContent=`${v("recovery.expected")}:`,u=w(),d=f("code"),g=H(m),h=w(),F&&F.c(),_=w(),b=f("div"),k=f("button"),y=H(E),T=w(),N=f("button"),I=H(A),M=w(),R=f("button"),R.textContent=`${v("recovery.quit")}`,L=w(),K&&K.c(),z=ht(),r(l,"class","recovery-icon svelte-s3o8c3"),r(o,"class","svelte-s3o8c3"),r(c,"class","recovery-desc svelte-s3o8c3"),r(d,"class","recovery-path svelte-s3o8c3"),r(k,"class","btn btn-primary btn-lg svelte-s3o8c3"),k.disabled=n[1],r(N,"class","btn btn-lg svelte-s3o8c3"),N.disabled=n[1],r(R,"class","btn btn-lg svelte-s3o8c3"),r(b,"class","recovery-actions svelte-s3o8c3"),r(t,"class","recovery-card svelte-s3o8c3"),r(e,"class","recovery-screen svelte-s3o8c3")},m(V,Y){C(V,e,Y),a(e,t),a(t,l),a(t,s),a(t,o),a(t,i),a(t,c),a(t,u),a(t,d),a(d,g),a(t,h),F&&F.m(t,null),a(t,_),a(t,b),a(b,k),a(k,y),a(b,T),a(b,N),a(N,I),a(b,M),a(b,R),C(V,L,Y),K&&K.m(V,Y),C(V,z,Y),U||(W=[P(k,"click",n[4]),P(N,"click",n[5]),P(R,"click",n[8])],U=!0)},p(V,[Y]){Y&1&&m!==(m=(V[0]||"—")+"")&&Q(g,m),V[2]?F?F.p(V,Y):(F=Fr(V),F.c(),F.m(t,_)):F&&(F.d(1),F=null),Y&2&&(k.disabled=V[1]),Y&2&&(N.disabled=V[1]),V[3]?K?K.p(V,Y):(K=jr(V),K.c(),K.m(z.parentNode,z)):K&&(K.d(1),K=null)},i:ie,o:ie,d(V){V&&(S(e),S(L),S(z)),F&&F.d(),K&&K.d(V),U=!1,Te(W)}}}function Mi(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function Mb(n,e,t){let{vaultPath:l=""}=e,{onComplete:s=null}=e,{onQuit:o=null}=e,i=!1,c="",u=!1;async function d(){try{const k=await Mi("PickDirectory");if(!k)return;t(1,i=!0),t(2,c="");const E=await Mi("OpenVault",k);E&&E.status==="ready"&&s&&s(E)}catch(k){t(2,c=String(k))}t(1,i=!1)}function m(){t(3,u=!0)}async function g(){t(3,u=!1),t(1,i=!0),t(2,c="");try{const k=await Mi("CreateVault",l);k&&k.status==="ready"&&s&&s(k)}catch(k){t(2,c=String(k))}t(1,i=!1)}function h(){t(3,u=!1)}function _(){o&&o()}const b=k=>k.key==="Enter"&&h();return n.$$set=k=>{"vaultPath"in k&&t(0,l=k.vaultPath),"onComplete"in k&&t(9,s=k.onComplete),"onQuit"in k&&t(10,o=k.onQuit)},[l,i,c,u,d,m,g,h,_,s,o,b]}class Lb extends pt{constructor(e){super(),dt(this,e,Mb,Ib,ft,{vaultPath:0,onComplete:9,onQuit:10})}}function Ur(n,e,t){const l=n.slice();return l[5]=e[t],l}function Ob(n){let e,t;return{c(){e=oe("circle"),t=oe("path"),r(e,"cx","12"),r(e,"cy","12"),r(e,"r","3"),r(t,"d","M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function Db(n){let e,t,l;return{c(){e=oe("path"),t=oe("path"),l=oe("path"),r(e,"d","M5 4h12l2 2v14H5z"),r(t,"d","M8 4v6h8V4"),r(l,"d","M8 20v-6h8v6")},m(s,o){C(s,e,o),C(s,t,o),C(s,l,o)},d(s){s&&(S(e),S(t),S(l))}}}function Pb(n){let e,t,l,s;return{c(){e=oe("path"),t=oe("path"),l=oe("path"),s=oe("path"),r(e,"d","M20 11a8 8 0 0 0-14-4l-2 2"),r(t,"d","M4 5v4h4"),r(l,"d","M4 13a8 8 0 0 0 14 4l2-2"),r(s,"d","M20 19v-4h-4")},m(o,i){C(o,e,i),C(o,t,i),C(o,l,i),C(o,s,i)},d(o){o&&(S(e),S(t),S(l),S(s))}}}function zb(n){let e;return{c(){e=oe("path"),r(e,"d","M4 19V9M10 19V5M16 19v-7M22 19H2")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function Bb(n){let e;return{c(){e=oe("path"),r(e,"d","M3 6h6l2 2h10v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6z")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function Fb(n){let e,t;return{c(){e=oe("path"),t=oe("path"),r(e,"d","M9 3v5M15 3v5M7 8h10v3a5 5 0 0 1-10 0V8z"),r(t,"d","M12 16v5")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function jb(n){let e,t;return{c(){e=oe("rect"),t=oe("path"),r(e,"x","4"),r(e,"y","3"),r(e,"width","16"),r(e,"height","18"),r(e,"rx","2"),r(t,"d","M8 7h8M8 11h8M8 15h5")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function Ub(n){let e,t,l;return{c(){e=oe("path"),t=oe("path"),l=oe("path"),r(e,"d","M3 10.5 12 3l9 7.5"),r(t,"d","M5 9.5V21h14V9.5"),r(l,"d","M10 21v-6h4v6")},m(s,o){C(s,e,o),C(s,t,o),C(s,l,o)},d(s){s&&(S(e),S(t),S(l))}}}function Hb(n){let e,t;return{c(){e=oe("circle"),t=oe("path"),r(e,"cx","12"),r(e,"cy","12"),r(e,"r","3"),r(t,"d","M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 0 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V22h-4v-.2a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 0 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H2v-4h.2a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 0 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3 1.7 1.7 0 0 0 1-1.5V2h4v.2a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 0 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8 1.7 1.7 0 0 0 1.5 1h.2v4h-.2a1.7 1.7 0 0 0-1.4 1z")},m(l,s){C(l,e,s),C(l,t,s)},d(l){l&&(S(e),S(t))}}}function Hr(n){let e,t,l,s,o,i,c,u;function d(_,b){if(_[5].id==="general")return Hb;if(_[5].id==="workspace")return Ub;if(_[5].id==="templates")return jb;if(_[5].id==="plugins")return Fb;if(_[5].id==="files")return Bb;if(_[5].id==="activity")return zb;if(_[5].id==="sync")return Pb;if(_[5].id==="backup")return Db;if(_[5].id==="browserBridge")return Ob}let m=d(n),g=m&&m(n);function h(){return n[4](n[5])}return{c(){e=f("button"),t=f("span"),l=oe("svg"),g&&g.c(),s=w(),o=f("span"),o.textContent=`${n[5].label}`,i=w(),r(l,"width","16"),r(l,"height","16"),r(l,"viewBox","0 0 24 24"),r(l,"fill","none"),r(l,"stroke","currentColor"),r(l,"stroke-width","1.8"),r(l,"stroke-linecap","round"),r(l,"stroke-linejoin","round"),r(l,"aria-hidden","true"),r(t,"class","settings-nav-icon svelte-8ag2z0"),r(o,"class","settings-nav-label svelte-8ag2z0"),r(e,"class","settings-nav-item svelte-8ag2z0"),ce(e,"active",n[0]===n[5].id),ce(e,"disabled",n[5].id==="files"||n[5].id==="activity"||n[5].id==="backup")},m(_,b){C(_,e,b),a(e,t),a(t,l),g&&g.m(l,null),a(e,s),a(e,o),a(e,i),c||(u=P(e,"click",h),c=!0)},p(_,b){n=_,b&3&&ce(e,"active",n[0]===n[5].id)},d(_){_&&S(e),g&&g.d(),c=!1,u()}}}function Wb(n){let e,t=ve(n[1]),l=[];for(let s=0;si(u.id);return n.$$set=u=>{"activeSection"in u&&t(0,l=u.activeSection),"onSelect"in u&&t(3,s=u.onSelect)},[l,o,i,s,c]}class Kb extends pt{constructor(e){super(),dt(this,e,Gb,Wb,ft,{activeSection:0,onSelect:3})}}function Wr(n){let e;return{c(){e=f("div"),e.textContent=`${v("settings.saved")}`,r(e,"class","save-notice svelte-1e2uhdh")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function Vb(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y,T,N,A,I,M,R,L,z,U,W,F,K,V,Y,G,D,j=n[1]&&Wr();return{c(){e=f("div"),t=f("h2"),t.textContent=`${v("settings.general")}`,l=w(),s=f("p"),s.textContent=`${v("settings.generalDesc")}`,o=w(),i=f("div"),c=f("h3"),c.textContent=`${v("settings.appearance")}`,u=w(),d=f("div"),m=f("label"),g=f("span"),g.textContent=`${v("settings.theme")}`,h=w(),_=f("select"),b=f("option"),b.textContent=`${v("settings.themeSystem")}`,k=f("option"),k.textContent=`${v("settings.themeLight")} (${v("settings.langSoon")})`,E=f("option"),E.textContent=`${v("settings.themeDark")} (${v("settings.langSoon")})`,y=w(),T=f("div"),N=f("h3"),N.textContent=`${v("settings.localization")}`,A=w(),I=f("div"),M=f("label"),R=f("span"),R.textContent=`${v("settings.language")}`,L=w(),z=f("select"),U=f("option"),U.textContent=`${v("settings.langRu")}`,W=f("option"),W.textContent=`${v("settings.langEn")} (${v("settings.langSoon")})`,F=w(),K=f("div"),j&&j.c(),V=w(),Y=f("button"),Y.textContent=`${v("settings.save")}`,r(t,"class","svelte-1e2uhdh"),r(s,"class","section-desc svelte-1e2uhdh"),r(c,"class","card-title svelte-1e2uhdh"),r(g,"class","label-text svelte-1e2uhdh"),b.__value="system",Ie(b,b.__value),k.__value="light",Ie(k,k.__value),k.disabled=!0,E.__value="dark",Ie(E,E.__value),E.disabled=!0,n[0]===void 0&&vl(()=>n[5].call(_)),r(d,"class","form-group svelte-1e2uhdh"),r(i,"class","settings-card svelte-1e2uhdh"),r(N,"class","card-title svelte-1e2uhdh"),r(R,"class","label-text svelte-1e2uhdh"),U.__value="ru",Ie(U,U.__value),W.__value="en",Ie(W,W.__value),z.disabled=!0,r(I,"class","form-group svelte-1e2uhdh"),r(T,"class","settings-card svelte-1e2uhdh"),r(Y,"class","btn btn-primary"),r(K,"class","settings-actions svelte-1e2uhdh"),r(e,"class","settings-section svelte-1e2uhdh")},m(B,J){C(B,e,J),a(e,t),a(e,l),a(e,s),a(e,o),a(e,i),a(i,c),a(i,u),a(i,d),a(d,m),a(m,g),a(m,h),a(m,_),a(_,b),a(_,k),a(_,E),Yn(_,n[0],!0),a(e,y),a(e,T),a(T,N),a(T,A),a(T,I),a(I,M),a(M,R),a(M,L),a(M,z),a(z,U),a(z,W),a(e,F),a(e,K),j&&j.m(K,null),a(K,V),a(K,Y),G||(D=[P(_,"change",n[5]),P(Y,"click",n[2])],G=!0)},p(B,[J]){J&1&&Yn(_,B[0]),B[1]?j||(j=Wr(),j.c(),j.m(K,V)):j&&(j.d(1),j=null)},i:ie,o:ie,d(B){B&&S(e),j&&j.d(),G=!1,Te(D)}}}function qb(n,e,t){let{appConfig:l=null}=e,{onSave:s=null}=e,o="system",i=!1;function c(){l&&t(0,o=l.theme||"system")}async function u(){l&&(t(3,l.theme=o,l),s&&await s(l),t(1,i=!0),setTimeout(()=>t(1,i=!1),2e3))}function d(){o=Bs(this),t(0,o)}return n.$$set=m=>{"appConfig"in m&&t(3,l=m.appConfig),"onSave"in m&&t(4,s=m.onSave)},n.$$.update=()=>{n.$$.dirty&8&&l&&c()},[o,i,u,l,s,d]}class Zb extends pt{constructor(e){super(),dt(this,e,qb,Vb,ft,{appConfig:3,onSave:4})}}function Gr(n){let e,t;return{c(){e=f("div"),t=H(n[1]),r(e,"class","notice svelte-1zbky3")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&2&&Q(t,l[1])},d(l){l&&S(e)}}}function Yb(n){let e;return{c(){e=f("p"),e.textContent=`${v("settings.noVaultInfo")}`,r(e,"class","no-data svelte-1zbky3")},m(t,l){C(t,e,l)},p:ie,d(t){t&&S(e)}}}function Xb(n){let e,t,l,s,o,i=n[0].path+"",c,u,d,m,g,h,_=n[0].dbPath+"",b,k,E,y=n[0].nodeCount!==void 0&&Kr(n),T=n[0].fileCount!==void 0&&Vr(n);return{c(){e=f("div"),t=f("div"),l=f("span"),l.textContent=`${v("settings.vaultPath")}`,s=w(),o=f("span"),c=H(i),u=w(),d=f("div"),m=f("span"),m.textContent="DB",g=w(),h=f("span"),b=H(_),k=w(),y&&y.c(),E=w(),T&&T.c(),r(l,"class","info-label svelte-1zbky3"),r(o,"class","info-value mono svelte-1zbky3"),r(t,"class","info-row svelte-1zbky3"),r(m,"class","info-label svelte-1zbky3"),r(h,"class","info-value mono small svelte-1zbky3"),r(d,"class","info-row svelte-1zbky3"),r(e,"class","vault-info svelte-1zbky3")},m(N,A){C(N,e,A),a(e,t),a(t,l),a(t,s),a(t,o),a(o,c),a(e,u),a(e,d),a(d,m),a(d,g),a(d,h),a(h,b),a(e,k),y&&y.m(e,null),a(e,E),T&&T.m(e,null)},p(N,A){A&1&&i!==(i=N[0].path+"")&&Q(c,i),A&1&&_!==(_=N[0].dbPath+"")&&Q(b,_),N[0].nodeCount!==void 0?y?y.p(N,A):(y=Kr(N),y.c(),y.m(e,E)):y&&(y.d(1),y=null),N[0].fileCount!==void 0?T?T.p(N,A):(T=Vr(N),T.c(),T.m(e,null)):T&&(T.d(1),T=null)},d(N){N&&S(e),y&&y.d(),T&&T.d()}}}function Kr(n){let e,t,l,s,o=n[0].nodeCount+"",i;return{c(){e=f("div"),t=f("span"),t.textContent="Nodes",l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1zbky3"),r(s,"class","info-value svelte-1zbky3"),r(e,"class","info-row svelte-1zbky3")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u&1&&o!==(o=c[0].nodeCount+"")&&Q(i,o)},d(c){c&&S(e)}}}function Vr(n){let e,t,l,s,o=n[0].fileCount+"",i;return{c(){e=f("div"),t=f("span"),t.textContent="Files",l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1zbky3"),r(s,"class","info-value svelte-1zbky3"),r(e,"class","info-row svelte-1zbky3")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u&1&&o!==(o=c[0].fileCount+"")&&Q(i,o)},d(c){c&&S(e)}}}function Jb(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y=n[1]&&Gr(n);function T(I,M){return I[0]?Xb:Yb}let N=T(n),A=N(n);return{c(){e=f("div"),t=f("h2"),t.textContent=`${v("settings.workspace")}`,l=w(),s=f("p"),s.textContent=`${v("settings.workspaceDesc")}`,o=w(),y&&y.c(),i=w(),c=f("div"),A.c(),u=w(),d=f("div"),m=f("button"),m.textContent=`${v("settings.openVault")}`,g=w(),h=f("button"),h.textContent=`${v("settings.changeVault")}`,_=w(),b=f("button"),b.textContent=`${v("settings.checkIntegrity")}`,r(t,"class","svelte-1zbky3"),r(s,"class","section-desc svelte-1zbky3"),r(c,"class","settings-card svelte-1zbky3"),r(m,"class","btn svelte-1zbky3"),r(h,"class","btn svelte-1zbky3"),r(b,"class","btn svelte-1zbky3"),r(d,"class","workspace-actions svelte-1zbky3"),r(e,"class","settings-section svelte-1zbky3")},m(I,M){C(I,e,M),a(e,t),a(e,l),a(e,s),a(e,o),y&&y.m(e,null),a(e,i),a(e,c),A.m(c,null),a(e,u),a(e,d),a(d,m),a(d,g),a(d,h),a(d,_),a(d,b),k||(E=[P(m,"click",n[2]),P(h,"click",n[4]),P(b,"click",n[3])],k=!0)},p(I,[M]){I[1]?y?y.p(I,M):(y=Gr(I),y.c(),y.m(e,i)):y&&(y.d(1),y=null),N===(N=T(I))&&A?A.p(I,M):(A.d(1),A=N(I),A&&(A.c(),A.m(c,null)))},i:ie,o:ie,d(I){I&&S(e),y&&y.d(),A.d(),k=!1,Te(E)}}}function Ll(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function Qb(n,e,t){let{onRefresh:l=null}=e,s=null,o="";async function i(){try{t(0,s=await Ll("GetVaultInfo"))}catch{t(0,s=null)}}i();async function c(){try{await Ll("OpenVaultFolder")}catch(m){t(1,o=String(m))}}async function u(){try{const m=await Ll("VaultCheck");m.healthy?t(1,o="Vault healthy"):t(1,o="Issues found: "+(m.errors||[]).join("; "))}catch(m){t(1,o=String(m))}}async function d(){try{const m=await Ll("PickDirectory");if(!m)return;const g=await Ll("OpenVault",m);g&&g.status==="ready"&&(t(0,s=await Ll("GetVaultInfo")),l&&l())}catch(m){t(1,o=String(m))}}return n.$$set=m=>{"onRefresh"in m&&t(5,l=m.onRefresh)},[s,o,c,u,d,l]}class xb extends pt{constructor(e){super(),dt(this,e,Qb,Jb,ft,{onRefresh:5})}}function qr(n,e,t){const l=n.slice();return l[6]=e[t],l}function $b(n){let e,t=ve(n[0]),l=[];for(let s=0;sc(d);return n.$$set=d=>{"onRefresh"in d&&t(3,l=d.onRefresh)},[s,o,c,l,u]}class sv extends pt{constructor(e){super(),dt(this,e,lv,nv,ft,{onRefresh:3})}}function Xr(n,e,t){const l=n.slice();return l[12]=e[t],l}function iv(n){let e,t=ve(n[0]),l=[];for(let s=0;sНет установленных плагинов.
Создайте папку .verstak/plugins/ в хранилище и добавьте туда плагины.
',r(e,"class","empty-state svelte-i9gngw")},m(t,l){C(t,e,l)},p:ie,d(t){t&&S(e)}}}function rv(n){let e,t;return{c(){e=f("p"),t=H(n[2]),r(e,"class","error svelte-i9gngw")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&4&&Q(t,l[2])},d(l){l&&S(e)}}}function av(n){let e;return{c(){e=f("p"),e.textContent=`${v("common.loading")}`,r(e,"class","loading svelte-i9gngw")},m(t,l){C(t,e,l)},p:ie,d(t){t&&S(e)}}}function Jr(n){let e,t,l=n[12].version+"",s;return{c(){e=f("span"),t=H("v"),s=H(l),r(e,"class","plugin-version svelte-i9gngw")},m(o,i){C(o,e,i),a(e,t),a(e,s)},p(o,i){i&1&&l!==(l=o[12].version+"")&&Q(s,l)},d(o){o&&S(e)}}}function Qr(n){let e,t=n[12].description+"",l;return{c(){e=f("div"),l=H(t),r(e,"class","plugin-desc svelte-i9gngw")},m(s,o){C(s,e,o),a(e,l)},p(s,o){o&1&&t!==(t=s[12].description+"")&&Q(l,t)},d(s){s&&S(e)}}}function xr(n){let e,t=(v("settings.author")||"Автор")+"",l,s,o=n[12].author+"",i;return{c(){e=f("span"),l=H(t),s=H(": "),i=H(o)},m(c,u){C(c,e,u),a(e,l),a(e,s),a(e,i)},p(c,u){u&1&&o!==(o=c[12].author+"")&&Q(i,o)},d(c){c&&S(e)}}}function $r(n){let e,t=n[12].uiContribs.sidebarItems.length+"",l,s;return{c(){e=f("span"),l=H(t),s=H(" пункт(а) в сайдбаре")},m(o,i){C(o,e,i),a(e,l),a(e,s)},p(o,i){i&1&&t!==(t=o[12].uiContribs.sidebarItems.length+"")&&Q(l,t)},d(o){o&&S(e)}}}function ea(n){let e,t=n[12].uiContribs.nodeTabs.length+"",l,s;return{c(){e=f("span"),l=H(t),s=H(" вкладок(и) в карточке дела")},m(o,i){C(o,e,i),a(e,l),a(e,s)},p(o,i){i&1&&t!==(t=o[12].uiContribs.nodeTabs.length+"")&&Q(l,t)},d(o){o&&S(e)}}}function ta(n){let e;return{c(){e=f("span"),e.textContent="🗖 HTML-панель"},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function cv(n){let e,t,l,s,o,i,c,u;function d(){return n[8](n[12])}function m(){return n[9](n[12])}return{c(){e=f("div"),t=f("button"),l=f("span"),o=w(),i=f("button"),i.textContent="🗑",r(l,"class","toggle-knob svelte-i9gngw"),r(t,"class","toggle-btn svelte-i9gngw"),r(t,"role","switch"),r(t,"aria-checked",s=n[12].active),ce(t,"active",n[12].active),r(i,"class","uninstall-btn btn-sm svelte-i9gngw"),r(i,"title","Удалить плагин (очистить данные)"),r(e,"class","toggle-group svelte-i9gngw")},m(g,h){C(g,e,h),a(e,t),a(t,l),a(e,o),a(e,i),c||(u=[P(t,"click",d),P(i,"click",m)],c=!0)},p(g,h){n=g,h&1&&s!==(s=n[12].active)&&r(t,"aria-checked",s),h&1&&ce(t,"active",n[12].active)},d(g){g&&S(e),c=!1,Te(u)}}}function uv(n){let e,t,l;function s(){return n[7](n[12])}return{c(){e=f("button"),e.textContent="📦 Установить",r(e,"class","install-btn svelte-i9gngw")},m(o,i){C(o,e,i),t||(l=P(e,"click",s),t=!0)},p(o,i){n=o},d(o){o&&S(e),t=!1,l()}}}function na(n){var z,U,W,F;let e,t,l,s=n[12].name+"",o,i,c,u,d,m,g,h,_,b,k,E=n[12].version&&Jr(n),y=n[12].description&&Qr(n),T=n[12].author&&xr(n),N=((U=(z=n[12].uiContribs)==null?void 0:z.sidebarItems)==null?void 0:U.length)&&$r(n),A=((F=(W=n[12].uiContribs)==null?void 0:W.nodeTabs)==null?void 0:F.length)&&ea(n),I=n[12].hasPanel&&ta();function M(K,V){return K[12].installed?cv:uv}let R=M(n),L=R(n);return{c(){e=f("div"),t=f("div"),l=f("div"),o=H(s),i=w(),E&&E.c(),c=w(),y&&y.c(),u=w(),d=f("div"),T&&T.c(),m=w(),N&&N.c(),g=w(),A&&A.c(),h=w(),I&&I.c(),_=w(),b=f("div"),L.c(),k=w(),r(l,"class","plugin-name svelte-i9gngw"),r(d,"class","plugin-meta svelte-i9gngw"),r(t,"class","plugin-info svelte-i9gngw"),r(b,"class","plugin-toggle svelte-i9gngw"),r(e,"class","plugin-card svelte-i9gngw")},m(K,V){C(K,e,V),a(e,t),a(t,l),a(l,o),a(l,i),E&&E.m(l,null),a(t,c),y&&y.m(t,null),a(t,u),a(t,d),T&&T.m(d,null),a(d,m),N&&N.m(d,null),a(d,g),A&&A.m(d,null),a(d,h),I&&I.m(d,null),a(e,_),a(e,b),L.m(b,null),a(e,k)},p(K,V){var Y,G,D,j;V&1&&s!==(s=K[12].name+"")&&Q(o,s),K[12].version?E?E.p(K,V):(E=Jr(K),E.c(),E.m(l,null)):E&&(E.d(1),E=null),K[12].description?y?y.p(K,V):(y=Qr(K),y.c(),y.m(t,u)):y&&(y.d(1),y=null),K[12].author?T?T.p(K,V):(T=xr(K),T.c(),T.m(d,m)):T&&(T.d(1),T=null),(G=(Y=K[12].uiContribs)==null?void 0:Y.sidebarItems)!=null&&G.length?N?N.p(K,V):(N=$r(K),N.c(),N.m(d,g)):N&&(N.d(1),N=null),(j=(D=K[12].uiContribs)==null?void 0:D.nodeTabs)!=null&&j.length?A?A.p(K,V):(A=ea(K),A.c(),A.m(d,h)):A&&(A.d(1),A=null),K[12].hasPanel?I||(I=ta(),I.c(),I.m(d,null)):I&&(I.d(1),I=null),R===(R=M(K))&&L?L.p(K,V):(L.d(1),L=R(K),L&&(L.c(),L.m(b,null)))},d(K){K&&S(e),E&&E.d(),y&&y.d(),T&&T.d(),N&&N.d(),A&&A.d(),I&&I.d(),L.d()}}}function fv(n){let e,t,l,s,o;function i(d,m){return d[1]?av:d[2]?rv:d[0].length===0?ov:iv}let c=i(n),u=c(n);return{c(){e=f("div"),t=f("h3"),t.textContent=`${v("settings.plugins")||"Плагины"}`,l=w(),s=f("p"),s.textContent="Включение и отключение плагинов. Изменения применяются сразу.",o=w(),u.c(),r(t,"class","svelte-i9gngw"),r(s,"class","hint svelte-i9gngw"),r(e,"class","settings-plugins svelte-i9gngw")},m(d,m){C(d,e,m),a(e,t),a(e,l),a(e,s),a(e,o),u.m(e,null)},p(d,[m]){c===(c=i(d))&&u?u.p(d,m):(u.d(1),u=c(d),u&&(u.c(),u.m(e,null)))},i:ie,o:ie,d(d){d&&S(e),u.d()}}}function fl(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function dv(n,e,t){let{onPluginToggle:l=null}=e,s=[],o=!0,i="";fs(async()=>{try{t(0,s=await fl("ListPlugins")||[])}catch(_){t(2,i=String(_))}t(1,o=!1)});async function c(_){const b=!_.active;try{await fl("SetPluginEnabled",_.name,b),t(0,s=await fl("ListPlugins")||[]),l&&l()}catch(k){t(2,i=String(k))}}async function u(_){t(2,i="");try{await fl("InstallPlugin",_.name),_.installed=!0,t(0,s=await fl("ListPlugins")||[]),l&&l()}catch(b){t(2,i=String(b))}}async function d(_){if(confirm(`Удалить плагин «${_.name}»? Все данные плагина будут очищены. Файлы плагина сохранятся.`)){t(2,i="");try{await fl("UninstallPlugin",_.name),_.installed=!1,_.active=!1,t(0,s=await fl("ListPlugins")||[]),l&&l()}catch(b){t(2,i=String(b))}}}const m=_=>u(_),g=_=>c(_),h=_=>d(_);return n.$$set=_=>{"onPluginToggle"in _&&t(6,l=_.onPluginToggle)},n.$$.update=()=>{n.$$.dirty&1&&s.reduce((_,b)=>{var k,E;return _+(((E=(k=b.uiContribs)==null?void 0:k.sidebarItems)==null?void 0:E.length)||0)},0),n.$$.dirty&1&&s.reduce((_,b)=>{var k,E;return _+(((E=(k=b.uiContribs)==null?void 0:k.nodeTabs)==null?void 0:E.length)||0)},0)},[s,o,i,c,u,d,l,m,g,h]}class pv extends pt{constructor(e){super(),dt(this,e,dv,fv,ft,{onPluginToggle:6})}}function mv(n){let e,t,l,s;return{c(){e=f("div"),t=f("h2"),t.textContent=`${v("settings.files")}`,l=w(),s=f("p"),s.textContent=`${v("settings.filesStub")}`,r(t,"class","svelte-19bo7bn"),r(s,"class","section-desc svelte-19bo7bn"),r(e,"class","settings-section svelte-19bo7bn")},m(o,i){C(o,e,i),a(e,t),a(e,l),a(e,s)},p:ie,i:ie,o:ie,d(o){o&&S(e)}}}class gv extends pt{constructor(e){super(),dt(this,e,null,mv,ft,{})}}function hv(n){let e,t,l,s;return{c(){e=f("div"),t=f("h2"),t.textContent=`${v("settings.activity")}`,l=w(),s=f("p"),s.textContent=`${v("settings.activityStub")}`,r(t,"class","svelte-19bo7bn"),r(s,"class","section-desc svelte-19bo7bn"),r(e,"class","settings-section svelte-19bo7bn")},m(o,i){C(o,e,i),a(e,t),a(e,l),a(e,s)},p:ie,i:ie,o:ie,d(o){o&&S(e)}}}class _v extends pt{constructor(e){super(),dt(this,e,null,hv,ft,{})}}function la(n){let e,t;return{c(){e=f("div"),t=H(n[2]),r(e,"class","error-msg svelte-1fx1e1e")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s[0]&4&&Q(t,l[2])},d(l){l&&S(e)}}}function sa(n){let e,t;return{c(){e=f("div"),t=H(n[3]),r(e,"class","result-msg svelte-1fx1e1e"),ce(e,"warning",n[4]==="warning")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s[0]&8&&Q(t,l[3]),s[0]&16&&ce(e,"warning",l[4]==="warning")},d(l){l&&S(e)}}}function bv(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y,T,N,A,I,M,R=v("settings.checkConnection")+"",L,z,U,W,F=v("common.connect")+"",K,V,Y,G,D,j=n[11]!==null&&ia(n);return{c(){e=f("div"),t=f("div"),l=f("div"),s=f("label"),o=f("span"),o.textContent=`${v("settings.serverUrl")}`,i=w(),c=f("input"),u=w(),d=f("div"),m=f("label"),g=f("span"),g.textContent=`${v("sync.username")}`,h=w(),_=f("input"),b=w(),k=f("div"),E=f("label"),y=f("span"),y.textContent=`${v("sync.password")}`,T=w(),N=f("input"),A=w(),I=f("div"),M=f("button"),L=H(R),U=w(),W=f("button"),K=H(F),Y=w(),j&&j.c(),r(o,"class","label-text"),r(c,"type","text"),r(c,"placeholder","https://example.com"),r(l,"class","form-group svelte-1fx1e1e"),r(g,"class","label-text"),r(_,"type","text"),r(d,"class","form-group svelte-1fx1e1e"),r(y,"class","label-text"),r(N,"type","password"),r(k,"class","form-group svelte-1fx1e1e"),r(M,"class","btn"),M.disabled=z=n[1]||!n[5],r(W,"class","btn btn-primary"),W.disabled=V=n[1]||!n[5]||!n[6]||!n[7],r(I,"class","sync-setup-actions svelte-1fx1e1e"),r(t,"class","sync-setup svelte-1fx1e1e"),r(e,"class","settings-card svelte-1fx1e1e")},m(B,J){C(B,e,J),a(e,t),a(t,l),a(l,s),a(s,o),a(s,i),a(s,c),Ie(c,n[5]),a(t,u),a(t,d),a(d,m),a(m,g),a(m,h),a(m,_),Ie(_,n[6]),a(t,b),a(t,k),a(k,E),a(E,y),a(E,T),a(E,N),Ie(N,n[7]),a(t,A),a(t,I),a(I,M),a(M,L),a(I,U),a(I,W),a(W,K),a(t,Y),j&&j.m(t,null),G||(D=[P(c,"input",n[23]),P(_,"input",n[24]),P(N,"input",n[25]),P(M,"click",n[12]),P(W,"click",n[13])],G=!0)},p(B,J){J[0]&32&&c.value!==B[5]&&Ie(c,B[5]),J[0]&64&&_.value!==B[6]&&Ie(_,B[6]),J[0]&128&&N.value!==B[7]&&Ie(N,B[7]),J[0]&34&&z!==(z=B[1]||!B[5])&&(M.disabled=z),J[0]&226&&V!==(V=B[1]||!B[5]||!B[6]||!B[7])&&(W.disabled=V),B[11]!==null?j?j.p(B,J):(j=ia(B),j.c(),j.m(t,null)):j&&(j.d(1),j=null)},d(B){B&&S(e),j&&j.d(),G=!1,Te(D)}}}function vv(n){let e,t,l,s,o,i,c=n[20](n[0].lastStatus)+"",u,d,m,g,h,_,b,k,E,y=v("settings.syncNow")+"",T,N,A,I=v("settings.disconnect")+"",M,R,L,z=v("settings.resetKey")+"",U,W,F,K,V,Y,G,D,j,B,J,Z,X=n[0].serverUrl&&oa(n),$=n[0].deviceName&&ra(n),te=n[0].deviceId&&aa(n),ne=n[0].lastSyncAt&&ca(n),de=n[0].lastError&&ua(n);return{c(){e=f("div"),t=f("div"),l=f("div"),s=f("span"),s.textContent=`${v("settings.status")}`,o=w(),i=f("span"),u=H(c),d=w(),X&&X.c(),m=w(),$&&$.c(),g=w(),te&&te.c(),h=w(),ne&&ne.c(),_=w(),de&&de.c(),b=w(),k=f("div"),E=f("button"),T=H(y),N=w(),A=f("button"),M=H(I),R=w(),L=f("button"),U=H(z),W=w(),F=f("div"),K=f("label"),V=f("span"),V.textContent=`${v("sync.interval")}`,Y=w(),G=f("div"),D=f("input"),j=w(),B=f("button"),B.textContent=`${v("common.save")}`,r(s,"class","info-label svelte-1fx1e1e"),r(i,"class","info-value svelte-1fx1e1e"),ce(i,"status-ok",n[0].lastStatus==="connected"),ce(i,"status-err",n[0].lastStatus==="error"||n[0].lastStatus==="revoked"),r(l,"class","info-row svelte-1fx1e1e"),r(t,"class","sync-info svelte-1fx1e1e"),r(e,"class","settings-card svelte-1fx1e1e"),r(E,"class","btn btn-primary"),E.disabled=n[1],r(A,"class","btn"),A.disabled=n[1],r(L,"class","btn"),L.disabled=n[1],r(k,"class","sync-actions svelte-1fx1e1e"),r(V,"class","label-text"),r(D,"type","number"),r(D,"min","0"),r(D,"placeholder","0"),r(D,"class","svelte-1fx1e1e"),r(B,"class","btn btn-sm"),r(G,"class","interval-row svelte-1fx1e1e"),r(F,"class","sync-interval svelte-1fx1e1e")},m(Ae,ze){C(Ae,e,ze),a(e,t),a(t,l),a(l,s),a(l,o),a(l,i),a(i,u),a(t,d),X&&X.m(t,null),a(t,m),$&&$.m(t,null),a(t,g),te&&te.m(t,null),a(t,h),ne&&ne.m(t,null),a(t,_),de&&de.m(t,null),C(Ae,b,ze),C(Ae,k,ze),a(k,E),a(E,T),a(k,N),a(k,A),a(A,M),a(k,R),a(k,L),a(L,U),C(Ae,W,ze),C(Ae,F,ze),a(F,K),a(K,V),a(K,Y),a(K,G),a(G,D),Ie(D,n[8]),a(G,j),a(G,B),J||(Z=[P(E,"click",n[14]),P(A,"click",n[16]),P(L,"click",n[18]),P(D,"input",n[22]),P(B,"click",n[15])],J=!0)},p(Ae,ze){ze[0]&1&&c!==(c=Ae[20](Ae[0].lastStatus)+"")&&Q(u,c),ze[0]&1&&ce(i,"status-ok",Ae[0].lastStatus==="connected"),ze[0]&1&&ce(i,"status-err",Ae[0].lastStatus==="error"||Ae[0].lastStatus==="revoked"),Ae[0].serverUrl?X?X.p(Ae,ze):(X=oa(Ae),X.c(),X.m(t,m)):X&&(X.d(1),X=null),Ae[0].deviceName?$?$.p(Ae,ze):($=ra(Ae),$.c(),$.m(t,g)):$&&($.d(1),$=null),Ae[0].deviceId?te?te.p(Ae,ze):(te=aa(Ae),te.c(),te.m(t,h)):te&&(te.d(1),te=null),Ae[0].lastSyncAt?ne?ne.p(Ae,ze):(ne=ca(Ae),ne.c(),ne.m(t,_)):ne&&(ne.d(1),ne=null),Ae[0].lastError?de?de.p(Ae,ze):(de=ua(Ae),de.c(),de.m(t,null)):de&&(de.d(1),de=null),ze[0]&2&&(E.disabled=Ae[1]),ze[0]&2&&(A.disabled=Ae[1]),ze[0]&2&&(L.disabled=Ae[1]),ze[0]&256&&Hl(D.value)!==Ae[8]&&Ie(D,Ae[8])},d(Ae){Ae&&(S(e),S(b),S(k),S(W),S(F)),X&&X.d(),$&&$.d(),te&&te.d(),ne&&ne.d(),de&&de.d(),J=!1,Te(Z)}}}function ia(n){let e,t=(n[11]?v("common.test")+" OK":v("error.generic"))+"",l;return{c(){e=f("div"),l=H(t),r(e,"class","connection-result svelte-1fx1e1e"),ce(e,"ok",n[11]),ce(e,"fail",!n[11])},m(s,o){C(s,e,o),a(e,l)},p(s,o){o[0]&2048&&t!==(t=(s[11]?v("common.test")+" OK":v("error.generic"))+"")&&Q(l,t),o[0]&2048&&ce(e,"ok",s[11]),o[0]&2048&&ce(e,"fail",!s[11])},d(s){s&&S(e)}}}function oa(n){let e,t,l,s,o=n[0].serverUrl+"",i;return{c(){e=f("div"),t=f("span"),t.textContent=`${v("settings.serverUrl")}`,l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1fx1e1e"),r(s,"class","info-value mono svelte-1fx1e1e"),r(e,"class","info-row svelte-1fx1e1e")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u[0]&1&&o!==(o=c[0].serverUrl+"")&&Q(i,o)},d(c){c&&S(e)}}}function ra(n){let e,t,l,s,o=n[0].deviceName+"",i;return{c(){e=f("div"),t=f("span"),t.textContent=`${v("settings.deviceName")}`,l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1fx1e1e"),r(s,"class","info-value svelte-1fx1e1e"),r(e,"class","info-row svelte-1fx1e1e")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u[0]&1&&o!==(o=c[0].deviceName+"")&&Q(i,o)},d(c){c&&S(e)}}}function aa(n){let e,t,l,s,o=n[0].deviceId+"",i;return{c(){e=f("div"),t=f("span"),t.textContent=`${v("settings.deviceId")}`,l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1fx1e1e"),r(s,"class","info-value mono svelte-1fx1e1e"),r(e,"class","info-row svelte-1fx1e1e")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u[0]&1&&o!==(o=c[0].deviceId+"")&&Q(i,o)},d(c){c&&S(e)}}}function ca(n){let e,t,l,s,o=n[0].lastSyncAt+"",i;return{c(){e=f("div"),t=f("span"),t.textContent=`${v("settings.lastSync")}`,l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1fx1e1e"),r(s,"class","info-value svelte-1fx1e1e"),r(e,"class","info-row svelte-1fx1e1e")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u[0]&1&&o!==(o=c[0].lastSyncAt+"")&&Q(i,o)},d(c){c&&S(e)}}}function ua(n){let e,t,l,s,o=n[0].lastError+"",i;return{c(){e=f("div"),t=f("span"),t.textContent=`${v("settings.lastError")}`,l=w(),s=f("span"),i=H(o),r(t,"class","info-label svelte-1fx1e1e"),r(s,"class","info-value error svelte-1fx1e1e"),r(e,"class","info-row svelte-1fx1e1e")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,i)},p(c,u){u[0]&1&&o!==(o=c[0].lastError+"")&&Q(i,o)},d(c){c&&S(e)}}}function fa(n){let e,t,l,s,o,i,c,u,d,m,g,h;return{c(){e=f("button"),t=f("div"),l=f("h3"),l.textContent=`${v("settings.confirmDisconnect")}`,s=w(),o=f("p"),o.textContent=`${v("settings.confirmDisconnectDesc")}`,i=w(),c=f("div"),u=f("button"),u.textContent=`${v("common.disconnect")}`,d=w(),m=f("button"),m.textContent=`${v("common.cancel")}`,r(l,"class","svelte-1fx1e1e"),r(o,"class","modal-desc svelte-1fx1e1e"),r(u,"class","btn btn-danger"),r(m,"class","btn"),r(c,"class","modal-actions svelte-1fx1e1e"),r(t,"class","modal svelte-1fx1e1e"),r(e,"class","modal-overlay svelte-1fx1e1e")},m(_,b){C(_,e,b),a(e,t),a(t,l),a(t,s),a(t,o),a(t,i),a(t,c),a(c,u),a(c,d),a(c,m),g||(h=[P(u,"click",n[17]),P(m,"click",n[26]),P(e,"click",n[27])],g=!0)},p:ie,d(_){_&&S(e),g=!1,Te(h)}}}function da(n){let e,t,l,s,o,i,c,u,d,m,g,h;return{c(){e=f("button"),t=f("div"),l=f("h3"),l.textContent=`${v("settings.confirmResetKey")}`,s=w(),o=f("p"),o.textContent=`${v("settings.confirmResetKeyDesc")}`,i=w(),c=f("div"),u=f("button"),u.textContent=`${v("settings.resetKey")}`,d=w(),m=f("button"),m.textContent=`${v("common.cancel")}`,r(l,"class","svelte-1fx1e1e"),r(o,"class","modal-desc svelte-1fx1e1e"),r(u,"class","btn btn-danger"),r(m,"class","btn"),r(c,"class","modal-actions svelte-1fx1e1e"),r(t,"class","modal svelte-1fx1e1e"),r(e,"class","modal-overlay svelte-1fx1e1e")},m(_,b){C(_,e,b),a(e,t),a(t,l),a(t,s),a(t,o),a(t,i),a(t,c),a(c,u),a(c,d),a(c,m),g||(h=[P(u,"click",n[19]),P(m,"click",n[28]),P(e,"click",n[29])],g=!0)},p:ie,d(_){_&&S(e),g=!1,Te(h)}}}function kv(n){let e,t,l,s,o,i,c,u,d,m,g=n[2]&&la(n),h=n[3]&&!n[2]&&sa(n);function _(T,N){return T[0]&&T[0].enabled?vv:bv}let b=_(n),k=b(n),E=n[9]&&fa(n),y=n[10]&&da(n);return{c(){e=f("div"),t=f("h2"),t.textContent=`${v("settings.sync")}`,l=w(),s=f("p"),s.textContent=`${v("settings.syncDesc")}`,o=w(),g&&g.c(),i=w(),h&&h.c(),c=w(),k.c(),u=w(),E&&E.c(),d=w(),y&&y.c(),m=ht(),r(t,"class","svelte-1fx1e1e"),r(s,"class","section-desc svelte-1fx1e1e"),r(e,"class","settings-section svelte-1fx1e1e")},m(T,N){C(T,e,N),a(e,t),a(e,l),a(e,s),a(e,o),g&&g.m(e,null),a(e,i),h&&h.m(e,null),a(e,c),k.m(e,null),C(T,u,N),E&&E.m(T,N),C(T,d,N),y&&y.m(T,N),C(T,m,N)},p(T,N){T[2]?g?g.p(T,N):(g=la(T),g.c(),g.m(e,i)):g&&(g.d(1),g=null),T[3]&&!T[2]?h?h.p(T,N):(h=sa(T),h.c(),h.m(e,c)):h&&(h.d(1),h=null),b===(b=_(T))&&k?k.p(T,N):(k.d(1),k=b(T),k&&(k.c(),k.m(e,null))),T[9]?E?E.p(T,N):(E=fa(T),E.c(),E.m(d.parentNode,d)):E&&(E.d(1),E=null),T[10]?y?y.p(T,N):(y=da(T),y.c(),y.m(m.parentNode,m)):y&&(y.d(1),y=null)},i:ie,o:ie,d(T){T&&(S(e),S(u),S(d),S(m)),g&&g.d(),h&&h.d(),k.d(),E&&E.d(T),y&&y.d(T)}}}function dl(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function wv(n,e,t){let{onRefresh:l=null}=e,s=null,o=!1,i="",c="",u="",d="",m="",g="",h=0,_=!1,b=!1,k=null;async function E(){try{t(0,s=await dl("GetSyncSettings")),s&&(t(5,d=s.serverUrl||""),t(8,h=s.syncInterval||0))}catch{t(0,s=null)}}E();async function y(){t(1,o=!0),t(2,i=""),t(4,u=""),t(11,k=null);try{await dl("SyncTestConnection",d,m,g),t(11,k=!0),t(3,c="connection ok")}catch(B){t(11,k=!1),t(3,c="connection failed: "+String(B))}t(1,o=!1)}async function T(){t(1,o=!0),t(2,i=""),t(4,u="");try{await dl("SyncConfigure",d,m,g),t(3,c="configured"),t(6,m=""),t(7,g=""),await E(),l&&l()}catch(B){t(2,i=String(B))}t(1,o=!1)}function N(B){const J=Array.isArray(B==null?void 0:B.conflicts)?B.conflicts:[],Z=Array.isArray(B==null?void 0:B.applyErrors)?B.applyErrors:[],X=[];return J.length>0&&X.push(v("sync.conflictsCount",{count:J.length})),Z.length>0&&X.push(v("sync.applyErrorsCount",{count:Z.length})),X.join(" · ")}async function A(){t(1,o=!0),t(2,i=""),t(4,u="");try{const B=await dl("SyncNow"),J=v("sync.pushedPulled",{pushed:(B==null?void 0:B.pushed)||0,pulled:(B==null?void 0:B.pulled)||0}),Z=N(B);t(3,c=Z?J+" · "+Z:J),t(4,u=Z?"warning":""),await E(),l&&l()}catch(B){t(2,i=String(B))}t(1,o=!1)}async function I(){try{await dl("SyncSetInterval",h),t(3,c=v("sync.settingsSaved")),t(4,u="")}catch(B){t(2,i=String(B))}}function M(){t(9,_=!0)}async function R(){t(9,_=!1),t(1,o=!0),t(4,u="");try{await dl("SyncDisconnect"),t(3,c="disconnected"),await E(),l&&l()}catch(B){t(2,i=String(B))}t(1,o=!1)}function L(){t(10,b=!0)}async function z(){t(10,b=!1),t(1,o=!0),t(4,u="");try{await dl("ResetSyncKey"),t(3,c="key reset"),await E(),l&&l()}catch(B){t(2,i=String(B))}t(1,o=!1)}function U(B){return B?{connected:v("settings.connected"),disconnected:v("settings.disconnected"),disabled:v("settings.notConfigured"),error:v("settings.error"),revoked:v("settings.revoked")}[B]||B:v("settings.notConfigured")}function W(){h=Hl(this.value),t(8,h)}function F(){d=this.value,t(5,d)}function K(){m=this.value,t(6,m)}function V(){g=this.value,t(7,g)}const Y=()=>t(9,_=!1),G=()=>t(9,_=!1),D=()=>t(10,b=!1),j=()=>t(10,b=!1);return n.$$set=B=>{"onRefresh"in B&&t(21,l=B.onRefresh)},[s,o,i,c,u,d,m,g,h,_,b,k,y,T,A,I,M,R,L,z,U,l,W,F,K,V,Y,G,D,j]}class yv extends pt{constructor(e){super(),dt(this,e,wv,kv,ft,{onRefresh:21},null,[-1,-1])}}function Ev(n){let e,t,l,s;return{c(){e=f("div"),t=f("h2"),t.textContent=`${v("settings.backup")}`,l=w(),s=f("p"),s.textContent=`${v("settings.backupStub")}`,r(t,"class","svelte-19bo7bn"),r(s,"class","section-desc svelte-19bo7bn"),r(e,"class","settings-section svelte-19bo7bn")},m(o,i){C(o,e,i),a(e,t),a(e,l),a(e,s)},p:ie,i:ie,o:ie,d(o){o&&S(e)}}}class Tv extends pt{constructor(e){super(),dt(this,e,null,Ev,ft,{})}}function pa(n){let e,t;return{c(){e=f("div"),t=H(n[5]),r(e,"class","status-msg svelte-13i6m7m"),ce(e,"ok",n[6]==="ok"),ce(e,"error",n[6]==="error")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&32&&Q(t,l[5]),s&64&&ce(e,"ok",l[6]==="ok"),s&64&&ce(e,"error",l[6]==="error")},d(l){l&&S(e)}}}function ma(n){let e,t,l,s,o,i;return{c(){e=f("div"),t=f("span"),t.textContent="Активный порт",l=w(),s=f("span"),o=H("127.0.0.1:"),i=H(n[3]),r(t,"class","info-label svelte-13i6m7m"),r(s,"class","info-value mono svelte-13i6m7m"),r(e,"class","info-row svelte-13i6m7m")},m(c,u){C(c,e,u),a(e,t),a(e,l),a(e,s),a(s,o),a(s,i)},p(c,u){u&8&&Q(i,c[3])},d(c){c&&S(e)}}}function ga(n){let e,t,l,s;return{c(){e=f("button"),t=H("Перезапустить сервер"),r(e,"class","btn"),e.disabled=n[4]},m(o,i){C(o,e,i),a(e,t),l||(s=P(e,"click",n[8]),l=!0)},p(o,i){i&16&&(e.disabled=o[4])},d(o){o&&S(e),l=!1,s()}}}function Sv(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y,T,N,A,I,M,R,L,z,U,W,F=n[2]?"Запущен":"Остановлен",K,V,Y,G,D,j,B,J,Z,X=n[5]&&pa(n),$=n[2]&&n[3]&&ma(n),te=n[0]&&ga(n);return{c(){e=f("div"),t=f("h2"),t.textContent="Browser Bridge",l=w(),s=f("p"),s.textContent=`Локальный HTTP-сервер для приёма событий от браузерного расширения Verstak Bridge.
- Работает только на 127.0.0.1.`,o=w(),X&&X.c(),i=w(),c=f("div"),u=f("div"),d=f("label"),m=f("input"),g=w(),h=f("span"),h.textContent="Включить Browser Bridge",_=w(),b=f("div"),k=f("label"),E=f("span"),E.textContent="Порт",y=w(),T=f("input"),A=w(),I=f("p"),I.textContent="По умолчанию: 9786. Требуется перезапуск сервера при изменении.",M=w(),R=f("div"),L=f("div"),z=f("span"),z.textContent="Статус",U=w(),W=f("span"),K=H(F),V=w(),$&&$.c(),Y=w(),G=f("div"),D=f("button"),j=H("Сохранить"),B=w(),te&&te.c(),r(t,"class","svelte-13i6m7m"),r(s,"class","section-desc svelte-13i6m7m"),r(m,"type","checkbox"),r(h,"class","toggle-text svelte-13i6m7m"),r(d,"class","toggle-label svelte-13i6m7m"),r(u,"class","form-group svelte-13i6m7m"),r(E,"class","label-text svelte-13i6m7m"),r(T,"type","number"),r(T,"min","1024"),r(T,"max","65535"),T.disabled=N=!n[0],r(T,"class","svelte-13i6m7m"),r(I,"class","field-hint svelte-13i6m7m"),r(b,"class","form-group svelte-13i6m7m"),r(z,"class","info-label svelte-13i6m7m"),r(W,"class","info-value svelte-13i6m7m"),ce(W,"status-ok",n[2]),ce(W,"status-off",!n[2]),r(L,"class","info-row svelte-13i6m7m"),r(R,"class","bridge-status svelte-13i6m7m"),r(c,"class","settings-card svelte-13i6m7m"),r(D,"class","btn btn-primary"),D.disabled=n[4],r(G,"class","actions svelte-13i6m7m"),r(e,"class","settings-section svelte-13i6m7m")},m(ne,de){C(ne,e,de),a(e,t),a(e,l),a(e,s),a(e,o),X&&X.m(e,null),a(e,i),a(e,c),a(c,u),a(u,d),a(d,m),m.checked=n[0],a(d,g),a(d,h),a(c,_),a(c,b),a(b,k),a(k,E),a(k,y),a(k,T),Ie(T,n[1]),a(b,A),a(b,I),a(c,M),a(c,R),a(R,L),a(L,z),a(L,U),a(L,W),a(W,K),a(R,V),$&&$.m(R,null),a(e,Y),a(e,G),a(G,D),a(D,j),a(G,B),te&&te.m(G,null),J||(Z=[P(m,"change",n[10]),P(T,"input",n[11]),P(D,"click",n[7])],J=!0)},p(ne,[de]){ne[5]?X?X.p(ne,de):(X=pa(ne),X.c(),X.m(e,i)):X&&(X.d(1),X=null),de&1&&(m.checked=ne[0]),de&1&&N!==(N=!ne[0])&&(T.disabled=N),de&2&&Hl(T.value)!==ne[1]&&Ie(T,ne[1]),de&4&&F!==(F=ne[2]?"Запущен":"Остановлен")&&Q(K,F),de&4&&ce(W,"status-ok",ne[2]),de&4&&ce(W,"status-off",!ne[2]),ne[2]&&ne[3]?$?$.p(ne,de):($=ma(ne),$.c(),$.m(R,null)):$&&($.d(1),$=null),de&16&&(D.disabled=ne[4]),ne[0]?te?te.p(ne,de):(te=ga(ne),te.c(),te.m(G,null)):te&&(te.d(1),te=null)},i:ie,o:ie,d(ne){ne&&S(e),X&&X.d(),$&&$.d(),te&&te.d(),J=!1,Te(Z)}}}function Cv(n,e,t){let{appConfig:l=null}=e,s=!1,o=9786,i=!1,c=0,u=!1,d="",m="";function g(){if(l&&l.vault&&l.vault.bridge){const y=l.vault.bridge;t(0,s=y.enabled!==!1),t(1,o=y.port||9786)}}async function h(){try{if(window.go&&window.go.main&&window.go.main.App){const y=await window.go.main.App.BridgeInfo();t(2,i=y.running||!1),t(3,c=y.port||0)}}catch{t(2,i=!1),t(3,c=0)}}g(),h();async function _(){t(4,u=!0),t(5,d=""),t(6,m="");try{l||t(9,l={}),l.vault||t(9,l.vault={},l),l.vault.bridge||t(9,l.vault.bridge={},l),t(9,l.vault.bridge.enabled=s,l),t(9,l.vault.bridge.port=o,l),window.go&&window.go.main&&window.go.main.App&&await window.go.main.App.SaveAppConfig(l),t(5,d="saved"),t(6,m="ok"),await h()}catch(y){t(5,d=String(y)),t(6,m="error")}t(4,u=!1)}async function b(){t(4,u=!0),t(5,d=""),t(6,m="");try{window.go&&window.go.main&&window.go.main.App&&await window.go.main.App.RestartBridge(),t(5,d="bridge restarted"),t(6,m="ok"),await h()}catch(y){t(5,d=String(y)),t(6,m="error")}t(4,u=!1)}function k(){s=this.checked,t(0,s)}function E(){o=Hl(this.value),t(1,o)}return n.$$set=y=>{"appConfig"in y&&t(9,l=y.appConfig)},[s,o,i,c,u,d,m,_,b,l,k,E]}class Av extends pt{constructor(e){super(),dt(this,e,Cv,Sv,ft,{appConfig:9})}}const{window:Nv}=Xi;function Rv(n){let e,t;return e=new Av({props:{appConfig:n[2]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p(l,s){const o={};s&4&&(o.appConfig=l[2]),e.$set(o)},i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Iv(n){let e,t;return e=new Tv({}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p:ie,i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Mv(n){let e,t;return e=new yv({props:{onRefresh:n[7]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p:ie,i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Lv(n){let e,t;return e=new _v({}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p:ie,i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Ov(n){let e,t;return e=new gv({}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p:ie,i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Dv(n){let e,t;return e=new pv({props:{onPluginToggle:n[0]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p(l,s){const o={};s&1&&(o.onPluginToggle=l[0]),e.$set(o)},i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Pv(n){let e,t;return e=new sv({props:{onRefresh:n[3]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p:ie,i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function zv(n){let e,t;return e=new xb({props:{onRefresh:n[3]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p:ie,i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Bv(n){let e,t;return e=new Zb({props:{appConfig:n[2],onSave:n[6]}}),{c(){Qe(e.$$.fragment)},m(l,s){Ye(e,l,s),t=!0},p(l,s){const o={};s&4&&(o.appConfig=l[2]),e.$set(o)},i(l){t||(he(e.$$.fragment,l),t=!0)},o(l){we(e.$$.fragment,l),t=!1},d(l){Xe(e,l)}}}function Fv(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E;d=new Kb({props:{activeSection:n[1],onSelect:n[4]}});const y=[Bv,zv,Pv,Dv,Ov,Lv,Mv,Iv,Rv],T=[];function N(A,I){return A[1]==="general"?0:A[1]==="workspace"?1:A[1]==="templates"?2:A[1]==="plugins"?3:A[1]==="files"?4:A[1]==="activity"?5:A[1]==="sync"?6:A[1]==="backup"?7:A[1]==="browserBridge"?8:-1}return~(h=N(n))&&(_=T[h]=y[h](n)),{c(){e=f("button"),t=f("div"),l=f("div"),s=f("h2"),s.textContent=`${v("settings.title")}`,o=w(),i=f("button"),i.innerHTML=' ',c=w(),u=f("div"),Qe(d.$$.fragment),m=w(),g=f("div"),_&&_.c(),r(s,"class","svelte-zf2zsc"),r(i,"class","close-btn svelte-zf2zsc"),r(i,"title",v("settings.close")),r(l,"class","settings-header svelte-zf2zsc"),r(g,"class","settings-content svelte-zf2zsc"),r(u,"class","settings-body svelte-zf2zsc"),r(t,"class","settings-window svelte-zf2zsc"),r(e,"class","settings-overlay svelte-zf2zsc")},m(A,I){C(A,e,I),a(e,t),a(t,l),a(l,s),a(l,o),a(l,i),a(t,c),a(t,u),Ye(d,u,null),a(u,m),a(u,g),~h&&T[h].m(g,null),b=!0,k||(E=[P(Nv,"keydown",n[8]),P(i,"click",n[5]),P(e,"click",$t(n[5]))],k=!0)},p(A,[I]){const M={};I&2&&(M.activeSection=A[1]),d.$set(M);let R=h;h=N(A),h===R?~h&&T[h].p(A,I):(_&&(Tt(),we(T[R],1,1,()=>{T[R]=null}),St()),~h?(_=T[h],_?_.p(A,I):(_=T[h]=y[h](A),_.c()),he(_,1),_.m(g,null)):_=null)},i(A){b||(he(d.$$.fragment,A),he(_),b=!0)},o(A){we(d.$$.fragment,A),we(_),b=!1},d(A){A&&S(e),Xe(d),~h&&T[h].d(),k=!1,Te(E)}}}function ha(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function jv(n,e,t){let{onClose:l=null}=e,{onSyncRefresh:s=null}=e,{onPluginToggle:o=null}=e,{initialSection:i="general"}=e,c=i,u=null;async function d(){try{t(2,u=await ha("GetAppConfig"))}catch{t(2,u=null)}}d();function m(k){t(1,c=k)}function g(){l&&l()}async function h(k){try{await ha("SaveAppConfig",k),t(2,u=k)}catch(E){console.error(E)}}function _(){s&&s()}function b(k){k.key==="Escape"&&g()}return n.$$set=k=>{"onClose"in k&&t(9,l=k.onClose),"onSyncRefresh"in k&&t(10,s=k.onSyncRefresh),"onPluginToggle"in k&&t(0,o=k.onPluginToggle),"initialSection"in k&&t(11,i=k.initialSection)},[o,c,u,d,m,g,h,_,b,l,s,i]}class Uv extends pt{constructor(e){super(),dt(this,e,jv,Fv,ft,{onClose:9,onSyncRefresh:10,onPluginToggle:0,initialSection:11})}}function Hv(n){let e,t,l,s,o,i,c,u;return{c(){e=f("div"),t=f("span"),l=w(),s=f("span"),s.textContent=`${v("sync.status.disabled")}`,o=w(),i=f("button"),i.textContent=`${v("sync.configure")}`,r(t,"class","sync-dot dot-disabled svelte-1rxbx0"),r(s,"class","sync-label svelte-1rxbx0"),r(i,"class","btn btn-xs svelte-1rxbx0"),r(e,"class","sync-status-row svelte-1rxbx0")},m(d,m){C(d,e,m),a(e,t),a(e,l),a(e,s),a(e,o),a(e,i),c||(u=P(i,"click",function(){Pn(n[5])&&n[5].apply(this,arguments)}),c=!0)},p(d,m){n=d},d(d){d&&S(e),c=!1,u()}}}function Wv(n){let e,t,l,s,o,i=n[7](n[0])+"",c,u,d,m,g,h=(n[1]?v("sync.running"):v("sync.run"))+"",_,b,k,E,y,T,N,A=n[0].unpushedOps>0&&_a(n),I=n[2]&&ba(n);return{c(){e=f("div"),t=f("span"),s=w(),o=f("span"),c=H(i),u=w(),A&&A.c(),d=w(),m=f("div"),g=f("button"),_=H(h),b=w(),k=f("button"),k.textContent=`${v("sync.details")}`,E=w(),I&&I.c(),y=ht(),r(t,"class",l="sync-dot "+n[6](n[0])+" svelte-1rxbx0"),r(o,"class","sync-label svelte-1rxbx0"),r(g,"class","btn btn-xs svelte-1rxbx0"),g.disabled=n[1],r(k,"class","btn btn-xs btn-link svelte-1rxbx0"),r(m,"class","sync-actions-row svelte-1rxbx0"),r(e,"class","sync-status-row svelte-1rxbx0")},m(M,R){C(M,e,R),a(e,t),a(e,s),a(e,o),a(o,c),a(e,u),A&&A.m(e,null),a(e,d),a(e,m),a(m,g),a(g,_),a(m,b),a(m,k),C(M,E,R),I&&I.m(M,R),C(M,y,R),T||(N=[P(g,"click",function(){Pn(n[4])&&n[4].apply(this,arguments)}),P(k,"click",function(){Pn(n[5])&&n[5].apply(this,arguments)})],T=!0)},p(M,R){n=M,R&1&&l!==(l="sync-dot "+n[6](n[0])+" svelte-1rxbx0")&&r(t,"class",l),R&1&&i!==(i=n[7](n[0])+"")&&Q(c,i),n[0].unpushedOps>0?A?A.p(n,R):(A=_a(n),A.c(),A.m(e,d)):A&&(A.d(1),A=null),R&2&&h!==(h=(n[1]?v("sync.running"):v("sync.run"))+"")&&Q(_,h),R&2&&(g.disabled=n[1]),n[2]?I?I.p(n,R):(I=ba(n),I.c(),I.m(y.parentNode,y)):I&&(I.d(1),I=null)},d(M){M&&(S(e),S(E),S(y)),A&&A.d(),I&&I.d(M),T=!1,Te(N)}}}function _a(n){let e,t=n[0].unpushedOps+"",l,s,o=v("sync.changes")+"",i;return{c(){e=f("span"),l=H(t),s=w(),i=H(o),r(e,"class","sync-count svelte-1rxbx0")},m(c,u){C(c,e,u),a(e,l),a(e,s),a(e,i)},p(c,u){u&1&&t!==(t=c[0].unpushedOps+"")&&Q(l,t)},d(c){c&&S(e)}}}function ba(n){let e,t,l;return{c(){e=f("div"),t=H(n[2]),r(e,"class",l=yr(n[3]==="warning"?"sync-message sync-message-warning":"sync-message")+" svelte-1rxbx0")},m(s,o){C(s,e,o),a(e,t)},p(s,o){o&4&&Q(t,s[2]),o&8&&l!==(l=yr(s[3]==="warning"?"sync-message sync-message-warning":"sync-message")+" svelte-1rxbx0")&&r(e,"class",l)},d(s){s&&S(e)}}}function Gv(n){let e;function t(o,i){var c;return(c=o[0])!=null&&c.configured?Wv:Hv}let l=t(n),s=l(n);return{c(){e=f("div"),s.c(),r(e,"class","sync-status-widget svelte-1rxbx0")},m(o,i){C(o,e,i),s.m(e,null)},p(o,[i]){l===(l=t(o))&&s?s.p(o,i):(s.d(1),s=l(o),s&&(s.c(),s.m(e,null)))},i:ie,o:ie,d(o){o&&S(e),s.d()}}}function Kv(n,e,t){let{syncStatus:l=null}=e,{syncLoading:s=!1}=e,{syncMessage:o=""}=e,{syncMessageKind:i=""}=e,{onSync:c=null}=e,{onOpenSettings:u=null}=e;function d(g){return!g||!g.configured?"dot-disabled":s?"dot-syncing":g.revoked?"dot-disabled":g.connected?"dot-connected":g.configured?"dot-warning":"dot-disabled"}function m(g){return!g||!g.configured?v("sync.status.disabled"):s?v("sync.status.syncing"):g.revoked?v("sync.status.error"):g.connected?v("sync.status.connected"):v("sync.status.disconnected")}return n.$$set=g=>{"syncStatus"in g&&t(0,l=g.syncStatus),"syncLoading"in g&&t(1,s=g.syncLoading),"syncMessage"in g&&t(2,o=g.syncMessage),"syncMessageKind"in g&&t(3,i=g.syncMessageKind),"onSync"in g&&t(4,c=g.onSync),"onOpenSettings"in g&&t(5,u=g.onOpenSettings)},[l,s,o,i,c,u,d,m]}class Vv extends pt{constructor(e){super(),dt(this,e,Kv,Gv,ft,{syncStatus:0,syncLoading:1,syncMessage:2,syncMessageKind:3,onSync:4,onOpenSettings:5})}}function va(n,e,t){const l=n.slice();return l[10]=e[t],l}function qv(n){let e,t=ve(n[0]),l=[];for(let s=0;s0&&ka(n),R=n[10].ts_start&&wa(n),L=n[10].status!=="pending"&&ya(n),z=n[10].selected_text&&Ea(n),U=n[10].status==="pending"&&Ta(n);return{c(){e=f("div"),t=f("div"),s=H(l),o=w(),i=f("div"),c=f("div"),d=H(u),m=w(),g=f("div"),_=H(h),k=w(),E=f("div"),M&&M.c(),y=w(),R&&R.c(),T=w(),L&&L.c(),N=w(),z&&z.c(),A=w(),U&&U.c(),I=w(),r(t,"class","event-icon svelte-slao4o"),r(c,"class","event-domain svelte-slao4o"),r(g,"class","event-title svelte-slao4o"),r(g,"title",b=n[10].title),r(E,"class","event-meta svelte-slao4o"),r(i,"class","event-body svelte-slao4o"),r(e,"class","event-item svelte-slao4o"),ce(e,"pending",n[10].status==="pending")},m(W,F){C(W,e,F),a(e,t),a(t,s),a(e,o),a(e,i),a(i,c),a(c,d),a(i,m),a(i,g),a(g,_),a(i,k),a(i,E),M&&M.m(E,null),a(E,y),R&&R.m(E,null),a(E,T),L&&L.m(E,null),a(i,N),z&&z.m(i,null),a(e,A),U&&U.m(e,null),a(e,I)},p(W,F){F&1&&l!==(l=Ca(W[10].type)+"")&&Q(s,l),F&1&&u!==(u=(W[10].domain||"?")+"")&&Q(d,u),F&1&&h!==(h=Ws(W[10].title||W[10].url,80)+"")&&Q(_,h),F&1&&b!==(b=W[10].title)&&r(g,"title",b),W[10].active_seconds>0?M?M.p(W,F):(M=ka(W),M.c(),M.m(E,y)):M&&(M.d(1),M=null),W[10].ts_start?R?R.p(W,F):(R=wa(W),R.c(),R.m(E,T)):R&&(R.d(1),R=null),W[10].status!=="pending"?L?L.p(W,F):(L=ya(W),L.c(),L.m(E,null)):L&&(L.d(1),L=null),W[10].selected_text?z?z.p(W,F):(z=Ea(W),z.c(),z.m(i,null)):z&&(z.d(1),z=null),W[10].status==="pending"?U?U.p(W,F):(U=Ta(W),U.c(),U.m(e,I)):U&&(U.d(1),U=null),F&1&&ce(e,"pending",W[10].status==="pending")},d(W){W&&S(e),M&&M.d(),R&&R.d(),L&&L.d(),z&&z.d(),U&&U.d()}}}function Yv(n){let e;return{c(){e=f("p"),e.textContent=`${v("noBrowserEvents","Нет событий браузера")}`,r(e,"class","empty-text svelte-slao4o")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function Xv(n){let e;return{c(){e=f("p"),e.textContent=`${v("loading","Загрузка...")}`,r(e,"class","loading svelte-slao4o")},m(t,l){C(t,e,l)},d(t){t&&S(e)}}}function Jv(n){let e,t,l,s,o,i=n[1]?"⏳":"🔄",c,u,d,m;function g(b,k){return b[0].length===0?Zv:qv}let h=g(n),_=h(n);return{c(){e=f("div"),t=f("div"),l=f("h3"),l.textContent=`${v("browserEvents","События браузера")}`,s=w(),o=f("button"),c=H(i),u=w(),_.c(),r(l,"class","svelte-slao4o"),r(o,"class","refresh-btn svelte-slao4o"),o.disabled=n[1],r(t,"class","browser-header svelte-slao4o"),r(e,"class","browser-events svelte-slao4o")},m(b,k){C(b,e,k),a(e,t),a(t,l),a(t,s),a(t,o),a(o,c),a(e,u),_.m(e,null),d||(m=P(o,"click",function(){Pn(n[5])&&n[5].apply(this,arguments)}),d=!0)},p(b,[k]){n=b,k&2&&i!==(i=n[1]?"⏳":"🔄")&&Q(c,i),k&2&&(o.disabled=n[1]),h===(h=g(n))&&_?_.p(n,k):(_.d(1),_=h(n),_&&(_.c(),_.m(e,null)))},i:ie,o:ie,d(b){b&&S(e),_.d(),d=!1,m()}}}function Ca(n){return n==="page_visit"?"🌐":n==="note_capture"?"📝":n==="screenshot"?"📸":"•"}function Ws(n,e){return n?n.length>e?n.substring(0,e)+"...":n:""}function Qv(n,e,t){let{events:l=[]}=e,{loading:s=!1}=e,{onAccept:o=_=>{}}=e,{onDismiss:i=_=>{}}=e,{onAttach:c=_=>{}}=e,{onRefresh:u=()=>{}}=e,{formatTime:d=_=>""}=e;const m=_=>o(_),g=_=>c(_),h=_=>i(_);return n.$$set=_=>{"events"in _&&t(0,l=_.events),"loading"in _&&t(1,s=_.loading),"onAccept"in _&&t(2,o=_.onAccept),"onDismiss"in _&&t(3,i=_.onDismiss),"onAttach"in _&&t(4,c=_.onAttach),"onRefresh"in _&&t(5,u=_.onRefresh),"formatTime"in _&&t(6,d=_.formatTime)},[l,s,o,i,c,u,d,m,g,h]}class xv extends pt{constructor(e){super(),dt(this,e,Qv,Jv,ft,{events:0,loading:1,onAccept:2,onDismiss:3,onAttach:4,onRefresh:5,formatTime:6})}}function Aa(n,e,t){const l=n.slice();return l[69]=e[t],l}function Na(n,e,t){const l=n.slice();return l[69]=e[t],l}function Ra(n,e,t){const l=n.slice();return l[64]=e[t],l[65]=e,l[66]=t,l}function Ia(n,e,t){const l=n.slice();return l[61]=e[t],l}function Ma(n,e,t){const l=n.slice();return l[61]=e[t],l}function La(n){let e,t;return{c(){e=f("span"),t=H(n[4]),r(e,"class","tab-badge svelte-ii7vwz")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s[0]&16&&Q(t,l[4])},d(l){l&&S(e)}}}function Oa(n){let e,t=n[3].length+"",l;return{c(){e=f("span"),l=H(t),r(e,"class","tab-badge svelte-ii7vwz")},m(s,o){C(s,e,o),a(e,l)},p(s,o){o[0]&8&&t!==(t=s[3].length+"")&&Q(l,t)},d(s){s&&S(e)}}}function Da(n){let e,t=n[15].length+"",l;return{c(){e=f("span"),l=H(t),r(e,"class","tab-badge svelte-ii7vwz")},m(s,o){C(s,e,o),a(e,l)},p(s,o){o[0]&32768&&t!==(t=s[15].length+"")&&Q(l,t)},d(s){s&&S(e)}}}function $v(n){let e,t,l;return t=new xv({props:{events:n[15],loading:n[16],formatTime:n[5],onAccept:n[17],onDismiss:n[18],onAttach:n[19],onRefresh:n[20]}}),{c(){e=f("div"),Qe(t.$$.fragment),r(e,"class","today-tab-content svelte-ii7vwz")},m(s,o){C(s,e,o),Ye(t,e,null),l=!0},p(s,o){const i={};o[0]&32768&&(i.events=s[15]),o[0]&65536&&(i.loading=s[16]),o[0]&32&&(i.formatTime=s[5]),o[0]&131072&&(i.onAccept=s[17]),o[0]&262144&&(i.onDismiss=s[18]),o[0]&524288&&(i.onAttach=s[19]),o[0]&1048576&&(i.onRefresh=s[20]),t.$set(i)},i(s){l||(he(t.$$.fragment,s),l=!0)},o(s){we(t.$$.fragment,s),l=!1},d(s){s&&S(e),Xe(t)}}}function ek(n){let e,t,l,s,o,i,c,u,d,m,g=n[25]==="asc"?"↑":"↓",h,_,b,k;function E(N,A){return N[3].length===0?ik:sk}let y=E(n),T=y(n);return{c(){e=f("div"),t=f("div"),l=f("div"),s=f("button"),s.textContent=`${v("today.sortByTime")}`,o=w(),i=f("button"),i.textContent=`${v("today.sortByName")}`,c=w(),u=f("button"),u.textContent=`${v("today.sortByType")}`,d=w(),m=f("span"),h=H(g),_=w(),T.c(),r(s,"class","sort-btn svelte-ii7vwz"),ce(s,"active",n[24]==="time"),r(i,"class","sort-btn svelte-ii7vwz"),ce(i,"active",n[24]==="name"),r(u,"class","sort-btn svelte-ii7vwz"),ce(u,"active",n[24]==="type"),r(m,"class","sort-dir svelte-ii7vwz"),r(l,"class","sort-controls svelte-ii7vwz"),r(t,"class","tab-controls svelte-ii7vwz"),r(e,"class","today-tab-content svelte-ii7vwz")},m(N,A){C(N,e,A),a(e,t),a(t,l),a(l,s),a(l,o),a(l,i),a(l,c),a(l,u),a(l,d),a(l,m),a(m,h),a(e,_),T.m(e,null),b||(k=[P(s,"click",n[56]),P(i,"click",n[57]),P(u,"click",n[58])],b=!0)},p(N,A){A[0]&16777216&&ce(s,"active",N[24]==="time"),A[0]&16777216&&ce(i,"active",N[24]==="name"),A[0]&16777216&&ce(u,"active",N[24]==="type"),A[0]&33554432&&g!==(g=N[25]==="asc"?"↑":"↓")&&Q(h,g),y===(y=E(N))&&T?T.p(N,A):(T.d(1),T=y(N),T&&(T.c(),T.m(e,null)))},i:ie,o:ie,d(N){N&&S(e),T.d(),b=!1,Te(k)}}}function tk(n){let e,t,l,s,o,i,c,u,d,m,g=n[23]==="asc"?"↑":"↓",h,_,b,k;function E(N,A){return N[2].length===0?rk:ok}let y=E(n),T=y(n);return{c(){e=f("div"),t=f("div"),l=f("div"),s=f("button"),s.textContent=`${v("today.sortByTime")}`,o=w(),i=f("button"),i.textContent=`${v("today.sortByName")}`,c=w(),u=f("button"),u.textContent=`${v("today.sortByType")}`,d=w(),m=f("span"),h=H(g),_=w(),T.c(),r(s,"class","sort-btn svelte-ii7vwz"),ce(s,"active",n[22]==="time"),r(i,"class","sort-btn svelte-ii7vwz"),ce(i,"active",n[22]==="name"),r(u,"class","sort-btn svelte-ii7vwz"),ce(u,"active",n[22]==="type"),r(m,"class","sort-dir svelte-ii7vwz"),r(l,"class","sort-controls svelte-ii7vwz"),r(t,"class","tab-controls svelte-ii7vwz"),r(e,"class","today-tab-content svelte-ii7vwz")},m(N,A){C(N,e,A),a(e,t),a(t,l),a(l,s),a(l,o),a(l,i),a(l,c),a(l,u),a(l,d),a(l,m),a(m,h),a(e,_),T.m(e,null),b||(k=[P(s,"click",n[51]),P(i,"click",n[52]),P(u,"click",n[53])],b=!0)},p(N,A){A[0]&4194304&&ce(s,"active",N[22]==="time"),A[0]&4194304&&ce(i,"active",N[22]==="name"),A[0]&4194304&&ce(u,"active",N[22]==="type"),A[0]&8388608&&g!==(g=N[23]==="asc"?"↑":"↓")&&Q(h,g),y===(y=E(N))&&T?T.p(N,A):(T.d(1),T=y(N),T&&(T.c(),T.m(e,null)))},i:ie,o:ie,d(N){N&&S(e),T.d(),b=!1,Te(k)}}}function nk(n){let e;function t(o,i){return o[0].length===0?ck:ak}let l=t(n),s=l(n);return{c(){e=f("div"),s.c(),r(e,"class","today-tab-content svelte-ii7vwz")},m(o,i){C(o,e,i),s.m(e,null)},p(o,i){l===(l=t(o))&&s?s.p(o,i):(s.d(1),s=l(o),s&&(s.c(),s.m(e,null)))},i:ie,o:ie,d(o){o&&S(e),s.d()}}}function lk(n){let e;function t(o,i){return!o[1]||!o[1].events||o[1].events.length===0?fk:uk}let l=t(n),s=l(n);return{c(){e=f("div"),s.c(),r(e,"class","today-tab-content svelte-ii7vwz")},m(o,i){C(o,e,i),s.m(e,null)},p(o,i){l===(l=t(o))&&s?s.p(o,i):(s.d(1),s=l(o),s&&(s.c(),s.m(e,null)))},i:ie,o:ie,d(o){o&&S(e),s.d()}}}function sk(n){let e,t=ve(Za(n[3],n[24],n[25])),l=[];for(let s=0;s0&&Fa(n);function te(...ee){return n[43](n[64],n[65],n[66],...ee)}function ne(){return n[44](n[64])}function de(){return n[45](n[64])}function Ae(){return n[46](n[64])}function ze(){return n[47](n[64],n[65],n[66])}function qe(...ee){return n[48](n[64],n[65],n[66],...ee)}let Ne=n[64]._expanded&&n[64].events&&n[64].events.length>0&&ja(n);return{c(){e=f("div"),t=f("div"),l=f("div"),s=f("button"),i=H(o),c=w(),u=f("span"),m=H(d),g=w(),h=f("span"),b=H(_),k=w(),y=H(E),$&&$.c(),T=w(),N=f("div"),A=f("span"),R=w(),L=f("input"),U=w(),W=f("span"),W.textContent=`${v("suggest.minutes")}`,F=w(),K=f("button"),K.textContent=`${v("suggest.edit")}`,V=w(),Y=f("button"),Y.textContent=`${v("suggest.apply")}`,G=w(),D=f("button"),D.textContent=`${v("common.delete")}`,j=w(),Ne&&Ne.c(),B=w(),r(s,"class","suggestion-node link-btn svelte-ii7vwz"),r(u,"class","suggestion-summary svelte-ii7vwz"),r(h,"class","suggestion-meta svelte-ii7vwz"),r(l,"class","suggestion-info svelte-ii7vwz"),r(A,"class","suggestion-confidence-dot svelte-ii7vwz"),r(A,"title",I=v("suggest.confidence."+n[64].confidence)),r(A,"aria-label",M=v("suggest.confidence."+n[64].confidence)),ce(A,"low",n[64].confidence==="low"),ce(A,"medium",n[64].confidence==="medium"),ce(A,"high",n[64].confidence==="high"),r(L,"type","number"),r(L,"class","suggestion-min-input svelte-ii7vwz"),L.value=z=n[64].suggestedMin,r(L,"min","1"),r(L,"max","480"),r(W,"class","suggestion-min-label svelte-ii7vwz"),r(K,"class","btn btn-sm svelte-ii7vwz"),r(Y,"class","btn btn-sm btn-primary svelte-ii7vwz"),r(D,"class","btn btn-sm btn-danger svelte-ii7vwz"),r(N,"class","suggestion-actions svelte-ii7vwz"),r(t,"class","suggestion-main svelte-ii7vwz"),r(t,"role","button"),r(t,"tabindex","0"),r(e,"class","suggestion-card svelte-ii7vwz"),ce(e,"expanded",n[64]._expanded)},m(ee,re){C(ee,e,re),a(e,t),a(t,l),a(l,s),a(s,i),a(l,c),a(l,u),a(u,m),a(l,g),a(l,h),a(h,b),a(h,k),a(h,y),$&&$.m(h,null),a(t,T),a(t,N),a(N,A),a(N,R),a(N,L),a(N,U),a(N,W),a(N,F),a(N,K),a(N,V),a(N,Y),a(N,G),a(N,D),a(e,j),Ne&&Ne.m(e,null),a(e,B),J||(Z=[P(s,"click",He(X)),P(L,"change",He(te)),P(K,"click",He(ne)),P(Y,"click",He(de)),P(D,"click",He(Ae)),P(t,"click",ze),P(t,"keydown",qe)],J=!0)},p(ee,re){n=ee,re[0]&1&&o!==(o=n[64].nodeTitle+"")&&Q(i,o),re[0]&1&&d!==(d=n[64].summary+"")&&Q(m,d),re[0]&1&&_!==(_=n[64].suggestedMin+"")&&Q(b,_),n[64].events&&n[64].events.length>0?$?$.p(n,re):($=Fa(n),$.c(),$.m(h,null)):$&&($.d(1),$=null),re[0]&1&&I!==(I=v("suggest.confidence."+n[64].confidence))&&r(A,"title",I),re[0]&1&&M!==(M=v("suggest.confidence."+n[64].confidence))&&r(A,"aria-label",M),re[0]&1&&ce(A,"low",n[64].confidence==="low"),re[0]&1&&ce(A,"medium",n[64].confidence==="medium"),re[0]&1&&ce(A,"high",n[64].confidence==="high"),re[0]&1&&z!==(z=n[64].suggestedMin)&&L.value!==z&&(L.value=z),n[64]._expanded&&n[64].events&&n[64].events.length>0?Ne?Ne.p(n,re):(Ne=ja(n),Ne.c(),Ne.m(e,B)):Ne&&(Ne.d(1),Ne=null),re[0]&1&&ce(e,"expanded",n[64]._expanded)},d(ee){ee&&S(e),$&&$.d(),Ne&&Ne.d(),J=!1,Te(Z)}}}function uk(n){let e,t=ve(n[1].events),l=[];for(let s=0;s ',V=w(),r(t,"class","feed-icon svelte-ii7vwz"),r(u,"class","feed-type svelte-ii7vwz"),r(h,"class","feed-colon svelte-ii7vwz"),r(b,"class","feed-title link-btn svelte-ii7vwz"),r(c,"class","feed-title-line svelte-ii7vwz"),r(I,"class","feed-event-type svelte-ii7vwz"),r(z,"class","feed-time svelte-ii7vwz"),r(T,"class","feed-meta-line svelte-ii7vwz"),r(i,"class","feed-body svelte-ii7vwz"),r(K,"class","feed-nav-btn svelte-ii7vwz"),r(K,"title",v("common.open")),r(e,"class","feed-item svelte-ii7vwz"),r(e,"role","button"),r(e,"tabindex","0")},m(Z,X){C(Z,e,X),a(e,t),a(t,s),a(e,o),a(e,i),a(i,c),a(c,u),a(u,m),a(c,g),a(c,h),a(c,_),a(c,b),a(b,E),a(i,y),a(i,T),D&&D.m(T,null),a(T,A),a(T,I),a(I,R),a(T,L),a(T,z),a(z,W),a(e,F),a(e,K),a(e,V),Y||(G=[P(K,"click",He(j)),P(e,"click",B),P(e,"keydown",J)],Y=!0)},p(Z,X){n=Z,X[0]&2&&l!==(l=qa(n[61].eventType)+"")&&Q(s,l),X[0]&2&&d!==(d=n[28](n[61])+"")&&Q(m,d),X[0]&2&&k!==(k=(n[61].title||"")+"")&&Q(E,k),X[0]&2&&(N=Gs(n[61])),N?D?D.p(n,X):(D=Ka(n),D.c(),D.m(T,A)):D&&(D.d(1),D=null),X[0]&66&&M!==(M=n[6](n[61].eventType)+"")&&Q(R,M),X[0]&34&&U!==(U=n[5](n[61].createdAt)+"")&&Q(W,U)},d(Z){Z&&S(e),D&&D.d(),Y=!1,Te(G)}}}function dk(n){var J;let e,t,l,s=(((J=n[1])==null?void 0:J.date)||"")+"",o,i,c,u,d,m,g=v("today.suggestionsTab")+"",h,_,b,k,E,y,T=v("today.captured")+"",N,A,I,M,R,L,z,U,W,F,K,V=n[4]>0&&La(n),Y=n[3].length>0&&Oa(n),G=n[15].length>0&&Da(n);const D=[lk,nk,tk,ek,$v],j=[];function B(Z,X){return Z[21]==="feed"?0:Z[21]==="suggestions"?1:Z[21]==="inprogress"?2:Z[21]==="captured"?3:Z[21]==="browser"?4:-1}return~(z=B(n))&&(U=j[z]=D[z](n)),{c(){e=f("div"),t=f("div"),l=f("span"),o=H(s),i=w(),c=f("div"),u=f("button"),u.textContent=`${v("today.feed")}`,d=w(),m=f("button"),h=H(g),_=w(),V&&V.c(),b=w(),k=f("button"),k.textContent=`${v("today.inProgress")}`,E=w(),y=f("button"),N=H(T),A=w(),Y&&Y.c(),I=w(),M=f("button"),R=H(`Браузер
- `),G&&G.c(),L=w(),U&&U.c(),r(l,"class","today-date svelte-ii7vwz"),r(t,"class","today-header svelte-ii7vwz"),r(u,"class","today-tab svelte-ii7vwz"),ce(u,"active",n[21]==="feed"),r(m,"class","today-tab svelte-ii7vwz"),ce(m,"active",n[21]==="suggestions"),r(k,"class","today-tab svelte-ii7vwz"),ce(k,"active",n[21]==="inprogress"),r(y,"class","today-tab svelte-ii7vwz"),ce(y,"active",n[21]==="captured"),r(M,"class","today-tab svelte-ii7vwz"),ce(M,"active",n[21]==="browser"),r(c,"class","today-tabs svelte-ii7vwz"),r(e,"class","today-screen svelte-ii7vwz")},m(Z,X){C(Z,e,X),a(e,t),a(t,l),a(l,o),a(e,i),a(e,c),a(c,u),a(c,d),a(c,m),a(m,h),a(m,_),V&&V.m(m,null),a(c,b),a(c,k),a(c,E),a(c,y),a(y,N),a(y,A),Y&&Y.m(y,null),a(c,I),a(c,M),a(M,R),G&&G.m(M,null),a(e,L),~z&&j[z].m(e,null),W=!0,F||(K=[P(u,"click",n[34]),P(m,"click",n[35]),P(k,"click",n[36]),P(y,"click",n[37]),P(M,"click",n[38])],F=!0)},p(Z,X){var te;(!W||X[0]&2)&&s!==(s=(((te=Z[1])==null?void 0:te.date)||"")+"")&&Q(o,s),(!W||X[0]&2097152)&&ce(u,"active",Z[21]==="feed"),Z[4]>0?V?V.p(Z,X):(V=La(Z),V.c(),V.m(m,null)):V&&(V.d(1),V=null),(!W||X[0]&2097152)&&ce(m,"active",Z[21]==="suggestions"),(!W||X[0]&2097152)&&ce(k,"active",Z[21]==="inprogress"),Z[3].length>0?Y?Y.p(Z,X):(Y=Oa(Z),Y.c(),Y.m(y,null)):Y&&(Y.d(1),Y=null),(!W||X[0]&2097152)&&ce(y,"active",Z[21]==="captured"),Z[15].length>0?G?G.p(Z,X):(G=Da(Z),G.c(),G.m(M,null)):G&&(G.d(1),G=null),(!W||X[0]&2097152)&&ce(M,"active",Z[21]==="browser");let $=z;z=B(Z),z===$?~z&&j[z].p(Z,X):(U&&(Tt(),we(j[$],1,1,()=>{j[$]=null}),St()),~z?(U=j[z],U?U.p(Z,X):(U=j[z]=D[z](Z),U.c()),he(U,1),U.m(e,null)):U=null)},i(Z){W||(he(U),W=!0)},o(Z){we(U),W=!1},d(Z){Z&&S(e),V&&V.d(),Y&&Y.d(),G&&G.d(),~z&&j[z].d(),F=!1,Te(K)}}}function qa(n){return n==="note_created"||n==="file_added"||n==="folder_added"||n==="node_created"?"+":n==="file_deleted"||n==="folder_deleted"?"×":n==="file_renamed"||n==="folder_renamed"||n==="node_updated"?"~":n==="file_copied"?"⧉":n==="file_moved"||n==="folder_moved"?"→":n==="note_updated"?"✎":n==="action_created"?"▶":n==="action_done"?"✓":n==="worklog_added"?"⏱":"•"}function Gs(n){const e=[];return n.nodePath&&e.push(n.nodePath),e.length>0?e.join(" → "):""}function Za(n,e,t){const l=[...n];return l.sort((s,o)=>{let i=0;if(e==="name")i=(s.title||"").localeCompare(o.title||"");else if(e==="type"){const c=s.captureKind||s.sourceKind||"",u=o.captureKind||o.sourceKind||"";i=c.localeCompare(u)}else i=(s.capturedAt||s.createdAt||"").localeCompare(o.capturedAt||o.createdAt||"");return t==="asc"?i:-i}),l}function Ya(n){return{text:"📝",url:"🔗",file:"📄",image:"🖼",folder:"📁"}[n]||"📦"}function pk(n,e,t){let{todayDashboard:l=null}=e,{suggestions:s=[]}=e,{inProgressItems:o=[]}=e,{todayCaptures:i=[]}=e,{suggestionCount:c=0}=e,{formatTime:u=x=>""}=e,{eventLabel:d=x=>x}=e,{eventIcon:m=x=>""}=e,{inboxMetaText:g=x=>""}=e,{onOpenNodeById:h=x=>{}}=e,{onOpenActivityEvent:_=x=>{}}=e,{onOpenActivityTarget:b=x=>{}}=e,{onOpenSuggestionWorklog:k=x=>{}}=e,{onAcceptSuggestion:E=x=>{}}=e,{onDeleteSuggestion:y=x=>{}}=e,{onOpenNodeFolder:T=x=>{}}=e,{onOpenInboxArtifact:N=x=>{}}=e,{onOpenTrashNode:A=x=>{}}=e,{browserEvents:I=[]}=e,{browserLoading:M=!1}=e,{onBrowserAccept:R=x=>{}}=e,{onBrowserDismiss:L=x=>{}}=e,{onBrowserAttach:z=x=>{}}=e,{onBrowserRefresh:U=()=>{}}=e,W="feed";function F(x){E(x)}function K(x){y(x)}function V(x){return!x||!x.eventType?"":d(x.eventType)}function Y(x){if(!(!x||!x.eventType)){if(x.eventType==="folder_deleted"){x.targetId&&A(x.targetId);return}if(["file_added","file_deleted","file_renamed","file_copied","file_moved","folder_added","folder_renamed","folder_moved"].includes(x.eventType)){x.targetId?b(x):x.nodeId&&h(x.nodeId);return}if(["note_created","note_updated","note_deleted"].includes(x.eventType)){x.targetType==="note"&&x.targetId?b(x):x.nodeId&&h(x.nodeId);return}if(x.eventType==="worklog_added"){x.nodeId&&h(x.nodeId);return}if(["action_created","action_done"].includes(x.eventType)){x.nodeId&&h(x.nodeId);return}(x.id||x.nodeId)&&_(x)}}function G(x,pe,me){const Re=[...x];return Re.sort((ot,Je)=>{let rt=0;return pe==="name"?rt=(ot.title||"").localeCompare(Je.title||""):pe==="type"?rt=(d(ot.eventType)||"").localeCompare(d(Je.eventType)||""):rt=(ot.createdAt||"").localeCompare(Je.createdAt||""),me==="asc"?rt:-rt}),Re}let D="time",j="desc",B="time",J="desc";const Z=()=>t(21,W="feed"),X=()=>t(21,W="suggestions"),$=()=>t(21,W="inprogress"),te=()=>t(21,W="captured"),ne=()=>t(21,W="browser"),de=x=>Y(x),Ae=x=>Y(x),ze=(x,pe)=>pe.key==="Enter"&&Y(x),qe=x=>h(x.nodeId),Ne=(x,pe,me,Re)=>t(0,pe[me].suggestedMin=parseInt(Re.target.value),s),ee=x=>k(x),re=x=>F(x),Se=x=>K(x),Be=(x,pe,me)=>t(0,pe[me]._expanded=!x._expanded,s),ge=(x,pe,me,Re)=>Re.key==="Enter"&&t(0,pe[me]._expanded=!x._expanded,s),We=x=>b(x),mt=x=>T(x.nodeId),be=()=>{t(22,D="time"),t(23,j=D==="time"&&j==="desc"?"asc":"desc")},it=()=>{t(22,D="name"),t(23,j=D==="name"&&j==="desc"?"asc":"desc")},Oe=()=>{t(22,D="type"),t(23,j=D==="type"&&j==="desc"?"asc":"desc")},Ce=x=>_(x),je=(x,pe)=>pe.key==="Enter"&&_(x),Ue=()=>{t(24,B="time"),t(25,J=B==="time"&&J==="desc"?"asc":"desc")},Pe=()=>{t(24,B="name"),t(25,J=B==="name"&&J==="desc"?"asc":"desc")},Fe=()=>{t(24,B="type"),t(25,J=B==="type"&&J==="desc"?"asc":"desc")},ue=x=>N(x),ye=(x,pe)=>pe.key==="Enter"&&N(x);return n.$$set=x=>{"todayDashboard"in x&&t(1,l=x.todayDashboard),"suggestions"in x&&t(0,s=x.suggestions),"inProgressItems"in x&&t(2,o=x.inProgressItems),"todayCaptures"in x&&t(3,i=x.todayCaptures),"suggestionCount"in x&&t(4,c=x.suggestionCount),"formatTime"in x&&t(5,u=x.formatTime),"eventLabel"in x&&t(6,d=x.eventLabel),"eventIcon"in x&&t(7,m=x.eventIcon),"inboxMetaText"in x&&t(8,g=x.inboxMetaText),"onOpenNodeById"in x&&t(9,h=x.onOpenNodeById),"onOpenActivityEvent"in x&&t(10,_=x.onOpenActivityEvent),"onOpenActivityTarget"in x&&t(11,b=x.onOpenActivityTarget),"onOpenSuggestionWorklog"in x&&t(12,k=x.onOpenSuggestionWorklog),"onAcceptSuggestion"in x&&t(31,E=x.onAcceptSuggestion),"onDeleteSuggestion"in x&&t(32,y=x.onDeleteSuggestion),"onOpenNodeFolder"in x&&t(13,T=x.onOpenNodeFolder),"onOpenInboxArtifact"in x&&t(14,N=x.onOpenInboxArtifact),"onOpenTrashNode"in x&&t(33,A=x.onOpenTrashNode),"browserEvents"in x&&t(15,I=x.browserEvents),"browserLoading"in x&&t(16,M=x.browserLoading),"onBrowserAccept"in x&&t(17,R=x.onBrowserAccept),"onBrowserDismiss"in x&&t(18,L=x.onBrowserDismiss),"onBrowserAttach"in x&&t(19,z=x.onBrowserAttach),"onBrowserRefresh"in x&&t(20,U=x.onBrowserRefresh)},[s,l,o,i,c,u,d,m,g,h,_,b,k,T,N,I,M,R,L,z,U,W,D,j,B,J,F,K,V,Y,G,E,y,A,Z,X,$,te,ne,de,Ae,ze,qe,Ne,ee,re,Se,Be,ge,We,mt,be,it,Oe,Ce,je,Ue,Pe,Fe,ue,ye]}class mk extends pt{constructor(e){super(),dt(this,e,pk,dk,ft,{todayDashboard:1,suggestions:0,inProgressItems:2,todayCaptures:3,suggestionCount:4,formatTime:5,eventLabel:6,eventIcon:7,inboxMetaText:8,onOpenNodeById:9,onOpenActivityEvent:10,onOpenActivityTarget:11,onOpenSuggestionWorklog:12,onAcceptSuggestion:31,onDeleteSuggestion:32,onOpenNodeFolder:13,onOpenInboxArtifact:14,onOpenTrashNode:33,browserEvents:15,browserLoading:16,onBrowserAccept:17,onBrowserDismiss:18,onBrowserAttach:19,onBrowserRefresh:20},null,[-1,-1,-1])}}function gk(n){let e,t,l,s,o=n[3]&&Xa(n);return{c(){e=f("div"),o&&o.c(),t=w(),l=f("iframe"),r(l,"class","plugin-frame svelte-xgfxht"),r(l,"srcdoc",n[1]),r(l,"sandbox","allow-scripts allow-same-origin"),r(l,"title",s=n[0]+" panel"),r(e,"class","plugin-frame-container svelte-xgfxht")},m(i,c){C(i,e,c),o&&o.m(e,null),a(e,t),a(e,l),n[9](l)},p(i,c){i[3]?o?o.p(i,c):(o=Xa(i),o.c(),o.m(e,t)):o&&(o.d(1),o=null),c&2&&r(l,"srcdoc",i[1]),c&1&&s!==(s=i[0]+" panel")&&r(l,"title",s)},d(i){i&&S(e),o&&o.d(),n[9](null)}}}function hk(n){let e,t,l,s,o,i,c;return{c(){e=f("div"),t=f("p"),l=H("Плагин «"),s=H(n[0]),o=H("» активен, но HTML-панель не настроена."),i=w(),c=f("p"),c.innerHTML='Для отображения контента добавьте поле panel в plugin.json.',r(c,"class","hint"),r(e,"class","empty-state svelte-xgfxht")},m(u,d){C(u,e,d),a(e,t),a(t,l),a(t,s),a(t,o),a(e,i),a(e,c)},p(u,d){d&1&&Q(s,u[0])},d(u){u&&S(e)}}}function _k(n){let e;return{c(){e=f("p"),e.textContent="Загрузка…",r(e,"class","loading svelte-xgfxht")},m(t,l){C(t,e,l)},p:ie,d(t){t&&S(e)}}}function Xa(n){let e,t,l;return{c(){e=f("div"),t=H("⚠ "),l=H(n[3]),r(e,"class","plugin-error-bar svelte-xgfxht")},m(s,o){C(s,e,o),a(e,t),a(e,l)},p(s,o){o&8&&Q(l,s[3])},d(s){s&&S(e)}}}function bk(n){let e;function t(o,i){return o[2]?_k:o[1]?gk:hk}let l=t(n),s=l(n);return{c(){e=f("div"),s.c(),r(e,"class","plugin-page svelte-xgfxht")},m(o,i){C(o,e,i),s.m(e,null)},p(o,[i]){l===(l=t(o))&&s?s.p(o,i):(s.d(1),s=l(o),s&&(s.c(),s.m(e,null)))},i:ie,o:ie,d(o){o&&S(e),s.d()}}}function pl(n,...e){try{if(window.go&&window.go.main&&window.go.main.App){const t=window.go.main.App[n];if(typeof t=="function")return t(...e)}}catch(t){console.error("Wails error:",n,t)}return Promise.reject(new Error("Wails not connected: "+n))}function vk(n,e,t){let l,s,o,i,{sectionId:c=""}=e,u="",d=!0,m="",g=null,h=[],_=!1;function b(R){console.log("[CalendarPluginPage] postToIframe: iframeReady="+_+", hasEl="+!!g+", hasCW="+!!(g!=null&&g.contentWindow)),g&&g.contentWindow&&_?(console.log("[CalendarPluginPage] postToIframe: sending msg.type="+R.type),g.contentWindow.postMessage(R,"*")):(console.log("[CalendarPluginPage] postToIframe: queuing msg.type="+R.type),h.push(R))}function k(R){if(!g||!g.contentWindow||R.source!==g.contentWindow)return;const L=R.data;if(!(!L||typeof L!="object")&&!(!L.source||typeof L.source!="string")&&!(!L.action||typeof L.action!="string"))switch(L.action){case"ready":for(_=!0;h.length>0;)g.contentWindow.postMessage(h.shift(),"*");E();break;case"get-events":y(L.data);break;case"create-event":T(L.data);break;case"update-event":N(L.data);break;case"delete-event":A(L.data);break;default:console.log("[CalendarPluginPage] Unknown iframe action:",L.action)}}async function E(){try{console.log("[CalendarPluginPage] loadCalendarData: step 1");const R=new Date,L=R.getFullYear(),z=R.getMonth(),U=new Date(L,z,1).toISOString().slice(0,10)+"T00:00:00",W=new Date(L,z+1,0).toISOString().slice(0,10)+"T23:59:59";console.log("[CalendarPluginPage] loadCalendarData: step 2, start="+U+", end="+W),console.log("[CalendarPluginPage] loadCalendarData: step 3, calling get_events...");const F=pl("CallPluginFunction",s,i+"get_events",JSON.stringify({start:U,end:W}));console.log("[CalendarPluginPage] loadCalendarData: step 4, calling get_categories...");const K=pl("CallPluginFunction",s,i+"get_categories","{}");console.log("[CalendarPluginPage] loadCalendarData: step 5, awaiting Promise.all...");const[V,Y]=await Promise.all([F,K]);console.log("[CalendarPluginPage] loadCalendarData: step 6, got results, eventsRaw="+typeof V+", categoriesRaw="+typeof Y);const G=V?JSON.parse(V):[],D=Y?JSON.parse(Y):[];b({source:"verstak",type:"calendar-data",events:G,categories:D});try{window.go.main.App.WriteDebugLog("[CalendarPluginPage] calendar-data sent to iframe, events.len="+G.length+", categories.len="+((D==null?void 0:D.length)||0)+", typeof events="+typeof G+", typeof eventsRaw="+typeof V+", eventsRaw.length="+V.length+", eventsRaw.substr(0,10)="+String(V).substring(0,10))}catch{}}catch(R){console.error("[CalendarPluginPage] loadCalendarData:",R),console.log("[CalendarPluginPage] error details:",JSON.stringify({message:String(R),stack:R==null?void 0:R.stack})),t(3,m=String(R))}}async function y(R){try{const L=JSON.stringify({start:R.start,end:R.end}),z=await pl("CallPluginFunction",s,i+"get_events",L),U=z?JSON.parse(z):[];b({source:"verstak",type:"calendar-data",events:U})}catch(L){console.error("[CalendarPluginPage] get-events:",L)}}async function T(R){try{const L=JSON.stringify(R),z=await pl("CallPluginFunction",s,i+"create_event",L),U=z?JSON.parse(z):{};b({source:"verstak",type:"event-created",event:U}),E()}catch(L){console.error("[CalendarPluginPage] create-event:",L),b({source:"verstak",type:"error",message:String(L)})}}async function N(R){try{const L=JSON.stringify(R);await pl("CallPluginFunction",s,i+"update_event",L),b({source:"verstak",type:"event-updated",event:R}),E()}catch(L){console.error("[CalendarPluginPage] update-event:",L)}}async function A(R){try{const L=JSON.stringify({id:R.id});await pl("CallPluginFunction",s,i+"delete_event",L),b({source:"verstak",type:"event-deleted",id:R.id}),E()}catch(L){console.error("[CalendarPluginPage] delete-event:",L)}}fs(async()=>{try{t(1,u=await pl("GetPluginPanelHTML",s)||"")}catch(R){t(3,m=String(R))}t(2,d=!1),window.addEventListener("message",k)}),ds(()=>{window.removeEventListener("message",k)});function I(R,L){b({source:"verstak",type:"drop",date:L,data:R})}function M(R){zn[R?"unshift":"push"](()=>{g=R,t(4,g)})}return n.$$set=R=>{"sectionId"in R&&t(5,c=R.sectionId)},n.$$.update=()=>{n.$$.dirty&32&&t(8,l=c.split(":")),n.$$.dirty&256&&t(0,s=l[1]||""),n.$$.dirty&256&&t(7,o=l[2]||"main"),n.$$.dirty&128&&o.charAt(0).toUpperCase()+o.slice(1),n.$$.dirty&1&&(i=s?s+".":"")},[s,u,d,m,g,c,I,o,l,M]}class kk extends pt{constructor(e){super(),dt(this,e,vk,bk,ft,{sectionId:5,handleDrop:6})}get handleDrop(){return this.$$.ctx[6]}}const Cd={й:"q",ц:"w",у:"e",к:"r",е:"t",н:"y",г:"u",ш:"i",щ:"o",з:"p",х:"[",ъ:"]",ф:"a",ы:"s",в:"d",а:"f",п:"g",р:"h",о:"j",л:"k",д:"l",ж:";",э:"'",я:"z",ч:"x",с:"c",м:"v",и:"b",т:"n",ь:"m",ю:",",ё:"`",Й:"Q",Ц:"W",У:"E",К:"R",Е:"T",Н:"Y",Г:"U",Ш:"I",Щ:"O",З:"P",Х:"{",Ъ:"}",Ф:"A",Ы:"S",В:"D",А:"F",П:"G",Р:"H",О:"J",Л:"K",Д:"L",Ж:":",Э:'"',Я:"Z",Ч:"X",С:"C",М:"V",И:"B",Т:"N",Ь:"M",Ю:"<",Ё:"~"},Ad={};for(const[n,e]of Object.entries(Cd))Ad[e]=n;function Nd(n,e){let t="";for(const l of n)t+=e[l]??l;return t}function wk(n){return Nd(n,Cd)}function yk(n){return Nd(n,Ad)}function Rd(n){const e=new Set;e.add(n);const t=wk(n);t!==n&&e.add(t);const l=yk(n);l!==n&&e.add(l);const s=new Set;for(const o of e)s.add(o.toLowerCase());for(const o of s)e.add(o);return Array.from(e)}function Ja(n,e,t){const l=n.slice();return l[25]=e[t],l[27]=t,l}function Qa(n){let e;function t(o,i){return o[3]?Sk:o[1].length===0?Tk:Ek}let l=t(n),s=l(n);return{c(){e=f("div"),s.c(),r(e,"class","global-search-results svelte-1dlr37h")},m(o,i){C(o,e,i),s.m(e,null)},p(o,i){l===(l=t(o))&&s?s.p(o,i):(s.d(1),s=l(o),s&&(s.c(),s.m(e,null)))},d(o){o&&S(e),s.d()}}}function Ek(n){let e,t=ve(n[1]),l=[];for(let s=0;s[]}=e,{typeLabel:s=F=>F||""}=e;const o=Bn();let i="",c=[],u=!1,d=!1,m=0,g,h;function _(F){const K=[],V=s(F.type),Y=Ak(F);return V&&K.push(V),Y&&K.push(Y),K.join(" · ")}async function b(){const F=Id(i);if(F.length<2){t(1,c=[]),t(2,u=!1),t(3,d=!1);return}t(3,d=!0);try{const K=Rd(F),V=new Set,Y=[];for(const j of K)V.has(j)||(V.add(j),Y.push(j));const G=await Promise.all(Y.map(j=>l("Search",j).catch(()=>[]))),D=new Map;for(let j=0;j0)}catch{t(1,c=[]),t(2,u=!1)}finally{t(3,d=!1)}}function k(){clearTimeout(h),h=setTimeout(b,180)}function E(){t(2,u=!1),t(4,m=0)}function y(){t(0,i=""),t(1,c=[]),E()}function T(F){F&&(o("open",F),y(),g==null||g.blur())}function N(){k()}function A(F){if(F.key==="Escape"){F.preventDefault(),y(),g==null||g.blur();return}!u||c.length===0||(F.key==="ArrowDown"?(F.preventDefault(),t(4,m=Math.min(c.length-1,m+1))):F.key==="ArrowUp"?(F.preventDefault(),t(4,m=Math.max(0,m-1))):F.key==="Enter"&&(F.preventDefault(),T(c[m])))}async function I(){await g_(),g==null||g.focus(),g==null||g.select()}function M(F){if((F.ctrlKey||F.metaKey)&&F.key.toLowerCase()==="k"){F.preventDefault(),I();return}F.key==="/"&&!Nk(F.target)&&(F.preventDefault(),I())}fs(()=>{window.addEventListener("keydown",M)}),ds(()=>{window.removeEventListener("keydown",M),clearTimeout(h)});function R(F){zn[F?"unshift":"push"](()=>{g=F,t(5,g)})}function L(){i=this.value,t(0,i)}const z=()=>{c.length>0&&t(2,u=!0)},U=()=>setTimeout(E,160),W=F=>T(F);return n.$$set=F=>{"wailsCall"in F&&t(11,l=F.wailsCall),"typeLabel"in F&&t(12,s=F.typeLabel)},[i,c,u,d,m,g,_,E,T,N,A,l,s,R,L,z,U,W]}class Ik extends pt{constructor(e){super(),dt(this,e,Rk,Ck,ft,{wailsCall:11,typeLabel:12})}}const Mk=n=>({}),tc=n=>({});function nc(n){let e,t;return{c(){e=f("span"),t=H(n[1]),r(e,"class","header-subtitle svelte-7x8q9h")},m(l,s){C(l,e,s),a(e,t)},p(l,s){s&2&&Q(t,l[1])},d(l){l&&S(e)}}}function Lk(n){let e,t,l,s=(n[0]||"")+"",o,i,c,u,d,m,g,h=n[1]&&nc(n);d=new Ik({props:{wailsCall:n[2],typeLabel:n[3]}}),d.$on("open",n[7]);const _=n[6].actions,b=c_(_,n,n[5],tc);return{c(){e=f("header"),t=f("div"),l=f("span"),o=H(s),i=w(),h&&h.c(),c=w(),u=f("div"),Qe(d.$$.fragment),m=w(),b&&b.c(),r(l,"class","header-title svelte-7x8q9h"),ce(l,"placeholder",!n[0]),r(t,"class","header-left svelte-7x8q9h"),r(u,"class","header-right svelte-7x8q9h"),r(e,"class","header svelte-7x8q9h")},m(k,E){C(k,e,E),a(e,t),a(t,l),a(l,o),a(t,i),h&&h.m(t,null),a(e,c),a(e,u),Ye(d,u,null),a(u,m),b&&b.m(u,null),g=!0},p(k,[E]){(!g||E&1)&&s!==(s=(k[0]||"")+"")&&Q(o,s),(!g||E&1)&&ce(l,"placeholder",!k[0]),k[1]?h?h.p(k,E):(h=nc(k),h.c(),h.m(t,null)):h&&(h.d(1),h=null);const y={};E&4&&(y.wailsCall=k[2]),E&8&&(y.typeLabel=k[3]),d.$set(y),b&&b.p&&(!g||E&32)&&f_(b,_,k,k[5],g?u_(_,k[5],E,Mk):d_(k[5]),tc)},i(k){g||(he(d.$$.fragment,k),he(b,k),g=!0)},o(k){we(d.$$.fragment,k),we(b,k),g=!1},d(k){k&&S(e),h&&h.d(),Xe(d),b&&b.d(k)}}}function Ok(n,e,t){let{$$slots:l={},$$scope:s}=e,{title:o=""}=e,{subtitle:i=""}=e,{wailsCall:c=async()=>[]}=e,{typeLabel:u=g=>g||""}=e,{onOpenSearchResult:d=()=>{}}=e;const m=g=>d(g.detail);return n.$$set=g=>{"title"in g&&t(0,o=g.title),"subtitle"in g&&t(1,i=g.subtitle),"wailsCall"in g&&t(2,c=g.wailsCall),"typeLabel"in g&&t(3,u=g.typeLabel),"onOpenSearchResult"in g&&t(4,d=g.onOpenSearchResult),"$$scope"in g&&t(5,s=g.$$scope)},[o,i,c,u,d,s,l,m]}class Dk extends pt{constructor(e){super(),dt(this,e,Ok,Lk,ft,{title:0,subtitle:1,wailsCall:2,typeLabel:3,onOpenSearchResult:4})}}const Pk={open:' ',showInExplorer:' ',delete:' ',restore:' ',purge:' ',move:' ',attach:' ',back:' ',emptyTrash:' ',folder:' '};function Ct(n,e=16){return`${Pk[n]||""} `}function zk(n){let e,t,l,s,o,i,c,u,d,m,g,h,_,b,k,E,y,T,N,A,I,M,R,L,z,U,W,F,K,V,Y,G,D,j,B,J,Z,X;return{c(){e=f("div"),t=f("div"),l=f("div"),s=f("button"),s.innerHTML='B ',o=w(),i=f("button"),i.innerHTML='I ',c=w(),u=f("button"),u.innerHTML='H ',d=w(),m=f("div"),g=w(),h=f("div"),_=f("button"),_.innerHTML=' ',b=w(),k=f("button"),k.innerHTML=' ',E=w(),y=f("button"),T=f("span"),T.textContent=">",N=w(),A=f("div"),I=w(),M=f("div"),R=f("button"),R.innerHTML=' ',L=w(),z=f("button"),z.innerHTML='1. ',U=w(),W=f("button"),W.innerHTML=' ',F=w(),K=f("button"),K.innerHTML='" ',V=w(),Y=f("div"),G=w(),D=f("div"),j=f("button"),j.innerHTML=' ',B=w(),J=f("textarea"),r(s,"type","button"),r(s,"class","md-toolbar-btn svelte-1etjgc1"),r(s,"title",v("note.toolbar.bold")),r(s,"aria-label",v("note.toolbar.bold")),r(i,"type","button"),r(i,"class","md-toolbar-btn svelte-1etjgc1"),r(i,"title",v("note.toolbar.italic")),r(i,"aria-label",v("note.toolbar.italic")),r(u,"type","button"),r(u,"class","md-toolbar-btn svelte-1etjgc1"),r(u,"title",v("note.toolbar.heading")),r(u,"aria-label",v("note.toolbar.heading")),r(l,"class","md-toolbar-group svelte-1etjgc1"),r(m,"class","md-toolbar-sep svelte-1etjgc1"),r(_,"type","button"),r(_,"class","md-toolbar-btn svelte-1etjgc1"),r(_,"title",v("note.toolbar.link")),r(_,"aria-label",v("note.toolbar.link")),r(k,"type","button"),r(k,"class","md-toolbar-btn svelte-1etjgc1"),r(k,"title",v("note.toolbar.code")),r(k,"aria-label",v("note.toolbar.code")),r(T,"class","md-btn-label md-btn-sm svelte-1etjgc1"),r(y,"type","button"),r(y,"class","md-toolbar-btn svelte-1etjgc1"),r(y,"title",v("note.toolbar.codeBlock")),r(y,"aria-label",v("note.toolbar.codeBlock")),r(h,"class","md-toolbar-group svelte-1etjgc1"),r(A,"class","md-toolbar-sep svelte-1etjgc1"),r(R,"type","button"),r(R,"class","md-toolbar-btn svelte-1etjgc1"),r(R,"title",v("note.toolbar.bulletList")),r(R,"aria-label",v("note.toolbar.bulletList")),r(z,"type","button"),r(z,"class","md-toolbar-btn svelte-1etjgc1"),r(z,"title",v("note.toolbar.numberedList")),r(z,"aria-label",v("note.toolbar.numberedList")),r(W,"type","button"),r(W,"class","md-toolbar-btn svelte-1etjgc1"),r(W,"title",v("note.toolbar.checkbox")),r(W,"aria-label",v("note.toolbar.checkbox")),r(K,"type","button"),r(K,"class","md-toolbar-btn svelte-1etjgc1"),r(K,"title",v("note.toolbar.quote")),r(K,"aria-label",v("note.toolbar.quote")),r(M,"class","md-toolbar-group svelte-1etjgc1"),r(Y,"class","md-toolbar-sep svelte-1etjgc1"),r(j,"type","button"),r(j,"class","md-toolbar-btn md-toolbar-btn--internal svelte-1etjgc1"),r(j,"title",v("note.toolbar.internalLink")),r(j,"aria-label",v("note.toolbar.internalLink")),r(D,"class","md-toolbar-group svelte-1etjgc1"),r(t,"class","md-toolbar svelte-1etjgc1"),r(t,"role","toolbar"),r(t,"aria-label","Markdown formatting"),r(J,"class","md-textarea svelte-1etjgc1"),r(J,"placeholder",n[2]),r(J,"spellcheck","true"),r(e,"class","md-editor svelte-1etjgc1"),ce(e,"mode-edit",n[1]==="edit"||n[1]==="split")},m($,te){C($,e,te),a(e,t),a(t,l),a(l,s),a(l,o),a(l,i),a(l,c),a(l,u),a(t,d),a(t,m),a(t,g),a(t,h),a(h,_),a(h,b),a(h,k),a(h,E),a(h,y),a(y,T),a(t,N),a(t,A),a(t,I),a(t,M),a(M,R),a(M,L),a(M,z),a(M,U),a(M,W),a(M,F),a(M,K),a(t,V),a(t,Y),a(t,G),a(t,D),a(D,j),a(e,B),a(e,J),Ie(J,n[0]),n[19](J),Z||(X=[P(s,"click",n[4]),P(i,"click",n[5]),P(u,"click",n[8]),P(_,"click",n[7]),P(k,"click",n[6]),P(y,"click",n[13]),P(R,"click",n[10]),P(z,"click",n[11]),P(W,"click",n[12]),P(K,"click",n[9]),P(j,"click",n[14]),P(J,"input",n[18]),P(J,"input",n[15]),P(J,"keydown",n[16])],Z=!0)},p($,[te]){te&4&&r(J,"placeholder",$[2]),te&1&&Ie(J,$[0]),te&2&&ce(e,"mode-edit",$[1]==="edit"||$[1]==="split")},i:ie,o:ie,d($){$&&S(e),n[19](null),Z=!1,Te(X)}}}function Bk(n,e,t){let{content:l=""}=e,{viewMode:s="edit"}=e,{placeholder:o=""}=e;const i=Bn();let c;function u(U){const W=c;if(!W)return;const F=W.selectionStart,K=W.selectionEnd,V=l.substring(0,F),Y=l.substring(K),G=V+U+Y;t(0,l=G),i("content-change",{content:G}),requestAnimationFrame(()=>{W.focus(),W.selectionStart=W.selectionEnd=F+U.length})}function d(U,W="",F=""){const K=c;if(!K)return;const V=K.selectionStart,Y=K.selectionEnd,G=l.substring(V,Y),j=U+(G||F)+W,B=l.substring(0,V)+j+l.substring(Y);t(0,l=B),i("content-change",{content:B}),requestAnimationFrame(()=>{K.focus(),G?(K.selectionStart=V+U.length,K.selectionEnd=V+U.length+G.length):(K.selectionStart=V+U.length,K.selectionEnd=V+U.length+F.length)})}function m(U){const W=c;if(!W)return;const F=W.selectionStart,K=W.selectionEnd;let V=F;for(;V>0&&l[V-1]!==`
-`;)V--;let Y=K;for(;YZ.startsWith(U)?Z:U+Z).join(`
-`),J=l.substring(0,V)+B+l.substring(Y);t(0,l=J),i("content-change",{content:J}),requestAnimationFrame(()=>{W.focus(),W.selectionStart=V,W.selectionEnd=V+B.length})}function g(){d("**","**","bold text")}function h(){d("*","*","italic text")}function _(){d("`","`","code")}function b(){i("insert-link")}function k(){m("## ")}function E(){m("> ")}function y(){m("- ")}function T(){const U=c;if(!U)return;let F=U.selectionStart;for(;F>0&&l[F-1]!==`
-`;)F--;let K=U.selectionEnd;for(;K{const Z=J.trim();return J.replace(/^\s*\d+\.\s*/,""),`${G++}. ${Z||"item"}`}).join(`
-`),B=l.substring(0,F)+j+l.substring(K);t(0,l=B),i("content-change",{content:B}),requestAnimationFrame(()=>{U.focus(),U.selectionStart=F,U.selectionEnd=F+j.length})}function N(){m("- [ ] ")}function A(){const U=c;if(!U)return;const W=U.selectionStart,F=U.selectionEnd,K=l.substring(W,F),V=K?"```\n"+K+"\n```":"```\ncode here\n```",Y=l.substring(0,W)+V+l.substring(F);t(0,l=Y),i("content-change",{content:Y}),requestAnimationFrame(()=>{U.focus(),K?(U.selectionStart=W+4,U.selectionEnd=W+4+K.length):(U.selectionStart=W+4,U.selectionEnd=W+4+9)})}function I(){i("insert-internal-link")}function M(U){t(0,l=U.target.value),i("content-change",{content:l})}function R(U){if((U.ctrlKey||U.metaKey)&&U.key==="s"){U.preventDefault(),i("save");return}if(U.key==="Tab"){U.preventDefault();const W=U.target,F=W.selectionStart,K=W.selectionEnd;if(U.shiftKey){let V=F;for(;V>0&&l[V-1]!==`
-`;)V--;let Y=K;for(;Y{W.focus(),W.selectionStart=V,W.selectionEnd=V+D.length})}else if(F===K){const V=l.substring(0,F)+" "+l.substring(K);t(0,l=V),i("content-change",{content:V}),requestAnimationFrame(()=>{W.focus(),W.selectionStart=W.selectionEnd=F+2})}else{let V=F;for(;V>0&&l[V-1]!==`
-`;)V--;let Y=K;for(;Y{W.focus(),W.selectionStart=V,W.selectionEnd=V+D.length})}}}function L(){l=this.value,t(0,l)}function z(U){zn[U?"unshift":"push"](()=>{c=U,t(3,c)})}return n.$$set=U=>{"content"in U&&t(0,l=U.content),"viewMode"in U&&t(1,s=U.viewMode),"placeholder"in U&&t(2,o=U.placeholder)},[l,s,o,c,g,h,_,b,k,E,y,T,N,A,I,M,R,u,L,z]}class Md extends pt{constructor(e){super(),dt(this,e,Bk,zk,ft,{content:0,viewMode:1,placeholder:2,insertText:17})}get insertText(){return this.$$.ctx[17]}}function $i(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var wl=$i();function Ld(n){wl=n}var gl={exec:()=>null};function Ol(n){let e=[];return t=>{let l=Math.max(0,Math.min(3,t-1)),s=e[l];return s||(s=n(l),e[l]=s),s}}function st(n,e=""){let t=typeof n=="string"?n:n.source,l={replace:(s,o)=>{let i=typeof o=="string"?o:o.source;return i=i.replace(Vt.caret,"$1"),t=t.replace(s,i),l},getRegex:()=>new RegExp(t,e)};return l}var Fk=((n="")=>{try{return!!new RegExp("(?<=1)(?/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:n=>new RegExp(`^( {0,3}${n})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:Ol(n=>new RegExp(`^ {0,${n}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:Ol(n=>new RegExp(`^ {0,${n}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:Ol(n=>new RegExp(`^ {0,${n}}(?:\`\`\`|~~~)`)),headingBeginRegex:Ol(n=>new RegExp(`^ {0,${n}}#`)),htmlBeginRegex:Ol(n=>new RegExp(`^ {0,${n}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:Ol(n=>new RegExp(`^ {0,${n}}>`))},jk=/^(?:[ \t]*(?:\n|$))+/,Uk=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Hk=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ps=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Wk=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,eo=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Od=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Dd=st(Od).replace(/bull/g,eo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Gk=st(Od).replace(/bull/g,eo).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),to=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Kk=/^[^\n]+/,no=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Vk=st(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",no).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),qk=st(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,eo).getRegex(),Qs="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",lo=/|$))/,Zk=st("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",lo).replace("tag",Qs).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Pd=st(to).replace("hr",ps).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Qs).getRegex(),Yk=st(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Pd).getRegex(),so={blockquote:Yk,code:Uk,def:Vk,fences:Hk,heading:Wk,hr:ps,html:Zk,lheading:Dd,list:qk,newline:jk,paragraph:Pd,table:gl,text:Kk},lc=st("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ps).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Qs).getRegex(),Xk={...so,lheading:Gk,table:lc,paragraph:st(to).replace("hr",ps).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",lc).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",Qs).getRegex()},Jk={...so,html:st(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)| \\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",lo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:gl,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:st(to).replace("hr",ps).replace("heading",` *#{1,6} *[^
-]`).replace("lheading",Dd).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Qk=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,xk=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,zd=/^( {2,}|\\)\n(?!\s*$)/,$k=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\`+)[^`]+\k (?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",Fk?"(?`+)[^`]+\k(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Fd=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,s0=st(Fd,"u").replace(/punct/g,Wl).getRegex(),i0=st(Fd,"u").replace(/punct/g,Bd).getRegex(),jd="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",o0=st(jd,"gu").replace(/notPunctSpace/g,io).replace(/punctSpace/g,xs).replace(/punct/g,Wl).getRegex(),r0=st(jd,"gu").replace(/notPunctSpace/g,n0).replace(/punctSpace/g,t0).replace(/punct/g,Bd).getRegex(),a0=st("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,io).replace(/punctSpace/g,xs).replace(/punct/g,Wl).getRegex(),c0=st(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Wl).getRegex(),u0="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",f0=st(u0,"gu").replace(/notPunctSpace/g,io).replace(/punctSpace/g,xs).replace(/punct/g,Wl).getRegex(),d0=st(/\\(punct)/,"gu").replace(/punct/g,Wl).getRegex(),p0=st(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),m0=st(lo).replace("(?:-->|$)","-->").getRegex(),g0=st("^comment|^[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",m0).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ks=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,h0=st(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",Ks).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Ud=st(/^!?\[(label)\]\[(ref)\]/).replace("label",Ks).replace("ref",no).getRegex(),Hd=st(/^!?\[(ref)\](?:\[\])?/).replace("ref",no).getRegex(),_0=st("reflink|nolink(?!\\()","g").replace("reflink",Ud).replace("nolink",Hd).getRegex(),sc=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,oo={_backpedal:gl,anyPunctuation:d0,autolink:p0,blockSkip:l0,br:zd,code:xk,del:gl,delLDelim:gl,delRDelim:gl,emStrongLDelim:s0,emStrongRDelimAst:o0,emStrongRDelimUnd:a0,escape:Qk,link:h0,nolink:Hd,punctuation:e0,reflink:Ud,reflinkSearch:_0,tag:g0,text:$k,url:gl},b0={...oo,link:st(/^!?\[(label)\]\((.*?)\)/).replace("label",Ks).getRegex(),reflink:st(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ks).getRegex()},Ki={...oo,emStrongRDelimAst:r0,emStrongLDelim:i0,delLDelim:c0,delRDelim:f0,url:st(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",sc).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:st(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ic=n=>k0[n];function Sn(n,e){if(e){if(Vt.escapeTest.test(n))return n.replace(Vt.escapeReplace,ic)}else if(Vt.escapeTestNoEncode.test(n))return n.replace(Vt.escapeReplaceNoEncode,ic);return n}function oc(n){try{n=encodeURI(n).replace(Vt.percentDecode,"%")}catch{return null}return n}function rc(n,e){var o;let t=n.replace(Vt.findPipe,(i,c,u)=>{let d=!1,m=c;for(;--m>=0&&u[m]==="\\";)d=!d;return d?"|":" |"}),l=t.split(Vt.splitPipe),s=0;if(l[0].trim()||l.shift(),l.length>0&&!((o=l.at(-1))!=null&&o.trim())&&l.pop(),e)if(l.length>e)l.splice(e);else for(;l.length=0&&Vt.blankLine.test(e[t]);)t--;return e.length-t<=2?n:e.slice(0,t+1).join(`
-`)}function w0(n,e){if(n.indexOf(e[1])===-1)return-1;let t=0;for(let l=0;l0?-2:-1}function y0(n,e=0){let t=e,l="";for(let s of n)if(s===" "){let o=4-t%4;l+=" ".repeat(o),t+=o}else l+=s,t++;return l}function cc(n,e,t,l,s){let o=e.href,i=e.title||null,c=n[1].replace(s.other.outputLinkReplace,"$1");l.state.inLink=!0;let u={type:n[0].charAt(0)==="!"?"image":"link",raw:t,href:o,title:i,text:c,tokens:l.inlineTokens(c)};return l.state.inLink=!1,u}function E0(n,e,t){let l=n.match(t.other.indentCodeCompensation);if(l===null)return e;let s=l[1];return e.split(`
-`).map(o=>{let i=o.match(t.other.beginningSpace);if(i===null)return o;let[c]=i;return c.length>=s.length?o.slice(s.length):o}).join(`
-`)}var Vs=class{constructor(n){et(this,"options");et(this,"rules");et(this,"lexer");this.options=n||wl}space(n){let e=this.rules.block.newline.exec(n);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(n){let e=this.rules.block.code.exec(n);if(e){let t=this.options.pedantic?e[0]:ac(e[0]),l=t.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t,codeBlockStyle:"indented",text:l}}}fences(n){let e=this.rules.block.fences.exec(n);if(e){let t=e[0],l=E0(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:l}}}heading(n){let e=this.rules.block.heading.exec(n);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let l=Kn(t,"#");(this.options.pedantic||!l||this.rules.other.endingSpaceChar.test(l))&&(t=l.trim())}return{type:"heading",raw:Kn(e[0],`
-`),depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(n){let e=this.rules.block.hr.exec(n);if(e)return{type:"hr",raw:Kn(e[0],`
-`)}}blockquote(n){let e=this.rules.block.blockquote.exec(n);if(e){let t=Kn(e[0],`
-`).split(`
-`),l="",s="",o=[];for(;t.length>0;){let i=!1,c=[],u;for(u=0;u1,s={type:"list",raw:"",ordered:l,start:l?+t.slice(0,-1):"",loose:!1,items:[]};t=l?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=l?t:"[*+-]");let o=this.rules.other.listItemRegex(t),i=!1;for(;n;){let u=!1,d="",m="";if(!(e=o.exec(n))||this.rules.block.hr.test(n))break;d=e[0],n=n.substring(d.length);let g=y0(e[2].split(`
-`,1)[0],e[1].length),h=n.split(`
-`,1)[0],_=!g.trim(),b=0;if(this.options.pedantic?(b=2,m=g.trimStart()):_?b=e[1].length+1:(b=g.search(this.rules.other.nonSpaceChar),b=b>4?1:b,m=g.slice(b),b+=e[1].length),_&&this.rules.other.blankLine.test(h)&&(d+=h+`
-`,n=n.substring(h.length+1),u=!0),!u){let k=this.rules.other.nextBulletRegex(b),E=this.rules.other.hrRegex(b),y=this.rules.other.fencesBeginRegex(b),T=this.rules.other.headingBeginRegex(b),N=this.rules.other.htmlBeginRegex(b),A=this.rules.other.blockquoteBeginRegex(b);for(;n;){let I=n.split(`
-`,1)[0],M;if(h=I,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),M=h):M=h.replace(this.rules.other.tabCharGlobal," "),y.test(h)||T.test(h)||N.test(h)||A.test(h)||k.test(h)||E.test(h))break;if(M.search(this.rules.other.nonSpaceChar)>=b||!h.trim())m+=`
-`+M.slice(b);else{if(_||g.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||y.test(g)||T.test(g)||E.test(g))break;m+=`
-`+h}_=!h.trim(),d+=I+`
-`,n=n.substring(I.length+1),g=M.slice(b)}}s.loose||(i?s.loose=!0:this.rules.other.doubleBlankLine.test(d)&&(i=!0)),s.items.push({type:"list_item",raw:d,task:!!this.options.gfm&&this.rules.other.listIsTask.test(m),loose:!1,text:m,tokens:[]}),s.raw+=d}let c=s.items.at(-1);if(c)c.raw=c.raw.trimEnd(),c.text=c.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let u of s.items){this.lexer.state.top=!1,u.tokens=this.lexer.blockTokens(u.text,[]);let d=u.tokens[0];if(u.task&&((d==null?void 0:d.type)==="text"||(d==null?void 0:d.type)==="paragraph")){u.text=u.text.replace(this.rules.other.listReplaceTask,""),d.raw=d.raw.replace(this.rules.other.listReplaceTask,""),d.text=d.text.replace(this.rules.other.listReplaceTask,"");for(let g=this.lexer.inlineQueue.length-1;g>=0;g--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[g].src)){this.lexer.inlineQueue[g].src=this.lexer.inlineQueue[g].src.replace(this.rules.other.listReplaceTask,"");break}let m=this.rules.other.listTaskCheckbox.exec(u.raw);if(m){let g={type:"checkbox",raw:m[0]+" ",checked:m[0]!=="[ ]"};u.checked=g.checked,s.loose?u.tokens[0]&&["paragraph","text"].includes(u.tokens[0].type)&&"tokens"in u.tokens[0]&&u.tokens[0].tokens?(u.tokens[0].raw=g.raw+u.tokens[0].raw,u.tokens[0].text=g.raw+u.tokens[0].text,u.tokens[0].tokens.unshift(g)):u.tokens.unshift({type:"paragraph",raw:g.raw,text:g.raw,tokens:[g]}):u.tokens.unshift(g)}}else u.task&&(u.task=!1);if(!s.loose){let m=u.tokens.filter(h=>h.type==="space"),g=m.length>0&&m.some(h=>this.rules.other.anyLine.test(h.raw));s.loose=g}}if(s.loose)for(let u of s.items){u.loose=!0;for(let d of u.tokens)d.type==="text"&&(d.type="paragraph")}return s}}html(n){let e=this.rules.block.html.exec(n);if(e){let t=ac(e[0]);return{type:"html",block:!0,raw:t,pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:t}}}def(n){let e=this.rules.block.def.exec(n);if(e){let t=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),l=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",s=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:t,raw:Kn(e[0],`
-`),href:l,title:s}}}table(n){var i;let e=this.rules.block.table.exec(n);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let t=rc(e[1]),l=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),s=(i=e[3])!=null&&i.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
-`):[],o={type:"table",raw:Kn(e[0],`
-`),header:[],align:[],rows:[]};if(t.length===l.length){for(let c of l)this.rules.other.tableAlignRight.test(c)?o.align.push("right"):this.rules.other.tableAlignCenter.test(c)?o.align.push("center"):this.rules.other.tableAlignLeft.test(c)?o.align.push("left"):o.align.push(null);for(let c=0;c({text:u,tokens:this.lexer.inline(u),header:!1,align:o.align[d]})));return o}}lheading(n){let e=this.rules.block.lheading.exec(n);if(e){let t=e[1].trim();return{type:"heading",raw:Kn(e[0],`
-`),depth:e[2].charAt(0)==="="?1:2,text:t,tokens:this.lexer.inline(t)}}}paragraph(n){let e=this.rules.block.paragraph.exec(n);if(e){let t=e[1].charAt(e[1].length-1)===`
-`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(n){let e=this.rules.block.text.exec(n);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(n){let e=this.rules.inline.escape.exec(n);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(n){let e=this.rules.inline.tag.exec(n);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(n){let e=this.rules.inline.link.exec(n);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let o=Kn(t.slice(0,-1),"\\");if((t.length-o.length)%2===0)return}else{let o=w0(e[2],"()");if(o===-2)return;if(o>-1){let i=(e[0].indexOf("!")===0?5:4)+e[1].length+o;e[2]=e[2].substring(0,o),e[0]=e[0].substring(0,i).trim(),e[3]=""}}let l=e[2],s="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(l);o&&(l=o[1],s=o[3])}else s=e[3]?e[3].slice(1,-1):"";return l=l.trim(),this.rules.other.startAngleBracket.test(l)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?l=l.slice(1):l=l.slice(1,-1)),cc(e,{href:l&&l.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(n,e){let t;if((t=this.rules.inline.reflink.exec(n))||(t=this.rules.inline.nolink.exec(n))){let l=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[l.toLowerCase()];if(!s){let o=t[0].charAt(0);return{type:"text",raw:o,text:o}}return cc(t,s,t[0],this.lexer,this.rules)}}emStrong(n,e,t=""){let l=this.rules.inline.emStrongLDelim.exec(n);if(!(!l||!l[1]&&!l[2]&&!l[3]&&!l[4]||l[4]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(l[1]||l[3])||!t||this.rules.inline.punctuation.exec(t))){let s=[...l[0]].length-1,o,i,c=s,u=0,d=l[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,e=e.slice(-1*n.length+s);(l=d.exec(e))!==null;){if(o=l[1]||l[2]||l[3]||l[4]||l[5]||l[6],!o)continue;if(i=[...o].length,l[3]||l[4]){c+=i;continue}else if((l[5]||l[6])&&s%3&&!((s+i)%3)){u+=i;continue}if(c-=i,c>0)continue;i=Math.min(i,i+c+u);let m=[...l[0]][0].length,g=n.slice(0,s+l.index+m+i);if(Math.min(s,i)%2){let _=g.slice(1,-1);return{type:"em",raw:g,text:_,tokens:this.lexer.inlineTokens(_)}}let h=g.slice(2,-2);return{type:"strong",raw:g,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(n){let e=this.rules.inline.code.exec(n);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),l=this.rules.other.nonSpaceChar.test(t),s=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return l&&s&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(n){let e=this.rules.inline.br.exec(n);if(e)return{type:"br",raw:e[0]}}del(n,e,t=""){let l=this.rules.inline.delLDelim.exec(n);if(l&&(!l[1]||!t||this.rules.inline.punctuation.exec(t))){let s=[...l[0]].length-1,o,i,c=s,u=this.rules.inline.delRDelim;for(u.lastIndex=0,e=e.slice(-1*n.length+s);(l=u.exec(e))!==null;){if(o=l[1]||l[2]||l[3]||l[4]||l[5]||l[6],!o||(i=[...o].length,i!==s))continue;if(l[3]||l[4]){c+=i;continue}if(c-=i,c>0)continue;i=Math.min(i,i+c);let d=[...l[0]][0].length,m=n.slice(0,s+l.index+d+i),g=m.slice(s,-s);return{type:"del",raw:m,text:g,tokens:this.lexer.inlineTokens(g)}}}}autolink(n){let e=this.rules.inline.autolink.exec(n);if(e){let t,l;return e[2]==="@"?(t=e[1],l="mailto:"+t):(t=e[1],l=t),{type:"link",raw:e[0],text:t,href:l,tokens:[{type:"text",raw:t,text:t}]}}}url(n){var t;let e;if(e=this.rules.inline.url.exec(n)){let l,s;if(e[2]==="@")l=e[0],s="mailto:"+l;else{let o;do o=e[0],e[0]=((t=this.rules.inline._backpedal.exec(e[0]))==null?void 0:t[0])??"";while(o!==e[0]);l=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:l,href:s,tokens:[{type:"text",raw:l,text:l}]}}}inlineText(n){let e=this.rules.inline.text.exec(n);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},mn=class Vi{constructor(e){et(this,"tokens");et(this,"options");et(this,"state");et(this,"inlineQueue");et(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||wl,this.options.tokenizer=this.options.tokenizer||new Vs,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:Vt,block:Ms.normal,inline:xl.normal};this.options.pedantic?(t.block=Ms.pedantic,t.inline=xl.pedantic):this.options.gfm&&(t.block=Ms.gfm,this.options.breaks?t.inline=xl.breaks:t.inline=xl.gfm),this.tokenizer.rules=t}static get rules(){return{block:Ms,inline:xl}}static lex(e,t){return new Vi(t).lex(e)}static lexInline(e,t){return new Vi(t).inlineTokens(e)}lex(e){e=e.replace(Vt.carriageReturn,`
-`),this.blockTokens(e,this.tokens);for(let t=0;t(u=m.call({lexer:this},e,t))?(e=e.substring(u.raw.length),t.push(u),!0):!1))continue;if(u=this.tokenizer.space(e)){e=e.substring(u.raw.length);let m=t.at(-1);u.raw.length===1&&m!==void 0?m.raw+=`
-`:t.push(u);continue}if(u=this.tokenizer.code(e)){e=e.substring(u.raw.length);let m=t.at(-1);(m==null?void 0:m.type)==="paragraph"||(m==null?void 0:m.type)==="text"?(m.raw+=(m.raw.endsWith(`
-`)?"":`
-`)+u.raw,m.text+=`
-`+u.text,this.inlineQueue.at(-1).src=m.text):t.push(u);continue}if(u=this.tokenizer.fences(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.heading(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.hr(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.blockquote(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.list(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.html(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.def(e)){e=e.substring(u.raw.length);let m=t.at(-1);(m==null?void 0:m.type)==="paragraph"||(m==null?void 0:m.type)==="text"?(m.raw+=(m.raw.endsWith(`
-`)?"":`
-`)+u.raw,m.text+=`
-`+u.raw,this.inlineQueue.at(-1).src=m.text):this.tokens.links[u.tag]||(this.tokens.links[u.tag]={href:u.href,title:u.title},t.push(u));continue}if(u=this.tokenizer.table(e)){e=e.substring(u.raw.length),t.push(u);continue}if(u=this.tokenizer.lheading(e)){e=e.substring(u.raw.length),t.push(u);continue}let d=e;if((c=this.options.extensions)!=null&&c.startBlock){let m=1/0,g=e.slice(1),h;this.options.extensions.startBlock.forEach(_=>{h=_.call({lexer:this},g),typeof h=="number"&&h>=0&&(m=Math.min(m,h))}),m<1/0&&m>=0&&(d=e.substring(0,m+1))}if(this.state.top&&(u=this.tokenizer.paragraph(d))){let m=t.at(-1);l&&(m==null?void 0:m.type)==="paragraph"?(m.raw+=(m.raw.endsWith(`
-`)?"":`
-`)+u.raw,m.text+=`
-`+u.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=m.text):t.push(u),l=d.length!==e.length,e=e.substring(u.raw.length);continue}if(u=this.tokenizer.text(e)){e=e.substring(u.raw.length);let m=t.at(-1);(m==null?void 0:m.type)==="text"?(m.raw+=(m.raw.endsWith(`
-`)?"":`
-`)+u.raw,m.text+=`
-`+u.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=m.text):t.push(u);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){var d,m,g,h,_;this.tokenizer.lexer=this;let l=e,s=null;if(this.tokens.links){let b=Object.keys(this.tokens.links);if(b.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(l))!==null;)b.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(l))!==null;)l=l.slice(0,s.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let o;for(;(s=this.tokenizer.rules.inline.blockSkip.exec(l))!==null;)o=s[2]?s[2].length:0,l=l.slice(0,s.index+o)+"["+"a".repeat(s[0].length-o-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);l=((m=(d=this.options.hooks)==null?void 0:d.emStrongMask)==null?void 0:m.call({lexer:this},l))??l;let i=!1,c="",u=1/0;for(;e;){if(e.length(b=E.call({lexer:this},e,t))?(e=e.substring(b.raw.length),t.push(b),!0):!1))continue;if(b=this.tokenizer.escape(e)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.tag(e)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.link(e)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(b.raw.length);let E=t.at(-1);b.type==="text"&&(E==null?void 0:E.type)==="text"?(E.raw+=b.raw,E.text+=b.text):t.push(b);continue}if(b=this.tokenizer.emStrong(e,l,c)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.codespan(e)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.br(e)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.del(e,l,c)){e=e.substring(b.raw.length),t.push(b);continue}if(b=this.tokenizer.autolink(e)){e=e.substring(b.raw.length),t.push(b);continue}if(!this.state.inLink&&(b=this.tokenizer.url(e))){e=e.substring(b.raw.length),t.push(b);continue}let k=e;if((_=this.options.extensions)!=null&&_.startInline){let E=1/0,y=e.slice(1),T;this.options.extensions.startInline.forEach(N=>{T=N.call({lexer:this},y),typeof T=="number"&&T>=0&&(E=Math.min(E,T))}),E<1/0&&E>=0&&(k=e.substring(0,E+1))}if(b=this.tokenizer.inlineText(k)){e=e.substring(b.raw.length),b.raw.slice(-1)!=="_"&&(c=b.raw.slice(-1)),i=!0;let E=t.at(-1);(E==null?void 0:E.type)==="text"?(E.raw+=b.raw,E.text+=b.text):t.push(b);continue}if(e){this.infiniteLoopError(e.charCodeAt(0));break}}return t}infiniteLoopError(e){let t="Infinite loop on byte: "+e;if(this.options.silent)console.error(t);else throw new Error(t)}},qs=class{constructor(n){et(this,"options");et(this,"parser");this.options=n||wl}space(n){return""}code({text:n,lang:e,escaped:t}){var o;let l=(o=(e||"").match(Vt.notSpaceStart))==null?void 0:o[0],s=n.replace(Vt.endingNewline,"")+`
-`;return l?''+(t?s:Sn(s,!0))+`
-`:""+(t?s:Sn(s,!0))+`
-`}blockquote({tokens:n}){return`
-${this.parser.parse(n)}
-`}html({text:n}){return n}def(n){return""}heading({tokens:n,depth:e}){return`${this.parser.parseInline(n)}
-`}hr(n){return`
-`}list(n){let e=n.ordered,t=n.start,l="";for(let i=0;i
-`+l+""+s+`>
-`}listitem(n){return`${this.parser.parse(n.tokens)}
-`}checkbox({checked:n}){return" '}paragraph({tokens:n}){return`${this.parser.parseInline(n)}
-`}table(n){let e="",t="";for(let s=0;s${l}`),`
-`}tablerow({text:n}){return`
-${n}
-`}tablecell(n){let e=this.parser.parseInline(n.tokens),t=n.header?"th":"td";return(n.align?`<${t} align="${n.align}">`:`<${t}>`)+e+`${t}>
-`}strong({tokens:n}){return`${this.parser.parseInline(n)} `}em({tokens:n}){return`${this.parser.parseInline(n)} `}codespan({text:n}){return`${Sn(n,!0)}`}br(n){return" "}del({tokens:n}){return`${this.parser.parseInline(n)}`}link({href:n,title:e,tokens:t}){let l=this.parser.parseInline(t),s=oc(n);if(s===null)return l;n=s;let o='"+l+" ",o}image({href:n,title:e,text:t,tokens:l}){l&&(t=this.parser.parseInline(l,this.parser.textRenderer));let s=oc(n);if(s===null)return Sn(t);n=s;let o=` ",o}text(n){return"tokens"in n&&n.tokens?this.parser.parseInline(n.tokens):"escaped"in n&&n.escaped?n.text:Sn(n.text)}},ro=class{strong({text:n}){return n}em({text:n}){return n}codespan({text:n}){return n}del({text:n}){return n}html({text:n}){return n}text({text:n}){return n}link({text:n}){return""+n}image({text:n}){return""+n}br(){return""}checkbox({raw:n}){return n}},gn=class qi{constructor(e){et(this,"options");et(this,"renderer");et(this,"textRenderer");this.options=e||wl,this.options.renderer=this.options.renderer||new qs,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new ro}static parse(e,t){return new qi(t).parse(e)}static parseInline(e,t){return new qi(t).parseInline(e)}parse(e){var l,s;this.renderer.parser=this;let t="";for(let o=0;o{let u=i[c].flat(1/0);t=t.concat(this.walkTokens(u,e))}):i.tokens&&(t=t.concat(this.walkTokens(i.tokens,e)))}}return t}use(...n){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return n.forEach(t=>{let l={...t};if(l.async=this.defaults.async||l.async||!1,t.extensions&&(t.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let o=e.renderers[s.name];o?e.renderers[s.name]=function(...i){let c=s.renderer.apply(this,i);return c===!1&&(c=o.apply(this,i)),c}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=e[s.level];o?o.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),l.extensions=e),t.renderer){let s=this.defaults.renderer||new qs(this.defaults);for(let o in t.renderer){if(!(o in s))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let i=o,c=t.renderer[i],u=s[i];s[i]=(...d)=>{let m=c.apply(s,d);return m===!1&&(m=u.apply(s,d)),m||""}}l.renderer=s}if(t.tokenizer){let s=this.defaults.tokenizer||new Vs(this.defaults);for(let o in t.tokenizer){if(!(o in s))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let i=o,c=t.tokenizer[i],u=s[i];s[i]=(...d)=>{let m=c.apply(s,d);return m===!1&&(m=u.apply(s,d)),m}}l.tokenizer=s}if(t.hooks){let s=this.defaults.hooks||new ls;for(let o in t.hooks){if(!(o in s))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let i=o,c=t.hooks[i],u=s[i];ls.passThroughHooks.has(o)?s[i]=d=>{if(this.defaults.async&&ls.passThroughHooksRespectAsync.has(o))return(async()=>{let g=await c.call(s,d);return u.call(s,g)})();let m=c.call(s,d);return u.call(s,m)}:s[i]=(...d)=>{if(this.defaults.async)return(async()=>{let g=await c.apply(s,d);return g===!1&&(g=await u.apply(s,d)),g})();let m=c.apply(s,d);return m===!1&&(m=u.apply(s,d)),m}}l.hooks=s}if(t.walkTokens){let s=this.defaults.walkTokens,o=t.walkTokens;l.walkTokens=function(i){let c=[];return c.push(o.call(this,i)),s&&(c=c.concat(s.call(this,i))),c}}this.defaults={...this.defaults,...l}}),this}setOptions(n){return this.defaults={...this.defaults,...n},this}lexer(n,e){return mn.lex(n,e??this.defaults)}parser(n,e){return gn.parse(n,e??this.defaults)}parseMarkdown(n){return(e,t)=>{let l={...t},s={...this.defaults,...l},o=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&l.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=n),s.async)return(async()=>{let i=s.hooks?await s.hooks.preprocess(e):e,c=await(s.hooks?await s.hooks.provideLexer(n):n?mn.lex:mn.lexInline)(i,s),u=s.hooks?await s.hooks.processAllTokens(c):c;s.walkTokens&&await Promise.all(this.walkTokens(u,s.walkTokens));let d=await(s.hooks?await s.hooks.provideParser(n):n?gn.parse:gn.parseInline)(u,s);return s.hooks?await s.hooks.postprocess(d):d})().catch(o);try{s.hooks&&(e=s.hooks.preprocess(e));let i=(s.hooks?s.hooks.provideLexer(n):n?mn.lex:mn.lexInline)(e,s);s.hooks&&(i=s.hooks.processAllTokens(i)),s.walkTokens&&this.walkTokens(i,s.walkTokens);let c=(s.hooks?s.hooks.provideParser(n):n?gn.parse:gn.parseInline)(i,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(i){return o(i)}}}onError(n,e){return t=>{if(t.message+=`
-Please report this to https://github.com/markedjs/marked.`,n){let l="An error occurred:
"+Sn(t.message+"",!0)+" ";return e?Promise.resolve(l):l}if(e)return Promise.reject(t);throw t}}},kl=new T0;function ut(n,e){return kl.parse(n,e)}ut.options=ut.setOptions=function(n){return kl.setOptions(n),ut.defaults=kl.defaults,Ld(ut.defaults),ut};ut.getDefaults=$i;ut.defaults=wl;ut.use=function(...n){return kl.use(...n),ut.defaults=kl.defaults,Ld(ut.defaults),ut};ut.walkTokens=function(n,e){return kl.walkTokens(n,e)};ut.parseInline=kl.parseInline;ut.Parser=gn;ut.parser=gn.parse;ut.Renderer=qs;ut.TextRenderer=ro;ut.Lexer=mn;ut.lexer=mn.lex;ut.Tokenizer=Vs;ut.Hooks=ls;ut.parse=ut;ut.options;ut.setOptions;ut.use;ut.walkTokens;ut.parseInline;gn.parse;mn.lex;/*! @license DOMPurify 3.4.10 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.10/LICENSE */function uc(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,l=Array(e);t2?l-2:0),o=2;o1?t-1:0),s=1;s"u"?null:Nt(BigInt.prototype.toString),hc=typeof Symbol>"u"?null:Nt(Symbol.prototype.toString),Xt=Nt(Object.prototype.hasOwnProperty),ts=Nt(Object.prototype.toString),zt=Nt(RegExp.prototype.test),ml=F0(TypeError);function Nt(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,l=new Array(t>1?t-1:0),s=1;s2&&arguments[2]!==void 0?arguments[2]:ss;if(fc&&fc(n,null),!Zn(e))return n;let l=e.length;for(;l--;){let s=e[l];if(typeof s=="string"){const o=t(s);o!==s&&(I0(e)||(e[l]=o),s=o)}n[s]=!0}return n}function j0(n){for(let e=0;e/g),q0=Ft(/\${[\w\W]*/g),Z0=Ft(/^data-[\-\w.\u00B7-\uFFFF]+$/),Y0=Ft(/^aria-[\-\w]+$/),wc=Ft(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),X0=Ft(/^(?:\w+script|data):/i),J0=Ft(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Q0=Ft(/^html$/i),x0=Ft(/^[a-z][.\w]*(-[.\w]+)+$/i),yc=Ft(/<[/\w!]/g),$0=Ft(/<[/\w]/g),e2=Ft(/<\/no(script|embed|frames)/i),t2=Ft(/\/>/i),Tn={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},n2=function(){return typeof window>"u"?null:window},l2=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let l=null;const s="data-tt-policy-suffix";t&&t.hasAttribute(s)&&(l=t.getAttribute(s));const o="dompurify"+(l?"#"+l:"");try{return e.createPolicy(o,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Ec=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Vn=function(e,t,l,s){return Xt(e,t)&&Zn(e[t])?lt(s.base?Yt(s.base):{},e[t],s.transform):l};function Kd(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n2();const e=Ee=>Kd(Ee);if(e.version="3.4.10",e.removed=[],!n||!n.document||n.document.nodeType!==Tn.document||!n.Element)return e.isSupported=!1,e;let t=n.document;const l=t,s=l.currentScript;n.DocumentFragment;const o=n.HTMLTemplateElement,i=n.Node,c=n.Element,u=n.NodeFilter,d=n.NamedNodeMap;d===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;const m=n.DOMParser,g=n.trustedTypes,h=c.prototype,_=Cn(h,"cloneNode"),b=Cn(h,"remove"),k=Cn(h,"nextSibling"),E=Cn(h,"childNodes"),y=Cn(h,"parentNode"),T=Cn(h,"shadowRoot"),N=Cn(h,"attributes"),A=i&&i.prototype?Cn(i.prototype,"nodeType"):null,I=i&&i.prototype?Cn(i.prototype,"nodeName"):null;if(typeof o=="function"){const Ee=t.createElement("template");Ee.content&&Ee.content.ownerDocument&&(t=Ee.content.ownerDocument)}let M,R="",L,z=!1,U=0;const W=function(){if(U>0)throw ml('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},F=function(q){W(),U++;try{return M.createHTML(q)}finally{U--}},K=function(q){W(),U++;try{return M.createScriptURL(q)}finally{U--}},V=function(){return z||(L=l2(g,s),z=!0),L},Y=t,G=Y.implementation,D=Y.createNodeIterator,j=Y.createDocumentFragment,B=Y.getElementsByTagName,J=l.importNode;let Z=Ec();e.isSupported=typeof Wd=="function"&&typeof y=="function"&&G&&G.createHTMLDocument!==void 0;const X=K0,$=V0,te=q0,ne=Z0,de=Y0,Ae=X0,ze=J0,qe=x0;let Ne=wc,ee=null;const re=lt({},[..._c,...Oi,...Di,...Pi,...bc]);let Se=null;const Be=lt({},[...vc,...zi,...kc,...Ls]);let ge=Object.seal(Bl(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),We=null,mt=null;const be=Object.seal(Bl(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let it=!0,Oe=!0,Ce=!1,je=!0,Ue=!1,Pe=!0,Fe=!1,ue=!1,ye=!1,x=!1,pe=!1,me=!1,Re=!0,ot=!1;const Je="user-content-";let rt=!0,tt=!1,Ze={},Ve=null;const nt=lt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let fe=null;const Me=lt({},["audio","video","img","source","image","track"]);let Ot=null;const Dt=lt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),jt="http://www.w3.org/1998/Math/MathML",qt="http://www.w3.org/2000/svg",at="http://www.w3.org/1999/xhtml";let Ut=at,hn=!1,Ht=null;const El=lt({},[jt,qt,at],Li),Mt=Bt(["mi","mo","mn","ms","mtext"]);let Wt=lt({},Mt);const _t=Bt(["annotation-xml"]);let Tl=lt({},_t);const ms=lt({},["title","style","font","a","script"]);let Fn=null;const un=["application/xhtml+xml","text/html"],Kl="text/html";let ct=null,Gt=null;const An=t.createElement("form"),en=function(q){return q instanceof RegExp||q instanceof Function},tn=function(){let q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Gt&&Gt===q)return;(!q||typeof q!="object")&&(q={}),q=Yt(q),Fn=un.indexOf(q.PARSER_MEDIA_TYPE)===-1?Kl:q.PARSER_MEDIA_TYPE,ct=Fn==="application/xhtml+xml"?Li:ss,ee=Vn(q,"ALLOWED_TAGS",re,{transform:ct}),Se=Vn(q,"ALLOWED_ATTR",Be,{transform:ct}),Ht=Vn(q,"ALLOWED_NAMESPACES",El,{transform:Li}),Ot=Vn(q,"ADD_URI_SAFE_ATTR",Dt,{transform:ct,base:Dt}),fe=Vn(q,"ADD_DATA_URI_TAGS",Me,{transform:ct,base:Me}),Ve=Vn(q,"FORBID_CONTENTS",nt,{transform:ct}),We=Vn(q,"FORBID_TAGS",Yt({}),{transform:ct}),mt=Vn(q,"FORBID_ATTR",Yt({}),{transform:ct}),Ze=Xt(q,"USE_PROFILES")?q.USE_PROFILES&&typeof q.USE_PROFILES=="object"?Yt(q.USE_PROFILES):q.USE_PROFILES:!1,it=q.ALLOW_ARIA_ATTR!==!1,Oe=q.ALLOW_DATA_ATTR!==!1,Ce=q.ALLOW_UNKNOWN_PROTOCOLS||!1,je=q.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ue=q.SAFE_FOR_TEMPLATES||!1,Pe=q.SAFE_FOR_XML!==!1,Fe=q.WHOLE_DOCUMENT||!1,x=q.RETURN_DOM||!1,pe=q.RETURN_DOM_FRAGMENT||!1,me=q.RETURN_TRUSTED_TYPE||!1,ye=q.FORCE_BODY||!1,Re=q.SANITIZE_DOM!==!1,ot=q.SANITIZE_NAMED_PROPS||!1,rt=q.KEEP_CONTENT!==!1,tt=q.IN_PLACE||!1,Ne=H0(q.ALLOWED_URI_REGEXP)?q.ALLOWED_URI_REGEXP:wc,Ut=typeof q.NAMESPACE=="string"?q.NAMESPACE:at,Wt=Xt(q,"MATHML_TEXT_INTEGRATION_POINTS")&&q.MATHML_TEXT_INTEGRATION_POINTS&&typeof q.MATHML_TEXT_INTEGRATION_POINTS=="object"?Yt(q.MATHML_TEXT_INTEGRATION_POINTS):lt({},Mt),Tl=Xt(q,"HTML_INTEGRATION_POINTS")&&q.HTML_INTEGRATION_POINTS&&typeof q.HTML_INTEGRATION_POINTS=="object"?Yt(q.HTML_INTEGRATION_POINTS):lt({},_t);const le=Xt(q,"CUSTOM_ELEMENT_HANDLING")&&q.CUSTOM_ELEMENT_HANDLING&&typeof q.CUSTOM_ELEMENT_HANDLING=="object"?Yt(q.CUSTOM_ELEMENT_HANDLING):Bl(null);if(ge=Bl(null),Xt(le,"tagNameCheck")&&en(le.tagNameCheck)&&(ge.tagNameCheck=le.tagNameCheck),Xt(le,"attributeNameCheck")&&en(le.attributeNameCheck)&&(ge.attributeNameCheck=le.attributeNameCheck),Xt(le,"allowCustomizedBuiltInElements")&&typeof le.allowCustomizedBuiltInElements=="boolean"&&(ge.allowCustomizedBuiltInElements=le.allowCustomizedBuiltInElements),Ft(ge),Ue&&(Oe=!1),pe&&(x=!0),Ze&&(ee=lt({},bc),Se=Bl(null),Ze.html===!0&&(lt(ee,_c),lt(Se,vc)),Ze.svg===!0&&(lt(ee,Oi),lt(Se,zi),lt(Se,Ls)),Ze.svgFilters===!0&&(lt(ee,Di),lt(Se,zi),lt(Se,Ls)),Ze.mathMl===!0&&(lt(ee,Pi),lt(Se,kc),lt(Se,Ls))),be.tagCheck=null,be.attributeCheck=null,Xt(q,"ADD_TAGS")&&(typeof q.ADD_TAGS=="function"?be.tagCheck=q.ADD_TAGS:Zn(q.ADD_TAGS)&&(ee===re&&(ee=Yt(ee)),lt(ee,q.ADD_TAGS,ct))),Xt(q,"ADD_ATTR")&&(typeof q.ADD_ATTR=="function"?be.attributeCheck=q.ADD_ATTR:Zn(q.ADD_ATTR)&&(Se===Be&&(Se=Yt(Se)),lt(Se,q.ADD_ATTR,ct))),Xt(q,"ADD_URI_SAFE_ATTR")&&Zn(q.ADD_URI_SAFE_ATTR)&<(Ot,q.ADD_URI_SAFE_ATTR,ct),Xt(q,"FORBID_CONTENTS")&&Zn(q.FORBID_CONTENTS)&&(Ve===nt&&(Ve=Yt(Ve)),lt(Ve,q.FORBID_CONTENTS,ct)),Xt(q,"ADD_FORBID_CONTENTS")&&Zn(q.ADD_FORBID_CONTENTS)&&(Ve===nt&&(Ve=Yt(Ve)),lt(Ve,q.ADD_FORBID_CONTENTS,ct)),rt&&(ee["#text"]=!0),Fe&<(ee,["html","head","body"]),ee.table&&(lt(ee,["tbody"]),delete We.tbody),q.TRUSTED_TYPES_POLICY){if(typeof q.TRUSTED_TYPES_POLICY.createHTML!="function")throw ml('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof q.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ml('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const ke=M;M=q.TRUSTED_TYPES_POLICY;try{R=F("")}catch(Le){throw M=ke,Le}}else q.TRUSTED_TYPES_POLICY===null?(M=void 0,R=""):(M===void 0&&(M=V()),M&&typeof R=="string"&&(R=F("")));(Z.uponSanitizeElement.length>0||Z.uponSanitizeAttribute.length>0)&&ee===re&&(ee=Yt(ee)),Z.uponSanitizeAttribute.length>0&&Se===Be&&(Se=Yt(Se)),Bt&&Bt(q),Gt=q},_n=lt({},[...Oi,...Di,...W0]),Jt=lt({},[...Pi,...G0]),Jn=function(q,le,ke){return le.namespaceURI===at?q==="svg":le.namespaceURI===jt?q==="svg"&&(ke==="annotation-xml"||Wt[ke]):!!_n[q]},bn=function(q,le,ke){return le.namespaceURI===at?q==="math":le.namespaceURI===qt?q==="math"&&Tl[ke]:!!Jt[q]},Qn=function(q,le,ke){return le.namespaceURI===qt&&!Tl[ke]||le.namespaceURI===jt&&!Wt[ke]?!1:!Jt[q]&&(ms[q]||!_n[q])},vn=function(q){let le=y(q);(!le||!le.tagName)&&(le={namespaceURI:Ut,tagName:"template"});const ke=ss(q.tagName),Le=ss(le.tagName);return Ht[q.namespaceURI]?q.namespaceURI===qt?Jn(ke,le,Le):q.namespaceURI===jt?bn(ke,le,Le):q.namespaceURI===at?Qn(ke,le,Le):!!(Fn==="application/xhtml+xml"&&Ht[q.namespaceURI]):!1},cn=function(q){Dl(e.removed,{element:q});try{y(q).removeChild(q)}catch{if(b(q),!y(q))throw ml("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Nn=function(q){const le=E(q);if(le){const Le=[];$l(le,Ge=>{Dl(Le,Ge)}),$l(Le,Ge=>{try{b(Ge)}catch{}})}const ke=N(q);if(ke)for(let Le=ke.length-1;Le>=0;--Le){const Ge=ke[Le],xe=Ge&&Ge.name;if(typeof xe=="string")try{q.removeAttribute(xe)}catch{}}},fn=function(q,le){try{Dl(e.removed,{attribute:le.getAttributeNode(q),from:le})}catch{Dl(e.removed,{attribute:null,from:le})}if(le.removeAttribute(q),q==="is")if(x||pe)try{cn(le)}catch{}else try{le.setAttribute(q,"")}catch{}},Sl=function(q){const le=N(q);if(le)for(let ke=le.length-1;ke>=0;--ke){const Le=le[ke],Ge=Le&&Le.name;if(!(typeof Ge!="string"||Se[ct(Ge)]))try{q.removeAttribute(Ge)}catch{}}},xn=function(q){const le=[q];for(;le.length>0;){const ke=le.pop();(A?A(ke):ke.nodeType)===Tn.element&&Sl(ke);const Ge=E(ke);if(Ge)for(let xe=Ge.length-1;xe>=0;--xe)le.push(Ge[xe])}},Cl=function(q){let le=null,ke=null;if(ye)q=" "+q;else{const xe=pc(q,/^[\r\n\t ]+/);ke=xe&&xe[0]}Fn==="application/xhtml+xml"&&Ut===at&&(q=''+q+"");const Le=M?F(q):q;if(Ut===at)try{le=new m().parseFromString(Le,Fn)}catch{}if(!le||!le.documentElement){le=G.createDocument(Ut,"template",null);try{le.documentElement.innerHTML=hn?R:Le}catch{}}const Ge=le.body||le.documentElement;return q&&ke&&Ge.insertBefore(t.createTextNode(ke),Ge.childNodes[0]||null),Ut===at?B.call(le,Fe?"html":"body")[0]:Fe?le.documentElement:Ge},Vl=function(q){return D.call(q.ownerDocument||q,q,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Zt=function(q){return q=es(q,X," "),q=es(q,$," "),q=es(q,te," "),q},$n=function(q){var le;q.normalize();const ke=D.call(q.ownerDocument||q,q,u.SHOW_TEXT|u.SHOW_COMMENT|u.SHOW_CDATA_SECTION|u.SHOW_PROCESSING_INSTRUCTION,null);let Le=ke.nextNode();for(;Le;)Le.data=Zt(Le.data),Le=ke.nextNode();const Ge=(le=q.querySelectorAll)===null||le===void 0?void 0:le.call(q,"template");Ge&&$l(Ge,xe=>{vt(xe.content)&&$n(xe.content)})},bt=function(q){const le=I?I(q):null;return typeof le!="string"||ct(le)!=="form"?!1:typeof q.nodeName!="string"||typeof q.textContent!="string"||typeof q.removeChild!="function"||q.attributes!==N(q)||typeof q.removeAttribute!="function"||typeof q.setAttribute!="function"||typeof q.namespaceURI!="string"||typeof q.insertBefore!="function"||typeof q.hasChildNodes!="function"||q.nodeType!==A(q)||q.childNodes!==E(q)},vt=function(q){if(!A||typeof q!="object"||q===null)return!1;try{return A(q)===Tn.documentFragment}catch{return!1}},gt=function(q){if(!A||typeof q!="object"||q===null)return!1;try{return typeof A(q)=="number"}catch{return!1}};function Rt(Ee,q,le){Ee.length!==0&&$l(Ee,ke=>{ke.call(e,q,le,Gt)})}const nn=function(q,le){return!!(Pe&&q.hasChildNodes()&&!gt(q.firstElementChild)&&zt(yc,q.textContent)&&zt(yc,q.innerHTML)||Pe&&q.namespaceURI===at&&le==="style"&>(q.firstElementChild)||q.nodeType===Tn.processingInstruction||Pe&&q.nodeType===Tn.comment&&zt($0,q.data))},el=function(q,le){if(!We[le]&&In(le)&&(ge.tagNameCheck instanceof RegExp&&zt(ge.tagNameCheck,le)||ge.tagNameCheck instanceof Function&&ge.tagNameCheck(le)))return!1;if(rt&&!Ve[le]){const ke=y(q),Le=E(q);if(Le&&ke){const Ge=Le.length;for(let xe=Ge-1;xe>=0;--xe){const Et=tt?Le[xe]:_(Le[xe],!0);ke.insertBefore(Et,k(q))}}}return cn(q),!0},Rn=function(q){if(Rt(Z.beforeSanitizeElements,q,null),bt(q))return cn(q),!0;const le=ct(I?I(q):q.nodeName);if(Rt(Z.uponSanitizeElement,q,{tagName:le,allowedTags:ee}),nn(q,le))return cn(q),!0;if(We[le]||!(be.tagCheck instanceof Function&&be.tagCheck(le))&&!ee[le])return el(q,le);if((A?A(q):q.nodeType)===Tn.element&&!vn(q)||(le==="noscript"||le==="noembed"||le==="noframes")&&zt(e2,q.innerHTML))return cn(q),!0;if(Ue&&q.nodeType===Tn.text){const Le=Zt(q.textContent);q.textContent!==Le&&(Dl(e.removed,{element:q.cloneNode()}),q.textContent=Le)}return Rt(Z.afterSanitizeElements,q,null),!1},ln=function(q,le,ke){if(mt[le]||Re&&(le==="id"||le==="name")&&(ke in t||ke in An))return!1;const Le=Se[le]||be.attributeCheck instanceof Function&&be.attributeCheck(le,q);if(!(Oe&&zt(ne,le))){if(!(it&&zt(de,le))){if(Le){if(!Ot[le]){if(!zt(Ne,es(ke,ze,""))){if(!((le==="src"||le==="xlink:href"||le==="href")&&q!=="script"&&mc(ke,"data:")===0&&fe[q])){if(!(Ce&&!zt(Ae,es(ke,ze,"")))){if(ke)return!1}}}}}else if(!(In(q)&&(ge.tagNameCheck instanceof RegExp&&zt(ge.tagNameCheck,q)||ge.tagNameCheck instanceof Function&&ge.tagNameCheck(q))&&(ge.attributeNameCheck instanceof RegExp&&zt(ge.attributeNameCheck,le)||ge.attributeNameCheck instanceof Function&&ge.attributeNameCheck(le,q))||le==="is"&&ge.allowCustomizedBuiltInElements&&(ge.tagNameCheck instanceof RegExp&&zt(ge.tagNameCheck,ke)||ge.tagNameCheck instanceof Function&&ge.tagNameCheck(ke))))return!1}}return!0},$e=lt({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),In=function(q){return!$e[ss(q)]&&zt(qe,q)},ql=function(q,le,ke,Le){if(M&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!ke)switch(g.getAttributeType(q,le)){case"TrustedHTML":return F(Le);case"TrustedScriptURL":return K(Le)}return Le},tl=function(q,le,ke,Le){try{ke?q.setAttributeNS(ke,le,Le):q.setAttribute(le,Le),bt(q)?cn(q):dc(e.removed)}catch{fn(le,q)}},Mn=function(q){Rt(Z.beforeSanitizeAttributes,q,null);const le=q.attributes;if(!le||bt(q))return;const ke={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se,forceKeepAttr:void 0};let Le=le.length;const Ge=ct(q.nodeName);for(;Le--;){const xe=le[Le],Et=xe.name,kt=xe.namespaceURI,It=xe.value,Kt=ct(Et),kn=It;let At=Et==="value"?kn:P0(kn);if(ke.attrName=Kt,ke.attrValue=At,ke.keepAttr=!0,ke.forceKeepAttr=void 0,Rt(Z.uponSanitizeAttribute,q,ke),At=ke.attrValue,ot&&(Kt==="id"||Kt==="name")&&mc(At,Je)!==0&&(fn(Et,q),At=Je+At),Pe&&zt(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,At)){fn(Et,q);continue}if(Kt==="attributename"&&pc(At,"href")){fn(Et,q);continue}if(!ke.forceKeepAttr){if(!ke.keepAttr){fn(Et,q);continue}if(!je&&zt(t2,At)){fn(Et,q);continue}if(Ue&&(At=Zt(At)),!ln(Ge,Kt,At)){fn(Et,q);continue}At=ql(Ge,Kt,kt,At),At!==kn&&tl(q,Et,kt,At)}}Rt(Z.afterSanitizeAttributes,q,null)},jn=function(q){let le=null;const ke=Vl(q);for(Rt(Z.beforeSanitizeShadowDOM,q,null);le=ke.nextNode();)if(Rt(Z.uponSanitizeShadowNode,le,null),Rn(le),Mn(le),vt(le.content)&&jn(le.content),(A?A(le):le.nodeType)===Tn.element){const Ge=T(le);vt(Ge)&&(Ln(Ge),jn(Ge))}Rt(Z.afterSanitizeShadowDOM,q,null)},Ln=function(q){const le=[{node:q,shadow:null}];for(;le.length>0;){const ke=le.pop();if(ke.shadow){jn(ke.shadow);continue}const Le=ke.node,xe=(A?A(Le):Le.nodeType)===Tn.element,Et=E(Le);if(Et)for(let kt=Et.length-1;kt>=0;--kt)le.push({node:Et[kt],shadow:null});if(xe){const kt=I?I(Le):null;if(typeof kt=="string"&&ct(kt)==="template"){const It=Le.content;vt(It)&&le.push({node:It,shadow:null})}}if(xe){const kt=T(Le);vt(kt)&&le.push({node:null,shadow:kt},{node:kt,shadow:null})}}};return e.sanitize=function(Ee){let q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},le=null,ke=null,Le=null,Ge=null;if(hn=!Ee,hn&&(Ee=""),typeof Ee!="string"&&!gt(Ee)&&(Ee=U0(Ee),typeof Ee!="string"))throw ml("dirty is not a string, aborting");if(!e.isSupported)return Ee;ue||tn(q),e.removed=[];const xe=tt&&typeof Ee!="string"&>(Ee);if(xe){const It=I?I(Ee):Ee.nodeName;if(typeof It=="string"){const Kt=ct(It);if(!ee[Kt]||We[Kt])throw ml("root node is forbidden and cannot be sanitized in-place")}if(bt(Ee))throw ml("root node is clobbered and cannot be sanitized in-place");try{Ln(Ee)}catch(Kt){throw Nn(Ee),Kt}}else if(gt(Ee))le=Cl(""),ke=le.ownerDocument.importNode(Ee,!0),ke.nodeType===Tn.element&&ke.nodeName==="BODY"||ke.nodeName==="HTML"?le=ke:le.appendChild(ke),Ln(ke);else{if(!x&&!Ue&&!Fe&&Ee.indexOf("<")===-1)return M&&me?F(Ee):Ee;if(le=Cl(Ee),!le)return x?null:me?R:""}le&&ye&&cn(le.firstChild);const Et=Vl(xe?Ee:le);try{for(;Le=Et.nextNode();)Rn(Le),Mn(Le),vt(Le.content)&&jn(Le.content)}catch(It){throw xe&&Nn(Ee),It}if(xe)return $l(e.removed,It=>{It.element&&xn(It.element)}),Ue&&$n(Ee),Ee;if(x){if(Ue&&$n(le),pe)for(Ge=j.call(le.ownerDocument);le.firstChild;)Ge.appendChild(le.firstChild);else Ge=le;return(Se.shadowroot||Se.shadowrootmode)&&(Ge=J.call(l,Ge,!0)),Ge}let kt=Fe?le.outerHTML:le.innerHTML;return Fe&&ee["!doctype"]&&le.ownerDocument&&le.ownerDocument.doctype&&le.ownerDocument.doctype.name&&zt(Q0,le.ownerDocument.doctype.name)&&(kt="
-`+kt),Ue&&(kt=Zt(kt)),M&&me?F(kt):kt},e.setConfig=function(){let Ee=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};tn(Ee),ue=!0},e.clearConfig=function(){Gt=null,ue=!1,M=L,R=""},e.isValidAttribute=function(Ee,q,le){Gt||tn({});const ke=ct(Ee),Le=ct(q);return ln(ke,Le,le)},e.addHook=function(Ee,q){typeof q=="function"&&Dl(Z[Ee],q)},e.removeHook=function(Ee,q){if(q!==void 0){const le=O0(Z[Ee],q);return le===-1?void 0:D0(Z[Ee],le,1)[0]}return dc(Z[Ee])},e.removeHooks=function(Ee){Z[Ee]=[]},e.removeAllHooks=function(){Z=Ec()},e}var Vd=Kd();function s2(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function qd(n){return n instanceof Map?n.clear=n.delete=n.set=function(){throw new Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=function(){throw new Error("set is read-only")}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach(e=>{const t=n[e],l=typeof t;(l==="object"||l==="function")&&!Object.isFrozen(t)&&qd(t)}),n}class Tc{constructor(e){e.data===void 0&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function Zd(n){return n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Xn(n,...e){const t=Object.create(null);for(const l in n)t[l]=n[l];return e.forEach(function(l){for(const s in l)t[s]=l[s]}),t}const i2="",Sc=n=>!!n.scope,o2=(n,{prefix:e})=>{if(n.startsWith("language:"))return n.replace("language:","language-");if(n.includes(".")){const t=n.split(".");return[`${e}${t.shift()}`,...t.map((l,s)=>`${l}${"_".repeat(s+1)}`)].join(" ")}return`${e}${n}`};class r2{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=Zd(e)}openNode(e){if(!Sc(e))return;const t=o2(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){Sc(e)&&(this.buffer+=i2)}value(){return this.buffer}span(e){this.buffer+=``}}const Cc=(n={})=>{const e={children:[]};return Object.assign(e,n),e};class ao{constructor(){this.rootNode=Cc(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t=Cc({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return typeof t=="string"?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(l=>this._walk(e,l)),e.closeNode(t)),e}static _collapse(e){typeof e!="string"&&e.children&&(e.children.every(t=>typeof t=="string")?e.children=[e.children.join("")]:e.children.forEach(t=>{ao._collapse(t)}))}}class a2 extends ao{constructor(e){super(),this.options=e}addText(e){e!==""&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){const l=e.root;t&&(l.scope=`language:${t}`),this.add(l)}toHTML(){return new r2(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function as(n){return n?typeof n=="string"?n:n.source:null}function Yd(n){return yl("(?=",n,")")}function c2(n){return yl("(?:",n,")*")}function u2(n){return yl("(?:",n,")?")}function yl(...n){return n.map(t=>as(t)).join("")}function f2(n){const e=n[n.length-1];return typeof e=="object"&&e.constructor===Object?(n.splice(n.length-1,1),e):{}}function co(...n){return"("+(f2(n).capture?"":"?:")+n.map(l=>as(l)).join("|")+")"}function Xd(n){return new RegExp(n.toString()+"|").exec("").length-1}function d2(n,e){const t=n&&n.exec(e);return t&&t.index===0}const p2=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function uo(n,{joinWith:e}){let t=0;return n.map(l=>{t+=1;const s=t;let o=as(l),i="";for(;o.length>0;){const c=p2.exec(o);if(!c){i+=o;break}i+=o.substring(0,c.index),o=o.substring(c.index+c[0].length),c[0][0]==="\\"&&c[1]?i+="\\"+String(Number(c[1])+s):(i+=c[0],c[0]==="("&&t++)}return i}).map(l=>`(${l})`).join(e)}const m2=/\b\B/,Jd="[a-zA-Z]\\w*",fo="[a-zA-Z_]\\w*",Qd="\\b\\d+(\\.\\d+)?",xd="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",$d="\\b(0b[01]+)",g2="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",h2=(n={})=>{const e=/^#![ ]*\//;return n.binary&&(n.begin=yl(e,/.*\b/,n.binary,/\b.*/)),Xn({scope:"meta",begin:e,end:/$/,relevance:0,"on:begin":(t,l)=>{t.index!==0&&l.ignoreMatch()}},n)},cs={begin:"\\\\[\\s\\S]",relevance:0},_2={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[cs]},b2={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[cs]},v2={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},$s=function(n,e,t={}){const l=Xn({scope:"comment",begin:n,end:e,contains:[]},t);l.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const s=co("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return l.contains.push({begin:yl(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),l},k2=$s("//","$"),w2=$s("/\\*","\\*/"),y2=$s("#","$"),E2={scope:"number",begin:Qd,relevance:0},T2={scope:"number",begin:xd,relevance:0},S2={scope:"number",begin:$d,relevance:0},C2={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[cs,{begin:/\[/,end:/\]/,relevance:0,contains:[cs]}]},A2={scope:"title",begin:Jd,relevance:0},N2={scope:"title",begin:fo,relevance:0},R2={begin:"\\.\\s*"+fo,relevance:0},I2=function(n){return Object.assign(n,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var Os=Object.freeze({__proto__:null,APOS_STRING_MODE:_2,BACKSLASH_ESCAPE:cs,BINARY_NUMBER_MODE:S2,BINARY_NUMBER_RE:$d,COMMENT:$s,C_BLOCK_COMMENT_MODE:w2,C_LINE_COMMENT_MODE:k2,C_NUMBER_MODE:T2,C_NUMBER_RE:xd,END_SAME_AS_BEGIN:I2,HASH_COMMENT_MODE:y2,IDENT_RE:Jd,MATCH_NOTHING_RE:m2,METHOD_GUARD:R2,NUMBER_MODE:E2,NUMBER_RE:Qd,PHRASAL_WORDS_MODE:v2,QUOTE_STRING_MODE:b2,REGEXP_MODE:C2,RE_STARTERS_RE:g2,SHEBANG:h2,TITLE_MODE:A2,UNDERSCORE_IDENT_RE:fo,UNDERSCORE_TITLE_MODE:N2});function M2(n,e){n.input[n.index-1]==="."&&e.ignoreMatch()}function L2(n,e){n.className!==void 0&&(n.scope=n.className,delete n.className)}function O2(n,e){e&&n.beginKeywords&&(n.begin="\\b("+n.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",n.__beforeBegin=M2,n.keywords=n.keywords||n.beginKeywords,delete n.beginKeywords,n.relevance===void 0&&(n.relevance=0))}function D2(n,e){Array.isArray(n.illegal)&&(n.illegal=co(...n.illegal))}function P2(n,e){if(n.match){if(n.begin||n.end)throw new Error("begin & end are not supported with match");n.begin=n.match,delete n.match}}function z2(n,e){n.relevance===void 0&&(n.relevance=1)}const B2=(n,e)=>{if(!n.beforeMatch)return;if(n.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},n);Object.keys(n).forEach(l=>{delete n[l]}),n.keywords=t.keywords,n.begin=yl(t.beforeMatch,Yd(t.begin)),n.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},n.relevance=0,delete t.beforeMatch},F2=["of","and","for","in","not","or","if","then","parent","list","value"],j2="keyword";function ep(n,e,t=j2){const l=Object.create(null);return typeof n=="string"?s(t,n.split(" ")):Array.isArray(n)?s(t,n):Object.keys(n).forEach(function(o){Object.assign(l,ep(n[o],e,o))}),l;function s(o,i){e&&(i=i.map(c=>c.toLowerCase())),i.forEach(function(c){const u=c.split("|");l[u[0]]=[o,U2(u[0],u[1])]})}}function U2(n,e){return e?Number(e):H2(n)?0:1}function H2(n){return F2.includes(n.toLowerCase())}const Ac={},bl=n=>{console.error(n)},Nc=(n,...e)=>{console.log(`WARN: ${n}`,...e)},Pl=(n,e)=>{Ac[`${n}/${e}`]||(console.log(`Deprecated as of ${n}. ${e}`),Ac[`${n}/${e}`]=!0)},Zs=new Error;function tp(n,e,{key:t}){let l=0;const s=n[t],o={},i={};for(let c=1;c<=e.length;c++)i[c+l]=s[c],o[c+l]=!0,l+=Xd(e[c-1]);n[t]=i,n[t]._emit=o,n[t]._multi=!0}function W2(n){if(Array.isArray(n.begin)){if(n.skip||n.excludeBegin||n.returnBegin)throw bl("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Zs;if(typeof n.beginScope!="object"||n.beginScope===null)throw bl("beginScope must be object"),Zs;tp(n,n.begin,{key:"beginScope"}),n.begin=uo(n.begin,{joinWith:""})}}function G2(n){if(Array.isArray(n.end)){if(n.skip||n.excludeEnd||n.returnEnd)throw bl("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Zs;if(typeof n.endScope!="object"||n.endScope===null)throw bl("endScope must be object"),Zs;tp(n,n.end,{key:"endScope"}),n.end=uo(n.end,{joinWith:""})}}function K2(n){n.scope&&typeof n.scope=="object"&&n.scope!==null&&(n.beginScope=n.scope,delete n.scope)}function V2(n){K2(n),typeof n.beginScope=="string"&&(n.beginScope={_wrap:n.beginScope}),typeof n.endScope=="string"&&(n.endScope={_wrap:n.endScope}),W2(n),G2(n)}function q2(n){function e(i,c){return new RegExp(as(i),"m"+(n.case_insensitive?"i":"")+(n.unicodeRegex?"u":"")+(c?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(c,u){u.position=this.position++,this.matchIndexes[this.matchAt]=u,this.regexes.push([u,c]),this.matchAt+=Xd(c)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const c=this.regexes.map(u=>u[1]);this.matcherRe=e(uo(c,{joinWith:"|"}),!0),this.lastIndex=0}exec(c){this.matcherRe.lastIndex=this.lastIndex;const u=this.matcherRe.exec(c);if(!u)return null;const d=u.findIndex((g,h)=>h>0&&g!==void 0),m=this.matchIndexes[d];return u.splice(0,d),Object.assign(u,m)}}class l{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(c){if(this.multiRegexes[c])return this.multiRegexes[c];const u=new t;return this.rules.slice(c).forEach(([d,m])=>u.addRule(d,m)),u.compile(),this.multiRegexes[c]=u,u}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(c,u){this.rules.push([c,u]),u.type==="begin"&&this.count++}exec(c){const u=this.getMatcher(this.regexIndex);u.lastIndex=this.lastIndex;let d=u.exec(c);if(this.resumingScanAtSamePosition()&&!(d&&d.index===this.lastIndex)){const m=this.getMatcher(0);m.lastIndex=this.lastIndex+1,d=m.exec(c)}return d&&(this.regexIndex+=d.position+1,this.regexIndex===this.count&&this.considerAll()),d}}function s(i){const c=new l;return i.contains.forEach(u=>c.addRule(u.begin,{rule:u,type:"begin"})),i.terminatorEnd&&c.addRule(i.terminatorEnd,{type:"end"}),i.illegal&&c.addRule(i.illegal,{type:"illegal"}),c}function o(i,c){const u=i;if(i.isCompiled)return u;[L2,P2,V2,B2].forEach(m=>m(i,c)),n.compilerExtensions.forEach(m=>m(i,c)),i.__beforeBegin=null,[O2,D2,z2].forEach(m=>m(i,c)),i.isCompiled=!0;let d=null;return typeof i.keywords=="object"&&i.keywords.$pattern&&(i.keywords=Object.assign({},i.keywords),d=i.keywords.$pattern,delete i.keywords.$pattern),d=d||/\w+/,i.keywords&&(i.keywords=ep(i.keywords,n.case_insensitive)),u.keywordPatternRe=e(d,!0),c&&(i.begin||(i.begin=/\B|\b/),u.beginRe=e(u.begin),!i.end&&!i.endsWithParent&&(i.end=/\B|\b/),i.end&&(u.endRe=e(u.end)),u.terminatorEnd=as(u.end)||"",i.endsWithParent&&c.terminatorEnd&&(u.terminatorEnd+=(i.end?"|":"")+c.terminatorEnd)),i.illegal&&(u.illegalRe=e(i.illegal)),i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map(function(m){return Z2(m==="self"?i:m)})),i.contains.forEach(function(m){o(m,u)}),i.starts&&o(i.starts,c),u.matcher=s(u),u}if(n.compilerExtensions||(n.compilerExtensions=[]),n.contains&&n.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return n.classNameAliases=Xn(n.classNameAliases||{}),o(n)}function np(n){return n?n.endsWithParent||np(n.starts):!1}function Z2(n){return n.variants&&!n.cachedVariants&&(n.cachedVariants=n.variants.map(function(e){return Xn(n,{variants:null},e)})),n.cachedVariants?n.cachedVariants:np(n)?Xn(n,{starts:n.starts?Xn(n.starts):null}):Object.isFrozen(n)?Xn(n):n}var Y2="11.11.1";class X2 extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}const Bi=Zd,Rc=Xn,Ic=Symbol("nomatch"),J2=7,lp=function(n){const e=Object.create(null),t=Object.create(null),l=[];let s=!0;const o="Could not find the language '{}', did you forget to load/include a language module?",i={disableAutodetect:!0,name:"Plain text",contains:[]};let c={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:a2};function u(G){return c.noHighlightRe.test(G)}function d(G){let D=G.className+" ";D+=G.parentNode?G.parentNode.className:"";const j=c.languageDetectRe.exec(D);if(j){const B=L(j[1]);return B||(Nc(o.replace("{}",j[1])),Nc("Falling back to no-highlight mode for this block.",G)),B?j[1]:"no-highlight"}return D.split(/\s+/).find(B=>u(B)||L(B))}function m(G,D,j){let B="",J="";typeof D=="object"?(B=G,j=D.ignoreIllegals,J=D.language):(Pl("10.7.0","highlight(lang, code, ...args) has been deprecated."),Pl("10.7.0",`Please use highlight(code, options) instead.
-https://github.com/highlightjs/highlight.js/issues/2277`),J=G,B=D),j===void 0&&(j=!0);const Z={code:B,language:J};V("before:highlight",Z);const X=Z.result?Z.result:g(Z.language,Z.code,j);return X.code=Z.code,V("after:highlight",X),X}function g(G,D,j,B){const J=Object.create(null);function Z(ue,ye){return ue.keywords[ye]}function X(){if(!be.keywords){Oe.addText(Ce);return}let ue=0;be.keywordPatternRe.lastIndex=0;let ye=be.keywordPatternRe.exec(Ce),x="";for(;ye;){x+=Ce.substring(ue,ye.index);const pe=ge.case_insensitive?ye[0].toLowerCase():ye[0],me=Z(be,pe);if(me){const[Re,ot]=me;if(Oe.addText(x),x="",J[pe]=(J[pe]||0)+1,J[pe]<=J2&&(je+=ot),Re.startsWith("_"))x+=ye[0];else{const Je=ge.classNameAliases[Re]||Re;ne(ye[0],Je)}}else x+=ye[0];ue=be.keywordPatternRe.lastIndex,ye=be.keywordPatternRe.exec(Ce)}x+=Ce.substring(ue),Oe.addText(x)}function $(){if(Ce==="")return;let ue=null;if(typeof be.subLanguage=="string"){if(!e[be.subLanguage]){Oe.addText(Ce);return}ue=g(be.subLanguage,Ce,!0,it[be.subLanguage]),it[be.subLanguage]=ue._top}else ue=_(Ce,be.subLanguage.length?be.subLanguage:null);be.relevance>0&&(je+=ue.relevance),Oe.__addSublanguage(ue._emitter,ue.language)}function te(){be.subLanguage!=null?$():X(),Ce=""}function ne(ue,ye){ue!==""&&(Oe.startScope(ye),Oe.addText(ue),Oe.endScope())}function de(ue,ye){let x=1;const pe=ye.length-1;for(;x<=pe;){if(!ue._emit[x]){x++;continue}const me=ge.classNameAliases[ue[x]]||ue[x],Re=ye[x];me?ne(Re,me):(Ce=Re,X(),Ce=""),x++}}function Ae(ue,ye){return ue.scope&&typeof ue.scope=="string"&&Oe.openNode(ge.classNameAliases[ue.scope]||ue.scope),ue.beginScope&&(ue.beginScope._wrap?(ne(Ce,ge.classNameAliases[ue.beginScope._wrap]||ue.beginScope._wrap),Ce=""):ue.beginScope._multi&&(de(ue.beginScope,ye),Ce="")),be=Object.create(ue,{parent:{value:be}}),be}function ze(ue,ye,x){let pe=d2(ue.endRe,x);if(pe){if(ue["on:end"]){const me=new Tc(ue);ue["on:end"](ye,me),me.isMatchIgnored&&(pe=!1)}if(pe){for(;ue.endsParent&&ue.parent;)ue=ue.parent;return ue}}if(ue.endsWithParent)return ze(ue.parent,ye,x)}function qe(ue){return be.matcher.regexIndex===0?(Ce+=ue[0],1):(Fe=!0,0)}function Ne(ue){const ye=ue[0],x=ue.rule,pe=new Tc(x),me=[x.__beforeBegin,x["on:begin"]];for(const Re of me)if(Re&&(Re(ue,pe),pe.isMatchIgnored))return qe(ye);return x.skip?Ce+=ye:(x.excludeBegin&&(Ce+=ye),te(),!x.returnBegin&&!x.excludeBegin&&(Ce=ye)),Ae(x,ue),x.returnBegin?0:ye.length}function ee(ue){const ye=ue[0],x=D.substring(ue.index),pe=ze(be,ue,x);if(!pe)return Ic;const me=be;be.endScope&&be.endScope._wrap?(te(),ne(ye,be.endScope._wrap)):be.endScope&&be.endScope._multi?(te(),de(be.endScope,ue)):me.skip?Ce+=ye:(me.returnEnd||me.excludeEnd||(Ce+=ye),te(),me.excludeEnd&&(Ce=ye));do be.scope&&Oe.closeNode(),!be.skip&&!be.subLanguage&&(je+=be.relevance),be=be.parent;while(be!==pe.parent);return pe.starts&&Ae(pe.starts,ue),me.returnEnd?0:ye.length}function re(){const ue=[];for(let ye=be;ye!==ge;ye=ye.parent)ye.scope&&ue.unshift(ye.scope);ue.forEach(ye=>Oe.openNode(ye))}let Se={};function Be(ue,ye){const x=ye&&ye[0];if(Ce+=ue,x==null)return te(),0;if(Se.type==="begin"&&ye.type==="end"&&Se.index===ye.index&&x===""){if(Ce+=D.slice(ye.index,ye.index+1),!s){const pe=new Error(`0 width match regex (${G})`);throw pe.languageName=G,pe.badRule=Se.rule,pe}return 1}if(Se=ye,ye.type==="begin")return Ne(ye);if(ye.type==="illegal"&&!j){const pe=new Error('Illegal lexeme "'+x+'" for mode "'+(be.scope||"")+'"');throw pe.mode=be,pe}else if(ye.type==="end"){const pe=ee(ye);if(pe!==Ic)return pe}if(ye.type==="illegal"&&x==="")return Ce+=`
-`,1;if(Pe>1e5&&Pe>ye.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Ce+=x,x.length}const ge=L(G);if(!ge)throw bl(o.replace("{}",G)),new Error('Unknown language: "'+G+'"');const We=q2(ge);let mt="",be=B||We;const it={},Oe=new c.__emitter(c);re();let Ce="",je=0,Ue=0,Pe=0,Fe=!1;try{if(ge.__emitTokens)ge.__emitTokens(D,Oe);else{for(be.matcher.considerAll();;){Pe++,Fe?Fe=!1:be.matcher.considerAll(),be.matcher.lastIndex=Ue;const ue=be.matcher.exec(D);if(!ue)break;const ye=D.substring(Ue,ue.index),x=Be(ye,ue);Ue=ue.index+x}Be(D.substring(Ue))}return Oe.finalize(),mt=Oe.toHTML(),{language:G,value:mt,relevance:je,illegal:!1,_emitter:Oe,_top:be}}catch(ue){if(ue.message&&ue.message.includes("Illegal"))return{language:G,value:Bi(D),illegal:!0,relevance:0,_illegalBy:{message:ue.message,index:Ue,context:D.slice(Ue-100,Ue+100),mode:ue.mode,resultSoFar:mt},_emitter:Oe};if(s)return{language:G,value:Bi(D),illegal:!1,relevance:0,errorRaised:ue,_emitter:Oe,_top:be};throw ue}}function h(G){const D={value:Bi(G),illegal:!1,relevance:0,_top:i,_emitter:new c.__emitter(c)};return D._emitter.addText(G),D}function _(G,D){D=D||c.languages||Object.keys(e);const j=h(G),B=D.filter(L).filter(U).map(te=>g(te,G,!1));B.unshift(j);const J=B.sort((te,ne)=>{if(te.relevance!==ne.relevance)return ne.relevance-te.relevance;if(te.language&&ne.language){if(L(te.language).supersetOf===ne.language)return 1;if(L(ne.language).supersetOf===te.language)return-1}return 0}),[Z,X]=J,$=Z;return $.secondBest=X,$}function b(G,D,j){const B=D&&t[D]||j;G.classList.add("hljs"),G.classList.add(`language-${B}`)}function k(G){let D=null;const j=d(G);if(u(j))return;if(V("before:highlightElement",{el:G,language:j}),G.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",G);return}if(G.children.length>0&&(c.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(G)),c.throwUnescapedHTML))throw new X2("One of your code blocks includes unescaped HTML.",G.innerHTML);D=G;const B=D.textContent,J=j?m(B,{language:j,ignoreIllegals:!0}):_(B);G.innerHTML=J.value,G.dataset.highlighted="yes",b(G,j,J.language),G.result={language:J.language,re:J.relevance,relevance:J.relevance},J.secondBest&&(G.secondBest={language:J.secondBest.language,relevance:J.secondBest.relevance}),V("after:highlightElement",{el:G,result:J,text:B})}function E(G){c=Rc(c,G)}const y=()=>{A(),Pl("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function T(){A(),Pl("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let N=!1;function A(){function G(){A()}if(document.readyState==="loading"){N||window.addEventListener("DOMContentLoaded",G,!1),N=!0;return}document.querySelectorAll(c.cssSelector).forEach(k)}function I(G,D){let j=null;try{j=D(n)}catch(B){if(bl("Language definition for '{}' could not be registered.".replace("{}",G)),s)bl(B);else throw B;j=i}j.name||(j.name=G),e[G]=j,j.rawDefinition=D.bind(null,n),j.aliases&&z(j.aliases,{languageName:G})}function M(G){delete e[G];for(const D of Object.keys(t))t[D]===G&&delete t[D]}function R(){return Object.keys(e)}function L(G){return G=(G||"").toLowerCase(),e[G]||e[t[G]]}function z(G,{languageName:D}){typeof G=="string"&&(G=[G]),G.forEach(j=>{t[j.toLowerCase()]=D})}function U(G){const D=L(G);return D&&!D.disableAutodetect}function W(G){G["before:highlightBlock"]&&!G["before:highlightElement"]&&(G["before:highlightElement"]=D=>{G["before:highlightBlock"](Object.assign({block:D.el},D))}),G["after:highlightBlock"]&&!G["after:highlightElement"]&&(G["after:highlightElement"]=D=>{G["after:highlightBlock"](Object.assign({block:D.el},D))})}function F(G){W(G),l.push(G)}function K(G){const D=l.indexOf(G);D!==-1&&l.splice(D,1)}function V(G,D){const j=G;l.forEach(function(B){B[j]&&B[j](D)})}function Y(G){return Pl("10.7.0","highlightBlock will be removed entirely in v12.0"),Pl("10.7.0","Please use highlightElement now."),k(G)}Object.assign(n,{highlight:m,highlightAuto:_,highlightAll:A,highlightElement:k,highlightBlock:Y,configure:E,initHighlighting:y,initHighlightingOnLoad:T,registerLanguage:I,unregisterLanguage:M,listLanguages:R,getLanguage:L,registerAliases:z,autoDetection:U,inherit:Rc,addPlugin:F,removePlugin:K}),n.debugMode=function(){s=!1},n.safeMode=function(){s=!0},n.versionString=Y2,n.regex={concat:yl,lookahead:Yd,either:co,optional:u2,anyNumberOfTimes:c2};for(const G in Os)typeof Os[G]=="object"&&qd(Os[G]);return Object.assign(n,Os),n},Ul=lp({});Ul.newInstance=()=>lp({});var Q2=Ul;Ul.HighlightJS=Ul;Ul.default=Ul;const on=s2(Q2),Mc="[A-Za-z$_][0-9A-Za-z$_]*",x2=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],$2=["true","false","null","undefined","NaN","Infinity"],sp=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ip=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],op=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],ew=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],tw=[].concat(op,sp,ip);function nw(n){const e=n.regex,t=(j,{after:B})=>{const J=""+j[0].slice(1);return j.input.indexOf(J,B)!==-1},l=Mc,s={begin:"<>",end:">"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(j,B)=>{const J=j[0].length+j.index,Z=j.input[J];if(Z==="<"||Z===","){B.ignoreMatch();return}Z===">"&&(t(j,{after:J})||B.ignoreMatch());let X;const $=j.input.substring(J);if(X=$.match(/^\s*=/)){B.ignoreMatch();return}if((X=$.match(/^\s+extends\s+/))&&X.index===0){B.ignoreMatch();return}}},c={$pattern:Mc,keyword:x2,literal:$2,built_in:tw,"variable.language":ew},u="[0-9](_?[0-9])*",d=`\\.(${u})`,m="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={className:"number",variants:[{begin:`(\\b(${m})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${m})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},_={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},b={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,h],subLanguage:"css"}},k={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},E={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,h]},T={className:"comment",variants:[n.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},N=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,_,b,k,E,{match:/\$\d+/},g];h.contains=N.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(N)});const A=[].concat(T,h.contains),I=A.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(A)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:I},R={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,e.concat(l,"(",e.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...sp,...ip]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},U={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function F(j){return e.concat("(?!",j.join("|"),")")}const K={match:e.concat(/\b/,F([...op,"super","import"].map(j=>`${j}\\s*\\(`)),l,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},V={begin:e.concat(/\./,e.lookahead(e.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Y={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},G="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",D={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(G)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:I,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,_,b,k,E,T,{match:/\$\d+/},g,L,{scope:"attr",match:l+e.lookahead(":"),relevance:0},D,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[T,n.REGEXP_MODE,{className:"function",begin:G,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:I}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:o},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},U,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,n.inherit(n.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},V,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},K,W,R,Y,{match:/\$[(.]/}]}}const Ys="[A-Za-z$_][0-9A-Za-z$_]*",rp=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],ap=["true","false","null","undefined","NaN","Infinity"],cp=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],up=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],fp=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],dp=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],pp=[].concat(fp,cp,up);function lw(n){const e=n.regex,t=(j,{after:B})=>{const J=""+j[0].slice(1);return j.input.indexOf(J,B)!==-1},l=Ys,s={begin:"<>",end:">"},o=/<[A-Za-z0-9\\._:-]+\s*\/>/,i={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(j,B)=>{const J=j[0].length+j.index,Z=j.input[J];if(Z==="<"||Z===","){B.ignoreMatch();return}Z===">"&&(t(j,{after:J})||B.ignoreMatch());let X;const $=j.input.substring(J);if(X=$.match(/^\s*=/)){B.ignoreMatch();return}if((X=$.match(/^\s+extends\s+/))&&X.index===0){B.ignoreMatch();return}}},c={$pattern:Ys,keyword:rp,literal:ap,built_in:pp,"variable.language":dp},u="[0-9](_?[0-9])*",d=`\\.(${u})`,m="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={className:"number",variants:[{begin:`(\\b(${m})((${d})|\\.)?|(${d}))[eE][+-]?(${u})\\b`},{begin:`\\b(${m})\\b((${d})\\b|\\.)?|(${d})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},h={className:"subst",begin:"\\$\\{",end:"\\}",keywords:c,contains:[]},_={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,h],subLanguage:"xml"}},b={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,h],subLanguage:"css"}},k={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,h],subLanguage:"graphql"}},E={className:"string",begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,h]},T={className:"comment",variants:[n.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:l+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},N=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,_,b,k,E,{match:/\$\d+/},g];h.contains=N.concat({begin:/\{/,end:/\}/,keywords:c,contains:["self"].concat(N)});const A=[].concat(T,h.contains),I=A.concat([{begin:/(\s*)\(/,end:/\)/,keywords:c,contains:["self"].concat(A)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:I},R={variants:[{match:[/class/,/\s+/,l,/\s+/,/extends/,/\s+/,e.concat(l,"(",e.concat(/\./,l),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,l],scope:{1:"keyword",3:"title.class"}}]},L={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...cp,...up]}},z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},U={variants:[{match:[/function/,/\s+/,l,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},W={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function F(j){return e.concat("(?!",j.join("|"),")")}const K={match:e.concat(/\b/,F([...fp,"super","import"].map(j=>`${j}\\s*\\(`)),l,e.lookahead(/\s*\(/)),className:"title.function",relevance:0},V={begin:e.concat(/\./,e.lookahead(e.concat(l,/(?![0-9A-Za-z$_(])/))),end:l,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},Y={match:[/get|set/,/\s+/,l,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},G="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+n.UNDERSCORE_IDENT_RE+")\\s*=>",D={match:[/const|var|let/,/\s+/,l,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(G)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:I,CLASS_REFERENCE:L},illegal:/#(?![$_A-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),z,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,_,b,k,E,T,{match:/\$\d+/},g,L,{scope:"attr",match:l+e.lookahead(":"),relevance:0},D,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[T,n.REGEXP_MODE,{className:"function",begin:G,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:I}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:s.begin,end:s.end},{match:o},{begin:i.begin,"on:begin":i.isTrulyOpeningTag,end:i.end}],subLanguage:"xml",contains:[{begin:i.begin,end:i.end,skip:!0,contains:["self"]}]}]},U,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,n.inherit(n.TITLE_MODE,{begin:l,className:"title.function"})]},{match:/\.\.\./,relevance:0},V,{match:"\\$"+l,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},K,W,R,Y,{match:/\$[(.]/}]}}function sw(n){const e=n.regex,t=lw(n),l=Ys,s=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],o={begin:[/namespace/,/\s+/,n.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},i={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:s},contains:[t.exports.CLASS_REFERENCE]},c={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},u=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],d={$pattern:Ys,keyword:rp.concat(u),literal:ap,built_in:pp.concat(s),"variable.language":dp},m={className:"meta",begin:"@"+l},g=(k,E,y)=>{const T=k.contains.findIndex(N=>N.label===E);if(T===-1)throw new Error("can not find mode to replace");k.contains.splice(T,1,y)};Object.assign(t.keywords,d),t.exports.PARAMS_CONTAINS.push(m);const h=t.contains.find(k=>k.scope==="attr"),_=Object.assign({},h,{match:e.concat(l,e.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,h,_]),t.contains=t.contains.concat([m,o,i,_]),g(t,"shebang",n.SHEBANG()),g(t,"use_strict",c);const b=t.contains.find(k=>k.label==="func.def");return b.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function iw(n){const e=n.regex,t=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),l=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],c={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:l,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},u={className:"meta",begin:/^(>>>|\.\.\.) /},d={className:"subst",begin:/\{/,end:/\}/,keywords:c,illegal:/#/},m={begin:/\{\{/,relevance:0},g={className:"string",contains:[n.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,u],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,u,m,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,u,m,d]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[n.BACKSLASH_ESCAPE,m,d]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,m,d]},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},h="[0-9](_?[0-9])*",_=`(\\b(${h}))?\\.(${h})|\\b(${h})\\.`,b=`\\b|${l.join("|")}`,k={className:"number",relevance:0,variants:[{begin:`(\\b(${h})|(${_}))[eE][+-]?(${h})[jJ]?(?=${b})`},{begin:`(${_})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${b})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${b})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${b})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${b})`},{begin:`\\b(${h})[jJ](?=${b})`}]},E={className:"comment",begin:e.lookahead(/# type:/),end:/$/,keywords:c,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},y={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:["self",u,k,g,n.HASH_COMMENT_MODE]}]};return d.contains=[g,k,u],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:c,illegal:/(<\/|\?)|=>/,contains:[u,k,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},g,E,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[y]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[k,y,g]}]}}function ow(n){const o={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:o,illegal:"",contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,{className:"string",variants:[n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[n.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:o,illegal:/["']/}]}]}}function rw(n){const e=n.regex,t={},l={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},l]});const s={className:"subst",begin:/\$\(/,end:/\)/,contains:[n.BACKSLASH_ESCAPE]},o=n.inherit(n.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,t,s]};s.contains.push(c);const u={match:/\\"/},d={className:"string",begin:/'/,end:/'/},m={match:/\\'/},g={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},n.NUMBER_MODE,t]},h=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],_=n.SHEBANG({binary:`(${h.join("|")})`,relevance:10}),b={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},k=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],E=["true","false"],y={match:/(\/[a-z._-]+)+/},T=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],N=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],A=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],I=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:k,literal:E,built_in:[...T,...N,"set","shopt",...A,...I]},contains:[_,n.SHEBANG(),b,g,o,i,y,c,u,d,m,t]}}function aw(n){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},l=["true","false","null"],s={scope:"literal",beginKeywords:l.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:l},contains:[e,t,n.QUOTE_STRING_MODE,s,n.C_NUMBER_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function cw(n){const e="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",l={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},s={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},o={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},i={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[n.BACKSLASH_ESCAPE,s]},c=n.inherit(i,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),h={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},_={end:",",endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},b={begin:/\{/,end:/\}/,contains:[_],illegal:"\\n",relevance:0},k={begin:"\\[",end:"\\]",contains:[_],illegal:"\\n",relevance:0},E=[l,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type",begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t},{className:"meta",begin:"&"+n.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+n.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},n.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},h,{className:"number",begin:n.C_NUMBER_RE+"\\b",relevance:0},b,k,o,i],y=[...E];return y.pop(),y.push(c),_.contains=y,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:E}}function uw(n){const e=n.regex,t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},l={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},o={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},i={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},c=/[A-Za-z][A-Za-z0-9+.-]*/,u={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,c,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},d={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},m={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},g=n.inherit(d,{contains:[]}),h=n.inherit(m,{contains:[]});d.contains.push(h),m.contains.push(g);let _=[t,u];return[d,m,g,h].forEach(y=>{y.contains=y.contains.concat(_)}),_=_.concat(d,m),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:_},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:_}]}]},t,o,d,m,{className:"quote",begin:"^>\\s+",contains:_,end:"$"},s,l,u,i,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}const fw=n=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:n.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:n.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),dw=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],pw=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],mw=[...dw,...pw],gw=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),hw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),_w=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),bw=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function vw(n){const e=n.regex,t=fw(n),l={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},s="and or not only",o=/@-?\w[\w]*(-\w+)*/,i="[a-zA-Z-][a-zA-Z0-9_-]*",c=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[t.BLOCK_COMMENT,l,t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+i,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+hw.join("|")+")"},{begin:":(:)?("+_w.join("|")+")"}]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+bw.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...c,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...c,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:o},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:s,attribute:gw.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...c,t.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+mw.join("|")+")\\b"}]}}function kw(n){const e=n.regex,t=n.COMMENT("--","$"),l={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},s={begin:/"/,end:/"/,contains:[{match:/""/}]},o=["true","false","unknown"],i=["double precision","large object","with timezone","without timezone"],c=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],u=["add","asc","collation","desc","final","first","last","view"],d=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],m=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],g=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],h=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],_=m,b=[...d,...u].filter(I=>!m.includes(I)),k={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},E={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},y={match:e.concat(/\b/,e.either(..._),/\s*\(/),relevance:0,keywords:{built_in:_}};function T(I){return e.concat(/\b/,e.either(...I.map(M=>M.replace(/\s+/,"\\s+"))),/\b/)}const N={scope:"keyword",match:T(h),relevance:0};function A(I,{exceptions:M,when:R}={}){const L=R;return M=M||[],I.map(z=>z.match(/\|\d+$/)||M.includes(z)?z:L(z)?`${z}|0`:z)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:A(b,{when:I=>I.length<3}),literal:o,type:c,built_in:g},contains:[{scope:"type",match:T(i)},N,y,k,l,s,n.C_NUMBER_MODE,n.C_BLOCK_COMMENT_MODE,t,E]}}function ww(n){const e=n.regex,t=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),l=/[\p{L}0-9._:-]+/u,s={className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},i=n.inherit(o,{begin:/\(/,end:/\)/}),c=n.inherit(n.APOS_STRING_MODE,{className:"string"}),u=n.inherit(n.QUOTE_STRING_MODE,{className:"string"}),d={endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",begin:l,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{begin:/'/,end:/'/,contains:[s]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[o,u,c,i,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[o,i,u,c]}]}]},n.COMMENT(//,{relevance:10}),{begin://,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[u]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/
-
-
+
+
diff --git a/docs/frontend-architecture.md b/docs/frontend-architecture.md
index 6d2813a..f1f916a 100644
--- a/docs/frontend-architecture.md
+++ b/docs/frontend-architecture.md
@@ -136,8 +136,26 @@ The `wailsCall()` helper in `lib/services/wails.js` provides error handling.
Currently all state lives in App.svelte as local variables.
Target: extract into `lib/state/navigation.js` and `lib/state/uiState.js`.
+### Files Flow
+
+- **Component:** `lib/components/files/FilesTab.svelte` — self-contained file browser
+- **API services:** `lib/services/files.js`, `lib/services/nodes.js`
+- **Events emitted:**
+ - `on:openNote` — when a .md file linked to a note is opened
+ - `on:refreshParent` — after file operations that modify the tree
+ - `on:error` — on operation failures
+ - `on:rename` — requests parent to show rename modal
+ - `on:confirm` — requests parent to show confirm dialog
+- **Public methods:**
+ - `resetToNode(nodeId)` — reset state when selected node changes
+ - `filesHandleKeydown(e)` — keyboard handler for files tab
+- **.md → note editor flow:** Handled inside FilesTab via `CheckFileAction` Wails call. If action is 'note', emits `openNote`. If 'external', opens in system viewer. Otherwise shows built-in preview.
+- **File preview:** `FilePreviewModal.svelte` (already existed), invoked by FilesTab
+- **Import dialog:** Inline in FilesTab template (moved from App.svelte)
+
## Build & Verification
- `npm run build` in `frontend/` directory
- `go test ./...` from project root
+- `bash scripts/build.sh gui` for full GUI binary
- Manual smoke testing via Wails dev server
diff --git a/docs/frontend-change-map.md b/docs/frontend-change-map.md
index 0e4c8bc..7cf7c92 100644
--- a/docs/frontend-change-map.md
+++ b/docs/frontend-change-map.md
@@ -15,17 +15,29 @@ into a modular frontend architecture. Each step preserves behaviour exactly.
Extract all Wails calls into service modules.
-- [ ] Create `lib/services/wails.js` — base `wailsCall` helper
-- [ ] Create `lib/services/notes.js` — `listNotes`, `createNote`, `readNote`, `saveNote`, `renameNote`, `deleteNote`
-- [ ] Create `lib/services/files.js` — `loadFolder`, `addFile`, `deleteFile`, etc.
-- [ ] Create `lib/services/search.js` — `searchNodes`
-- [ ] Create `lib/services/inbox.js` — `listInbox`, `captureClipboard`, etc.
-- [ ] Create `lib/services/trash.js` — `loadTrash`, `restore`, `purge`
-- [ ] Create `lib/services/sync.js` — `loadSyncStatus`, `runSync`
-- [ ] Create `lib/services/journal.js` — `loadJournal`, `worklog CRUD`
-- [ ] Create `lib/services/actions.js` — `listActions`, `createAction`, `deleteAction`
-- [ ] Create `lib/services/links.js` — `listLinks`, `updateLink`, `deleteLink`
-- [ ] Create `lib/services/activity.js` — `loadActivityFeed`, `loadCaseActivity`
+- [x] Create `lib/services/wails.js` — base `wailsCall` helper
+- [x] Create `lib/services/notes.js` — `listNotes`, `createNote`, `readNote`, `saveNote`, `renameNote`, `deleteNote`
+- [x] Create `lib/services/files.js` — `loadFolder`, `addFile`, `deleteFile`, etc.
+- [x] Create `lib/services/search.js` — `searchNodes`, `getNodeDetail`, `searchWorkspace`
+- [x] Create `lib/services/inbox.js` — inbox capture and management
+- [x] Create `lib/services/trash.js` — trash operations
+- [x] Create `lib/services/sync.js` — sync status and trigger
+- [x] Create `lib/services/journal.js` — worklog CRUD and reports
+- [x] Create `lib/services/actions.js` — actions CRUD
+- [x] Create `lib/services/links.js` — links CRUD
+- [x] Create `lib/services/activity.js` — activity feed
+- [x] Create `lib/services/nodes.js` — tree, node CRUD, system views
+- [x] Create `lib/services/suggestions.js` — worklog suggestions
+- [x] Create `lib/services/today.js` — today dashboard
+- [x] Create `lib/services/browserEvents.js` — browser extension events
+- [x] Create `lib/services/search.js` — `searchNodes`
+- [x] Create `lib/services/inbox.js` — `listInbox`, `captureClipboard`, etc.
+- [x] Create `lib/services/trash.js` — `loadTrash`, `restore`, `purge`
+- [x] Create `lib/services/sync.js` — `loadSyncStatus`, `runSync`
+- [x] Create `lib/services/journal.js` — `loadJournal`, `worklog CRUD`
+- [x] Create `lib/services/actions.js` — `listActions`, `createAction`, `deleteAction`
+- [x] Create `lib/services/links.js` — `listLinks`, `updateLink`, `deleteLink`
+- [x] Create `lib/services/activity.js` — `loadActivityFeed`, `loadCaseActivity`
## Phase 3: State Extraction
@@ -40,9 +52,9 @@ Extract all Wails calls into service modules.
## Phase 5: Component Extraction — Tab Content
-- [ ] Extract `OverviewTab.svelte`
-- [ ] Extract `NotesTab.svelte`
-- [ ] Extract `FilesTab.svelte`
+- [x] Extract `OverviewTab.svelte`
+- [x] Extract `NotesTab.svelte`
+- [x] Extract `FilesTab.svelte`
- [ ] Extract `LinksTab.svelte`
- [ ] Extract `ActionsTab.svelte`
- [ ] Extract `WorklogTab.svelte`
diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte
index 042b836..3e7fb55 100644
--- a/frontend/src/App.svelte
+++ b/frontend/src/App.svelte
@@ -22,6 +22,10 @@
import CaptureDropOverlay from './lib/components/CaptureDropOverlay.svelte'
import OverviewTab from './lib/components/OverviewTab.svelte'
import NotesTab from './lib/components/notes/NotesTab.svelte'
+ import FilesTab from './lib/components/files/FilesTab.svelte'
+
+ // Component refs
+ let filesTabRef = null
// ===== Wails v2 API call helper =====
function wailsCall(method, ...args) {
@@ -162,33 +166,6 @@
{ id: 'launch_app', label: t('action.launchApp') },
]
let loading = true
- let importing = false
- let importSummary = null
- let showImportDialog = false
- let pendingImportPath = ''
- let pendingImportParent = ''
- let pendingImportMode = 'copy'
- let treeItems = []
- let expanded = {}
- let childrenMap = {}
- let loadingFiles = false
- let currentFolderId = null
- let folderStack = []
- let fileItems = []
- let previewItem = null
- let previewContent = ''
- let previewLoading = false
- let previewError = ''
- let clipboard = { items: [], mode: 'copy' }
- let selectedIds = []
- let dragIds = []
- let dropRootValid = false
- let inboxDropValid = false
- let captureDropActive = false
- let captureDropLabel = ''
- let captureDragDepth = 0
- let lastCaptureDragOverAt = 0
- let captureDragResetTimer = null
let showConfirm = false
let confirmTitle = ''
@@ -306,12 +283,10 @@
function closeTopModalForBack() {
if (showConfirm) { closeConfirm(); return true }
if (showSettings) { closeSettings(); return true }
- if (previewItem) { closePreview(); return true }
if (assignInboxItem) { closeAssignInbox(); return true }
if (editingLink) { closeEditLink(); return true }
if (showRename) { showRename = false; return true }
if (showWorklogModal) { closeWorklogModal(); return true }
- if (showImportDialog) { cancelImport(); return true }
if (showCreateAction) { cancelCreateAction(); return true }
if (showCreateNote) { cancelCreateNote(); return true }
if (showCreateNode) { cancelCreateNode(); return true }
@@ -330,9 +305,6 @@
}
await selectNode(node)
activeTab = snapshot.tab || 'overview'
- if (activeTab === 'files' && fileItems.length === 0) {
- await loadFolder(node.id)
- }
return true
} else if (snapshot.section) {
if (!systemViews.some(view => view.id === snapshot.section)) {
@@ -377,7 +349,6 @@
if (activeTab === tabId) return
rememberNavigation()
activeTab = tabId
- if (tabId === 'files' && selectedNode && fileItems.length === 0 && !currentFolderId) loadFolder(selectedNode.id)
}
// ===== Lifecycle =====
@@ -525,19 +496,13 @@
actions = []
worklog = []
suggestions = []
- fileItems = []
- folderStack = []
- currentFolderId = null
- previewItem = null
- previewContent = ''
- selectedIds = []
- dragIds = []
resetTrashBrowser()
noteEditor = null
showCreateNode = false
showCreateNote = false
error = ''
caseActivity = []
+ if (filesTabRef) filesTabRef.resetToNode(node.id)
await loadTabData(node.id)
}
@@ -555,291 +520,6 @@
try { caseActivity = await wailsCall('ListActivityByNode', nodeID, 50, 0) || [] } catch(e) {}
}
- async function loadTree(nodeID) {
- loadingFiles = true
- try {
- treeItems = await wailsCall('ListItems', nodeID) || []
- } catch (e) {
- treeItems = []
- }
- loadingFiles = false
- }
-
- // ===== Folder navigation =====
-
- async function loadFolder(folderId) {
- loadingFiles = true
- try {
- let items = await wailsCall('ListItems', folderId) || []
- items.sort((a, b) => {
- if (a.type !== b.type) return a.type === 'folder' ? -1 : 1
- return (a.name || '').localeCompare(b.name || '')
- })
- fileItems = items
- } catch (e) {
- fileItems = []
- }
- loadingFiles = false
- }
-
- async function navigateToFolder(folderId) {
- if (!selectedNode) return
- rememberNavigation()
- try {
- const node = await wailsCall('GetNodeDetail', folderId)
- if (node) {
- folderStack = [...folderStack, { id: folderId, name: node.title }]
- }
- } catch (e) {
- folderStack = [...folderStack, { id: folderId, name: '...' }]
- }
- currentFolderId = folderId
- expanded = { ...expanded, [folderId]: true }
- const children = await wailsCall('ListWorkspaceChildren', folderId) || []
- setNodeChildren(workspaceTree, folderId, children)
- workspaceTree = [...workspaceTree]
- await loadFolder(folderId)
- }
-
- function navigateBack() {
- rememberNavigation()
- if (folderStack.length < 2) {
- // Go back to root
- folderStack = []
- currentFolderId = null
- loadFolder(selectedNode.id)
- } else {
- const target = folderStack[folderStack.length - 2]
- folderStack = folderStack.slice(0, -1)
- currentFolderId = target.id
- loadFolder(target.id)
- }
- }
-
- function navigateToBreadcrumb(index) {
- const target = folderStack[index]
- folderStack = folderStack.slice(0, index + 1)
- currentFolderId = target.id
- loadFolder(target.id)
- }
-
- // ===== File preview =====
-
- async function openPreview(item) {
- // For .md files: check if linked to a note, open note editor instead of preview modal
- if (item && item.fileId && isMarkdownFile(item)) {
- try {
- const action = await wailsCall('CheckFileAction', item.fileId)
- if (action.action === 'note') {
- await openNote({ id: action.noteId, title: action.noteTitle })
- return
- }
- if (action.action === 'external') {
- await wailsCall('OpenFile', item.fileId)
- return
- }
- // 'preview' → fall through to normal preview
- } catch (e) {
- console.warn('CheckFileAction failed, falling back to preview:', e)
- }
- }
-
- previewItem = item
- previewContent = ''
- previewError = ''
- previewLoading = true
-
- try {
- if (needsBase64Preview(item)) {
- previewContent = await wailsCall('GetFileBase64', item.fileId) || ''
- } else if (needsTextPreview(item)) {
- previewContent = await wailsCall('ReadFileText', item.fileId) || ''
- }
- } catch (e) {
- previewError = String(e)
- }
- previewLoading = false
- }
-
- function closePreview() {
- previewItem = null
- previewContent = ''
- previewError = ''
- }
-
- // ===== File operations =====
-
- async function createFile() {
- const name = prompt(t('file.namePrompt'))
- if (!name || !name.trim()) return
- try {
- const parentId = currentFolderId || selectedNode.id
- await wailsCall('CreateEmptyFile', parentId, name.trim())
- await loadFolder(parentId)
- await refreshParentNode(parentId)
- } catch (e) {
- error = String(e)
- }
- }
-
- async function duplicateItem(id) {
- try {
- await wailsCall('DuplicateNode', id)
- const parentId = currentFolderId || selectedNode.id
- await loadFolder(parentId)
- await refreshParentNode(parentId)
- } catch (e) {
- error = String(e)
- }
- }
-
- function renameItem(id) {
- const item = fileItems.find(x => x.id === id)
- if (item) openRename(item.id, item.name)
- }
-
- function cutItem(id) {
- clipboard = { items: [id], mode: 'cut' }
- }
-
- function copyItem(id) {
- clipboard = { items: [id], mode: 'copy' }
- }
-
- async function pasteItem() {
- if (clipboard.items.length === 0) return
- const targetId = currentFolderId || selectedNode.id
- try {
- if (clipboard.mode === 'copy') {
- for (const id of clipboard.items) {
- await wailsCall('DuplicateNode', id)
- }
- } else {
- for (const id of clipboard.items) {
- await wailsCall('MoveNode', id, targetId)
- }
- }
- clipboard = { items: [], mode: 'copy' }
- await loadFolder(targetId)
- } catch (e) {
- error = String(e)
- }
- }
-
- // ===== Selection =====
-
- function toggleSelection(id) {
- if (selectedIds.includes(id)) {
- selectedIds = selectedIds.filter(x => x !== id)
- } else {
- selectedIds = [...selectedIds, id]
- }
- }
-
- function selectOne(id) {
- selectedIds = [id]
- }
-
- function selectAll() {
- selectedIds = fileItems.map(x => x.id)
- }
-
- function rangeSelect(id) {
- if (fileItems.length === 0) return
- const lastId = selectedIds.length > 0 ? selectedIds[selectedIds.length - 1] : fileItems[0].id
- const lastIdx = fileItems.findIndex(x => x.id === lastId)
- const curIdx = fileItems.findIndex(x => x.id === id)
- if (lastIdx === -1 || curIdx === -1) return
- const start = Math.min(lastIdx, curIdx)
- const end = Math.max(lastIdx, curIdx)
- const range = fileItems.slice(start, end + 1).map(x => x.id)
- const set = new Set(selectedIds)
- range.forEach(x => set.add(x))
- selectedIds = [...set]
- }
-
- function clearSelection() {
- selectedIds = []
- }
-
- function getTargetIds(ids) {
- return ids.length > 0 ? ids : fileItems.map(x => x.id)
- }
-
- async function deleteSelected() {
- const ids = getTargetIds(selectedIds)
- const item = fileItems.find(x => x.id === ids[0])
- let label
- if (ids.length === 1 && item?.type === 'folder') {
- label = t('delete.folder')
- } else if (ids.length === 1) {
- label = t('delete.file')
- } else {
- label = t('delete.files', { count: ids.length })
- }
- openConfirm({
- title: t('delete.confirmTitle'),
- message: t('delete.confirmMessage') + ' ' + label + '?',
- confirmText: t('common.delete'),
- danger: true,
- onConfirm: async () => {
- for (const id of ids) {
- try {
- await wailsCall('DeleteFileOrFolder', id)
- } catch (e) { error = String(e) }
- }
- selectedIds = []
- const reloadId = currentFolderId || selectedNode.id
- await loadFolder(reloadId)
- }
- })
- }
-
- function cutSelected() {
- const ids = getTargetIds(selectedIds)
- clipboard = { items: ids, mode: 'cut' }
- selectedIds = []
- }
-
- function copySelected() {
- const ids = getTargetIds(selectedIds)
- clipboard = { items: ids, mode: 'copy' }
- selectedIds = []
- }
-
- // ===== Drag-and-drop =====
-
- function onDragStart(e, id) {
- e.stopPropagation()
- const ids = selectedIds.includes(id) ? selectedIds : [id]
- dragIds = ids
- e.dataTransfer.effectAllowed = 'move'
- e.dataTransfer.setData('text/plain', ids.join(','))
- }
-
- function onDragOver(e, folderId) {
- const item = fileItems.find(x => x.id === folderId)
- if (item && item.type === 'folder') {
- e.preventDefault()
- e.stopPropagation()
- e.dataTransfer.dropEffect = 'move'
- }
- }
-
- async function onDrop(e, folderId) {
- e.preventDefault()
- e.stopPropagation()
- if (dragIds.length === 0) return
- for (const id of dragIds) {
- try {
- await wailsCall('MoveNode', id, folderId)
- } catch (e) { error = String(e) }
- }
- dragIds = []
- selectedIds = []
- await loadFolder(currentFolderId || selectedNode.id)
- }
-
// ===== Keyboard =====
function isEditableTarget(target) {
@@ -863,47 +543,9 @@
if (activeTab !== 'files') return
- if (e.ctrlKey || e.metaKey) {
- if (e.key === 'c' || e.key === 'C') { e.preventDefault(); copySelected() }
- else if (e.key === 'x' || e.key === 'X') { e.preventDefault(); cutSelected() }
- else if (e.key === 'v' || e.key === 'V') { e.preventDefault(); pasteItem() }
- else if (e.key === 'a' || e.key === 'A') { e.preventDefault(); selectAll() }
- else if (e.key === 'o' || e.key === 'O') { e.preventDefault(); openSelectedExternal() }
- else if (e.key === 'Enter') { e.preventDefault(); openSelected() }
- } else if (e.key === 'Enter') {
- e.preventDefault()
- openSelected()
- } else if (e.key === 'Delete') {
- if (previewItem) { e.preventDefault(); closePreview(); return }
- if (selectedIds.length > 0) { e.preventDefault(); deleteSelected(); return }
- } else if (e.key === 'Escape') {
- if (previewItem) { closePreview(); return }
- if (selectedIds.length > 0) { clearSelection(); return }
- } else if (e.key === 'F2') {
- e.preventDefault()
- openRenameForSelection()
- }
- }
-
- function openSelected() {
- if (selectedIds.length === 1) {
- const item = fileItems.find(x => x.id === selectedIds[0])
- if (item) {
- if (item.type === 'folder') {
- navigateToFolder(item.id)
- } else {
- openPreview(item)
- }
- }
- }
- }
-
- function openSelectedExternal() {
- if (selectedIds.length === 1) {
- const item = fileItems.find(x => x.id === selectedIds[0])
- if (item && item.fileId) {
- wailsCall('OpenFile', item.fileId)
- }
+ if (filesTabRef) {
+ filesTabRef.filesHandleKeydown(e)
+ return
}
}
@@ -1983,80 +1625,7 @@
URL.revokeObjectURL(url)
}
- // ===== Files =====
- async function addFile() {
- const path = await wailsCall('PickFile')
- if (!path) return
- const parentId = currentFolderId || selectedNode.id
- await startImport(parentId, path)
- }
-
- async function addFolder() {
- const path = await wailsCall('PickDirectory')
- if (!path) return
- const parentId = currentFolderId || selectedNode.id
- await startImport(parentId, path)
- }
-
- async function startImport(parentID, sourcePath) {
- importing = true
- try {
- const summary = await wailsCall('PreviewImport', sourcePath)
- importSummary = summary
- pendingImportPath = sourcePath
- pendingImportParent = parentID
- showImportDialog = true
- } catch (e) {
- error = String(e)
- }
- importing = false
- }
-
- async function confirmImport(mode) {
- try {
- const parentId = pendingImportParent || selectedNode.id
- const result = mode === 'copy'
- ? await wailsCall('AddPathCopy', parentId, pendingImportPath)
- : await wailsCall('AddPathLink', parentId, pendingImportPath)
- showImportDialog = false
- importSummary = null
- folderStack = []
- currentFolderId = null
- await Promise.all([
- loadTabData(parentId),
- loadFolder(parentId),
- refreshParentNode(parentId),
- ])
- } catch (e) {
- error = String(e)
- }
- }
-
- function cancelImport() {
- showImportDialog = false
- importSummary = null
- }
-
- async function deleteFile({ id, type }) {
- const label = type === 'folder' ? t('delete.folder') : t('delete.file')
- openConfirm({
- title: t('delete.confirmTitle'),
- message: t('delete.confirmMessage') + ' ' + label + '?',
- confirmText: t('common.delete'),
- danger: true,
- onConfirm: async () => {
- try {
- await wailsCall('DeleteFileOrFolder', id)
- files = files.filter(f => f.nodeId !== id)
- const reloadId = currentFolderId || selectedNode.id
- await loadFolder(reloadId)
- } catch (e) {
- error = String(e)
- }
- }
- })
- }
-
+ // ===== Drag-and-drop =====
async function openSelectedFile(fileID) {
try {
await wailsCall('OpenFile', fileID)
@@ -3022,87 +2591,15 @@
/>
{:else if activeTab === 'files'}
-
-
-
- {t('file.addFile')}
- {t('file.addFolder')}
- {t('file.newFile')}
- {#if clipboard.items.length > 0}
- {t('common.paste')} {clipboard.items.length}
- {/if}
-
-
- {#if loadingFiles}
-
-
{t('common.loading')}
-
- {:else}
- {#if folderStack.length > 0}
-
{
- const i = e.detail
- if (i === 0) {
- folderStack = []
- currentFolderId = null
- loadFolder(selectedNode.id)
- } else {
- navigateToBreadcrumb(i - 1)
- }
- }}/>
-
-
- {t('common.backLabel')}
-
- {:else}
-
- {/if}
-
- {#if fileItems.length === 0}
-
-
-
{folderStack.length > 0 ? t('file.noFiles') : t('file.noFilesCase')}
-
{t('file.hint')}
-
- {t('file.addFileSimple')}
- {t('file.addFolderSimple')}
-
-
- {:else}
-
- {#each fileItems as item (item.id)}
- navigateToFolder(e.detail)}
- on:preview={(e) => openPreview(e.detail)}
- on:openExternal={(e) => wailsCall('OpenFile', e.detail)}
- on:showInFolder={(e) => wailsCall('OpenFolder', e.detail)}
- on:delete={(e) => deleteFile(e.detail)}
- on:rename={(e) => renameItem(e.detail.id)}
- on:duplicate={(e) => duplicateItem(e.detail)}
- on:cut={(e) => cutItem(e.detail)}
- on:copy={(e) => copyItem(e.detail)}
- on:selectOne={(e) => selectOne(e.detail)}
- on:toggleSelect={(e) => toggleSelection(e.detail)}
- on:rangeSelect={(e) => rangeSelect(e.detail)}
- />
- {/each}
-
- {/if}
- {/if}
-
- {#if importing && !showImportDialog}
-
- {/if}
-
+ openNote(e.detail.note)}
+ on:refreshParent={(e) => refreshParentNode(e.detail.nodeId)}
+ on:error={(e) => { error = e.detail.message }}
+ on:rename={(e) => openRename(e.detail.id, e.detail.name)}
+ on:confirm={(e) => openConfirm(e.detail)}
+ />
{:else if activeTab === 'inbox'}
@@ -3968,30 +3465,6 @@
{/if}
- {#if showImportDialog && importSummary}
-
-
-
{t('file.importTitle')} «{selectedNode ? selectedNode.title : ''}»
-
-
{t('file.importFiles')} {importSummary.files}
-
{t('file.importFolders')} {importSummary.folders}
-
{t('file.importSize')} {(importSummary.totalBytes / 1024).toFixed(1)} KB
- {#if importSummary.isDangerous}
-
-
- {importSummary.dangerReason}
-
- {/if}
-
-
- confirmImport('copy')}>{t('file.importCopy')}
- confirmImport('link')}>{t('file.importLink')}
- {t('common.cancel')}
-
-
-
- {/if}
-
{#if showRename}
diff --git a/frontend/src/lib/components/files/FilesTab.svelte b/frontend/src/lib/components/files/FilesTab.svelte
new file mode 100644
index 0000000..55509f4
--- /dev/null
+++ b/frontend/src/lib/components/files/FilesTab.svelte
@@ -0,0 +1,616 @@
+
+
+
+
+ {t('file.addFile')}
+ {t('file.addFolder')}
+ {t('file.newFile')}
+ {#if clipboard.items.length > 0}
+ {t('common.paste')} {clipboard.items.length}
+ {/if}
+
+
+ {#if loadingFiles}
+
+
{t('common.loading')}
+
+ {:else}
+ {#if folderStack.length > 0}
+
{
+ const i = e.detail
+ if (i === 0) {
+ folderStack = []
+ currentFolderId = null
+ if (selectedNode) loadFolder(selectedNode.id)
+ } else {
+ navigateToBreadcrumb(i - 1)
+ }
+ }}/>
+
+
+ {t('common.backLabel')}
+
+ {:else}
+
+ {/if}
+
+ {#if fileItems.length === 0}
+
+
+
{folderStack.length > 0 ? t('file.noFiles') : t('file.noFilesCase')}
+
{t('file.hint')}
+
+ {t('file.addFileSimple')}
+ {t('file.addFolderSimple')}
+
+
+ {:else}
+
+ {#each fileItems as item (item.id)}
+ navigateToFolder(e.detail)}
+ on:preview={(e) => openPreview(e.detail)}
+ on:openExternal={(e) => wailsCall('OpenFile', e.detail)}
+ on:showInFolder={(e) => wailsCall('OpenFolder', e.detail)}
+ on:delete={(e) => deleteFile(e.detail)}
+ on:rename={(e) => renameItem(e.detail.id)}
+ on:duplicate={(e) => duplicateItem(e.detail)}
+ on:cut={(e) => cutItem(e.detail)}
+ on:copy={(e) => copyItem(e.detail)}
+ on:selectOne={(e) => selectOne(e.detail)}
+ on:toggleSelect={(e) => toggleSelection(e.detail)}
+ on:rangeSelect={(e) => rangeSelect(e.detail)}
+ />
+ {/each}
+
+ {/if}
+ {/if}
+
+ {#if importing && !showImportDialog}
+
+ {/if}
+
+
+ {#if showImportDialog && importSummary}
+ e.key === 'Escape' && cancelImport()}>
+
+
{t('file.importTitle')}
+
+
{t('file.path')}: {importSummary.path || pendingImportPath}
+ {#if importSummary.files}
+
{t('file.files')}: {importSummary.files.length}
+ {/if}
+
+
+ confirmImport('copy')}>{t('file.importCopy')}
+ confirmImport('link')}>{t('file.importLink')}
+ {t('common.cancel')}
+
+
+
+ {/if}
+
+
+ {#if previewItem}
+
+ {/if}
+
+
+