volute 0.30.1 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accept-E3PAH3QJ.js → accept-GAKQ3MEH.js} +4 -4
- package/dist/{activity-events-BKBPPUBP.js → activity-events-T5ZRCVAL.js} +2 -2
- package/dist/{ai-service-VAJT5UBS.js → ai-service-UWUPM4T6.js} +5 -3
- package/dist/api.d.ts +238 -111
- package/dist/{archive-WWDBWYN2.js → archive-YBNSJYZZ.js} +2 -2
- package/dist/auth-T5AW2USD.js +43 -0
- package/dist/{bridge-RO37CUFM.js → bridge-4AJ3EY26.js} +4 -4
- package/dist/{chat-TCUNPFGO.js → chat-7YLT7FI3.js} +8 -8
- package/dist/{chunk-EFVHR7KH.js → chunk-4OUOFS23.js} +24 -5
- package/dist/{chunk-G3GBKZGG.js → chunk-57OKQMP3.js} +54 -2
- package/dist/chunk-6QIUN46C.js +38 -0
- package/dist/{chunk-FSM45XD5.js → chunk-AAO77TZX.js} +1 -1
- package/dist/{chunk-DTC6EH5I.js → chunk-BC3P3QCK.js} +1 -1
- package/dist/{chunk-P7VFDSSG.js → chunk-BNC43CSY.js} +2 -2
- package/dist/{chunk-QVAQ5454.js → chunk-BWKIHH7B.js} +3080 -2099
- package/dist/{chunk-IKHDUZRH.js → chunk-DAXJKPHZ.js} +2 -2
- package/dist/{chunk-P27RV5WM.js → chunk-EKDWA7E4.js} +3 -1
- package/dist/{chunk-S5LR3XYJ.js → chunk-EMPFLFTG.js} +1 -1
- package/dist/{chunk-2C2VXEBB.js → chunk-FAHDKPEH.js} +18 -56
- package/dist/{chunk-W5OOPLNP.js → chunk-HDKY4TWU.js} +3 -3
- package/dist/{chunk-EFP3PE6C.js → chunk-HR5JKIDG.js} +2 -12
- package/dist/{chunk-JGFRDMR6.js → chunk-LX6T3GKQ.js} +1 -1
- package/dist/{chunk-2NDZC3S7.js → chunk-NOWVQ7AL.js} +447 -299
- package/dist/{chunk-ZWKTUQEL.js → chunk-NV3TYNWX.js} +1 -1
- package/dist/{chunk-NSBFETWP.js → chunk-PNQCXLSV.js} +7 -26
- package/dist/chunk-R5QJBZZG.js +175 -0
- package/dist/{chunk-MDPCSXZ4.js → chunk-S2TZLSDH.js} +4 -4
- package/dist/{chunk-FXHXHI2A.js → chunk-SNVPRRT7.js} +3 -6
- package/dist/{chunk-UPA6COHU.js → chunk-WRS3B556.js} +5 -5
- package/dist/{chunk-HHTXM4JT.js → chunk-X62AXPR7.js} +36 -4
- package/dist/cli.js +74 -23
- package/dist/{clock-G3ALCMLJ.js → clock-LJCG426D.js} +10 -8
- package/dist/{cloud-sync-JV4LJOK3.js → cloud-sync-O3LXIRN6.js} +13 -13
- package/dist/{conversations-7KVQV7EZ.js → conversations-RKKGP5IA.js} +7 -7
- package/dist/{create-VQSQHJQW.js → create-TL623TFC.js} +1 -1
- package/dist/{create-JTLS7GX3.js → create-WUTIIRI2.js} +4 -4
- package/dist/daemon-client-CVGM25DM.js +11 -0
- package/dist/{daemon-restart-4JGBHEJ4.js → daemon-restart-EZP7XH3V.js} +6 -7
- package/dist/daemon.js +1879 -1727
- package/dist/{db-HMFPIRO2.js → db-SW5PL6QA.js} +1 -1
- package/dist/{delete-JESHKE7F.js → delete-Z6HAG35F.js} +1 -1
- package/dist/down-TS4XQBA4.js +13 -0
- package/dist/{env-CLXXT7M2.js → env-NHESNNSP.js} +4 -4
- package/dist/{export-EGA5M5PB.js → export-EVMP7GWY.js} +3 -3
- package/dist/{extension-WZ4SUPJB.js → extension-LR7EW3JF.js} +5 -6
- package/dist/{extensions-ECO4RPFQ.js → extensions-NGEJI7JH.js} +7 -7
- package/dist/{files-4VEJDASH.js → files-3SM7V33S.js} +5 -5
- package/dist/{history-EJMMLXDO.js → history-PQD3LXEP.js} +4 -4
- package/dist/{import-YCGPMBSI.js → import-PR2OCGQJ.js} +3 -3
- package/dist/{join-2GBJKZEN.js → join-R4EN5CWQ.js} +1 -1
- package/dist/{list-Q6O7FGAN.js → list-B4XNUOFO.js} +4 -4
- package/dist/{login-RL6AU2SM.js → login-62JVY6A2.js} +4 -4
- package/dist/{login-RET5WESK.js → login-URWP6S2N.js} +2 -2
- package/dist/{logout-CGAGJN3L.js → logout-NXJQJDLI.js} +2 -2
- package/dist/{logout-JRPBEMMR.js → logout-ZK2N62T3.js} +2 -2
- package/dist/message-delivery-UJHCLVU4.js +30 -0
- package/dist/{mind-LUWRQUQ5.js → mind-E2ZV2WRX.js} +17 -17
- package/dist/{mind-activity-tracker-VYN2ZZ2M.js → mind-activity-tracker-ASNZBMLC.js} +3 -3
- package/dist/{mind-list-V5WW5DUA.js → mind-list-BEI7E5WY.js} +2 -2
- package/dist/mind-manager-IPA6DZXD.js +26 -0
- package/dist/{mind-sleep-R6PTNNW4.js → mind-sleep-CANABWJI.js} +4 -4
- package/dist/{mind-status-I4ISFJ6I.js → mind-status-6WKZVUOP.js} +2 -2
- package/dist/{mind-wake-67ZQEWAV.js → mind-wake-RZKLH2IN.js} +4 -4
- package/dist/{package-OYUD4ZJ4.js → package-NU4CA7OU.js} +3 -3
- package/dist/{pages-watcher-Z3PKNROC.js → pages-watcher-72OVPRMH.js} +4 -3
- package/dist/read-THL362EI.js +74 -0
- package/dist/{register-NZDSTLP3.js → register-QAQELAS6.js} +4 -4
- package/dist/{registry-ODSALQQL.js → registry-ASXCQCNH.js} +1 -1
- package/dist/{reject-2HZOJEIJ.js → reject-AYPBNPNL.js} +4 -4
- package/dist/{restart-QHS3NT64.js → restart-6SKPV3T2.js} +4 -4
- package/dist/{sandbox-O5FUSF43.js → sandbox-6ZEWQDVU.js} +3 -3
- package/dist/{seed-WUQMPLDM.js → seed-OWX2AW75.js} +36 -12
- package/dist/{send-OAN3RYYY.js → send-ZO4BTWXK.js} +5 -5
- package/dist/{setup-QMDK5RZX.js → setup-7CFITEQN.js} +2 -4
- package/dist/{setup-XJH3E7YM.js → setup-ZXBXG7E4.js} +6 -8
- package/dist/{skill-FZIN4W4Q.js → skill-YFXP67A2.js} +4 -4
- package/dist/skills/dreaming/references/INSTALL.md +2 -3
- package/dist/skills/dreaming/scripts/dream.ts +3 -25
- package/dist/skills/volute-mind/SKILL.md +1 -1
- package/dist/sleep-manager-TPS6OGCA.js +30 -0
- package/dist/{split-EXYGGGQN.js → split-MI62KJUU.js} +1 -1
- package/dist/{sprout-AXQ6H5DB.js → sprout-FDVI2CGN.js} +5 -6
- package/dist/{start-MTOVL6SY.js → start-D64BRKPH.js} +4 -4
- package/dist/{status-ZRO37MWR.js → status-ZZWBYFGE.js} +4 -5
- package/dist/{stop-OK5WEPVC.js → stop-OP2CTXCO.js} +4 -4
- package/dist/system-chat-B43GIXQU.js +30 -0
- package/dist/{systems-W3BBMSOZ.js → systems-EQPPT4B7.js} +5 -5
- package/dist/{tailscale-BM72RXCJ.js → tailscale-6DJKUMNF.js} +1 -1
- package/dist/up-TDXEP3VA.js +16 -0
- package/dist/{update-PLPHMMZ2.js → update-KUJXATRS.js} +4 -5
- package/dist/{update-check-CVCN7MF6.js → update-check-5WVSU37T.js} +2 -2
- package/dist/{upgrade-I6NPCYUU.js → upgrade-KBHCWX6T.js} +1 -1
- package/dist/{version-notify-2NTWVEHL.js → version-notify-75ELVKPV.js} +17 -21
- package/dist/web-assets/assets/index-BM1cTzBg.js +72 -0
- package/dist/web-assets/assets/index-BfJkKTPF.css +1 -0
- package/dist/web-assets/ext-theme.css +1 -0
- package/dist/web-assets/index.html +2 -2
- package/drizzle/0000_baseline.sql +152 -0
- package/drizzle/0001_add_conversation_private.sql +1 -0
- package/drizzle/0002_turns.sql +21 -0
- package/drizzle/0003_turn_feed_links.sql +11 -0
- package/drizzle/meta/0000_snapshot.json +3 -223
- package/drizzle/meta/0001_snapshot.json +3 -294
- package/drizzle/meta/0002_snapshot.json +3 -335
- package/drizzle/meta/0003_snapshot.json +3 -413
- package/drizzle/meta/_journal.json +8 -106
- package/package.json +3 -3
- package/packages/extensions/notes/dist/ui/assets/{index-DgawVO5g.css → index-B8GdTnXs.css} +1 -1
- package/packages/extensions/notes/dist/ui/assets/index-CDpGTCWb.js +2 -0
- package/packages/extensions/notes/dist/ui/index.html +2 -2
- package/packages/extensions/notes/skills/notes/SKILL.md +8 -8
- package/packages/extensions/pages/skills/pages/SKILL.md +7 -4
- package/packages/extensions/pages/skills/pages/scripts/pages.mjs +58 -0
- package/templates/_base/.init/.config/bin/volute +27 -0
- package/templates/_base/src/lib/auto-commit.ts +82 -43
- package/templates/_base/src/lib/daemon-client.ts +19 -23
- package/templates/_base/src/lib/router.ts +17 -1
- package/templates/_base/src/lib/startup.ts +6 -8
- package/templates/_base/src/lib/volute-server.ts +2 -5
- package/templates/claude/src/agent.ts +2 -1
- package/templates/claude/src/lib/hooks/auto-commit.ts +7 -3
- package/templates/claude/src/server.ts +0 -9
- package/templates/pi/package.json.tmpl +1 -1
- package/templates/pi/src/agent.ts +1 -1
- package/templates/pi/src/lib/event-handler.ts +5 -3
- package/dist/chunk-7D47T4RB.js +0 -84
- package/dist/chunk-CVH6Y2YG.js +0 -59
- package/dist/chunk-LIRWLNAK.js +0 -729
- package/dist/daemon-client-BCTFGVCZ.js +0 -9
- package/dist/down-NGBMGORS.js +0 -14
- package/dist/message-delivery-6YMVNOEC.js +0 -28
- package/dist/migrate-registry-to-db-FK35IPEH.js +0 -110
- package/dist/mind-manager-YFCOIAAX.js +0 -18
- package/dist/read-WQMPTSN2.js +0 -46
- package/dist/sleep-manager-O7YQFCV5.js +0 -30
- package/dist/up-BXUAIDXB.js +0 -17
- package/dist/web-assets/assets/index--kREqKl9.js +0 -72
- package/dist/web-assets/assets/index-BXYTG0nJ.css +0 -1
- package/drizzle/0000_flaky_mariko_yashida.sql +0 -34
- package/drizzle/0001_careless_warpath.sql +0 -12
- package/drizzle/0002_wealthy_the_call.sql +0 -6
- package/drizzle/0003_clean_ego.sql +0 -12
- package/drizzle/0004_magical_silverclaw.sql +0 -1
- package/drizzle/0005_rename_agents_to_minds.sql +0 -11
- package/drizzle/0006_mind_history.sql +0 -20
- package/drizzle/0007_system_prompts.sql +0 -5
- package/drizzle/0008_volute_channels.sql +0 -24
- package/drizzle/0009_shared_skills.sql +0 -9
- package/drizzle/0010_delivery_queue.sql +0 -12
- package/drizzle/0011_rename_human_to_brain.sql +0 -1
- package/drizzle/0012_activity.sql +0 -11
- package/drizzle/0013_user_profiles.sql +0 -3
- package/drizzle/0014_conversation_reads.sql +0 -7
- package/drizzle/0015_notes.sql +0 -23
- package/drizzle/0016_note_reactions_and_replies.sql +0 -15
- package/drizzle/0017_minds.sql +0 -16
- package/drizzle/meta/0004_snapshot.json +0 -410
- package/drizzle/meta/0005_snapshot.json +0 -410
- package/drizzle/meta/0006_snapshot.json +0 -7
- package/drizzle/meta/0007_snapshot.json +0 -7
- package/drizzle/meta/0008_snapshot.json +0 -7
- package/drizzle/meta/0009_snapshot.json +0 -7
- package/drizzle/meta/0010_snapshot.json +0 -7
- package/drizzle/meta/0011_snapshot.json +0 -7
- package/drizzle/meta/0012_snapshot.json +0 -7
- package/drizzle/meta/0013_snapshot.json +0 -7
- package/packages/extensions/notes/dist/ui/assets/index-qUWoeC4c.js +0 -2
- package/packages/extensions/notes/skills/notes/scripts/notes.mjs +0 -185
- package/templates/_base/home/public/.gitkeep +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.modal-overlay.svelte-b3ltw6{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .15s ease}.modal.svelte-b3ltw6{max-width:90vw;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.modal.full.svelte-b3ltw6{width:80vw;height:70vh;max-width:960px}.modal-header.svelte-b3ltw6{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:12px 16px;flex-shrink:0}.title.svelte-b3ltw6{font-size:14px;font-weight:600;color:var(--text-0)}.header-right.svelte-b3ltw6{display:flex;align-items:center;gap:8px}.close-btn.svelte-b3ltw6{background:none;color:var(--text-2);font-size:15px;padding:4px 8px}.close-btn.svelte-b3ltw6:hover{color:var(--text-0)}@media(max-width:767px){.modal.full.svelte-b3ltw6{width:95vw;height:85vh}}.error.svelte-16qbe83{padding:8px 16px;font-size:13px;color:var(--red)}.channel-list.svelte-16qbe83{flex:1;overflow:auto;padding:8px}.empty.svelte-16qbe83{color:var(--text-2);font-size:13px;text-align:center;padding:20px}.channel-row.svelte-16qbe83{display:flex;align-items:center;justify-content:space-between;padding:8px;border-radius:var(--radius)}.channel-row.svelte-16qbe83:hover{background:var(--bg-2)}.channel-info.svelte-16qbe83{display:flex;flex-direction:column;gap:2px}.channel-name.svelte-16qbe83{font-size:14px;color:var(--text-0);font-weight:500}.channel-meta.svelte-16qbe83{font-size:12px;color:var(--text-2)}.action-btn.svelte-16qbe83{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.action-btn.leave.svelte-16qbe83{background:var(--bg-3);color:var(--text-2)}.create-section.svelte-16qbe83{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.name-input.svelte-16qbe83{flex:1;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;color:var(--text-0);font-size:13px;font-family:inherit;outline:none}.name-input.svelte-16qbe83:focus{border-color:var(--border-bright)}.create-btn.svelte-16qbe83{padding:8px 14px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:13px;font-weight:500}.create-btn.svelte-16qbe83:disabled{opacity:.4}.invite-body.svelte-19tj18b{padding:12px 16px 16px}.search-input.svelte-19tj18b{width:100%;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;color:var(--text-0);font-size:14px;outline:none;box-sizing:border-box}.search-input.svelte-19tj18b:focus{border-color:var(--border-bright)}.error.svelte-19tj18b{color:var(--red);font-size:13px;padding:6px 0 0}.user-list.svelte-19tj18b{max-height:280px;overflow:auto;margin-top:8px}.user-row.svelte-19tj18b{display:flex;align-items:center;gap:8px;padding:8px;width:100%;background:none;text-align:left;font-size:14px;color:var(--text-1);cursor:pointer;border-radius:var(--radius)}.user-row.svelte-19tj18b:hover:not(:disabled){background:var(--bg-2)}.user-row.svelte-19tj18b:disabled{opacity:.5;cursor:not-allowed}.user-name.svelte-19tj18b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-0)}.user-username.svelte-19tj18b{font-size:12px;color:var(--text-2);margin-left:auto;flex-shrink:0}.status-dot.svelte-19tj18b{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-19tj18b{animation:svelte-19tj18b-iridescent 3s ease-in-out infinite}@keyframes svelte-19tj18b-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.empty.svelte-19tj18b{color:var(--text-2);font-size:13px;padding:12px 8px;text-align:center}.hover-wrapper.svelte-1sojsey{display:flex;align-items:center;gap:8px}.hover-card.svelte-1sojsey{position:fixed;z-index:100;display:flex;gap:10px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #0000004d;white-space:nowrap;pointer-events:none}.avatar.svelte-1sojsey{width:64px;height:64px;border-radius:var(--radius);object-fit:cover;flex-shrink:0}.info.svelte-1sojsey{display:flex;flex-direction:column;gap:2px;min-width:0}.name-row.svelte-1sojsey{display:flex;align-items:center;gap:6px}.display-name.svelte-1sojsey{font-size:14px;font-weight:600;color:var(--text-0)}.type-label.svelte-1sojsey{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);background:var(--muted-bg);padding:1px 6px;border-radius:var(--radius)}.description.svelte-1sojsey{font-size:12px;color:var(--text-1);white-space:normal;max-width:220px;margin-top:2px}.meta.svelte-1sojsey{font-size:11px;color:var(--text-2);margin-top:2px}.view-profile.svelte-1sojsey{font-size:11px;color:var(--accent);margin-top:2px;text-decoration:none;pointer-events:auto}.view-profile.svelte-1sojsey:hover{text-decoration:underline}.members-panel.svelte-488b49{display:flex;flex-direction:column;height:100%;background:var(--bg-1);width:100%;overflow:hidden}.panel-header.svelte-488b49{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.panel-title.svelte-488b49{font-size:14px;font-weight:600;color:var(--text-0)}.member-count.svelte-488b49{font-size:12px;color:var(--text-2);flex:1}.invite-btn.svelte-488b49{background:none;color:var(--text-2);font-size:15px;padding:2px 6px;border-radius:var(--radius);flex-shrink:0}.invite-btn.svelte-488b49:hover{color:var(--text-0);background:var(--bg-2)}.panel-body.svelte-488b49{flex:1;overflow:auto;padding:12px 0}.section-title.svelte-488b49{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);padding:8px 16px 4px}.member-row.svelte-488b49{display:flex;align-items:center;gap:8px;padding:6px 16px;font-size:14px;color:var(--text-1);width:100%;background:none;border:none;text-align:left}.member-row.clickable.svelte-488b49{cursor:pointer}.member-row.clickable.svelte-488b49:hover{background:var(--bg-2)}.member-name.svelte-488b49{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text-0)}.status-dot.svelte-488b49{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-488b49{animation:svelte-488b49-iridescent 3s ease-in-out infinite}@keyframes svelte-488b49-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}@media(max-width:1024px){.members-panel.svelte-488b49{width:100%}}.conv-list.svelte-2bx51q{display:flex;flex-direction:column}.section-header.svelte-2bx51q{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 4px;font-size:11px;font-weight:600;color:var(--text-2);letter-spacing:.05em;text-transform:uppercase}.browse-btn.svelte-2bx51q{font-size:11px;color:var(--accent);background:none;padding:0;text-transform:lowercase;letter-spacing:0;font-weight:500}.conv-item.svelte-2bx51q{padding:6px 12px 6px 26px;margin:0 4px;cursor:pointer;border-radius:var(--radius);display:flex;flex-direction:column;gap:2px;transition:background .1s}.conv-item.svelte-2bx51q:hover{background:var(--bg-2)}.conv-item.active.svelte-2bx51q{background:var(--bg-3)}.conv-item-header.svelte-2bx51q{display:flex;align-items:center;justify-content:space-between;gap:4px}.conv-item-label.svelte-2bx51q{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--text-1);display:flex;align-items:center;gap:6px}.conv-item-label.active.svelte-2bx51q{color:var(--text-0)}.conv-item-label.unread.svelte-2bx51q{font-weight:600;color:var(--text-0)}.unread-badge.svelte-2bx51q{background:var(--accent);color:var(--bg-0);font-size:11px;font-weight:600;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px;flex-shrink:0}.conv-label-text.svelte-2bx51q{overflow:hidden;text-overflow:ellipsis}.conv-label-mind.svelte-2bx51q{overflow:hidden;text-overflow:ellipsis;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.conv-label-mind.svelte-2bx51q:hover{text-decoration:underline}.lock-icon.svelte-2bx51q{width:12px;height:12px;color:var(--text-2);flex-shrink:0}.seed-tag.svelte-2bx51q{font-size:9px;color:var(--yellow);flex-shrink:0}.delete-btn.svelte-2bx51q{background:transparent;color:var(--text-2);font-size:12px;padding:0 4px;flex-shrink:0}.menu-btn.svelte-2bx51q{background:transparent;color:var(--text-2);font-size:12px;padding:0 4px;flex-shrink:0;opacity:0;transition:opacity .1s;letter-spacing:1px}.conv-item.svelte-2bx51q:hover .menu-btn:where(.svelte-2bx51q),.menu-btn.visible.svelte-2bx51q{opacity:1}.menu-btn.svelte-2bx51q:hover{color:var(--text-0)}.member-count.svelte-2bx51q{font-size:11px;color:var(--text-2);padding-left:1px}.status-dot.svelte-2bx51q{width:7px;height:7px;border-radius:50%;flex-shrink:0;border:none;padding:0;cursor:pointer}.status-dot.iridescent.svelte-2bx51q{animation:svelte-2bx51q-iridescent 3s ease-in-out infinite}@keyframes svelte-2bx51q-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.status-dot.svelte-2bx51q:hover{transform:scale(1.3)}.empty.svelte-2bx51q{color:var(--text-2);font-size:12px;padding:8px 12px;text-align:center}.context-menu.svelte-2bx51q{position:fixed;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:4px 0;z-index:200;min-width:120px;box-shadow:0 4px 12px #0000004d}.context-item.svelte-2bx51q{display:block;width:100%;padding:6px 12px;background:none;color:var(--text-1);font-size:13px;text-align:left;white-space:nowrap}.context-item.svelte-2bx51q:hover{background:var(--bg-2);color:var(--text-0)}@media(max-width:767px){.conv-item.svelte-2bx51q{padding:10px 12px 10px 26px}.menu-btn.svelte-2bx51q{opacity:1}.context-item.svelte-2bx51q{padding:10px 16px}}.sidebar-inner.svelte-1kobr7n{display:flex;flex-direction:column;height:100%;overflow:hidden}.sections.svelte-1kobr7n{flex:1;overflow-y:auto;overflow-x:hidden;padding-top:4px}.section.svelte-1kobr7n{margin-bottom:2px}.section-header-row.svelte-1kobr7n{display:flex;align-items:center;padding-right:8px}.section-toggle.svelte-1kobr7n{display:flex;align-items:center;gap:4px;flex:1;padding:6px 12px;background:none;color:var(--text-2);font-family:var(--display);font-size:16px;font-weight:300;letter-spacing:.02em;text-align:left}.section-toggle.svelte-1kobr7n:hover{color:var(--text-1)}.toggle-icon.svelte-1kobr7n{font-size:9px;width:10px}.section-add.svelte-1kobr7n{background:none;color:var(--text-2);font-size:15px;padding:2px 6px;border-radius:var(--radius);flex-shrink:0}.section-add.svelte-1kobr7n:hover{color:var(--text-0);background:var(--bg-2)}.mind-list.svelte-1kobr7n{display:flex;flex-direction:column}.mind-item.svelte-1kobr7n{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 26px;font-size:14px;color:var(--text-1);transition:background .1s;cursor:pointer;background:none;text-align:left;margin:0 4px;border-radius:var(--radius)}.mind-item.svelte-1kobr7n:hover{background:var(--bg-2)}.mind-item.active.svelte-1kobr7n{background:var(--bg-2);color:var(--text-0)}.mind-item-name.svelte-1kobr7n{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.unread-dot.svelte-1kobr7n{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.status-dot.svelte-1kobr7n{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-1kobr7n{animation:svelte-1kobr7n-iridescent 3s ease-in-out infinite}@keyframes svelte-1kobr7n-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}@media(max-width:767px){.mind-item.svelte-1kobr7n{padding:10px 12px 10px 26px;font-size:14px}.section-toggle.svelte-1kobr7n{padding:8px 12px}.status-dot.svelte-1kobr7n{width:8px;height:8px}}.container.svelte-zwrylj{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.card.svelte-zwrylj{width:320px;padding:32px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg)}.branding.svelte-zwrylj{margin-bottom:24px;text-align:center}.logo-row.svelte-zwrylj{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:4px}.logo-wrap.svelte-zwrylj{position:relative;width:34px;height:34px;flex-shrink:0}.login-spiral.svelte-zwrylj{width:34px;height:34px;filter:invert(1);transition:opacity .15s}.hover-dot.svelte-zwrylj{position:absolute;inset:0;margin:auto;width:10px;height:10px;border-radius:50%;opacity:0;transition:opacity .15s;animation:svelte-zwrylj-iridescent 3s ease-in-out infinite}.card.svelte-zwrylj:hover .login-spiral:where(.svelte-zwrylj){opacity:0}.card.svelte-zwrylj:hover .hover-dot:where(.svelte-zwrylj){opacity:1}.logo.svelte-zwrylj{font-family:var(--display);font-size:31px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-top:-4px}.subtitle.svelte-zwrylj{color:var(--text-2);font-size:13px}@keyframes svelte-zwrylj-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.input.svelte-zwrylj{width:100%;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-family:inherit;font-size:14px;outline:none}.input.svelte-zwrylj:focus{border-color:var(--border-bright)}.mt-8.svelte-zwrylj{margin-top:8px}.error.svelte-zwrylj{color:var(--red);font-size:13px;margin-top:8px}.submit-btn.svelte-zwrylj{width:100%;padding:10px 16px;margin-top:16px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:14px;font-weight:500;font-family:inherit;border:none;cursor:pointer}.link-btn.svelte-zwrylj{background:transparent;color:var(--text-2);font-size:13px;font-family:inherit;border:none;cursor:pointer;padding:0}.toggle.svelte-zwrylj{margin-top:16px;text-align:center}.pending-msg.svelte-zwrylj{color:var(--yellow);margin-bottom:16px}.chat-home.svelte-1ixpw90{animation:fadeIn .2s ease both;height:100%;overflow:auto;padding:24px}.empty.svelte-1ixpw90{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.feed-grid.svelte-1ixpw90{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.feed-card.svelte-1ixpw90{background:var(--bg-0);border:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));border-radius:var(--radius-lg);display:flex;flex-direction:column;height:240px;overflow:hidden;transition:border-color .15s;cursor:pointer}.feed-card.svelte-1ixpw90:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--border))}.feed-card-header.svelte-1ixpw90{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-1ixpw90{flex-shrink:0;width:14px;height:14px;color:var(--blue)}.feed-card-label.svelte-1ixpw90{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-meta.svelte-1ixpw90{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-1ixpw90{flex:1;overflow:auto;padding:8px 12px;min-height:0}.card-action-btn.svelte-1ixpw90{font-size:12px;padding:2px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0;background:var(--accent);border:1px solid var(--accent);color:var(--bg-0);transition:opacity .15s}.card-action-btn.svelte-1ixpw90:hover{opacity:.85}.msg-empty.svelte-1ixpw90{color:var(--text-2);font-size:13px;padding:16px 0;text-align:center}.chat-entry.svelte-1ixpw90{padding:1px 0}.chat-entry.new-sender.svelte-1ixpw90{margin-top:8px}.chat-entry.svelte-1ixpw90:first-child{margin-top:0}.chat-entry-header.svelte-1ixpw90{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.chat-sender.svelte-1ixpw90{font-size:12px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-1ixpw90{color:var(--blue)}.chat-timestamp.svelte-1ixpw90{font-size:11px;color:var(--text-2)}.chat-entry-content.svelte-1ixpw90{min-width:0;font-family:var(--mono);font-size:13px}.chat-user-text.svelte-1ixpw90{color:var(--text-0);white-space:pre-wrap}@media(max-width:767px){.chat-home.svelte-1ixpw90{padding:16px}}.feed-card.svelte-c9eofw{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:240px;overflow:hidden;transition:border-color .15s;cursor:pointer}.feed-card.svelte-c9eofw:hover{border-color:var(--border-bright)}.feed-card-header.svelte-c9eofw{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-c9eofw{display:flex;flex-shrink:0}.feed-card-icon.svelte-c9eofw svg{width:14px;height:14px}.feed-card-label.svelte-c9eofw{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-author.svelte-c9eofw{font-size:11px;color:var(--accent);flex-shrink:0}.feed-card-meta.svelte-c9eofw{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-c9eofw{flex:1;overflow:hidden;min-height:0}.body-html.svelte-c9eofw{padding:8px 12px;font-size:13px;color:var(--text-0);line-height:1.5;overflow:hidden;height:100%}.page-preview.svelte-c9eofw{width:100%;height:100%;border:none;pointer-events:none;background:#fff;opacity:0;transition:opacity .15s}.page-preview.loaded.svelte-c9eofw{opacity:1}.home.svelte-1egy5tu{animation:fadeIn .2s ease both}.empty-hint.svelte-1egy5tu{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.feed-grid.svelte-1egy5tu{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.feed-item.svelte-1egy5tu{min-width:0}.feed-card.svelte-1egy5tu{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;height:240px;overflow:hidden;transition:border-color .15s}.feed-card[role=button].svelte-1egy5tu{cursor:pointer}.feed-card-header.svelte-1egy5tu{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-1egy5tu{flex-shrink:0;width:14px;height:14px}.card-chat.svelte-1egy5tu .feed-card-icon:where(.svelte-1egy5tu){color:var(--blue)}.card-chat.svelte-1egy5tu{border-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-1egy5tu .feed-card-header:where(.svelte-1egy5tu){border-bottom-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-1egy5tu:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--border))}.feed-card-label.svelte-1egy5tu{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-meta.svelte-1egy5tu{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-1egy5tu{flex:1;overflow:auto;padding:10px 12px;min-height:0}.card-action-btn.svelte-1egy5tu{font-size:12px;padding:2px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0;background:none;border:1px solid var(--border);color:var(--text-2);transition:color .15s,border-color .15s}.card-action-btn.svelte-1egy5tu:hover{color:var(--text-1);border-color:var(--border-bright)}.card-action-btn-primary.svelte-1egy5tu{background:var(--accent);border-color:var(--accent);color:var(--bg-0)}.card-action-btn-primary.svelte-1egy5tu:hover{opacity:.85;color:var(--bg-0);border-color:var(--accent)}.chat-body.svelte-1egy5tu{padding:8px 12px}.msg-empty.svelte-1egy5tu{color:var(--text-2);font-size:13px;padding:16px 0;text-align:center}.chat-entry.svelte-1egy5tu{padding:1px 0}.chat-entry.new-sender.svelte-1egy5tu{margin-top:8px}.chat-entry.svelte-1egy5tu:first-child{margin-top:0}.chat-entry-header.svelte-1egy5tu{display:flex;align-items:baseline;gap:6px;margin-bottom:1px}.chat-sender.svelte-1egy5tu{font-size:12px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-1egy5tu{color:var(--blue)}.chat-timestamp.svelte-1egy5tu{font-size:11px;color:var(--text-2)}.chat-entry-content.svelte-1egy5tu{min-width:0;font-family:var(--mono);font-size:13px}.chat-user-text.svelte-1egy5tu{color:var(--text-0);white-space:pre-wrap}.badge.svelte-w1qana{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius);font-size:12px;font-weight:500;letter-spacing:.02em;text-transform:uppercase}.dot.svelte-w1qana{width:5px;height:5px;border-radius:50%}.dot.iridescent.svelte-w1qana{animation:svelte-w1qana-iridescent 3s ease-in-out infinite}@keyframes svelte-w1qana-breathe{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-w1qana-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.empty.svelte-wh20l9{color:var(--text-2);padding:24px;text-align:center;font-size:14px}.empty.small.svelte-wh20l9{padding:12px}.error.svelte-wh20l9{color:var(--red);padding:8px 0;font-size:13px}.section.svelte-wh20l9{margin-bottom:24px}.section-title.svelte-wh20l9{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin-bottom:8px}.section-header.svelte-wh20l9{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.status-row.svelte-wh20l9{display:flex;align-items:center;gap:10px}.action-btn.svelte-wh20l9{padding:4px 12px;border-radius:var(--radius);font-size:12px;font-weight:500;transition:opacity .15s}.start-btn.svelte-wh20l9{background:var(--accent-dim);color:var(--accent)}.stop-btn.svelte-wh20l9{background:var(--red-dim);color:var(--red)}.setting-row.svelte-wh20l9{display:flex;align-items:center;gap:12px;padding:6px 0}.setting-label.svelte-wh20l9{width:100px;flex-shrink:0;font-size:14px;color:var(--text-1)}.setting-control.svelte-wh20l9{display:flex;align-items:center;gap:6px;flex:1}.setting-input.svelte-wh20l9{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:14px;color:var(--text-0);flex:1;font-family:inherit}.setting-input.narrow.svelte-wh20l9{width:80px;flex:0 0 80px}.setting-input.svelte-wh20l9:focus{border-color:var(--accent);outline:none}.setting-select.svelte-wh20l9{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:14px;color:var(--text-0);font-family:inherit}.setting-hint.svelte-wh20l9{font-size:13px;color:var(--text-2);flex-shrink:0}.save-btn.svelte-wh20l9{padding:4px 10px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500;flex-shrink:0}.save-btn.svelte-wh20l9:disabled{opacity:.5}.cancel-btn.svelte-wh20l9{padding:4px 10px;font-size:12px;border-radius:var(--radius);background:var(--bg-3);color:var(--text-2);font-weight:500;flex-shrink:0}.add-btn.svelte-wh20l9{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.env-list.svelte-wh20l9{display:flex;flex-direction:column}.env-row.svelte-wh20l9{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:14px}.env-row.svelte-wh20l9:last-child{border-bottom:none}.env-add-row.svelte-wh20l9{display:flex;align-items:center;gap:6px;padding:6px 0;margin-bottom:8px}.env-key.svelte-wh20l9{font-family:var(--mono);font-size:13px;color:var(--text-0);flex-shrink:0;min-width:100px;display:flex;align-items:center;gap:6px}.env-source.svelte-wh20l9{font-family:inherit;font-size:11px;padding:1px 4px;border-radius:4px;background:var(--bg-3);color:var(--text-2)}.env-value.svelte-wh20l9{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:13px;color:var(--text-1)}.env-value.masked.svelte-wh20l9{color:var(--text-2)}.env-input.svelte-wh20l9{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:13px;color:var(--text-0);font-family:var(--mono)}.env-input.key.svelte-wh20l9{width:120px;flex-shrink:0}.env-input.value.svelte-wh20l9{flex:1}.icon-btn.svelte-wh20l9{padding:2px 6px;font-size:11px;border-radius:var(--radius);background:var(--bg-3);color:var(--text-2);flex-shrink:0}.icon-btn.svelte-wh20l9:hover{color:var(--text-0)}.icon-btn.danger.svelte-wh20l9:hover{color:var(--red)}.modal-body.svelte-l4ioia{flex:1;overflow:auto;padding:8px 16px 16px}.error.svelte-l4ioia{color:var(--red);padding:8px 0;font-size:13px}.empty.svelte-l4ioia{color:var(--text-2);padding:24px;text-align:center;font-size:14px}.skill-list.svelte-l4ioia{display:flex;flex-direction:column}.skill-row.svelte-l4ioia{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.skill-row.svelte-l4ioia:last-child{border-bottom:none}.skill-info.svelte-l4ioia{flex:1;min-width:0}.skill-name.svelte-l4ioia{font-size:14px;font-weight:500;color:var(--text-0)}.skill-desc.svelte-l4ioia{font-size:13px;color:var(--text-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-meta.svelte-l4ioia{font-size:12px;color:var(--text-2);margin-top:2px}.skill-actions.svelte-l4ioia{flex-shrink:0}.installed-tag.svelte-l4ioia{font-size:12px;color:var(--text-2);font-style:italic}.action-btn.svelte-l4ioia{padding:4px 10px;font-size:12px;border-radius:var(--radius);font-weight:500}.action-btn.svelte-l4ioia:disabled{opacity:.5}.install-btn.svelte-l4ioia{background:var(--accent-dim);color:var(--accent)}.error.svelte-jfofjj{color:var(--red);padding:8px 0;font-size:13px}.empty.svelte-jfofjj{color:var(--text-2);padding:12px 0;font-size:14px}.section-header.svelte-jfofjj{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-title.svelte-jfofjj{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.add-btn.svelte-jfofjj{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.skill-list.svelte-jfofjj{display:flex;flex-direction:column}.skill-row.svelte-jfofjj{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border)}.skill-row.svelte-jfofjj:last-child{border-bottom:none}.skill-row.svelte-jfofjj:hover{background:var(--bg-2)}.skill-info.svelte-jfofjj{flex:1;min-width:0}.skill-name.svelte-jfofjj{font-size:14px;font-weight:500;color:var(--text-0);display:flex;align-items:center;gap:8px}.skill-desc.svelte-jfofjj{font-size:13px;color:var(--text-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-meta.svelte-jfofjj{font-size:12px;color:var(--text-2);margin-top:2px}.update-badge.svelte-jfofjj{font-size:11px;padding:1px 6px;border-radius:8px;background:var(--accent-dim);color:var(--accent);font-weight:500}.upstream-tag.svelte-jfofjj{color:var(--text-2)}.local-tag.svelte-jfofjj{font-style:italic;color:var(--text-2)}.skill-actions.svelte-jfofjj{display:flex;gap:4px;flex-shrink:0}.action-btn.svelte-jfofjj{padding:4px 10px;font-size:12px;border-radius:var(--radius);font-weight:500}.action-btn.svelte-jfofjj:disabled{opacity:.5}.update-btn.svelte-jfofjj{background:var(--accent-dim);color:var(--accent)}.publish-btn.svelte-jfofjj{background:var(--bg-3);color:var(--text-1)}.remove-btn.svelte-jfofjj{background:var(--bg-3);color:var(--text-2)}.remove-btn.svelte-jfofjj:hover{color:var(--red)}.public-files.svelte-1feyap9{height:100%;display:flex;flex-direction:column}.empty.svelte-1feyap9{color:var(--text-2);font-size:13px;padding:24px;text-align:center}.error-text.svelte-1feyap9{color:var(--red)}.browser.svelte-1feyap9{display:flex;flex-direction:column;flex:1;min-height:0}.file-list.svelte-1feyap9{flex-shrink:0;max-height:40%;border-bottom:1px solid var(--border);overflow:auto;display:flex;flex-direction:column}.breadcrumb.svelte-1feyap9{display:flex;flex-wrap:wrap;padding:8px 10px;font-size:12px;border-bottom:1px solid var(--border);gap:0}.crumb.svelte-1feyap9{background:none;color:var(--accent);font-family:inherit;font-size:12px;padding:0;cursor:pointer}.crumb.svelte-1feyap9:hover{text-decoration:underline}.file-row.svelte-1feyap9{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:13px;color:var(--text-1);background:none;text-align:left;cursor:pointer;width:100%;border-bottom:1px solid var(--border)}.file-row.svelte-1feyap9:last-child{border-bottom:none}.file-row.svelte-1feyap9:hover{background:var(--bg-2)}.file-row.active.svelte-1feyap9{background:var(--accent-bg);color:var(--accent)}.file-icon.svelte-1feyap9{font-size:12px;flex-shrink:0}.file-name.svelte-1feyap9{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono)}.empty-dir.svelte-1feyap9{color:var(--text-2);font-size:12px;padding:16px;text-align:center}.preview.svelte-1feyap9{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.preview-header.svelte-1feyap9{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--border);font-size:13px;flex-shrink:0}.preview-filename.svelte-1feyap9{font-family:var(--mono);color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-link.svelte-1feyap9{color:var(--accent);font-size:12px;text-decoration:none;flex-shrink:0;margin-left:8px}.preview-link.svelte-1feyap9:hover{text-decoration:underline}.preview-empty.svelte-1feyap9{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-2);font-size:13px}.preview-mime.svelte-1feyap9{font-family:var(--mono);font-size:12px}.download-link.svelte-1feyap9{color:var(--accent);font-size:13px;text-decoration:none}.download-link.svelte-1feyap9:hover{text-decoration:underline}.preview-text.svelte-1feyap9{flex:1;overflow:auto;padding:12px;background:var(--bg-0);font-family:var(--mono);font-size:13px;line-height:1.6;color:var(--text-0);white-space:pre-wrap;word-break:break-word;margin:0}.preview-text.svelte-1feyap9 code:where(.svelte-1feyap9){font-family:inherit;font-size:inherit}.preview-image.svelte-1feyap9{flex:1;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto;background:var(--bg-0)}.preview-image.svelte-1feyap9 img:where(.svelte-1feyap9){max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius)}.event.svelte-173x8i5{position:relative;padding:6px 8px 6px 20px;animation:fadeIn .2s ease both}.event.svelte-173x8i5:after{content:"";position:absolute;left:-2px;top:12px;bottom:-20px;width:2px;background:var(--type-color);opacity:0;transition:opacity .15s;z-index:1}.event.svelte-173x8i5:hover:after{opacity:1}.event.expandable-summary.svelte-173x8i5:after,.event.turn-expanded.svelte-173x8i5:after{top:20px;background:repeating-linear-gradient(to bottom,var(--timeline-rail) 0px,var(--timeline-rail) 4px,var(--bg-1) 4px,var(--bg-1) 8px);opacity:1}.event.expandable-summary.svelte-173x8i5:hover:after,.event.turn-expanded.svelte-173x8i5:hover:after{background:repeating-linear-gradient(to bottom,var(--type-color) 0px,var(--type-color) 4px,var(--bg-1) 4px,var(--bg-1) 8px)}.event.collapsible.svelte-173x8i5{cursor:pointer}.summary-header.svelte-173x8i5{margin-bottom:4px}.summary-header.expanded.svelte-173x8i5{margin-left:14px}.summary-header-line.svelte-173x8i5{display:flex;align-items:center;gap:8px}.marker.svelte-173x8i5{position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;z-index:1}.event-header.svelte-173x8i5{display:flex;align-items:center;gap:8px;margin-bottom:4px}.time.svelte-173x8i5{font-size:11px;color:var(--text-2);flex-shrink:0}.type-badge.svelte-173x8i5{font-size:11px;padding:1px 6px;border-radius:12px;font-weight:500}.channel-tag.svelte-173x8i5{font-size:11px;color:var(--text-2);background:var(--bg-3);padding:1px 6px;border-radius:var(--radius)}.chevron.svelte-173x8i5{font-size:9px;color:var(--text-2)}.event-body.svelte-173x8i5{font-family:var(--mono);font-size:14px;line-height:1.6}.sender.svelte-173x8i5{font-size:12px;font-weight:600;text-transform:uppercase;margin-right:8px}.sender.inbound.svelte-173x8i5{color:var(--blue)}.sender.outbound.svelte-173x8i5{color:var(--accent)}.user-text.svelte-173x8i5{display:inline;white-space:pre-wrap;color:var(--text-0)}.summary.svelte-173x8i5{font-size:13px;color:var(--text-1)}.summary.error.svelte-173x8i5{color:var(--red)}.dim.svelte-173x8i5{color:var(--text-2)}.detail.svelte-173x8i5,.detail-text.svelte-173x8i5{margin-top:6px;font-size:12px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.detail.svelte-173x8i5{font-family:var(--mono)}.detail.error.svelte-173x8i5{color:var(--red);border-color:var(--red-dim)}.detail-text.svelte-173x8i5{color:var(--text-2)}.usage-line.svelte-173x8i5{font-size:13px;color:var(--purple)}.model.svelte-173x8i5{color:var(--text-2);margin-left:6px;font-size:12px}.session-id.svelte-173x8i5{font-size:12px;color:var(--text-1);font-weight:600;margin-left:4px}.summary-text.svelte-173x8i5{font-size:13px;color:var(--text-0)}.session-tag.svelte-173x8i5{font-size:11px;color:var(--text-1);background:var(--bg-3);border:1px solid var(--border);padding:1px 6px;border-radius:var(--radius);cursor:pointer;margin-left:8px;font-family:var(--mono)}.session-tag.svelte-173x8i5:hover{background:var(--bg-2);color:var(--text-0)}.turn-loading.svelte-173x8i5{font-size:12px;color:var(--text-2);padding:8px 0 8px 16px;font-style:italic}.turn-connector.svelte-173x8i5{position:absolute;top:15px;left:22px;width:2px;bottom:12px;background:var(--border)}.turn-connector.svelte-173x8i5:after{content:"";position:absolute;top:0;left:-23px;width:23px;height:2px;background:var(--border)}.event.svelte-173x8i5:has(.summary-header:where(.svelte-173x8i5):hover,.branch-summary:where(.svelte-173x8i5):hover) .turn-connector:where(.svelte-173x8i5),.event.svelte-173x8i5:has(.summary-header:where(.svelte-173x8i5):hover,.branch-summary:where(.svelte-173x8i5):hover) .turn-connector:where(.svelte-173x8i5):after,.event.svelte-173x8i5:has(.summary-header:where(.svelte-173x8i5):hover,.branch-summary:where(.svelte-173x8i5):hover) .branch-return:where(.svelte-173x8i5){background:var(--text-0)}.turn-branch.svelte-173x8i5{position:relative;margin-left:-5px;padding-left:9px;padding-bottom:8px}.branch-return.svelte-173x8i5{position:absolute;bottom:6px;left:-16px;width:24px;height:2px;background:var(--border)}.branch-summary.svelte-173x8i5{position:relative;padding:6px 8px 6px 20px;cursor:pointer}.branch-summary.svelte-173x8i5:before{content:"";position:absolute;left:-5px;top:12px;width:8px;height:8px;border-radius:50%;background:var(--text-0);z-index:1}.event-group.svelte-173x8i5{position:relative}.event-group.has-linked.svelte-173x8i5:after{content:"";position:absolute;left:-2px;top:12px;bottom:-20px;width:2px;background:var(--yellow);opacity:0;transition:opacity .15s;z-index:1}.event-group.has-linked.svelte-173x8i5:hover:after{opacity:1}.event-group.has-linked.svelte-173x8i5>.event:after{display:none}.linked-card.svelte-173x8i5{margin:4px 0 4px 20px;max-width:480px}.linked-card-chat.svelte-173x8i5{background:var(--bg-0);border:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));border-radius:var(--radius-lg);overflow:hidden;font-size:13px}.linked-card-header.svelte-173x8i5{padding:4px 8px;font-weight:500;color:var(--text-1);border-bottom:1px solid color-mix(in srgb,var(--blue) 25%,var(--border));display:flex;align-items:center;gap:6px}.linked-card-icon.svelte-173x8i5{width:12px;height:12px;color:var(--blue);flex-shrink:0}.linked-card-label.svelte-173x8i5{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.linked-card-msg.svelte-173x8i5{padding:2px 8px;font-family:var(--mono);font-size:12px}.linked-card-sender.svelte-173x8i5{font-weight:600;color:var(--accent);margin-right:6px}.linked-card-sender-user.svelte-173x8i5{color:var(--blue)}.open-chat-btn.svelte-dhei02{font-size:12px;padding:3px 12px;border-radius:var(--radius);cursor:pointer;background:var(--accent);border:1px solid var(--accent);color:var(--bg-0);font-weight:500;transition:opacity .15s}.open-chat-btn.svelte-dhei02:hover{opacity:.85}.read-only-chat.svelte-dhei02{flex:1;display:flex;flex-direction:column;min-height:0}.chat-empty.svelte-dhei02{color:var(--text-2);font-size:13px;padding:40px;text-align:center}.chat-scroll.svelte-dhei02{flex:1;overflow:auto;padding:12px 16px;min-height:0}.date-divider.svelte-dhei02{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-2);font-size:12px}.divider-line.svelte-dhei02{flex:1;height:1px;background:var(--border)}.chat-entry.svelte-dhei02{padding:2px 0}.chat-entry.new-sender.svelte-dhei02{margin-top:12px}.chat-entry.svelte-dhei02:first-child{margin-top:0}.chat-entry-header.svelte-dhei02{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.chat-sender.svelte-dhei02{font-size:14px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-dhei02{color:var(--blue)}.chat-timestamp.svelte-dhei02{font-size:12px;color:var(--text-2)}.chat-entry-content.svelte-dhei02{min-width:0;font-family:var(--mono);font-size:14px}.chat-user-text.svelte-dhei02{color:var(--text-0);white-space:pre-wrap}.turn-timeline.svelte-1i1dp8x{container-type:inline-size;position:relative;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.turn-scroll.svelte-1i1dp8x{flex:1;overflow-x:hidden;overflow-y:auto;padding:0 16px}.turn-track.svelte-1i1dp8x{position:relative;min-height:100%;max-width:1100px;margin:0 auto}.turn-row.svelte-1i1dp8x{display:flex;align-items:flex-start}.turn-time.svelte-1i1dp8x{width:60px;flex-shrink:0;font-size:11px;color:var(--text-2);padding-top:10px;text-align:right;padding-right:8px;white-space:nowrap}.turn-rail.svelte-1i1dp8x{width:2px;background:var(--timeline-rail);flex-shrink:0;align-self:stretch;position:relative;min-height:8px;overflow:visible}.turn-rail-expanded.svelte-1i1dp8x{background:linear-gradient(to bottom,var(--timeline-rail) 15px,transparent 15px),linear-gradient(to top,var(--timeline-rail) 15px,transparent 15px),repeating-linear-gradient(to bottom,var(--timeline-rail) 0px,var(--timeline-rail) 4px,transparent 4px,transparent 8px)}.turn-summary.svelte-1i1dp8x>.event:after{display:none}.turn-summary.svelte-1i1dp8x>.event>.marker{display:none}.turn-rail.svelte-1i1dp8x:before{content:"";position:absolute;top:15px;bottom:-15px;left:50%;width:2px;margin-left:-1px;background:var(--text-2);opacity:0;transition:opacity .15s;z-index:2;pointer-events:none}.turn-row.svelte-1i1dp8x:hover>.turn-rail:where(.svelte-1i1dp8x):not(.turn-rail-expanded):before,.turn-rail.svelte-1i1dp8x:not(.turn-rail-expanded):hover:before{opacity:1}.turn-rail-expanded.svelte-1i1dp8x:before{background:linear-gradient(to top,var(--text-2) 30px,transparent 30px),repeating-linear-gradient(to bottom,var(--text-2) 0px,var(--text-2) 4px,transparent 4px,transparent 8px)}.turn-rail-expanded.svelte-1i1dp8x:hover:before{opacity:1}.turn-rail.svelte-1i1dp8x:after{content:"";position:absolute;inset:0 -9px;cursor:pointer}.turn-summary.svelte-1i1dp8x .turn-connector:after{left:-35px;width:35px}.turn-summary.svelte-1i1dp8x .branch-return{left:-28px;width:36px}.turn-dot.svelte-1i1dp8x{position:absolute;top:12px;right:-2px;width:6px;height:6px;border-radius:50%;background:var(--text-2);z-index:3}.turn-summary.svelte-1i1dp8x .turn-connector{z-index:0}.turn-body.svelte-1i1dp8x{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding-left:12px;padding-right:12px}.turn-summary.svelte-1i1dp8x{min-width:0}@container (max-width: 400px){.turn-time.svelte-1i1dp8x{display:none}.turn-body.svelte-1i1dp8x{padding-left:8px;padding-right:4px}.turn-scroll.svelte-1i1dp8x{padding:0 8px}.turn-summary.svelte-1i1dp8x .turn-connector:after{left:-31px;width:31px}.turn-summary.svelte-1i1dp8x .branch-return{left:-24px;width:32px}}@container (min-width: 600px){.turn-body.svelte-1i1dp8x{flex-direction:row}.turn-summary.svelte-1i1dp8x{flex:1 1 300px;min-width:200px}.turn-cards.svelte-1i1dp8x{flex:0 1 360px;min-width:240px}}.feed-card-wrapper.svelte-1i1dp8x{padding:4px 0}.feed-card.svelte-1i1dp8x{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:200px;overflow:hidden;transition:border-color .15s}.feed-card[role=button].svelte-1i1dp8x{cursor:pointer}.feed-card-header.svelte-1i1dp8x{padding:6px 8px 6px 10px;font-size:13px;font-weight:500;color:var(--text-1);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.feed-card-icon.svelte-1i1dp8x{flex-shrink:0;width:14px;height:14px}.card-chat.svelte-1i1dp8x .feed-card-icon:where(.svelte-1i1dp8x){color:var(--blue)}.card-chat.svelte-1i1dp8x{border-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-1i1dp8x .feed-card-header:where(.svelte-1i1dp8x){border-bottom-color:color-mix(in srgb,var(--blue) 25%,var(--border))}.card-chat.svelte-1i1dp8x:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--border))}.feed-card-label.svelte-1i1dp8x{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.feed-card-meta.svelte-1i1dp8x{font-size:11px;color:var(--text-2);font-weight:400;flex-shrink:0;margin-left:auto}.feed-card-body.svelte-1i1dp8x{flex:1;overflow:auto;padding:10px 12px;min-height:0}.chat-body.svelte-1i1dp8x{padding:8px 12px}.chat-entry.svelte-1i1dp8x{padding:1px 0}.chat-entry.svelte-1i1dp8x:first-child{margin-top:0}.chat-sender.svelte-1i1dp8x{font-size:12px;font-weight:600;color:var(--accent)}.chat-sender-user.svelte-1i1dp8x{color:var(--blue)}.chat-entry-content.svelte-1i1dp8x{min-width:0;font-family:var(--mono);font-size:13px}.load-older.svelte-1i1dp8x{padding:8px 0 16px;text-align:center}.load-older-btn.svelte-1i1dp8x{padding:4px 14px;background:var(--bg-3);color:var(--text-1);border-radius:var(--radius);font-size:12px}.loading-more.svelte-1i1dp8x{text-align:center;color:var(--text-2);font-size:13px;padding:12px;animation:pulse 1.5s infinite}.jump-btn.svelte-1i1dp8x{position:absolute;bottom:16px;left:50%;transform:translate(-50%);padding:6px 16px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:13px;animation:fadeIn .2s ease both;z-index:10}.turn-pending.svelte-1i1dp8x{font-size:12px;color:var(--text-2);padding:8px 0;animation:pulse 1.5s infinite}.empty-hint.svelte-1i1dp8x{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.error-hint.svelte-1i1dp8x{color:var(--red);font-size:14px;padding:40px 0;text-align:center}.mind-page.svelte-88sgku{animation:fadeIn .2s ease both;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;position:relative}.not-found.svelte-88sgku{color:var(--text-2);padding:40px;text-align:center}.section-content.svelte-88sgku{flex:1;min-height:0;overflow:auto}.files-section.svelte-88sgku{min-height:300px}.detail-section.svelte-88sgku{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.ext-iframe.svelte-88sgku{width:100%;height:100%;border:none;background:var(--bg-0)}.page-content-iframe.svelte-88sgku{background:#fff}.error.svelte-14apx5e{color:var(--red);padding:8px 12px;font-size:13px}.empty.svelte-14apx5e{color:var(--text-2);padding:24px;text-align:center;font-size:14px}.section-header.svelte-14apx5e{display:flex;align-items:center;justify-content:space-between;padding:0 0 12px;max-width:720px;margin:0 auto}.section-title.svelte-14apx5e{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.upload-area.svelte-14apx5e{display:flex;align-items:center;gap:8px}.file-input.svelte-14apx5e{display:none}.upload-btn.svelte-14apx5e{padding:4px 12px;font-size:12px;border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-weight:500}.upload-btn.svelte-14apx5e:disabled{opacity:.5}.skill-list.svelte-14apx5e{display:flex;flex-direction:column;max-width:720px;margin:0 auto}.column-header.svelte-14apx5e{padding:0 0 4px}.column-label.svelte-14apx5e{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--text-3)}.skill-row.svelte-14apx5e{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.skill-row.svelte-14apx5e:last-child{border-bottom:none}.skill-row.svelte-14apx5e:hover{background:var(--bg-2)}.default-toggle.svelte-14apx5e{flex-shrink:0;cursor:pointer;display:flex;align-items:center}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e){position:absolute;opacity:0;width:0;height:0}.toggle-track.svelte-14apx5e{display:inline-block;width:32px;height:18px;border-radius:9px;background:var(--bg-3);position:relative;transition:background .15s}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e):checked+.toggle-track:where(.svelte-14apx5e){background:var(--accent)}.toggle-thumb.svelte-14apx5e{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-2);transition:transform .15s,background .15s}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e):checked+.toggle-track:where(.svelte-14apx5e) .toggle-thumb:where(.svelte-14apx5e){transform:translate(14px);background:var(--bg-0)}.default-toggle.svelte-14apx5e input:where(.svelte-14apx5e):disabled+.toggle-track:where(.svelte-14apx5e){opacity:.5}.skill-info.svelte-14apx5e{flex:1;min-width:0}.skill-name.svelte-14apx5e{font-size:14px;font-weight:500;color:var(--text-0)}.skill-desc.svelte-14apx5e{font-size:13px;color:var(--text-1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skill-meta.svelte-14apx5e{font-size:12px;color:var(--text-2);margin-top:2px}.skill-actions.svelte-14apx5e{display:flex;gap:4px;flex-shrink:0}.action-btn.svelte-14apx5e{padding:4px 10px;font-size:12px;border-radius:var(--radius);font-weight:500}.action-btn.svelte-14apx5e:disabled{opacity:.5}.remove-btn.svelte-14apx5e{background:var(--bg-3);color:var(--text-2)}.remove-btn.svelte-14apx5e:hover{color:var(--red)}.system-logs.svelte-y6pt47{display:flex;flex-direction:column;height:100%}.header.svelte-y6pt47{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-shrink:0}.title.svelte-y6pt47{color:var(--text-1);font-size:14px;font-weight:500}.count.svelte-y6pt47{color:var(--text-2);font-size:12px}.filter-bar.svelte-y6pt47{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-shrink:0;flex-wrap:wrap}.filter-group.svelte-y6pt47{display:flex;gap:4px;flex-wrap:wrap}.filter-sep.svelte-y6pt47{width:1px;height:16px;background:var(--border);margin:0 4px}.pill.svelte-y6pt47{padding:2px 8px;border-radius:10px;font-size:11px;font-family:var(--mono);cursor:pointer;border:1px solid transparent;transition:opacity .1s}.pill-info.svelte-y6pt47,.pill-debug.svelte-y6pt47{background:color-mix(in srgb,var(--text-2) 15%,transparent);color:var(--text-2)}.pill-warn.svelte-y6pt47{background:color-mix(in srgb,var(--yellow) 15%,transparent);color:var(--yellow)}.pill-error.svelte-y6pt47{background:color-mix(in srgb,var(--red) 15%,transparent);color:var(--red)}.pill-cat.svelte-y6pt47{background:var(--bg-3);color:var(--text-2)}.pill-clear.svelte-y6pt47{background:none;color:var(--text-2);border:1px dashed var(--border);margin-left:4px}.pill-clear.svelte-y6pt47:hover{color:var(--text-1);border-color:var(--text-2)}.pill.inactive.svelte-y6pt47{opacity:.3}.pause-bar.svelte-y6pt47{padding:6px 12px;background:var(--bg-3);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-2);flex-shrink:0}.resume-btn.svelte-y6pt47{background:var(--accent-dim);color:var(--accent);padding:2px 10px;border-radius:var(--radius);font-size:12px}.log-output.svelte-y6pt47{flex:1;overflow:auto;padding:12px;font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--text-1);background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-lg)}.waiting.svelte-y6pt47{color:var(--text-2)}.error.svelte-y6pt47{color:var(--red)}.log-line.svelte-y6pt47{animation:fadeIn .1s ease both;display:flex;gap:1ch}.ts.svelte-y6pt47{color:var(--text-2);flex-shrink:0}.level.svelte-y6pt47{flex-shrink:0;width:5ch}.cat.svelte-y6pt47{color:var(--text-2);opacity:.6;flex-shrink:0;width:12ch;overflow:hidden;text-overflow:ellipsis}.msg.svelte-y6pt47{color:var(--text-0);white-space:pre-wrap;word-break:break-word;min-width:0}.data.svelte-y6pt47{color:var(--text-2);white-space:pre-wrap;word-break:break-word}.container.svelte-1j9xdsd{max-width:600px;animation:fadeIn .2s ease both}.user-list.svelte-1j9xdsd{display:flex;flex-direction:column;gap:6px}.user-card.svelte-1j9xdsd{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.user-card.svelte-1j9xdsd:hover,.user-card.expanded.svelte-1j9xdsd{border-color:var(--border-bright)}.user-row.svelte-1j9xdsd{display:flex;align-items:center;gap:10px;padding:10px 14px;width:100%;background:none;cursor:pointer;text-align:left}.status-dot.svelte-1j9xdsd{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-1j9xdsd{animation:svelte-1j9xdsd-iridescent 3s ease-in-out infinite}@keyframes svelte-1j9xdsd-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.user-info.svelte-1j9xdsd{flex:1;min-width:0;display:flex;align-items:center;gap:6px}.display-name.svelte-1j9xdsd{font-weight:500;color:var(--text-0);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.username.svelte-1j9xdsd{font-size:12px;color:var(--text-2);flex-shrink:0}.type-icon.svelte-1j9xdsd{width:13px;height:13px;color:var(--text-2);flex-shrink:0}.row-actions.svelte-1j9xdsd{display:flex;align-items:center;gap:8px;flex-shrink:0}.expand-icon.svelte-1j9xdsd{color:var(--text-2);font-size:11px;transition:transform .15s;display:inline-block}.expand-icon.open.svelte-1j9xdsd{transform:rotate(90deg)}.role.svelte-1j9xdsd{font-size:12px;color:var(--text-2)}.role.admin.svelte-1j9xdsd{color:var(--accent)}.role.pending.svelte-1j9xdsd{color:var(--yellow)}.approve-btn.svelte-1j9xdsd{padding:4px 12px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:12px;font-weight:500}.detail-panel.svelte-1j9xdsd{padding:12px 14px;display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);margin-top:0}.field.svelte-1j9xdsd{display:flex;flex-direction:column;gap:3px}.field.svelte-1j9xdsd label:where(.svelte-1j9xdsd){font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.field.svelte-1j9xdsd input:where(.svelte-1j9xdsd){background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;color:var(--text-0);font-size:13px;font-family:inherit}.field.svelte-1j9xdsd input:where(.svelte-1j9xdsd):focus{outline:none;border-color:var(--border-bright)}.field.svelte-1j9xdsd input:where(.svelte-1j9xdsd)::placeholder{color:var(--text-2)}.detail-actions.svelte-1j9xdsd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.left-actions.svelte-1j9xdsd{display:flex;align-items:center;gap:8px}.action-btn.svelte-1j9xdsd{padding:4px 8px;background:none;color:var(--text-2);font-size:12px;border-radius:var(--radius)}.action-btn.svelte-1j9xdsd:hover:not(:disabled){color:var(--text-0);background:var(--bg-3)}.action-btn.svelte-1j9xdsd:disabled{opacity:.4;cursor:not-allowed}.action-btn.danger.svelte-1j9xdsd{color:var(--red)}.action-btn.danger.svelte-1j9xdsd:hover:not(:disabled){background:var(--red-bg);color:var(--red)}.confirm-prompt.svelte-1j9xdsd{font-size:12px;color:var(--red);display:flex;align-items:center;gap:6px}.confirm-yes.svelte-1j9xdsd{padding:2px 8px;background:var(--red-bg);color:var(--red);font-size:12px;border-radius:var(--radius);font-weight:500}.confirm-yes.svelte-1j9xdsd:hover:not(:disabled){background:var(--red);color:var(--bg-0)}.confirm-no.svelte-1j9xdsd{padding:2px 8px;background:none;color:var(--text-2);font-size:12px;border-radius:var(--radius)}.confirm-no.svelte-1j9xdsd:hover{color:var(--text-0);background:var(--bg-3)}.save-btn.svelte-1j9xdsd{padding:4px 12px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:12px;font-weight:500}.save-btn.svelte-1j9xdsd:disabled{opacity:.4;cursor:not-allowed}.save-btn.svelte-1j9xdsd:hover:not(:disabled){background:var(--accent);color:var(--bg-0)}.error.svelte-1j9xdsd{color:var(--red);font-size:12px}.empty.svelte-1j9xdsd{color:var(--text-2);text-align:center;padding:24px}.prompts-page.svelte-1yjhe9c{max-width:720px;margin:0 auto;animation:fadeIn .2s ease both}.error.svelte-1yjhe9c{color:var(--red);font-size:13px;margin-bottom:16px}.loading.svelte-1yjhe9c{color:var(--text-2);font-size:13px;padding:40px 0;text-align:center}.section.svelte-1yjhe9c{margin-bottom:8px}.section-header.svelte-1yjhe9c{display:flex;align-items:baseline;gap:8px;width:100%;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:inherit;font:inherit}.section-header.svelte-1yjhe9c:hover{border-color:var(--border-bright)}.collapse-icon.svelte-1yjhe9c{font-size:10px;color:var(--text-2);width:12px;flex-shrink:0}.section-title.svelte-1yjhe9c{font-size:14px;font-weight:600;color:var(--text-0)}.section-subtitle.svelte-1yjhe9c{font-size:12px;color:var(--text-2)}.custom-count.svelte-1yjhe9c{font-size:11px;padding:1px 6px;border-radius:3px;background:var(--yellow-dim);color:var(--yellow);margin-left:auto}.section-body.svelte-1yjhe9c{padding:8px 0 0}.prompt-card.svelte-1yjhe9c{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;margin-bottom:8px}.prompt-card.custom.svelte-1yjhe9c{border-color:var(--yellow-dim)}.prompt-header.svelte-1yjhe9c{display:flex;align-items:center;gap:8px;margin-bottom:4px}.prompt-key.svelte-1yjhe9c{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--text-0)}.custom-badge.svelte-1yjhe9c{font-size:11px;padding:1px 6px;border-radius:3px;background:var(--yellow-dim);color:var(--yellow)}.prompt-desc.svelte-1yjhe9c{font-size:13px;color:var(--text-2);margin-bottom:8px;line-height:1.5}.var-tags.svelte-1yjhe9c{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.var-tag.svelte-1yjhe9c{font-family:var(--mono);font-size:11px;padding:2px 6px;border-radius:3px;background:var(--bg-3);color:var(--accent);border:1px solid var(--border)}.prompt-content.svelte-1yjhe9c{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;overflow-x:auto;font-family:var(--mono);font-size:13px;line-height:1.5;color:var(--text-1);white-space:pre-wrap;word-break:break-word;margin-bottom:8px}.prompt-content.svelte-1yjhe9c code:where(.svelte-1yjhe9c){font-family:inherit;font-size:inherit}.edit-area.svelte-1yjhe9c{width:100%;min-height:120px;background:var(--bg-3);border:1px solid var(--accent-dim);border-radius:var(--radius);padding:10px 12px;font-family:var(--mono);font-size:14px;line-height:1.5;color:var(--text-0);resize:vertical;margin-bottom:8px}.edit-area.svelte-1yjhe9c:focus{outline:none;border-color:var(--accent)}.actions.svelte-1yjhe9c{display:flex;gap:6px}.btn.svelte-1yjhe9c{font-family:inherit;font-size:12px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:opacity .15s}.btn.svelte-1yjhe9c:disabled{opacity:.5;cursor:not-allowed}.btn-edit.svelte-1yjhe9c{background:var(--bg-3);color:var(--text-1);border-color:var(--border)}.btn-edit.svelte-1yjhe9c:hover{color:var(--text-0);border-color:var(--border-bright)}.btn-save.svelte-1yjhe9c{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.btn-save.svelte-1yjhe9c:hover:not(:disabled){border-color:var(--accent)}.btn-cancel.svelte-1yjhe9c{background:var(--bg-3);color:var(--text-2);border-color:var(--border)}.btn-cancel.svelte-1yjhe9c:hover:not(:disabled){color:var(--text-1)}.btn-reset.svelte-1yjhe9c{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.btn-reset.svelte-1yjhe9c:hover:not(:disabled){border-color:var(--red)}.settings.svelte-4b0ckc{max-width:720px;margin:0 auto;animation:fadeIn .2s ease both}.error.svelte-4b0ckc{color:var(--red);font-size:13px;margin-top:8px}.section.svelte-4b0ckc{margin-bottom:32px}.section-header.svelte-4b0ckc{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}.section-title.svelte-4b0ckc{font-size:15px;font-weight:600;color:var(--text-0)}.section-subtitle.svelte-4b0ckc{font-size:12px;color:var(--text-2)}.provider-card.svelte-4b0ckc{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 16px;margin-bottom:6px}.provider-row.svelte-4b0ckc{display:flex;align-items:center;gap:8px}.provider-name.svelte-4b0ckc{font-size:13px;font-weight:500;color:var(--text-0);flex:1}.auth-badge.svelte-4b0ckc{font-size:11px;padding:1px 6px;border-radius:3px;background:var(--bg-3);color:var(--text-2)}.provider-actions.svelte-4b0ckc{display:flex;gap:6px}.add-provider-area.svelte-4b0ckc{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:12px;padding:20px 16px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg)}.add-provider-heading.svelte-4b0ckc{font-size:13px;color:var(--text-2);letter-spacing:.02em}.oauth-buttons.svelte-4b0ckc{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.btn-provider.svelte-4b0ckc{font-family:inherit;font-size:14px;font-weight:500;padding:10px 24px;border-radius:var(--radius-lg);cursor:pointer;border:1px solid var(--accent-border);background:var(--accent-dim);color:var(--accent);transition:border-color .15s,opacity .15s}.btn-provider.svelte-4b0ckc:hover:not(:disabled){border-color:var(--accent)}.btn-provider.svelte-4b0ckc:disabled{opacity:.5;cursor:not-allowed}.link-btn.svelte-4b0ckc{font-family:inherit;font-size:12px;color:var(--text-2);background:none;border:none;cursor:pointer;padding:2px 0;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}.link-btn.svelte-4b0ckc:hover{color:var(--text-1);border-bottom-color:var(--text-2)}.modal-body.svelte-4b0ckc{padding:16px 20px 20px;display:flex;flex-direction:column;gap:10px}.modal-text.svelte-4b0ckc{font-size:13px;color:var(--text-2);margin:0}.modal-form.svelte-4b0ckc{display:flex;align-items:center;gap:6px}.modal-select.svelte-4b0ckc{width:100%}.oauth-steps.svelte-4b0ckc{display:flex;flex-direction:column;gap:6px}.oauth-step.svelte-4b0ckc{font-size:13px;color:var(--text-1);display:flex;align-items:baseline;gap:8px}.step-num.svelte-4b0ckc{font-size:11px;font-weight:600;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-3);color:var(--text-2);flex-shrink:0}.oauth-link.svelte-4b0ckc{color:var(--accent);font-size:13px;word-break:break-all}.provider-models.svelte-4b0ckc{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.model-tags.svelte-4b0ckc{display:flex;flex-wrap:wrap;gap:6px}.model-tag.svelte-4b0ckc{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 8px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0)}.model-tag-remove.svelte-4b0ckc{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:11px;padding:0 2px;line-height:1}.model-tag-remove.svelte-4b0ckc:hover{color:var(--red)}.btn-add-model.svelte-4b0ckc{font-size:11px;padding:2px 8px}.model-list.svelte-4b0ckc{max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.model-option.svelte-4b0ckc{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;background:none;border:none;border-bottom:1px solid var(--border);color:var(--text-0);cursor:pointer;text-align:left}.model-option.svelte-4b0ckc:last-child{border-bottom:none}.model-option.svelte-4b0ckc:hover{background:var(--bg-3)}.model-id.svelte-4b0ckc{color:var(--text-0);flex:1}.btn.svelte-4b0ckc{font-family:inherit;font-size:12px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:opacity .15s}.btn.svelte-4b0ckc:disabled{opacity:.5;cursor:not-allowed}.btn-edit.svelte-4b0ckc{background:var(--bg-3);color:var(--text-1);border-color:var(--border)}.btn-edit.svelte-4b0ckc:hover{color:var(--text-0);border-color:var(--border-bright)}.btn-save.svelte-4b0ckc{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border)}.btn-save.svelte-4b0ckc:hover:not(:disabled){border-color:var(--accent)}.btn-cancel.svelte-4b0ckc{background:var(--bg-3);color:var(--text-2);border-color:var(--border)}.btn-cancel.svelte-4b0ckc:hover:not(:disabled){color:var(--text-1)}.btn-reset.svelte-4b0ckc{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.btn-reset.svelte-4b0ckc:hover:not(:disabled){border-color:var(--red)}.system-card.svelte-4b0ckc{display:flex;align-items:center;gap:12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px}.system-info.svelte-4b0ckc{display:flex;align-items:baseline;gap:8px;flex:1}.system-label.svelte-4b0ckc{font-size:13px;color:var(--text-2)}.system-name.svelte-4b0ckc{font-size:14px;font-weight:600;color:var(--text-0)}.system-actions.svelte-4b0ckc{display:flex;gap:6px}.system-form.svelte-4b0ckc{display:flex;align-items:center;gap:6px;flex:1}.system-input.svelte-4b0ckc{flex:1;padding:6px 10px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:13px;outline:none}.system-input.svelte-4b0ckc:focus{border-color:var(--border-bright)}.dim.svelte-4b0ckc{color:var(--text-2);font-size:12px}.settings-page.svelte-18esbge{display:flex;flex-direction:column;height:100%;animation:fadeIn .2s ease both}.settings-header.svelte-18esbge{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:0 16px;flex-shrink:0}.tab-row.svelte-18esbge{display:flex;gap:0}.settings-tab.svelte-18esbge{padding:10px 14px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-2);font-size:13px;cursor:pointer;white-space:nowrap}.settings-tab.svelte-18esbge:hover{color:var(--text-1)}.settings-tab.active.svelte-18esbge{color:var(--text-0);border-bottom-color:var(--accent)}.restart-area.svelte-18esbge{display:flex;align-items:center;gap:8px;flex-shrink:0}.restart-error.svelte-18esbge{font-size:12px;color:var(--red, #f87171)}.restart-btn.svelte-18esbge{background:none;border:1px solid var(--border);color:var(--text-2);font-size:12px;padding:4px 10px;border-radius:var(--radius);cursor:pointer;flex-shrink:0}.restart-btn.svelte-18esbge:hover:not(:disabled){color:var(--text-1);border-color:var(--border-bright)}.restart-btn.svelte-18esbge:disabled{opacity:.5}.settings-body.svelte-18esbge{flex:1;overflow:auto;padding:16px}.image-strip.svelte-18vyazk{display:flex;gap:8px;padding:4px 16px;overflow-x:auto}.image-preview.svelte-18vyazk{position:relative;flex-shrink:0}.preview-thumb.svelte-18vyazk{height:60px;border-radius:var(--radius);border:1px solid var(--border)}.remove-image.svelte-18vyazk{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--bg-3);color:var(--text-1);font-size:12px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);cursor:pointer;padding:0}.file-strip.svelte-18vyazk{display:flex;gap:8px;padding:4px 16px;overflow-x:auto;flex-wrap:wrap}.file-preview.svelte-18vyazk{display:flex;align-items:center;gap:4px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:12px;color:var(--text-1)}.file-name.svelte-18vyazk{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-area.svelte-18vyazk{padding:8px 16px 16px;display:flex}.input-box.svelte-18vyazk{flex:1;display:flex;align-items:flex-end;gap:4px;background:var(--bg-2);border:1px solid var(--border);border-radius:20px;padding:4px 6px;transition:border-color .15s;position:relative}.input-box.focused.svelte-18vyazk{border-color:var(--border-bright)}.chat-input.svelte-18vyazk{flex:1;background:transparent;border:none;padding:6px 4px;color:var(--text-0);font-family:var(--mono);font-size:14px;resize:none;outline:none;overflow:hidden;line-height:1.4}.inline-btn.svelte-18vyazk{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--text-2);cursor:pointer;transition:all .15s;padding:0}.inline-btn.svelte-18vyazk:hover{background:var(--bg-3);color:var(--text-1)}.inline-btn.send.active.svelte-18vyazk{background:var(--accent-dim);color:var(--accent)}.inline-btn.send.svelte-18vyazk:disabled{opacity:.3;cursor:default}.inline-btn.send.svelte-18vyazk:disabled:hover{background:transparent}.attach-menu.svelte-18vyazk{position:absolute;bottom:calc(100% + 6px);left:4px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:4px;display:flex;flex-direction:column;gap:2px;z-index:10;box-shadow:0 4px 12px #0000004d}.attach-menu.svelte-18vyazk button:where(.svelte-18vyazk){background:transparent;border:none;color:var(--text-1);padding:6px 14px;border-radius:var(--radius);font-size:13px;cursor:pointer;text-align:left;white-space:nowrap}.attach-menu.svelte-18vyazk button:where(.svelte-18vyazk):hover{background:var(--bg-3)}@media(max-width:767px){.chat-input.svelte-18vyazk{font-size:16px}.input-area.svelte-18vyazk{padding-bottom:max(16px,env(safe-area-inset-bottom))}}.tool-block.svelte-11dtec0{margin-bottom:8px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:13px}.tool-header.svelte-11dtec0{width:100%;display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-3);font-size:13px;font-family:var(--mono);text-align:left}.tool-label.svelte-11dtec0{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tool-arrow.svelte-11dtec0{color:var(--text-2);margin-right:6px}.tool-status.svelte-11dtec0{color:var(--accent);font-size:11px;flex-shrink:0;margin-left:8px}.tool-status.error.svelte-11dtec0{color:var(--red)}.tool-detail.svelte-11dtec0{padding:10px;background:var(--bg-1)}.tool-section-label.svelte-11dtec0{margin-bottom:6px;color:var(--text-2)}.tool-pre.svelte-11dtec0{color:var(--text-1);white-space:pre-wrap;word-break:break-all;font-size:12px;line-height:1.5}.tool-output.svelte-11dtec0{max-height:200px;overflow:auto}.tool-output.error.svelte-11dtec0{color:var(--red)}.entry.svelte-16zmiqs{padding:2px 0;animation:fadeIn .2s ease both}.entry.new-sender.svelte-16zmiqs{margin-top:12px}.entry-header.svelte-16zmiqs{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}.sender.svelte-16zmiqs{font-size:14px;font-weight:600}.sender-link.svelte-16zmiqs{background:none;border:none;padding:0;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.sender-link.svelte-16zmiqs:hover{text-decoration:underline}.timestamp.svelte-16zmiqs{font-size:12px;color:var(--text-2)}.inline-time.svelte-16zmiqs{display:block;margin-bottom:2px}.entry-content.svelte-16zmiqs{min-width:0;font-family:var(--mono);font-size:14px}.user-text.svelte-16zmiqs{color:var(--text-0);white-space:pre-wrap}.chat-image.svelte-16zmiqs{max-width:300px;max-height:200px;border-radius:var(--radius);margin-top:4px}.messages.svelte-tjsfkk{flex:1;overflow:auto;padding:16px}.empty.svelte-tjsfkk{color:var(--text-2);text-align:center;padding:40px;font-size:14px}.error.svelte-tjsfkk{color:var(--red)}.loading-older.svelte-tjsfkk{text-align:center;padding:8px;font-size:13px;color:var(--text-2)}.load-more.svelte-tjsfkk{text-align:center;padding:8px}.load-more-btn.svelte-tjsfkk{font-size:13px;color:var(--text-2);background:none;border:1px solid var(--border);border-radius:var(--radius);padding:4px 12px;cursor:pointer}.load-more-btn.svelte-tjsfkk:hover{color:var(--text-1);border-color:var(--border-bright)}.divider.svelte-tjsfkk{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--text-2);font-size:12px;letter-spacing:.03em}.divider-line.svelte-tjsfkk{flex:1;height:1px;background:var(--border)}.typing.svelte-em2dtd{padding:4px 0;font-size:13px;color:var(--text-2);animation:pulse 1.5s ease infinite}.chat.svelte-6z343n{display:flex;flex-direction:column;height:100%;padding:0}.orientation-bar.svelte-6z343n{padding:6px 12px;text-align:center;color:var(--yellow);font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;opacity:.6;border-bottom:1px solid var(--yellow-bg)}.channel-header.svelte-6z343n{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.channel-title.svelte-6z343n{font-size:14px;font-weight:600;color:var(--text-0)}@media(max-width:1024px){.channel-header.svelte-6z343n{display:none}}.main-frame.svelte-n1trtr{height:100%;overflow:hidden;display:flex;flex-direction:column}.frame-content.svelte-n1trtr{flex:1;overflow:auto;min-height:0}.frame-content.padded.svelte-n1trtr{padding:24px}.frame-content.mind-frame.svelte-n1trtr{overflow:hidden}.page-iframe.svelte-n1trtr{width:100%;height:100%;border:none;background:#fff}.mobile-header.svelte-n1trtr{display:none;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-1)}.hamburger-btn.svelte-n1trtr{display:none;background:none;border:none;color:var(--text-1);font-size:18px;padding:4px 8px;border-radius:var(--radius);cursor:pointer}.hamburger-btn.svelte-n1trtr:hover{background:var(--bg-2)}.mobile-logo.svelte-n1trtr{width:20px;height:20px;filter:invert(1)}.mobile-title.svelte-n1trtr{font-family:var(--display);font-size:18px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-left:-4px}.context-label-btn.svelte-n1trtr{margin-left:auto;background:none;border:none;color:var(--text-1);font-size:14px;font-weight:500;padding:4px 0;text-align:right;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-label-btn.svelte-n1trtr:hover{color:var(--accent)}@media(max-width:767px){.frame-content.padded.svelte-n1trtr{padding:16px}}.mind-clock.svelte-96nwhr{border-bottom:1px solid var(--border);padding:0 16px 10px;display:flex;flex-direction:column;gap:6px}.clock-row.svelte-96nwhr{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-1)}.clock-row.disabled.svelte-96nwhr{opacity:.4}.clock-icon.svelte-96nwhr{width:13px;height:13px;flex-shrink:0;color:var(--text-2)}.sleep-row.svelte-96nwhr .clock-icon:where(.svelte-96nwhr){color:var(--purple)}.clock-label.svelte-96nwhr{font-weight:500;white-space:nowrap}.clock-detail.svelte-96nwhr{color:var(--text-2);margin-left:auto;text-align:right;white-space:nowrap;font-size:11px}.schedule-list.svelte-96nwhr{display:flex;flex-direction:column;gap:4px}.upcoming-section.svelte-96nwhr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;color:var(--text-2);margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}.upcoming-label.svelte-96nwhr{font-weight:500;color:var(--text-1)}.upcoming-item.svelte-96nwhr{white-space:nowrap}.mind-panel.svelte-1trk2s9{display:flex;flex-direction:column;height:100%;background:var(--bg-1);width:100%;overflow:hidden;position:relative}.floating-btns.svelte-1trk2s9{position:absolute;top:8px;left:8px;z-index:1;display:flex;gap:4px}.floating-btn.svelte-1trk2s9{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);cursor:pointer;transition:color .15s,border-color .15s,background .15s}.floating-btn.svelte-1trk2s9:hover{color:var(--text-0);border-color:var(--border-bright);background:var(--bg-3)}.floating-btn.svelte-1trk2s9 svg:where(.svelte-1trk2s9){width:16px;height:16px}.panel-body.svelte-1trk2s9{flex:1;overflow:auto;min-height:0;display:flex;flex-direction:column}.profile-section.svelte-1trk2s9{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px 16px}.profile-avatar.svelte-1trk2s9{width:96px;height:96px;border-radius:var(--radius);object-fit:cover}.profile-name.svelte-1trk2s9{font-family:var(--display);font-size:20px;font-weight:300;color:var(--text-0);letter-spacing:.02em;margin-top:4px}.profile-description.svelte-1trk2s9{font-size:14px;color:var(--text-1);text-align:center;max-width:320px;margin:4px 0 0;line-height:1.4}.profile-meta.svelte-1trk2s9{font-size:12px;color:var(--text-2);margin-top:4px}.history-section.svelte-1trk2s9{flex:1;min-height:0;padding:0 16px;border-top:1px solid var(--border)}.modal-content.svelte-esytdb{padding:24px;display:flex;flex-direction:column;gap:14px}.modal-title.svelte-esytdb{font-weight:600;color:var(--text-0);font-size:15px}.field.svelte-esytdb{display:flex;flex-direction:column;gap:4px}.label.svelte-esytdb{color:var(--text-2);font-size:12px}.input.svelte-esytdb{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;color:var(--text-0);font-size:14px;outline:none;font-family:inherit}.select.svelte-esytdb{appearance:auto}.error.svelte-esytdb{color:var(--red);font-size:12px}.actions.svelte-esytdb{display:flex;gap:8px;justify-content:flex-end}.cancel-btn.svelte-esytdb{padding:6px 14px;background:var(--bg-2);color:var(--text-1);border-radius:var(--radius);font-size:13px;border:1px solid var(--border)}.plant-btn.svelte-esytdb{padding:6px 14px;background:var(--yellow);color:var(--bg-0);border-radius:var(--radius);font-size:13px;font-weight:600}.advanced-toggle.svelte-esytdb{background:transparent;color:var(--text-2);font-size:12px;font-family:inherit;border:none;cursor:pointer;padding:0;display:flex;align-items:center;gap:4px;transition:color .15s}.advanced-toggle.svelte-esytdb:hover{color:var(--text-1)}.caret.svelte-esytdb{font-size:8px}.textarea.svelte-esytdb{resize:vertical;min-height:80px;font-size:13px;line-height:1.5}.hint.svelte-esytdb{color:var(--text-2);font-size:11px;font-family:inherit}.skill-list.svelte-esytdb{display:flex;flex-direction:column;gap:4px}.skill-item.svelte-esytdb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-1);cursor:pointer}.skill-name.svelte-esytdb{font-family:var(--mono)}.sidebar-inner.svelte-1czeook{display:flex;flex-direction:column;height:100%;overflow:hidden}.sections.svelte-1czeook{flex:1;overflow-y:auto;overflow-x:hidden;padding-top:4px}.section.svelte-1czeook{margin-bottom:2px}.section-header-row.svelte-1czeook{display:flex;align-items:center;padding:6px 8px 6px 12px}.section-label.svelte-1czeook{flex:1;color:var(--text-2);font-family:var(--display);font-size:16px;font-weight:300;letter-spacing:.02em}.section-toggle.svelte-1czeook{display:flex;align-items:center;gap:4px;width:100%;padding:6px 12px;background:none;color:var(--text-2);font-family:var(--display);font-size:16px;font-weight:300;letter-spacing:.02em;text-align:left;border-radius:var(--radius);margin:0 4px}.section-toggle.svelte-1czeook:hover{color:var(--text-1)}.section-toggle.active.svelte-1czeook{color:var(--text-0);background:var(--bg-2)}.section-add.svelte-1czeook{background:none;color:var(--text-2);font-size:15px;padding:2px 6px;border-radius:var(--radius);flex-shrink:0}.section-add.svelte-1czeook:hover{color:var(--text-0);background:var(--bg-2)}.mind-list.svelte-1czeook{display:flex;flex-direction:column}.mind-item.svelte-1czeook{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px 6px 26px;font-size:14px;color:var(--text-1);transition:background .1s;cursor:pointer;background:none;text-align:left;margin:0 4px;border-radius:var(--radius)}.mind-item.svelte-1czeook:hover{background:var(--bg-2)}.mind-item.active.svelte-1czeook{background:var(--bg-2);color:var(--text-0)}.mind-item-name.svelte-1czeook{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.status-dot.svelte-1czeook{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.iridescent.svelte-1czeook{animation:svelte-1czeook-iridescent 3s ease-in-out infinite}@keyframes svelte-1czeook-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}@media(max-width:767px){.mind-item.svelte-1czeook{padding:10px 12px 10px 26px}.section-toggle.svelte-1czeook{padding:8px 12px}.status-dot.svelte-1czeook{width:8px;height:8px}}.tab-switcher.svelte-1dj0bxl{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-1)}.tab-btn.svelte-1dj0bxl{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;background:none;color:var(--text-2);font-family:var(--display);font-size:14px;font-weight:400;letter-spacing:.03em;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.tab-btn.svelte-1dj0bxl:hover{color:var(--text-1)}.tab-btn.active.svelte-1dj0bxl{color:var(--text-0);border-bottom-color:var(--accent)}.unread-badge.svelte-1dj0bxl{font-size:10px;font-weight:600;font-family:var(--sans);background:var(--accent);color:var(--bg-0);padding:1px 5px;border-radius:8px;line-height:1.2}.banner.svelte-h3c10m{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 16px;background:var(--accent-bg);border-bottom:1px solid var(--accent-dim);color:var(--accent);font-size:13px;font-family:inherit;flex-shrink:0}.update-btn.svelte-h3c10m{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius);padding:2px 10px;font-size:12px;font-family:inherit;cursor:pointer}.dismiss-btn.svelte-h3c10m{background:transparent;color:var(--accent);border:none;font-size:16px;line-height:1;cursor:pointer;padding:0 4px}.error.svelte-h3c10m{color:var(--red)}.updating.svelte-h3c10m{animation:pulse 1.5s ease-in-out infinite}.modal-body.svelte-1453wyc{padding:16px}.section-title.svelte-1453wyc{font-size:13px;font-weight:600;color:var(--text-1);margin:0 0 12px}.field.svelte-1453wyc{display:block;margin-bottom:10px}.label.svelte-1453wyc{display:block;font-size:12px;color:var(--text-2);margin-bottom:4px}input.svelte-1453wyc,textarea.svelte-1453wyc{width:100%;padding:6px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-size:13px;font-family:inherit;box-sizing:border-box;resize:vertical}input.svelte-1453wyc:focus,textarea.svelte-1453wyc:focus{outline:none;border-color:var(--accent)}.avatar-section.svelte-1453wyc{display:flex;align-items:center;gap:12px;margin-bottom:12px}.avatar-preview.svelte-1453wyc{width:48px;height:48px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--bg-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.avatar-img.svelte-1453wyc{width:100%;height:100%;object-fit:cover}.avatar-placeholder.svelte-1453wyc{font-size:18px;color:var(--text-2)}.avatar-actions.svelte-1453wyc{display:flex;gap:8px;align-items:center}.avatar-upload-btn.svelte-1453wyc{padding:4px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-1);font-size:12px;cursor:pointer}.avatar-upload-btn.svelte-1453wyc:hover{border-color:var(--border-bright)}.remove-btn.svelte-1453wyc{padding:4px 10px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--red);font-size:12px;cursor:pointer}.remove-btn.svelte-1453wyc:hover{background:var(--red-bg)}.save-btn.svelte-1453wyc{margin-top:4px;padding:6px 14px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:12px;font-weight:500}.save-btn.svelte-1453wyc:hover:not(:disabled){background:var(--accent);color:var(--bg-0)}.save-btn.svelte-1453wyc:disabled{opacity:.5}.message.svelte-1453wyc{font-size:12px;padding:6px 10px;border-radius:var(--radius);margin-bottom:10px}.message.error.svelte-1453wyc{color:var(--red);background:var(--red-bg)}.message.success.svelte-1453wyc{color:var(--accent);background:var(--accent-dim)}.divider.svelte-1453wyc{border:none;border-top:1px solid var(--border);margin:16px 0}.container.svelte-4jav11{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.card.svelte-4jav11{width:360px;padding:32px;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-lg)}.branding.svelte-4jav11{margin-bottom:24px;text-align:center}.logo-row.svelte-4jav11{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:4px}.logo-wrap.svelte-4jav11{position:relative;width:34px;height:34px;flex-shrink:0}.login-spiral.svelte-4jav11{width:34px;height:34px;filter:invert(1);transition:opacity .15s}.hover-dot.svelte-4jav11{position:absolute;inset:0;margin:auto;width:10px;height:10px;border-radius:50%;opacity:0;transition:opacity .15s;animation:svelte-4jav11-iridescent 3s ease-in-out infinite}.card.svelte-4jav11:hover .login-spiral:where(.svelte-4jav11){opacity:0}.card.svelte-4jav11:hover .hover-dot:where(.svelte-4jav11){opacity:1}.logo.svelte-4jav11{font-family:var(--display);font-size:31px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-top:-4px}@keyframes svelte-4jav11-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.subtitle.svelte-4jav11{color:var(--text-1);font-size:14px;margin-bottom:20px;text-align:center}.label.svelte-4jav11{display:block;color:var(--text-1);font-size:13px;margin-bottom:6px}.input.svelte-4jav11{width:100%;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-0);font-family:inherit;font-size:14px;outline:none}.input.svelte-4jav11:focus{border-color:var(--border-bright)}.hint.svelte-4jav11{color:var(--text-2);font-size:12px;margin-top:6px}.error.svelte-4jav11{color:var(--red);font-size:13px;margin-top:8px}.submit-btn.svelte-4jav11{width:100%;padding:10px 16px;margin-top:16px;background:var(--accent-dim);color:var(--accent);border-radius:var(--radius);font-size:14px;font-weight:500;font-family:inherit;border:none;cursor:pointer}.done.svelte-4jav11{text-align:center}.done-icon.svelte-4jav11{font-size:32px;color:var(--green);margin-bottom:12px}.done-text.svelte-4jav11{font-size:18px;font-weight:500;color:var(--text-0);margin-bottom:8px}.done-hint.svelte-4jav11{color:var(--text-2);font-size:13px;margin-bottom:16px}.loading.svelte-14lg4b7{color:var(--text-2);padding:24px;text-align:center}.full-height.svelte-14lg4b7{height:100%}.shell.svelte-14lg4b7{height:100%;display:flex;flex-direction:column}.shell-body.svelte-14lg4b7{flex:1;display:flex;overflow:hidden}.sidebar.svelte-14lg4b7{display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-1);overflow:hidden}.sidebar-header.svelte-14lg4b7{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;flex-shrink:0;background:none;cursor:pointer;border-bottom:1px solid var(--border)}.header-logo-wrap.svelte-14lg4b7{position:relative;width:30px;height:30px;flex-shrink:0}.sidebar-logo.svelte-14lg4b7{width:30px;height:30px;filter:invert(1);transition:opacity .15s}.hover-dot.svelte-14lg4b7{position:absolute;inset:0;margin:auto;width:10px;height:10px;border-radius:50%;opacity:0;transition:opacity .15s;animation:svelte-14lg4b7-iridescent 3s ease-in-out infinite}.sidebar-header.svelte-14lg4b7:hover .sidebar-logo:where(.svelte-14lg4b7){opacity:0}.sidebar-header.svelte-14lg4b7:hover .hover-dot:where(.svelte-14lg4b7){opacity:1}.sidebar-title.svelte-14lg4b7{font-family:var(--display);font-size:26px;font-weight:300;color:var(--text-0);letter-spacing:.04em;margin-top:-4px;margin-left:-4px}@keyframes svelte-14lg4b7-iridescent{0%{background:#4ade80}16%{background:#60a5fa}33%{background:#c084fc}50%{background:#f472b6}66%{background:#fbbf24}83%{background:#34d399}to{background:#4ade80}}.resize-handle.svelte-14lg4b7{width:4px;cursor:col-resize;flex-shrink:0;background:transparent;transition:background .15s}.resize-handle.svelte-14lg4b7:hover{background:var(--border)}.content-area.svelte-14lg4b7{flex:1;display:flex;overflow:hidden;min-width:0}.main-column.svelte-14lg4b7{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;padding:0 8px 8px 3px}.main-column.has-right-panel.svelte-14lg4b7{padding-right:3px}.main-frame.svelte-14lg4b7{flex:1;overflow:hidden;min-width:0;background:var(--bg-1);border-radius:var(--radius-lg);border:1px solid var(--border)}.page-header.svelte-14lg4b7{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;flex-shrink:0}.header-hamburger.svelte-14lg4b7{display:none;align-items:center;justify-content:center;background:none;border:none;color:var(--text-1);font-size:18px;padding:4px 8px;border-radius:var(--radius);cursor:pointer;flex-shrink:0}.header-hamburger.svelte-14lg4b7:hover{background:var(--bg-2)}.page-breadcrumbs.svelte-14lg4b7{display:flex;align-items:baseline;gap:8px;font-family:var(--display);font-size:18px;font-weight:300;color:var(--text-0);letter-spacing:.02em;min-width:0;overflow:hidden}.crumb-sep.svelte-14lg4b7{color:var(--text-2);font-size:14px}.crumb-link.svelte-14lg4b7{background:none;border:none;padding:0;font:inherit;color:var(--text-2);cursor:pointer}.crumb-link.svelte-14lg4b7:hover{color:var(--text-0)}.crumb-current.svelte-14lg4b7{color:var(--text-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mind-section-tabs.svelte-14lg4b7{display:flex;align-items:center;gap:2px}.mind-section-tab.svelte-14lg4b7{position:relative;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:5px 7px;color:var(--text-2);cursor:pointer;border-radius:var(--radius);transition:color .15s,background .15s}.mind-section-tab.svelte-14lg4b7:hover{color:var(--text-1);background:var(--bg-2)}.mind-section-tab.active.svelte-14lg4b7{color:var(--text-0);background:var(--bg-2)}.tab-icon.svelte-14lg4b7{width:16px;height:16px}.tab-icon.svelte-14lg4b7 svg{width:16px;height:16px}.tab-tooltip.svelte-14lg4b7{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:6px;padding:4px 10px;background:var(--bg-3);color:var(--text-0);font-family:var(--sans);font-size:12px;border-radius:var(--radius);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;border:1px solid var(--border);z-index:10}.mind-section-tab.svelte-14lg4b7:hover .tab-tooltip:where(.svelte-14lg4b7){opacity:1}.header-actions.svelte-14lg4b7{display:flex;align-items:center;gap:8px}.user-menu-anchor.svelte-14lg4b7{position:relative}.user-avatar-btn.svelte-14lg4b7{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:none;border:1px solid var(--border);padding:0;cursor:pointer;overflow:hidden;color:var(--text-2)}.user-avatar-btn.svelte-14lg4b7:hover{border-color:var(--border-bright);color:var(--text-1)}.user-avatar-img.svelte-14lg4b7{width:100%;height:100%;object-fit:cover}.user-avatar-btn.svelte-14lg4b7 svg:where(.svelte-14lg4b7){width:14px;height:14px}.user-dropdown.svelte-14lg4b7{position:absolute;top:calc(100% + 4px);right:0;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);min-width:120px;padding:4px 0;z-index:100;box-shadow:0 2px 8px #0000004d}.user-dropdown-item.svelte-14lg4b7{display:block;width:100%;text-align:left;padding:6px 12px;background:none;color:var(--text-1);font-size:13px;white-space:nowrap;border:none;cursor:pointer}.user-dropdown-item.svelte-14lg4b7:hover{background:var(--bg-3);color:var(--text-0)}.panel-reopen.svelte-14lg4b7{background:none;border:none;color:var(--text-2);padding:4px;cursor:pointer;border-radius:var(--radius);display:flex;align-items:center}.panel-reopen.svelte-14lg4b7:hover{color:var(--text-1);background:var(--bg-2)}.panel-reopen.svelte-14lg4b7 svg:where(.svelte-14lg4b7){width:16px;height:16px}.right-panel.svelte-14lg4b7{flex-shrink:0;border-left:1px solid var(--border);overflow:hidden;position:relative}.panel-close.svelte-14lg4b7{position:absolute;top:8px;right:8px;z-index:1;background:none;border:none;color:var(--text-2);font-size:18px;padding:4px 8px;cursor:pointer;border-radius:var(--radius)}.panel-close.svelte-14lg4b7:hover{color:var(--text-0);background:var(--bg-2)}.right-panel-backdrop.svelte-14lg4b7,.sidebar-backdrop.svelte-14lg4b7{display:none}@media(max-width:1024px){.right-panel.svelte-14lg4b7{position:fixed;top:0;right:0;bottom:0;z-index:40;width:min(360px,100vw)!important}.right-resize-handle.svelte-14lg4b7{display:none}.right-panel-backdrop.svelte-14lg4b7{display:block;position:fixed;inset:0;background:#00000080;z-index:39}}@media(max-width:767px){.sidebar.svelte-14lg4b7{position:fixed;top:0;left:0;bottom:0;z-index:50;width:280px!important;transform:translate(-100%);transition:transform .2s ease}.sidebar.sidebar-open.svelte-14lg4b7{transform:translate(0);overflow:visible}.sidebar-backdrop.svelte-14lg4b7{display:block;position:fixed;inset:0;background:#00000080;z-index:49}.resize-handle.svelte-14lg4b7{display:none}.main-column.svelte-14lg4b7{padding-left:8px}}@media(max-width:767px){.sidebar-header.svelte-14lg4b7{display:none}.header-hamburger.svelte-14lg4b7{display:flex}.page-breadcrumbs.svelte-14lg4b7{font-size:15px}}@media(min-width:768px)and (max-width:1024px){.sidebar.svelte-14lg4b7{width:200px!important}.resize-handle.svelte-14lg4b7{display:none}.main-column.svelte-14lg4b7{padding-left:8px}}html.electron .sidebar-header.svelte-14lg4b7{padding-left:var(--traffic-light-width, 0px);justify-content:flex-start;min-height:var(--titlebar-height, 38px);padding-top:0;padding-bottom:0;gap:4px;-webkit-app-region:drag;cursor:default}html.electron .sidebar-header.svelte-14lg4b7 .sidebar-logo:where(.svelte-14lg4b7){width:16px;height:16px}html.electron .sidebar-header.svelte-14lg4b7 .header-logo-wrap:where(.svelte-14lg4b7){width:16px;height:16px}html.electron .sidebar-header.svelte-14lg4b7 .hover-dot:where(.svelte-14lg4b7){width:6px;height:6px}html.electron .sidebar-header.svelte-14lg4b7 .sidebar-title:where(.svelte-14lg4b7){font-size:15px;margin-top:-1px;margin-left:0}html.electron .page-header.svelte-14lg4b7{-webkit-app-region:drag}html.electron .page-header.svelte-14lg4b7 button:where(.svelte-14lg4b7),html.electron .page-header.svelte-14lg4b7 .user-menu-anchor:where(.svelte-14lg4b7){-webkit-app-region:no-drag}:root{--bg-0: #0a0c0f;--bg-1: #11141a;--bg-2: #181c24;--bg-3: #1f2430;--border: #2a3040;--border-bright: #3a4560;--text-0: #e8ecf4;--text-1: #a0aabb;--text-2: #6a7588;--accent: #e0a860;--accent-dim: #5c4428;--accent-bg: rgba(224, 168, 96, .08);--red: #f87171;--red-dim: #7f1d1d;--yellow: #fbbf24;--yellow-dim: #78350f;--blue: #60a5fa;--purple: #c084fc;--green: #4ade80;--overlay: rgba(0, 0, 0, .6);--yellow-bg: rgba(251, 191, 36, .08);--blue-bg: rgba(96, 165, 250, .08);--red-bg: rgba(248, 113, 113, .08);--muted-bg: rgba(106, 117, 136, .08);--red-border: rgba(248, 113, 113, .2);--accent-border: rgba(224, 168, 96, .2);--timeline-rail: #333;--mono: "Fira Code", "SF Mono", monospace;--sans: "Averia Sans Libre", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display: "Averia Serif Libre", Georgia, serif;--radius: 6px;--radius-lg: 10px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;background:var(--bg-0);color:var(--text-0);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-dim);color:var(--accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}a{color:inherit;text-decoration:none}input,select,textarea,button{font-family:inherit}button{cursor:pointer;border:none}button:focus{outline:none}button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}a:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.app{height:100%;display:flex;flex-direction:column}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.markdown-body{word-break:break-word;color:var(--text-0);line-height:1.6}.markdown-body p{margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body pre{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;overflow-x:auto;margin:8px 0;font-size:13px;line-height:1.5}.markdown-body code{font-family:var(--mono);font-size:13px;background:var(--bg-3);padding:1px 4px;border-radius:3px}.markdown-body pre code{background:none;padding:0}.markdown-body a{color:var(--blue);text-decoration:underline}.markdown-body ul,.markdown-body ol{margin:4px 0;padding-left:20px}.markdown-body li{margin:2px 0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:12px 0 6px;font-weight:600;color:var(--text-0)}.markdown-body h1{font-size:18px}.markdown-body h2{font-size:16px}.markdown-body h3{font-size:15px}.markdown-body blockquote{border-left:3px solid var(--border-bright);margin:8px 0;padding:4px 12px;color:var(--text-1)}.markdown-body table{border-collapse:collapse;margin:8px 0}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:6px 10px;font-size:13px}.markdown-body th{background:var(--bg-3);font-weight:600}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:12px 0}html.electron{--titlebar-height: 38px;--traffic-light-width: 78px}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
9
9
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
10
10
|
<link href="https://fonts.googleapis.com/css2?family=Averia+Serif+Libre:wght@300;400;700&family=Fira+Code:wght@300;400;500;600&family=Averia+Sans+Libre:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap" rel="stylesheet" />
|
|
11
|
-
<script type="module" crossorigin src="/assets/index
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-BM1cTzBg.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BfJkKTPF.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="root"></div>
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
-- Baseline schema: all tables as of v0.30.x
|
|
2
|
+
-- Uses IF NOT EXISTS so existing installs safely skip everything.
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS `users` (
|
|
5
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
6
|
+
`username` text NOT NULL,
|
|
7
|
+
`password_hash` text NOT NULL,
|
|
8
|
+
`role` text NOT NULL DEFAULT 'pending',
|
|
9
|
+
`user_type` text NOT NULL DEFAULT 'brain',
|
|
10
|
+
`display_name` text,
|
|
11
|
+
`description` text,
|
|
12
|
+
`avatar` text,
|
|
13
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
14
|
+
);
|
|
15
|
+
--> statement-breakpoint
|
|
16
|
+
CREATE UNIQUE INDEX IF NOT EXISTS `users_username_unique` ON `users` (`username`);
|
|
17
|
+
--> statement-breakpoint
|
|
18
|
+
CREATE TABLE IF NOT EXISTS `minds` (
|
|
19
|
+
`name` text PRIMARY KEY NOT NULL,
|
|
20
|
+
`port` integer NOT NULL,
|
|
21
|
+
`parent` text REFERENCES `minds`(`name`) ON DELETE CASCADE,
|
|
22
|
+
`dir` text,
|
|
23
|
+
`branch` text,
|
|
24
|
+
`stage` text,
|
|
25
|
+
`template` text,
|
|
26
|
+
`template_hash` text,
|
|
27
|
+
`running` integer NOT NULL DEFAULT 0,
|
|
28
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
29
|
+
);
|
|
30
|
+
--> statement-breakpoint
|
|
31
|
+
CREATE UNIQUE INDEX IF NOT EXISTS `idx_minds_port` ON `minds` (`port`);
|
|
32
|
+
--> statement-breakpoint
|
|
33
|
+
CREATE INDEX IF NOT EXISTS `idx_minds_parent` ON `minds` (`parent`);
|
|
34
|
+
--> statement-breakpoint
|
|
35
|
+
CREATE TABLE IF NOT EXISTS `conversations` (
|
|
36
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
37
|
+
`mind_name` text,
|
|
38
|
+
`channel` text NOT NULL,
|
|
39
|
+
`type` text NOT NULL DEFAULT 'dm',
|
|
40
|
+
`name` text,
|
|
41
|
+
`user_id` integer REFERENCES `users`(`id`),
|
|
42
|
+
`title` text,
|
|
43
|
+
`created_at` text NOT NULL DEFAULT (datetime('now')),
|
|
44
|
+
`updated_at` text NOT NULL DEFAULT (datetime('now'))
|
|
45
|
+
);
|
|
46
|
+
--> statement-breakpoint
|
|
47
|
+
CREATE INDEX IF NOT EXISTS `idx_conversations_mind_name` ON `conversations` (`mind_name`);
|
|
48
|
+
--> statement-breakpoint
|
|
49
|
+
CREATE INDEX IF NOT EXISTS `idx_conversations_user_id` ON `conversations` (`user_id`);
|
|
50
|
+
--> statement-breakpoint
|
|
51
|
+
CREATE INDEX IF NOT EXISTS `idx_conversations_updated_at` ON `conversations` (`updated_at`);
|
|
52
|
+
--> statement-breakpoint
|
|
53
|
+
CREATE UNIQUE INDEX IF NOT EXISTS `idx_conversations_name` ON `conversations` (`name`);
|
|
54
|
+
--> statement-breakpoint
|
|
55
|
+
CREATE TABLE IF NOT EXISTS `messages` (
|
|
56
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
57
|
+
`conversation_id` text NOT NULL REFERENCES `conversations`(`id`) ON DELETE CASCADE,
|
|
58
|
+
`role` text NOT NULL,
|
|
59
|
+
`sender_name` text,
|
|
60
|
+
`content` text NOT NULL,
|
|
61
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
62
|
+
);
|
|
63
|
+
--> statement-breakpoint
|
|
64
|
+
CREATE INDEX IF NOT EXISTS `idx_messages_conversation_id` ON `messages` (`conversation_id`);
|
|
65
|
+
--> statement-breakpoint
|
|
66
|
+
CREATE TABLE IF NOT EXISTS `conversation_participants` (
|
|
67
|
+
`conversation_id` text NOT NULL REFERENCES `conversations`(`id`) ON DELETE CASCADE,
|
|
68
|
+
`user_id` integer NOT NULL REFERENCES `users`(`id`) ON DELETE CASCADE,
|
|
69
|
+
`role` text NOT NULL DEFAULT 'member',
|
|
70
|
+
`joined_at` text NOT NULL DEFAULT (datetime('now'))
|
|
71
|
+
);
|
|
72
|
+
--> statement-breakpoint
|
|
73
|
+
CREATE UNIQUE INDEX IF NOT EXISTS `idx_cp_unique` ON `conversation_participants` (`conversation_id`, `user_id`);
|
|
74
|
+
--> statement-breakpoint
|
|
75
|
+
CREATE INDEX IF NOT EXISTS `idx_cp_user_id` ON `conversation_participants` (`user_id`);
|
|
76
|
+
--> statement-breakpoint
|
|
77
|
+
CREATE TABLE IF NOT EXISTS `sessions` (
|
|
78
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
79
|
+
`user_id` integer NOT NULL REFERENCES `users`(`id`) ON DELETE CASCADE,
|
|
80
|
+
`created_at` integer NOT NULL
|
|
81
|
+
);
|
|
82
|
+
--> statement-breakpoint
|
|
83
|
+
CREATE TABLE IF NOT EXISTS `mind_history` (
|
|
84
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
85
|
+
`mind` text NOT NULL,
|
|
86
|
+
`channel` text,
|
|
87
|
+
`session` text,
|
|
88
|
+
`sender` text,
|
|
89
|
+
`message_id` text,
|
|
90
|
+
`type` text NOT NULL DEFAULT 'inbound',
|
|
91
|
+
`content` text,
|
|
92
|
+
`metadata` text,
|
|
93
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
94
|
+
);
|
|
95
|
+
--> statement-breakpoint
|
|
96
|
+
CREATE INDEX IF NOT EXISTS `idx_mind_history_mind` ON `mind_history` (`mind`);
|
|
97
|
+
--> statement-breakpoint
|
|
98
|
+
CREATE INDEX IF NOT EXISTS `idx_mind_history_mind_channel` ON `mind_history` (`mind`, `channel`);
|
|
99
|
+
--> statement-breakpoint
|
|
100
|
+
CREATE INDEX IF NOT EXISTS `idx_mind_history_mind_type` ON `mind_history` (`mind`, `type`);
|
|
101
|
+
--> statement-breakpoint
|
|
102
|
+
CREATE TABLE IF NOT EXISTS `system_prompts` (
|
|
103
|
+
`key` text PRIMARY KEY NOT NULL,
|
|
104
|
+
`content` text NOT NULL,
|
|
105
|
+
`updated_at` text NOT NULL DEFAULT (datetime('now'))
|
|
106
|
+
);
|
|
107
|
+
--> statement-breakpoint
|
|
108
|
+
CREATE TABLE IF NOT EXISTS `shared_skills` (
|
|
109
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
110
|
+
`name` text NOT NULL,
|
|
111
|
+
`description` text NOT NULL DEFAULT '',
|
|
112
|
+
`author` text NOT NULL,
|
|
113
|
+
`version` integer NOT NULL DEFAULT 1,
|
|
114
|
+
`created_at` text NOT NULL DEFAULT (datetime('now')),
|
|
115
|
+
`updated_at` text NOT NULL DEFAULT (datetime('now'))
|
|
116
|
+
);
|
|
117
|
+
--> statement-breakpoint
|
|
118
|
+
CREATE TABLE IF NOT EXISTS `delivery_queue` (
|
|
119
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
120
|
+
`mind` text NOT NULL,
|
|
121
|
+
`session` text NOT NULL,
|
|
122
|
+
`channel` text,
|
|
123
|
+
`sender` text,
|
|
124
|
+
`status` text NOT NULL DEFAULT 'pending',
|
|
125
|
+
`payload` text NOT NULL,
|
|
126
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
127
|
+
);
|
|
128
|
+
--> statement-breakpoint
|
|
129
|
+
CREATE INDEX IF NOT EXISTS `idx_delivery_queue_mind_session` ON `delivery_queue` (`mind`, `session`);
|
|
130
|
+
--> statement-breakpoint
|
|
131
|
+
CREATE INDEX IF NOT EXISTS `idx_delivery_queue_mind_status` ON `delivery_queue` (`mind`, `status`);
|
|
132
|
+
--> statement-breakpoint
|
|
133
|
+
CREATE TABLE IF NOT EXISTS `activity` (
|
|
134
|
+
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
135
|
+
`type` text NOT NULL,
|
|
136
|
+
`mind` text NOT NULL,
|
|
137
|
+
`summary` text NOT NULL,
|
|
138
|
+
`metadata` text,
|
|
139
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
140
|
+
);
|
|
141
|
+
--> statement-breakpoint
|
|
142
|
+
CREATE INDEX IF NOT EXISTS `idx_activity_created_at` ON `activity` (`created_at`);
|
|
143
|
+
--> statement-breakpoint
|
|
144
|
+
CREATE INDEX IF NOT EXISTS `idx_activity_mind` ON `activity` (`mind`);
|
|
145
|
+
--> statement-breakpoint
|
|
146
|
+
CREATE TABLE IF NOT EXISTS `conversation_reads` (
|
|
147
|
+
`user_id` integer NOT NULL REFERENCES `users`(`id`) ON DELETE CASCADE,
|
|
148
|
+
`conversation_id` text NOT NULL REFERENCES `conversations`(`id`) ON DELETE CASCADE,
|
|
149
|
+
`last_read_message_id` integer NOT NULL DEFAULT 0
|
|
150
|
+
);
|
|
151
|
+
--> statement-breakpoint
|
|
152
|
+
CREATE UNIQUE INDEX IF NOT EXISTS `idx_conversation_reads_unique` ON `conversation_reads` (`user_id`, `conversation_id`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ALTER TABLE `conversations` ADD `private` integer NOT NULL DEFAULT 0;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
-- First-class turns: track turn lifecycle and link events/messages to turns
|
|
2
|
+
|
|
3
|
+
CREATE TABLE IF NOT EXISTS `turns` (
|
|
4
|
+
`id` text PRIMARY KEY NOT NULL,
|
|
5
|
+
`mind` text NOT NULL,
|
|
6
|
+
`session` text,
|
|
7
|
+
`trigger_event_id` integer,
|
|
8
|
+
`summary_event_id` integer,
|
|
9
|
+
`status` text NOT NULL DEFAULT 'active',
|
|
10
|
+
`created_at` text NOT NULL DEFAULT (datetime('now'))
|
|
11
|
+
);
|
|
12
|
+
--> statement-breakpoint
|
|
13
|
+
CREATE INDEX IF NOT EXISTS `idx_turns_mind` ON `turns` (`mind`);
|
|
14
|
+
--> statement-breakpoint
|
|
15
|
+
CREATE INDEX IF NOT EXISTS `idx_turns_mind_status` ON `turns` (`mind`, `status`);
|
|
16
|
+
--> statement-breakpoint
|
|
17
|
+
ALTER TABLE `mind_history` ADD `turn_id` text;
|
|
18
|
+
--> statement-breakpoint
|
|
19
|
+
CREATE INDEX IF NOT EXISTS `idx_mind_history_turn_id` ON `mind_history` (`turn_id`);
|
|
20
|
+
--> statement-breakpoint
|
|
21
|
+
ALTER TABLE `messages` ADD `source_event_id` integer;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- Link feed items (messages, activities) to turns via turn_id
|
|
2
|
+
|
|
3
|
+
ALTER TABLE `messages` ADD `turn_id` text;
|
|
4
|
+
--> statement-breakpoint
|
|
5
|
+
CREATE INDEX IF NOT EXISTS `idx_messages_turn_id` ON `messages` (`turn_id`);
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
ALTER TABLE `activity` ADD `turn_id` text;
|
|
8
|
+
--> statement-breakpoint
|
|
9
|
+
ALTER TABLE `activity` ADD `source_event_id` integer;
|
|
10
|
+
--> statement-breakpoint
|
|
11
|
+
CREATE INDEX IF NOT EXISTS `idx_activity_turn_id` ON `activity` (`turn_id`);
|