@openpalm/ui 0.11.0-rc.13 → 0.11.0-rc.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/0.CV_hiSDb.css +1 -0
  3. package/build/client/_app/immutable/assets/0.CV_hiSDb.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.CV_hiSDb.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/4.Cztzqv5R.css +1 -0
  6. package/build/client/_app/immutable/assets/4.Cztzqv5R.css.br +0 -0
  7. package/build/client/_app/immutable/assets/4.Cztzqv5R.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/6.DH6oAODR.css +1 -0
  9. package/build/client/_app/immutable/assets/6.DH6oAODR.css.br +0 -0
  10. package/build/client/_app/immutable/assets/6.DH6oAODR.css.gz +0 -0
  11. package/build/client/_app/immutable/assets/{7.CzC8JVIO.css → 7.CgArpKqX.css} +1 -1
  12. package/build/client/_app/immutable/assets/7.CgArpKqX.css.br +0 -0
  13. package/build/client/_app/immutable/assets/{7.CzC8JVIO.css.gz → 7.CgArpKqX.css.gz} +0 -0
  14. package/build/client/_app/immutable/assets/{AuthGate._tqG1OIX.css → AuthGate.CvHfx1js.css} +1 -1
  15. package/build/client/_app/immutable/assets/AuthGate.CvHfx1js.css.br +0 -0
  16. package/build/client/_app/immutable/assets/{AuthGate._tqG1OIX.css.gz → AuthGate.CvHfx1js.css.gz} +0 -0
  17. package/build/client/_app/immutable/chunks/{B1uQvvlv.js → B6eDnfZN.js} +2 -2
  18. package/build/client/_app/immutable/chunks/B6eDnfZN.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/B6eDnfZN.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{BPh8tqAg.js → CHbj1pWz.js} +1 -1
  21. package/build/client/_app/immutable/chunks/CHbj1pWz.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/CHbj1pWz.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{CrcMJfbz.js → WyJr2dGG.js} +1 -1
  24. package/build/client/_app/immutable/chunks/WyJr2dGG.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/WyJr2dGG.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{E7W0MQkU.js → kWSYYB4z.js} +1 -1
  27. package/build/client/_app/immutable/chunks/kWSYYB4z.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/kWSYYB4z.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/{app.9wfmQKXa.js → app.BBkXQZES.js} +2 -2
  30. package/build/client/_app/immutable/entry/app.BBkXQZES.js.br +0 -0
  31. package/build/client/_app/immutable/entry/app.BBkXQZES.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/start.Bs5o_i7k.js +1 -0
  33. package/build/client/_app/immutable/entry/start.Bs5o_i7k.js.br +1 -0
  34. package/build/client/_app/immutable/entry/start.Bs5o_i7k.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{1.B-z3blIe.js → 1.lFu-Nkuh.js} +1 -1
  36. package/build/client/_app/immutable/nodes/1.lFu-Nkuh.js.br +1 -0
  37. package/build/client/_app/immutable/nodes/1.lFu-Nkuh.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/4.D7DiVFrp.js +19 -0
  39. package/build/client/_app/immutable/nodes/4.D7DiVFrp.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/4.D7DiVFrp.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{5.BrAtimvQ.js → 5.B4UTvqdS.js} +1 -1
  42. package/build/client/_app/immutable/nodes/5.B4UTvqdS.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/5.B4UTvqdS.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/{6.CDpI1TrW.js → 6.Dypiry5c.js} +1 -1
  45. package/build/client/_app/immutable/nodes/6.Dypiry5c.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/6.Dypiry5c.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{7.B5KYnWwU.js → 7.03_5HWHH.js} +1 -1
  48. package/build/client/_app/immutable/nodes/7.03_5HWHH.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/7.03_5HWHH.js.gz +0 -0
  50. package/build/client/_app/version.json +1 -1
  51. package/build/client/_app/version.json.br +1 -1
  52. package/build/client/_app/version.json.gz +0 -0
  53. package/build/server/chunks/{0-CP9GcQBP.js → 0-BVoCeMeS.js} +4 -4
  54. package/build/server/chunks/{0-CP9GcQBP.js.map → 0-BVoCeMeS.js.map} +1 -1
  55. package/build/server/chunks/1-43kXv-lj.js +9 -0
  56. package/build/server/chunks/{1-BDxTrwG3.js.map → 1-43kXv-lj.js.map} +1 -1
  57. package/build/server/chunks/4-DyfubyL8.js +9 -0
  58. package/build/server/chunks/{4-CBgm4iSo.js.map → 4-DyfubyL8.js.map} +1 -1
  59. package/build/server/chunks/5-BugYLg1g.js +9 -0
  60. package/build/server/chunks/{5-CD1fuYOe.js.map → 5-BugYLg1g.js.map} +1 -1
  61. package/build/server/chunks/6-DxMMp_Ab.js +9 -0
  62. package/build/server/chunks/{6-B6tmbcQ8.js.map → 6-DxMMp_Ab.js.map} +1 -1
  63. package/build/server/chunks/7-1z1l4Gj9.js +9 -0
  64. package/build/server/chunks/{7-m4KLf_Gx.js.map → 7-1z1l4Gj9.js.map} +1 -1
  65. package/build/server/chunks/{AuthGate-BcB49fE5.js → AuthGate-UzM0ufsa.js} +9 -6
  66. package/build/server/chunks/{AuthGate-BcB49fE5.js.map → AuthGate-UzM0ufsa.js.map} +1 -1
  67. package/build/server/chunks/{ModeSwitch-D26evPMy.js → ModeSwitch-Kf6VtzMp.js} +2 -2
  68. package/build/server/chunks/{ModeSwitch-D26evPMy.js.map → ModeSwitch-Kf6VtzMp.js.map} +1 -1
  69. package/build/server/chunks/{_layout.svelte-C8ggVfth.js → _layout.svelte-BnCuSUPN.js} +2 -2
  70. package/build/server/chunks/{_layout.svelte-C8ggVfth.js.map → _layout.svelte-BnCuSUPN.js.map} +1 -1
  71. package/build/server/chunks/{_page.svelte-CEjRvc8B.js → _page.svelte-BXcDqPDM.js} +123 -29
  72. package/build/server/chunks/_page.svelte-BXcDqPDM.js.map +1 -0
  73. package/build/server/chunks/{_page.svelte-WWZsjJuR.js → _page.svelte-CLU3j0og.js} +6 -6
  74. package/build/server/chunks/{_page.svelte-WWZsjJuR.js.map → _page.svelte-CLU3j0og.js.map} +1 -1
  75. package/build/server/chunks/{_page.svelte-Cy4kcLwu.js → _page.svelte-D2G-zIql.js} +5 -5
  76. package/build/server/chunks/{_page.svelte-Cy4kcLwu.js.map → _page.svelte-D2G-zIql.js.map} +1 -1
  77. package/build/server/chunks/{_page.svelte-DrWHHwCU.js → _page.svelte-Ds-M9Dyp.js} +6 -6
  78. package/build/server/chunks/{_page.svelte-DrWHHwCU.js.map → _page.svelte-Ds-M9Dyp.js.map} +1 -1
  79. package/build/server/chunks/environment-qSeYk7Wm.js +36 -0
  80. package/build/server/chunks/environment-qSeYk7Wm.js.map +1 -0
  81. package/build/server/chunks/{error.svelte-CcHm-30A.js → error.svelte-DSc-Dp_M.js} +3 -3
  82. package/build/server/chunks/{error.svelte-CcHm-30A.js.map → error.svelte-DSc-Dp_M.js.map} +1 -1
  83. package/build/server/chunks/{internal-B08Y9iTe.js → internal-COESfFAd.js} +2 -2
  84. package/build/server/chunks/{internal-B08Y9iTe.js.map → internal-COESfFAd.js.map} +1 -1
  85. package/build/server/chunks/{state-CFHLgqLs.js → state-B_UDC_bs.js} +2 -2
  86. package/build/server/chunks/{state-CFHLgqLs.js.map → state-B_UDC_bs.js.map} +1 -1
  87. package/build/server/chunks/{theme-state.svelte-y-mfJax7.js → theme-state.svelte-CWo8vi7P.js} +11 -2
  88. package/build/server/chunks/{theme-state.svelte-y-mfJax7.js.map → theme-state.svelte-CWo8vi7P.js.map} +1 -1
  89. package/build/server/index.js +2 -32
  90. package/build/server/index.js.map +1 -1
  91. package/build/server/manifest.js +7 -7
  92. package/build/server/manifest.js.map +1 -1
  93. package/package.json +1 -1
  94. package/build/client/_app/immutable/assets/0.nenI9xO9.css +0 -1
  95. package/build/client/_app/immutable/assets/0.nenI9xO9.css.br +0 -0
  96. package/build/client/_app/immutable/assets/0.nenI9xO9.css.gz +0 -0
  97. package/build/client/_app/immutable/assets/4.j3F-W7h_.css +0 -1
  98. package/build/client/_app/immutable/assets/4.j3F-W7h_.css.br +0 -0
  99. package/build/client/_app/immutable/assets/4.j3F-W7h_.css.gz +0 -0
  100. package/build/client/_app/immutable/assets/6.B0Z8tVIH.css +0 -1
  101. package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.br +0 -1
  102. package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.gz +0 -0
  103. package/build/client/_app/immutable/assets/7.CzC8JVIO.css.br +0 -0
  104. package/build/client/_app/immutable/assets/AuthGate._tqG1OIX.css.br +0 -0
  105. package/build/client/_app/immutable/chunks/B1uQvvlv.js.br +0 -0
  106. package/build/client/_app/immutable/chunks/B1uQvvlv.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/BPh8tqAg.js.br +0 -2
  108. package/build/client/_app/immutable/chunks/BPh8tqAg.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/CrcMJfbz.js.br +0 -0
  110. package/build/client/_app/immutable/chunks/CrcMJfbz.js.gz +0 -0
  111. package/build/client/_app/immutable/chunks/E7W0MQkU.js.br +0 -0
  112. package/build/client/_app/immutable/chunks/E7W0MQkU.js.gz +0 -0
  113. package/build/client/_app/immutable/entry/app.9wfmQKXa.js.br +0 -0
  114. package/build/client/_app/immutable/entry/app.9wfmQKXa.js.gz +0 -0
  115. package/build/client/_app/immutable/entry/start.BzWuQgSn.js +0 -1
  116. package/build/client/_app/immutable/entry/start.BzWuQgSn.js.br +0 -0
  117. package/build/client/_app/immutable/entry/start.BzWuQgSn.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/1.B-z3blIe.js.br +0 -1
  119. package/build/client/_app/immutable/nodes/1.B-z3blIe.js.gz +0 -0
  120. package/build/client/_app/immutable/nodes/4.DOO_QIq1.js +0 -18
  121. package/build/client/_app/immutable/nodes/4.DOO_QIq1.js.br +0 -0
  122. package/build/client/_app/immutable/nodes/4.DOO_QIq1.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/5.BrAtimvQ.js.br +0 -0
  124. package/build/client/_app/immutable/nodes/5.BrAtimvQ.js.gz +0 -0
  125. package/build/client/_app/immutable/nodes/6.CDpI1TrW.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/6.CDpI1TrW.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/7.B5KYnWwU.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/7.B5KYnWwU.js.gz +0 -0
  129. package/build/server/chunks/1-BDxTrwG3.js +0 -9
  130. package/build/server/chunks/4-CBgm4iSo.js +0 -9
  131. package/build/server/chunks/5-CD1fuYOe.js +0 -9
  132. package/build/server/chunks/6-B6tmbcQ8.js +0 -9
  133. package/build/server/chunks/7-m4KLf_Gx.js +0 -9
  134. package/build/server/chunks/_page.svelte-CEjRvc8B.js.map +0 -1
  135. /package/build/client/_app/immutable/nodes/{0.DxAGOZgx.js → 0.DqHhUquH.js} +0 -0
  136. /package/build/client/_app/immutable/nodes/{0.DxAGOZgx.js.br → 0.DqHhUquH.js.br} +0 -0
  137. /package/build/client/_app/immutable/nodes/{0.DxAGOZgx.js.gz → 0.DqHhUquH.js.gz} +0 -0
@@ -1 +1 @@
1
- 0.11.0-rc.13
1
+ 0.11.0-rc.14
@@ -0,0 +1 @@
1
+ :root{--color-primary:#ff9d00;--color-primary-hover:#e68a00;--color-primary-subtle:#ff9d0014;--color-primary-border:#ff9d0047;--color-accent:var(--color-primary);--color-success:#40c057;--color-success-bg:#40c0571a;--color-success-border:#40c05740;--color-success-subtle:var(--color-success-bg);--color-danger:#fa5252;--color-danger-bg:#fa52521a;--color-danger-subtle:var(--color-danger-bg);--color-danger-border:#fa525240;--color-danger-fg:#c92a2a;--color-danger-bg-hover:#fa525229;--color-warning:#d97706;--color-warning-bg:#d977061a;--color-warning-border:#d9770640;--color-info:#339af0;--color-info-bg:#339af014;--color-pending:#868e96;--color-pending-bg:#868e961a;--color-caution:#b45309;--color-caution-bg:#b4530914;--color-error:var(--color-danger);--color-error-bg:var(--color-danger-bg);--color-error-border:var(--color-danger-border);--color-badge-success-fg:#0f6a31;--color-badge-danger-fg:#b91c1c;--color-badge-warning-fg:#b45309;--color-badge-neutral-fg:#4b5563;--color-bg:#fff;--color-bg-secondary:#f9fafb;--color-bg-tertiary:#f3f4f6;--color-surface:#fffffffa;--color-surface-hover:#f9fafb;--color-surface-alt:#f6f8fa;--color-navbar-bg:#ffffffd9;--color-border:#e5e7eb;--color-border-hover:#d1d5db;--color-border-focus:var(--color-primary);--color-text:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-text-muted:var(--color-text-secondary);--color-text-primary:var(--color-text);--color-text-inverse:#fff;--font-sans:"Source Sans 3", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"IBM Plex Mono", "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-lg:1rem;--text-xl:1.125rem;--text-2xl:1.375rem;--text-3xl:1.75rem;--leading-tight:1.25;--leading-normal:1.5;--font-medium:500;--font-semibold:600;--font-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-lg:0 4px 12px #0000001a, 0 2px 4px #0000000f;--transition-fast:.12s ease;--transition-normal:.2s ease;--max-width:1200px;--nav-height:56px;--chat-toolbar-height:53px;--sheet-width:480px;--sheet-width-wide:640px;--overlay-bg:#00000059;--shadow-sheet:-4px 0 24px #0000001f, -1px 0 4px #0000000f;--color-nav-active-text:var(--color-text);--color-nav-active-indicator:var(--color-text);--color-surface-base:var(--color-bg);--color-surface-card:var(--color-surface);--color-surface-elevated:var(--color-bg-secondary);--toggle-width:36px;--toggle-height:20px;--toggle-bg-off:var(--color-border-hover);--toggle-bg-on:var(--color-primary);--provider-card-size:96px;--color-border-selected:var(--color-primary);--color-bg-selected:var(--color-primary-subtle)}:root[data-theme=dark]{--color-primary:#ff9d00;--color-primary-hover:#ffb84d;--color-primary-subtle:#ff9d0029;--color-primary-border:#ff9d0057;--color-success:#5ad57f;--color-success-bg:#5ad57f24;--color-success-border:#5ad57f4d;--color-success-subtle:var(--color-success-bg);--color-danger:#ff7b7b;--color-danger-bg:#ff7b7b24;--color-danger-subtle:var(--color-danger-bg);--color-danger-border:#ff7b7b4d;--color-danger-fg:#ffd2d2;--color-danger-bg-hover:#ff7b7b38;--color-warning:#fbbf24;--color-warning-bg:#fbbf2429;--color-warning-border:#fbbf244d;--color-info:#66b8ff;--color-info-bg:#66b8ff24;--color-pending:#94a3b8;--color-pending-bg:#94a3b824;--color-caution:#fbbf24;--color-caution-bg:#fbbf2424;--color-badge-success-fg:#6ee79a;--color-badge-danger-fg:#ff9d9d;--color-badge-warning-fg:#fcd34d;--color-badge-neutral-fg:#cbd5e1;--color-error:var(--color-danger);--color-error-bg:var(--color-danger-bg);--color-error-border:var(--color-danger-border);--color-bg:#101418;--color-bg-secondary:#161c22;--color-bg-tertiary:#1d2630;--color-surface:#141a20fa;--color-surface-hover:#1b232c;--color-surface-alt:#19212a;--color-navbar-bg:#141a20e0;--color-border:#2a3441;--color-border-hover:#3b4756;--color-border-focus:var(--color-primary);--color-text:#f3f4f6;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-text-muted:var(--color-text-secondary);--color-text-primary:var(--color-text);--color-text-inverse:#0f1419;--shadow-sm:0 1px 3px #00000038, 0 1px 2px #00000029;--shadow-lg:0 10px 24px #00000057, 0 4px 8px #0000003d;--overlay-bg:#0000008c;--shadow-sheet:-6px 0 28px #00000057, -1px 0 4px #0000003d;--toggle-bg-off:var(--color-border-hover);--toggle-bg-on:var(--color-primary);--color-border-selected:var(--color-primary);--color-bg-selected:var(--color-primary-subtle);--color-surface-base:var(--color-bg);--color-surface-card:var(--color-surface);--color-surface-elevated:var(--color-bg-secondary)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-size:16px}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg-secondary);min-height:100vh}html.chat-locked,body.chat-locked{height:100dvh;min-height:0;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.model-toggle{width:var(--toggle-width);height:var(--toggle-height);flex-shrink:0;display:inline-block;position:relative}.model-toggle input{opacity:0;width:0;height:0;position:absolute}.model-toggle-track{background:var(--toggle-bg-off);border-radius:var(--radius-full);transition:background var(--transition-fast);cursor:pointer;position:absolute;inset:0}.model-toggle-track:after{content:"";width:calc(var(--toggle-height) - 4px);aspect-ratio:1;transition:translate var(--transition-fast);background:#fff;border-radius:50%;position:absolute;inset-block:2px;inset-inline-start:2px}.model-toggle input:checked+.model-toggle-track{background:var(--toggle-bg-on)}.model-toggle input:checked+.model-toggle-track:after{translate:calc(var(--toggle-width) - var(--toggle-height)) 0}.model-toggle input:focus-visible+.model-toggle-track{outline:2px solid var(--color-primary);outline-offset:2px}.provider-grid{grid-template-columns:repeat(auto-fill, minmax(var(--provider-card-size), 1fr));gap:var(--space-3);display:grid}.provider-card{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.provider-card:hover{border-color:var(--color-border-hover)}.provider-card--selected{border-color:var(--color-border-selected);background:var(--color-bg-selected);box-shadow:0 0 0 1px var(--color-border-selected)}.provider-card--connected:after{content:"";background:var(--color-success);border-radius:50%;width:8px;height:8px;display:block}.auth-method-group{gap:var(--space-2);flex-direction:column;display:flex}.auth-method-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast);display:flex}.auth-method-card--selected{border-color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-primary)}.filter-pills{gap:var(--space-2);padding-bottom:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.pill{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;padding:4px 12px;display:inline-flex}.pill--active{background:var(--color-bg-tertiary);border-color:var(--color-border-hover);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:inset 0 0 0 1px var(--color-border-hover)}.model-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);display:flex}.model-row:hover{background:var(--color-bg-secondary)}.model-row-name{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);flex:1}.model-row-provider{font-size:var(--text-xs);color:var(--color-text-tertiary)}.provider-group summary{cursor:pointer;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);list-style:none;display:flex}.provider-group summary::-webkit-details-marker{display:none}.provider-group summary:before{content:"▸";font-size:var(--text-xs);transition:transform var(--transition-fast)}.provider-group[open] summary:before{transform:rotate(90deg)}.btn{align-items:center;gap:var(--space-2);min-height:44px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;justify-content:center;padding:10px 20px;line-height:1.4;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#000;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-outline{color:var(--color-text);border-color:var(--color-border);background:0 0}.btn-outline:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-ghost{color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:6px}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-bg-secondary)}.btn-sm{min-height:36px;font-size:var(--text-xs);padding:6px 12px}.btn-secondary{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){opacity:.9}.feedback{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);display:flex}.feedback span{flex:1}.feedback--success{background:var(--color-success-bg,#40c0571a);border:1px solid var(--color-success-border,#40c05740);color:var(--color-text)}.feedback--error{background:var(--color-danger-bg,#ff6b6b1a);border:1px solid var(--color-danger-border,#ff6b6b40);color:var(--color-text)}.feedback--warning{background:var(--color-warning-bg,#ffc1071a);border:1px solid var(--color-warning-border,#ffc10740);color:var(--color-text)}.form-field{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;height:44px;color:var(--color-text);font-size:var(--text-sm);padding:0 12px;font-family:inherit}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.form-input:focus-visible{outline:2px solid var(--color-primary);outline-offset:0}.field-hint{font-size:var(--text-xs);color:var(--color-text-tertiary)}.field-status{font-size:var(--text-xs);color:var(--color-text-secondary)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.panel-header{z-index:10;background:var(--color-surface);justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex;position:sticky;top:0}.panel-header h2{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text)}.panel-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.panel-subtitle code{font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.panel-header-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;max-width:100%;display:flex}.panel-body{padding:var(--space-5)}.panel-body--flush{padding:0}.badge{font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);white-space:nowrap;align-items:center;padding:2px 8px;line-height:1.4;display:inline-flex}.badge-enabled{background:var(--color-success-bg);color:var(--color-badge-success-fg)}.badge-disabled{background:var(--color-bg-tertiary);color:var(--color-badge-neutral-fg)}.badge-connected,.badge-recommended,.badge-success{background:var(--color-success-bg);color:var(--color-badge-success-fg)}.badge-danger{background:var(--color-danger-bg);color:var(--color-badge-danger-fg)}.badge-warning,.badge-warn{background:var(--color-warning-bg);color:var(--color-badge-warning-fg)}.badge-neutral{background:var(--color-bg-tertiary);color:var(--color-badge-neutral-fg)}.badge-error{background:var(--color-danger-bg);color:var(--color-badge-danger-fg)}.badge-idle{background:var(--color-bg-tertiary);color:var(--color-badge-neutral-fg)}.tag-badge{font-size:var(--text-xs);font-family:var(--font-mono);font-weight:var(--font-medium);color:var(--color-info);background:var(--color-info-bg);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;padding:2px 6px;display:inline-flex}.tag-badge--lg{padding:2px 8px}.ct-col{align-items:center;gap:var(--space-2);display:flex}.ct-col--name{flex:2;min-width:0}.ct-col--image{text-overflow:ellipsis;white-space:nowrap;flex:3;min-width:0;overflow:hidden}.ct-col--tag,.ct-col--status{flex:1;min-width:0}.ct-col--actions{color:var(--color-text-tertiary);flex:0 0 24px;justify-content:center}@media (width<=768px){.ct-col--name{flex:auto}.ct-col--image,.ct-col--tag{display:none}.ct-col--status{flex:none}.ct-col--actions{flex:0 0 20px}}.panel-subtitle,.section-note,.section-desc,.section-subtitle,.panel-description,.empty-note,.engine-desc{max-width:68ch}.btn-dismiss{color:inherit;cursor:pointer;opacity:.6;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.btn-dismiss:hover{opacity:1;background:#8080801a}.loading-state{align-items:center;gap:var(--space-3);padding:var(--space-6);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.empty-state{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-tertiary);flex-direction:column;display:flex}.empty-state p{font-size:var(--text-sm)}.text-link{color:var(--color-primary);text-underline-offset:2px;text-decoration:underline}.text-link:hover{color:var(--color-primary-hover)}@media (width<=520px){.provider-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}}.update-banner.svelte-1u6ojbd{color:#3730a3;font-size:var(--text-sm,.875rem);background:#eef2ff;border-bottom:1px solid #c7d2fe;align-items:center;gap:10px;padding:8px 14px;display:flex}.update-banner-icon.svelte-1u6ojbd{display:inline-flex}.update-banner-text.svelte-1u6ojbd{flex:1}.update-banner-link.svelte-1u6ojbd{color:#4338ca;font-weight:600;text-decoration:none}.update-banner-link.svelte-1u6ojbd:hover{text-decoration:underline}.update-banner-dismiss.svelte-1u6ojbd{color:#3730a3;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 8px;font-size:1.1rem;line-height:1}.update-banner-dismiss.svelte-1u6ojbd:hover{background:#4338ca14}.toast-stack.svelte-c82lj3{right:var(--space-4);bottom:var(--space-4);z-index:200;gap:var(--space-2);max-width:min(360px, calc(100vw - var(--space-8)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast.svelte-c82lj3{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);pointer-events:auto;animation:.18s ease-out svelte-c82lj3-toast-in;display:flex;box-shadow:0 10px 30px #0000002e}.toast-info.svelte-c82lj3{border-color:var(--color-primary,#2563eb)}.toast-success.svelte-c82lj3{border-color:var(--color-success,#16a34a)}.toast-error.svelte-c82lj3{border-color:var(--color-danger,#dc2626)}.toast-icon.svelte-c82lj3{flex-shrink:0;display:inline-flex}.toast-info.svelte-c82lj3 .toast-icon:where(.svelte-c82lj3){color:var(--color-primary,#2563eb)}.toast-success.svelte-c82lj3 .toast-icon:where(.svelte-c82lj3){color:var(--color-success,#16a34a)}.toast-error.svelte-c82lj3 .toast-icon:where(.svelte-c82lj3){color:var(--color-danger,#dc2626)}.toast-message.svelte-c82lj3{font-size:var(--text-sm);word-break:break-word;flex:1;line-height:1.4}.toast-dismiss.svelte-c82lj3{width:24px;height:24px;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;flex-shrink:0;font-size:18px;line-height:1}.toast-dismiss.svelte-c82lj3:hover,.toast-dismiss.svelte-c82lj3:focus-visible{background:var(--color-surface-hover);color:var(--color-text);outline:none}.sr-only.svelte-c82lj3{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes svelte-c82lj3-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.toast.svelte-c82lj3{animation:none}}
@@ -0,0 +1 @@
1
+ .nav-shell.svelte-7673iv{top:var(--nav-height);z-index:40;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky}.section-strip.svelte-7673iv{padding-inline:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--color-border);background:var(--color-bg);gap:0;display:flex;overflow-x:auto}.section-strip.svelte-7673iv::-webkit-scrollbar{display:none}.section-tab.svelte-7673iv{min-height:36px;padding:var(--space-1) var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted,var(--color-text-secondary));cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;align-items:center;margin-bottom:-1px;display:inline-flex}.section-tab.svelte-7673iv:hover{color:var(--color-text);background:var(--color-bg-secondary)}.section-tab.svelte-7673iv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.section-tab-active.svelte-7673iv{color:var(--color-text);font-weight:var(--font-semibold);background:var(--color-bg-secondary);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.subtab-row.svelte-7673iv{position:relative}.subtab-row.svelte-7673iv:after{content:"";background:linear-gradient(to right, transparent, var(--color-bg-secondary));pointer-events:none;width:48px;position:absolute;top:0;bottom:0;right:0}.subtab-row.svelte-7673iv:before{content:"";background:linear-gradient(to left, transparent, var(--color-bg-secondary));pointer-events:none;z-index:1;width:40px;position:absolute;top:0;bottom:0;left:0}.tabs.svelte-7673iv{gap:var(--space-1);padding-inline:var(--space-6);-webkit-overflow-scrolling:touch;scrollbar-width:none;display:flex;overflow-x:auto}.tabs.svelte-7673iv::-webkit-scrollbar{display:none}.tab.svelte-7673iv{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast), font-weight var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;flex-shrink:0;margin-bottom:-1px;display:inline-flex}.tab.svelte-7673iv:hover{color:var(--color-text)}.tab.svelte-7673iv:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.tab-active.svelte-7673iv{color:var(--color-text);font-weight:var(--font-semibold);border-bottom-color:var(--color-text)}@media (width<=768px){.tab.svelte-7673iv{padding:var(--space-2)}.section-tab.svelte-7673iv{padding:var(--space-1) var(--space-3)}.section-strip.svelte-7673iv,.tabs.svelte-7673iv{padding-inline:var(--space-4)}}@media (width<=320px){.tab.svelte-7673iv,.section-tab.svelte-7673iv{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}}.hero.svelte-10n23hu{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:1px solid #0000;flex-wrap:wrap;display:flex}.hero--ok.svelte-10n23hu{background:var(--color-success-bg);border-color:var(--color-success-border)}.hero--warning.svelte-10n23hu{background:var(--color-warning-bg);border-color:var(--color-warning)}.hero--unknown.svelte-10n23hu{background:var(--color-bg-secondary);border-color:var(--color-border)}.hero-icon.svelte-10n23hu{flex-shrink:0;display:inline-flex}.hero--ok.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-badge-success-fg)}.hero--warning.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-badge-warning-fg)}.hero--unknown.svelte-10n23hu .hero-icon:where(.svelte-10n23hu){color:var(--color-text-secondary)}.hero-text.svelte-10n23hu{flex:240px;min-width:0}.hero-title.svelte-10n23hu{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.hero-detail.svelte-10n23hu{font-size:var(--text-sm);color:var(--color-badge-neutral-fg);max-width:68ch;margin-top:2px}.hero-actions.svelte-10n23hu{align-items:center;gap:var(--space-2);flex-wrap:wrap;max-width:100%;display:flex}.hero-actions.svelte-10n23hu .btn{flex-shrink:0}@media (width<=560px){.hero-actions.svelte-10n23hu{width:100%}.hero-actions.svelte-10n23hu .btn{flex:auto}}.output-section.svelte-10sij3c{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-6);overflow:hidden}.output-section--success.svelte-10sij3c{border-color:var(--color-success-border)}.output-section--error.svelte-10sij3c{border-color:var(--color-danger)}.output-header.svelte-10sij3c{padding:var(--space-3) var(--space-5);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.output-header.svelte-10sij3c h3:where(.svelte-10sij3c){font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.output-code.svelte-10sij3c{padding:var(--space-4) var(--space-5);max-height:320px;font-family:var(--font-mono);font-size:var(--text-xs);color:#e4e8f0;white-space:pre-wrap;word-break:break-word;background:#1e2330;margin:0;line-height:1.6;overflow:auto}.tile.svelte-19hpfg{gap:var(--space-1);padding:var(--space-4) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.tile.svelte-19hpfg:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.tile.svelte-19hpfg:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tile-metric.svelte-19hpfg{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.tile-metric-sub.svelte-19hpfg{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--color-text-secondary)}.tile-metric--icon.svelte-19hpfg{color:var(--color-text-secondary)}.tile-label.svelte-19hpfg{font-size:var(--text-sm);color:var(--color-text-secondary)}.akm-card.svelte-dcgqe1{text-align:left;width:100%;font-family:var(--font-sans);padding:var(--space-5);margin-bottom:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);display:block}.akm-card.svelte-dcgqe1:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.akm-card.svelte-dcgqe1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.akm-head.svelte-dcgqe1{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.akm-title.svelte-dcgqe1{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.akm-metrics.svelte-dcgqe1{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.akm-metric.svelte-dcgqe1{flex-direction:column;gap:2px;display:flex}.akm-num.svelte-dcgqe1{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);line-height:1.1}.akm-num-sub.svelte-dcgqe1{font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-secondary)}.akm-cap.svelte-dcgqe1{font-size:var(--text-xs);color:var(--color-text-secondary)}.akm-unavailable.svelte-dcgqe1{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch}.shortcut-grid.svelte-8y2vdf{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.shortcut.svelte-8y2vdf{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-sans);transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;gap:2px;text-decoration:none;display:flex}.shortcut.svelte-8y2vdf:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.shortcut.svelte-8y2vdf:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shortcut-name.svelte-8y2vdf{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.shortcut-desc.svelte-8y2vdf{font-size:var(--text-xs);color:var(--color-text-secondary)}.tile-grid.svelte-xz862u{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.section-heading.svelte-xz862u{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-3)}.panel-subtitle.svelte-7mkeya{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:60ch}.refresh-releases.svelte-7mkeya{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.refresh-releases.svelte-7mkeya svg:where(.svelte-7mkeya){flex-shrink:0}@media (width<=600px){.refresh-releases.svelte-7mkeya{margin-top:var(--space-2)}}.status-live.svelte-7mkeya{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.update-card.svelte-7mkeya{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.update-card-text.svelte-7mkeya{flex:1;min-width:14rem}.update-title.svelte-7mkeya{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.update-desc.svelte-7mkeya{font-size:var(--text-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 0;max-width:60ch;line-height:1.5}.update-go.svelte-7mkeya{align-items:center;gap:var(--space-2);flex-shrink:0;display:inline-flex}.versions.svelte-7mkeya{gap:var(--space-2);margin:var(--space-5) 0 0;flex-direction:column;display:flex}.versions-row.svelte-7mkeya{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.versions-row.svelte-7mkeya dt:where(.svelte-7mkeya){font-size:var(--text-sm);color:var(--color-text)}.versions-row.svelte-7mkeya dd:where(.svelte-7mkeya){margin:0}.version-value.svelte-7mkeya{font-size:var(--text-xs);font-family:var(--font-mono);background:var(--color-bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-secondary);padding:2px 6px}.advanced.svelte-7mkeya{margin-top:var(--space-5);border-top:1px solid var(--color-border);padding-top:var(--space-4)}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya){cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary);list-style:revert}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya):hover{color:var(--color-text)}.advanced.svelte-7mkeya>summary:where(.svelte-7mkeya):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.advanced-body.svelte-7mkeya{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;display:flex}.version-section.svelte-7mkeya{gap:var(--space-2);flex-direction:column;display:flex}.version-label.svelte-7mkeya{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.version-input-row.svelte-7mkeya{gap:var(--space-2);flex-wrap:wrap;display:flex}.version-input.svelte-7mkeya{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-input.svelte-7mkeya:disabled{opacity:.5;cursor:not-allowed}.version-hint.svelte-7mkeya{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0;line-height:1.5}.version-divider.svelte-7mkeya{background:var(--color-border);height:1px;margin:var(--space-3) 0}.version-restart-prompt.svelte-7mkeya{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-success);padding:var(--space-2) var(--space-3);background:var(--color-success-bg);border-radius:var(--radius-md);display:flex}.version-select.svelte-7mkeya{min-width:0;padding:var(--space-1-5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:var(--font-mono);flex:1}.version-select.svelte-7mkeya:disabled{opacity:.5;cursor:not-allowed}.version-select-skeleton.svelte-7mkeya{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--color-bg-secondary) 25%, var(--color-bg-tertiary) 50%, var(--color-bg-secondary) 75%);background-size:200% 100%;flex:1;height:34px;animation:1.4s ease-in-out infinite svelte-7mkeya-skeleton-shimmer}@keyframes svelte-7mkeya-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.version-select-skeleton.svelte-7mkeya{animation:none}}.empty-state.svelte-1dv4ads{align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-6);text-align:center;color:var(--color-text-tertiary);flex-direction:column;display:flex}.empty-state.svelte-1dv4ads p{font-size:var(--text-sm)}.secret-select.svelte-180dg8u{gap:var(--space-2);flex-direction:column;display:flex}.ss-row.svelte-180dg8u{align-items:center;gap:var(--space-2);display:flex}.ss-select.svelte-180dg8u{flex:auto;min-width:0;height:38px}.ss-add-btn.svelte-180dg8u{align-items:center;gap:var(--space-1);flex-shrink:0;height:38px;display:inline-flex}.ss-add-btn.svelte-180dg8u svg:where(.svelte-180dg8u){flex-shrink:0}.ss-add-form.svelte-180dg8u{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);flex-direction:column;display:flex}.ss-field.svelte-180dg8u{flex-direction:column;gap:4px;display:flex}.ss-field-label.svelte-180dg8u{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.ss-error.svelte-180dg8u{font-size:var(--text-xs);color:var(--color-danger)}.ss-actions.svelte-180dg8u{gap:var(--space-2);display:flex}@media (width<=480px){.ss-add-label.svelte-180dg8u{display:none}.ss-add-btn.svelte-180dg8u{justify-content:center;width:38px}}.drawer-scrim.svelte-1u2o1qj{z-index:200;background:#00000073;border:none;padding:0;position:fixed;inset:0}.drawer.svelte-1u2o1qj{width:min(var(--drawer-width,32rem), 100vw);background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;animation:.2s cubic-bezier(.16,1,.3,1) svelte-1u2o1qj-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #0000002e}@keyframes svelte-1u2o1qj-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.drawer.svelte-1u2o1qj{animation:none}}.drawer-header.svelte-1u2o1qj{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.drawer-title.svelte-1u2o1qj{min-width:0;font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);flex:1}.drawer-close.svelte-1u2o1qj{border-radius:var(--radius-md);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.drawer-close.svelte-1u2o1qj:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-close.svelte-1u2o1qj:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.drawer-body.svelte-1u2o1qj{padding:var(--space-5);flex:1;overflow-y:auto}.drawer-footer.svelte-1u2o1qj{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.addon-table.svelte-87zh26{flex-direction:column;width:100%;display:flex}.addon-table-header.svelte-87zh26{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-badge-neutral-fg);text-transform:none;align-items:center;display:flex}.addon-row.svelte-87zh26{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);transition:background var(--transition-fast);align-items:center;display:flex}.addon-row.svelte-87zh26:last-child{border-bottom:none}.addon-row.svelte-87zh26:hover{background:var(--color-surface-hover)}.addon-col.svelte-87zh26{align-items:center;gap:var(--space-2);display:flex}.addon-col--name.svelte-87zh26{flex:3;min-width:0}.addon-col--status.svelte-87zh26{flex:1;min-width:0}.addon-col--actions.svelte-87zh26{flex:none;justify-content:flex-end}.addon-name.svelte-87zh26{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width<=480px){.addon-row.svelte-87zh26{flex-wrap:wrap}.addon-col--name.svelte-87zh26{flex:1 0 100%}.addon-col--actions.svelte-87zh26{justify-content:flex-start}}.error-state.svelte-87zh26{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-danger);display:flex}@media (width<=768px){.addon-table-header.svelte-87zh26{display:none}.addon-row.svelte-87zh26{gap:var(--space-2);flex-wrap:wrap}.addon-col--status.svelte-87zh26{flex:none}}.creds-loading.svelte-87zh26{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.creds-empty.svelte-87zh26,.creds-hint.svelte-87zh26{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.creds-row.svelte-87zh26{gap:var(--space-1);flex-direction:column;display:flex}.creds-label.svelte-87zh26{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text);display:flex}.creds-label.svelte-87zh26 code:where(.svelte-87zh26){font-family:var(--font-mono);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.creds-tag.svelte-87zh26{font-size:var(--text-xs);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px}.creds-tag--set.svelte-87zh26{background:var(--color-success-bg);color:var(--color-success)}.creds-desc.svelte-87zh26{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.form-input.svelte-87zh26{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;height:32px;padding:0 var(--space-3);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.form-input.svelte-87zh26:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.ct-service-name.svelte-1clpuus{font-weight:var(--font-medium);font-family:var(--font-mono);font-size:var(--text-xs)}.ct-mono.svelte-1clpuus{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary)}.ct-indicator.svelte-1clpuus{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ct-indicator--success.svelte-1clpuus{background:var(--color-success)}.ct-indicator--danger.svelte-1clpuus{background:var(--color-danger)}.ct-indicator--warning.svelte-1clpuus{background:var(--color-warning)}.ct-indicator--idle.svelte-1clpuus{background:var(--color-border)}.ct-chevron-open.svelte-1clpuus{transform:rotate(180deg)}.ct-not-created.svelte-1clpuus{color:var(--color-text-tertiary);font-style:italic}.container-table-row.svelte-1clpuus{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);font-size:var(--text-sm);width:100%;font-family:var(--font-sans);text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;display:flex}.container-table-row.svelte-1clpuus:last-child{border-bottom:none}.container-table-row--clickable.svelte-1clpuus{cursor:pointer;transition:background var(--transition-fast)}.container-table-row--clickable.svelte-1clpuus:hover{background:var(--color-surface-hover)}.container-table-row--clickable.svelte-1clpuus:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=768px){.container-table-row.svelte-1clpuus{gap:var(--space-1);padding:var(--space-3) var(--space-4);flex-wrap:wrap}}.container-detail.svelte-17lh9yz{padding:var(--space-4) var(--space-5) var(--space-4) calc(var(--space-5) + 28px);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.detail-grid.svelte-17lh9yz{gap:var(--space-3) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.detail-item.svelte-17lh9yz{flex-direction:column;gap:2px;display:flex}.detail-label.svelte-17lh9yz{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.detail-value.svelte-17lh9yz{font-size:var(--text-sm);color:var(--color-text);align-items:center;gap:var(--space-2);display:flex}.detail-mono.svelte-17lh9yz{font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-all}.detail-digest.svelte-17lh9yz{font-size:var(--text-xs);color:var(--color-text-tertiary)}.detail-actions.svelte-17lh9yz{gap:var(--space-2);margin-top:var(--space-4);display:flex}.detail-not-created.svelte-17lh9yz{padding:var(--space-2) 0}.detail-not-created.svelte-17lh9yz p:where(.svelte-17lh9yz){font-size:var(--text-sm);color:var(--color-text-secondary)}.action-feedback.svelte-17lh9yz{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium)}.action-feedback--success.svelte-17lh9yz{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.action-feedback--error.svelte-17lh9yz{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.confirm-bar.svelte-17lh9yz{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-md);display:flex}.confirm-text.svelte-17lh9yz{font-size:var(--text-sm);color:var(--color-text)}.confirm-actions.svelte-17lh9yz{gap:var(--space-2);flex-shrink:0;display:flex}@media (width<=768px){.detail-grid.svelte-17lh9yz{grid-template-columns:1fr}.container-detail.svelte-17lh9yz{padding-left:var(--space-4)}.confirm-bar.svelte-17lh9yz{flex-direction:column;align-items:stretch}.confirm-actions.svelte-17lh9yz{justify-content:flex-end}}.text-danger.svelte-llpoy7{color:var(--color-danger)}.empty-state.svelte-llpoy7 .btn:where(.svelte-llpoy7){margin-top:var(--space-2)}.empty-state.svelte-llpoy7 .hint:where(.svelte-llpoy7){font-size:var(--text-xs);color:var(--color-text-tertiary);max-width:32ch}.container-table.svelte-fnc5b8{flex-direction:column;width:100%;display:flex}.container-table-header.svelte-fnc5b8{padding:var(--space-2) var(--space-5);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:none;align-items:center;display:flex}.last-updated.svelte-fnc5b8{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}@media (width<=768px){.container-table-header.svelte-fnc5b8{display:none}}.automation-list.svelte-1xltcby{gap:var(--space-3);flex-direction:column;display:flex}.automation-card.svelte-1xltcby{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.automation-row.svelte-1xltcby{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4);display:flex}.automation-main.svelte-1xltcby{flex:1;min-width:0}.automation-name.svelte-1xltcby{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);flex-wrap:wrap;display:flex}.automation-desc.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.automation-meta.svelte-1xltcby{align-items:flex-end;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.meta-item.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary)}.meta-item.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.schedule-friendly.svelte-1xltcby{font-weight:var(--font-medium);color:var(--color-text)}.meta-tz.svelte-1xltcby{color:var(--color-text-tertiary)}.badge-type.svelte-1xltcby{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.automation-footer.svelte-1xltcby{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-tertiary);display:flex}.automation-actions.svelte-1xltcby{gap:var(--space-1);display:flex}.task-editor.svelte-1xltcby{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);padding:var(--space-4);margin-bottom:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.task-editor-head.svelte-1xltcby{flex-direction:column;gap:2px;display:flex}.task-editor-name.svelte-1xltcby{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold)}.task-editor-hint.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-secondary)}.task-editor-area.svelte-1xltcby{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);padding:var(--space-3);resize:vertical;line-height:1.5}.task-editor-actions.svelte-1xltcby{justify-content:flex-end;gap:var(--space-2);display:flex}.automation-file.svelte-1xltcby{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-tertiary)}.empty-state-hint.svelte-1xltcby{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:calc(-1 * var(--space-2))}.empty-state-btn.svelte-1xltcby{margin-top:var(--space-2)}.empty-state-hint.svelte-1xltcby code:where(.svelte-1xltcby){font-family:var(--font-mono);font-size:var(--text-xs);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.text-danger.svelte-1xltcby{color:var(--color-danger)}@media (width<=768px){.automation-row.svelte-1xltcby{flex-direction:column}.automation-meta.svelte-1xltcby{align-items:flex-start;gap:var(--space-3);flex-direction:row}}.add-search.svelte-1ykz2x6{width:100%;margin-bottom:var(--space-3)}.pick-list.svelte-1ykz2x6{margin:0 calc(var(--space-5) * -1) calc(var(--space-5) * -1)}.provider-pick.svelte-1ykz2x6{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-5);border:none;border-bottom:1px solid var(--color-bg-tertiary);cursor:pointer;text-align:left;background:0 0;font-family:inherit;display:flex}.provider-pick.svelte-1ykz2x6:hover{background:var(--color-surface-hover)}.provider-pick--custom.svelte-1ykz2x6{border-top:1px solid var(--color-border);color:var(--color-primary)}.provider-name.svelte-1ykz2x6{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);flex:1}.provider-pick--custom.svelte-1ykz2x6 .provider-name:where(.svelte-1ykz2x6){color:var(--color-primary)}.provider-meta.svelte-1ykz2x6{font-size:var(--text-xs);color:var(--color-text-tertiary)}.empty.svelte-1ykz2x6{padding:var(--space-6) var(--space-5);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-sm)}.field-error.svelte-353jzw{font-size:var(--text-xs);color:var(--color-danger)}.connect-back.svelte-1bnolke{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-secondary);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.connect-back.svelte-1bnolke:hover{background:var(--color-surface-hover);color:var(--color-text)}.connect-back.svelte-1bnolke:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.auth-method-group.svelte-1bnolke{gap:var(--space-2);flex-direction:column;display:flex}.auth-method-card.svelte-1bnolke{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color var(--transition-fast), background var(--transition-fast);flex-direction:column;font-family:inherit;display:flex}.auth-method-card.svelte-1bnolke:hover{border-color:var(--color-border-hover);background:var(--color-surface-hover)}.method-label.svelte-1bnolke{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.method-type.svelte-1bnolke{font-size:var(--text-xs);color:var(--color-text-tertiary)}.form-stack.svelte-1btkq49{gap:var(--space-4);flex-direction:column;display:flex}.optional.svelte-1btkq49{font-weight:var(--font-medium);color:var(--color-text-tertiary);font-size:var(--text-xs)}.result-list.svelte-15y8pah{padding-left:var(--space-5);gap:var(--space-1);margin:0 0 var(--space-3);flex-direction:column;list-style:outside;display:flex}.result-list.svelte-15y8pah li:where(.svelte-15y8pah){font-size:var(--text-sm);color:var(--color-text)}.result-list.svelte-15y8pah code:where(.svelte-15y8pah){font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:1px 6px}.muted.svelte-15y8pah{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:var(--space-2)}.feedback.inline.svelte-19zt4ct{margin:var(--space-3) var(--space-5);justify-content:space-between}.provider-row.svelte-19zt4ct{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-bg-tertiary);display:flex}.model-defaults.svelte-19zt4ct{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);grid-template-columns:1fr 1fr;display:grid}.model-field.svelte-19zt4ct{gap:var(--space-1);flex-direction:column;display:flex}.model-error.svelte-19zt4ct{font-size:var(--text-xs);color:var(--color-danger);grid-column:1/-1;margin:0}.provider-id.svelte-19zt4ct{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.provider-name.svelte-19zt4ct{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.empty-hint.svelte-19zt4ct{color:var(--color-text-tertiary)}.controls.svelte-coqj2u{align-items:flex-end;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.control-group.svelte-coqj2u{gap:var(--space-1);flex-direction:column;display:flex}.control-group--toggle.svelte-coqj2u{justify-content:flex-end}.control-label.svelte-coqj2u{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);text-transform:none}.control-input.svelte-coqj2u{height:32px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);min-width:140px;font-family:inherit}.control-input.svelte-coqj2u:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.toggle-label.svelte-coqj2u{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;height:32px;display:flex}.toggle-label.svelte-coqj2u input:where(.svelte-coqj2u){accent-color:var(--color-primary)}.log-output.svelte-coqj2u{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg);padding:var(--space-4) var(--space-5);white-space:pre-wrap;word-break:break-all;tab-size:4;max-height:600px;margin:0;line-height:1.6;overflow-y:auto}.error-banner.svelte-coqj2u{padding:var(--space-3) var(--space-5);background:var(--color-danger-bg);border-bottom:1px solid var(--color-danger-border,#ff6b6b40);color:var(--color-danger);font-size:var(--text-sm)}@media (width<=768px){.controls.svelte-coqj2u{flex-direction:column;align-items:stretch}.control-input.svelte-coqj2u{min-width:unset;width:100%}.log-output.svelte-coqj2u{max-height:400px;font-size:var(--text-xs)}}.panel-header.svelte-epscb2{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-note.svelte-epscb2{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4)}.error-banner.svelte-epscb2{background:var(--color-danger-subtle,#ef44441a);color:var(--color-danger,#ef4444);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.empty-note.svelte-epscb2{font-size:var(--text-sm);color:var(--color-text-secondary)}.mono.svelte-epscb2{font-family:var(--font-mono);font-size:var(--text-sm)}.secrets-layout.svelte-epscb2{gap:var(--space-4);grid-template-columns:minmax(16rem,22rem) 1fr;align-items:start;display:grid}@media (width<=720px){.secrets-layout.svelte-epscb2{grid-template-columns:1fr}}.secrets-list.svelte-epscb2{gap:var(--space-1);flex-direction:column;display:flex}.secret-row.svelte-epscb2{align-items:center;gap:var(--space-1);display:flex}.secret-row.active.svelte-epscb2 .secret-name:where(.svelte-epscb2){border-color:var(--color-primary,#6366f1)}.secret-name.svelte-epscb2{justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text);cursor:pointer;flex:1;display:flex}.secret-name.svelte-epscb2:hover{background:var(--color-bg-tertiary,var(--color-bg-secondary))}.secret-size.svelte-epscb2{font-size:var(--text-xs);color:var(--color-text-secondary);flex-shrink:0}.new-secret.svelte-epscb2{gap:var(--space-1);margin-top:var(--space-3);flex-direction:column;display:flex}.new-secret-label.svelte-epscb2{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.new-secret-row.svelte-epscb2{gap:var(--space-2);flex-wrap:wrap;display:flex}.secrets-editor.svelte-epscb2{min-width:0}.editor-head.svelte-epscb2{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.reveal-toggle.svelte-epscb2{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary);display:flex}.editor-area.svelte-epscb2{width:100%;font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical}.editor-area.masked.svelte-epscb2{-webkit-text-security:disc}.editor-actions.svelte-epscb2{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2);display:flex}.editor-empty.svelte-epscb2{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-text-secondary);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-md);flex-direction:column;min-height:12rem;display:flex}.editor-empty.svelte-epscb2 svg:where(.svelte-epscb2){opacity:.4}.editor-empty.svelte-epscb2 p:where(.svelte-epscb2){font-size:var(--text-sm);max-width:24rem;margin:0}.input-with-toggle.svelte-176sy43{align-items:stretch;gap:var(--space-2);display:flex}.control-input.svelte-176sy43{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);flex:auto;min-width:0}.control-input.svelte-176sy43:focus{outline:2px solid var(--color-primary);outline-offset:1px}.btn-icon.svelte-176sy43{padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:38px;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);flex-shrink:0}.btn-icon.svelte-176sy43:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text)}.btn-icon.svelte-176sy43:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn-icon.svelte-176sy43:disabled{opacity:.6;cursor:not-allowed}.config-section.svelte-y5k1u8{gap:var(--space-3);flex-direction:column;display:flex}.section-title.svelte-y5k1u8{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-note.svelte-y5k1u8{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0}.controls--grid.svelte-y5k1u8{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-y5k1u8{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-y5k1u8{grid-column:1/-1}.control-label.svelte-y5k1u8{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-input.svelte-y5k1u8{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-y5k1u8{max-width:8rem}.control-input.svelte-y5k1u8:focus{outline:2px solid var(--color-primary);outline-offset:1px}.config-section.svelte-gfn07p{gap:var(--space-3);flex-direction:column;display:flex}.section-title.svelte-gfn07p{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-note.svelte-gfn07p{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0}.controls--grid.svelte-gfn07p{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.control-group.svelte-gfn07p{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.control-group--wide.svelte-gfn07p{grid-column:1/-1}.control-label.svelte-gfn07p{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-input.svelte-gfn07p{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-gfn07p{max-width:8rem}.control-input.svelte-gfn07p:focus{outline:2px solid var(--color-primary);outline-offset:1px}.adv-details.svelte-gfn07p{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-4)}.adv-summary.svelte-gfn07p{cursor:pointer;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.adv-summary.svelte-gfn07p:hover{background:var(--color-surface-hover)}.adv-details[open].svelte-gfn07p .adv-summary:where(.svelte-gfn07p){border-bottom:1px solid var(--color-border)}.adv-body.svelte-gfn07p{padding:var(--space-4)}.profile-row.svelte-zzh9mp{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex}.profile-row-name.svelte-zzh9mp{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.profile-row-actions.svelte-zzh9mp{gap:var(--space-2);flex-shrink:0;display:flex}.badge.svelte-zzh9mp{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.badge--default.svelte-zzh9mp{background:var(--color-primary-subtle,#6366f11a);color:var(--color-primary,#6366f1);border-color:var(--color-primary-border,#6366f14d)}.config-section.svelte-zwwvog{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-zwwvog{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-zwwvog{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-zwwvog{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-zwwvog{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-zwwvog{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-zwwvog svg:where(.svelte-zwwvog){opacity:.45}.profile-list.svelte-zwwvog{gap:var(--space-1);flex-direction:column;display:flex}.config-section.svelte-anyxpa{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-anyxpa{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-anyxpa{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-anyxpa{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-anyxpa{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-anyxpa{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-anyxpa svg:where(.svelte-anyxpa){opacity:.45}.profile-list.svelte-anyxpa{gap:var(--space-1);flex-direction:column;display:flex}.badge.svelte-anyxpa{font-size:var(--text-xs);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-tertiary,var(--color-bg-secondary));color:var(--color-text-secondary);border:1px solid var(--color-border);white-space:nowrap;flex-shrink:0}.config-section.svelte-1ngozvb{gap:var(--space-4);flex-direction:column;display:flex}.section-title.svelte-1ngozvb{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);margin:0}.section-title-aka.svelte-1ngozvb{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--color-text-secondary);font-family:var(--font-mono);margin-left:var(--space-2)}.section-note.svelte-1ngozvb{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.empty-note.svelte-1ngozvb{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic}.profile-empty.svelte-1ngozvb{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--color-text-secondary);flex-direction:column;display:flex}.profile-empty.svelte-1ngozvb svg:where(.svelte-1ngozvb){opacity:.45}.profile-list.svelte-1ngozvb{gap:var(--space-1);flex-direction:column;display:flex}.profile-row-desc.svelte-1ngozvb{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;overflow:hidden}.controls.svelte-1gmn25z{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1gmn25z{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1gmn25z{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1gmn25z{grid-column:1/-1}.control-label.svelte-1gmn25z{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1gmn25z{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1gmn25z{max-width:8rem}.control-input.svelte-1gmn25z:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1gmn25z:disabled{opacity:.5;cursor:not-allowed}.toggle-row.svelte-1gmn25z{align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);display:flex}.toggle-row.svelte-1gmn25z input[type=checkbox]:where(.svelte-1gmn25z){flex-shrink:0;width:1rem;height:1rem}.toggle-label.svelte-1gmn25z{font-weight:var(--font-medium);color:var(--color-text)}.toggle-hint.svelte-1gmn25z{color:var(--color-text-secondary);font-size:var(--text-xs)}.feat-hint.svelte-1gmn25z{font-size:var(--text-xs);color:var(--color-text-secondary)}.drawer-scrim.svelte-1gmn25z{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1gmn25z{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1gmn25z-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1gmn25z-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1gmn25z{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1gmn25z{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1gmn25z{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1gmn25z:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1gmn25z{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1gmn25z{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.controls.svelte-1evj0pt{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1evj0pt{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1evj0pt{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1evj0pt{grid-column:1/-1}.control-label.svelte-1evj0pt{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1evj0pt{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input.svelte-1evj0pt:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1evj0pt:disabled{opacity:.5;cursor:not-allowed}.drawer-scrim.svelte-1evj0pt{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1evj0pt{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1evj0pt-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1evj0pt-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1evj0pt{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1evj0pt{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1evj0pt{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1evj0pt:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1evj0pt{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1evj0pt{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.controls.svelte-1ndbe78{gap:var(--space-4);flex-direction:column;display:flex}.controls--grid.svelte-1ndbe78{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.control-group.svelte-1ndbe78{gap:var(--space-1);flex-direction:column;display:flex}.control-group--wide.svelte-1ndbe78{grid-column:1/-1}.control-label.svelte-1ndbe78{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.control-input.svelte-1ndbe78{font-size:var(--text-sm);color:var(--color-text);background:var(--color-input-bg,var(--color-bg));border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);width:100%}.control-input--narrow.svelte-1ndbe78{max-width:8rem}.control-input.svelte-1ndbe78:focus{outline:2px solid var(--color-primary);outline-offset:1px}.control-input.svelte-1ndbe78:disabled{opacity:.5;cursor:not-allowed}.feat-name.svelte-1ndbe78{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);font-family:var(--font-mono);display:block}.feat-hint.svelte-1ndbe78{font-size:var(--text-xs);color:var(--color-text-secondary)}.proc-list.svelte-1ndbe78{gap:var(--space-2);flex-direction:column;display:flex}.proc-card.svelte-1ndbe78{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);padding:var(--space-2)}.proc-head.svelte-1ndbe78{align-items:center;gap:var(--space-2);grid-template-columns:1.5rem 1fr 9rem 11rem 7rem;display:grid}@media (width<=600px){.proc-head.svelte-1ndbe78{grid-template-columns:1.5rem 1fr}.proc-head.svelte-1ndbe78>:where(.svelte-1ndbe78):nth-child(n+3){grid-column:1/-1}}.proc-head.svelte-1ndbe78 input[type=checkbox]:where(.svelte-1ndbe78){width:1rem;height:1rem}.proc-name.svelte-1ndbe78{min-width:0}.proc-adv.svelte-1ndbe78{margin-top:var(--space-2)}.proc-adv.svelte-1ndbe78>summary:where(.svelte-1ndbe78){cursor:pointer;font-size:var(--text-xs);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.proc-adv-grid.svelte-1ndbe78{gap:var(--space-2);margin-top:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.adv-field.svelte-1ndbe78{flex-direction:column;gap:2px;display:flex}.adv-field.svelte-1ndbe78>span:where(.svelte-1ndbe78){font-size:var(--text-xs);color:var(--color-text-secondary)}.adv-field--check.svelte-1ndbe78{align-items:center;gap:var(--space-2);flex-direction:row}.adv-field--wide.svelte-1ndbe78{grid-column:1/-1}.adv-sublabel.svelte-1ndbe78{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary);margin-bottom:2px;display:block}.drawer-scrim.svelte-1ndbe78{z-index:200;background:#00000059;position:fixed;inset:0}.drawer.svelte-1ndbe78{background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;flex-direction:column;width:min(640px,92vw);animation:.2s cubic-bezier(.16,1,.3,1) svelte-1ndbe78-drawer-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 32px #0003}@keyframes svelte-1ndbe78-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header.svelte-1ndbe78{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.drawer-title.svelte-1ndbe78{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.drawer-close.svelte-1ndbe78{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;justify-content:center;align-items:center;display:flex}.drawer-close.svelte-1ndbe78:hover{background:var(--color-surface-hover);color:var(--color-text)}.drawer-body.svelte-1ndbe78{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-footer.svelte-1ndbe78{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;display:flex}.k-tabs.svelte-19wb2va{scrollbar-width:none;gap:var(--space-1);padding:var(--space-1);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);flex-wrap:nowrap;display:flex;overflow-x:auto}.k-tabs.svelte-19wb2va::-webkit-scrollbar{display:none}.k-tab.svelte-19wb2va{min-height:2.75rem;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-normal,400);color:var(--color-text-secondary);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex:1 0 auto;transition:background .15s,color .15s}.k-tab.svelte-19wb2va:hover{background:var(--color-surface-hover,#0000000d);color:var(--color-text)}.k-tab.svelte-19wb2va:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.k-tab--active.svelte-19wb2va{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text);font-weight:var(--font-semibold);box-shadow:0 1px 3px #00000014}@media (width<=400px){.k-tab.svelte-19wb2va{font-size:var(--text-xs);padding:var(--space-2)}}.panel-header.svelte-19wb2va{margin-bottom:var(--space-6);z-index:10;background:var(--color-bg);padding-top:var(--space-2);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.panel-header.svelte-19wb2va h2:where(.svelte-19wb2va){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-19wb2va{gap:var(--space-2);display:flex}.panel-body.svelte-19wb2va{gap:var(--space-8);flex-direction:column;display:flex}.section-note--lead.svelte-19wb2va{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:72ch;margin:0 0 var(--space-4)}.section-note.svelte-19wb2va{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.error-banner.svelte-19wb2va{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}.panel-header.svelte-fv9i73{margin-bottom:var(--space-5)}.panel-header.svelte-fv9i73 h2:where(.svelte-fv9i73){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.config-section.svelte-fv9i73{gap:var(--space-3);flex-direction:column;display:flex}.section-note.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:68ch;margin:0}.hs-restart.svelte-fv9i73{font-size:var(--text-sm);color:var(--color-badge-warning-fg);font-weight:var(--font-medium);margin:0}.hs-loading.svelte-fv9i73{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);display:flex}.controls--grid.svelte-fv9i73{gap:var(--space-4);grid-template-columns:1fr;display:grid}.control-group.svelte-fv9i73{gap:var(--space-2);flex-direction:column;display:flex}.control-label.svelte-fv9i73{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.control-label--checkbox.svelte-fv9i73{align-items:center;gap:var(--space-2);font-weight:var(--font-normal);flex-direction:row}.host-akm-status.svelte-fv9i73{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.host-akm-path.svelte-fv9i73{font-size:var(--text-xs);color:var(--color-text-secondary)}.host-akm-actions.svelte-fv9i73{gap:var(--space-2);flex-flow:wrap}.engine-section.svelte-1b9l1t7{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1b9l1t7{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1b9l1t7{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.tts-extras.svelte-1b9l1t7{gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.test-voice-row.svelte-1b9l1t7{align-items:center;gap:var(--space-3);display:flex}.test-result.svelte-1b9l1t7{font-size:var(--text-xs)}.test-result--ok.svelte-1b9l1t7{color:var(--color-success,#16a34a)}.test-result--err.svelte-1b9l1t7{color:var(--color-error,#dc2626)}.auto-speak-toggle.svelte-1b9l1t7{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;display:flex}.auto-speak-toggle.svelte-1b9l1t7 input[type=checkbox]:where(.svelte-1b9l1t7){cursor:pointer;width:16px;height:16px}.engine-section.svelte-1qwlk8j{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1qwlk8j{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.engine-subheading.svelte-1qwlk8j{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.engine-section.svelte-1r7l91t{gap:var(--space-3);flex-direction:column;display:flex}.engine-heading.svelte-1r7l91t{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header.svelte-nokcxu{z-index:10;background:var(--color-surface);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:0;display:flex;position:sticky;top:0}.panel-header.svelte-nokcxu h2:where(.svelte-nokcxu){font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);margin:0}.panel-header-actions.svelte-nokcxu{gap:var(--space-2);display:flex}.panel-body.svelte-nokcxu{gap:var(--space-6);flex-direction:column;display:flex}.section-desc.svelte-nokcxu{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.error-banner.svelte-nokcxu{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-error-bg,#dc262614);border:1px solid var(--color-error-border,#dc262640);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-error,#dc2626);margin-bottom:var(--space-4);display:flex}main.svelte-1jef3w8{padding:var(--space-6) var(--space-6) var(--space-12)}@media (width<=768px){main.svelte-1jef3w8{padding:var(--space-4) var(--space-4) var(--space-8)}}
@@ -0,0 +1 @@
1
+ .advanced-layout.svelte-1z0msvj{height:calc(100dvh - var(--nav-height));background:var(--color-bg);flex-direction:column;width:100%;display:flex}.advanced-toolbar.svelte-1z0msvj{align-items:center;gap:var(--space-2);min-height:var(--chat-toolbar-height);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0;display:flex}.opencode-frame.svelte-1z0msvj{border:none;flex:1;width:100%;display:block}
@@ -1 +1 @@
1
- .thread-divider.svelte-h4cdis{align-items:center;gap:var(--space-3);padding:var(--space-4) 0;color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.06em;display:flex}.divider-line.svelte-h4cdis{background:var(--color-border);flex:1;height:1px}.divider-label.svelte-h4cdis{padding:0 var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);flex-shrink:0}.message.svelte-h4cdis{gap:var(--space-1);flex-direction:column;width:100%;max-width:100%;display:flex}.message-user.svelte-h4cdis{align-items:flex-end}.message-assistant.svelte-h4cdis{align-items:flex-start}.message-bubble.svelte-h4cdis{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);line-height:var(--leading-normal)}.message-user.svelte-h4cdis .message-bubble:where(.svelte-h4cdis){color:#f3f4f6;border-bottom-right-radius:var(--radius-sm);background:#2c3748}[data-theme=dark] .message-user.svelte-h4cdis .message-bubble:where(.svelte-h4cdis){color:#f3f4f6;background:#3d4f66}.message-assistant.svelte-h4cdis .message-bubble:where(.svelte-h4cdis){background:var(--color-bg-tertiary);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-sm)}.message-text.svelte-h4cdis{font-size:var(--text-base);word-break:break-word}.message-user.svelte-h4cdis .message-text:where(.svelte-h4cdis):not(.markdown-body){white-space:pre-wrap}.markdown-body.svelte-h4cdis p{margin:0 0 var(--space-2) 0}.markdown-body.svelte-h4cdis p:last-child{margin-bottom:0}.markdown-body.svelte-h4cdis ul,.markdown-body.svelte-h4cdis ol{margin:0 0 var(--space-2) 0;padding-left:var(--space-5)}.markdown-body.svelte-h4cdis li{margin:var(--space-1) 0}.markdown-body.svelte-h4cdis li>p{margin:0}.markdown-body.svelte-h4cdis code{font-family:var(--font-mono);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:1px 6px;font-size:.9em}.markdown-body.svelte-h4cdis pre{margin:var(--space-2) 0;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9em;overflow-x:auto}.markdown-body.svelte-h4cdis pre code{background:0 0;border:0;padding:0}.markdown-body.svelte-h4cdis a{color:var(--color-primary);text-decoration:underline}.markdown-body.svelte-h4cdis a:hover{text-decoration:none}.markdown-body.svelte-h4cdis blockquote{margin:var(--space-2) 0;padding-left:var(--space-3);border-left:3px solid var(--color-border);color:var(--color-text-secondary)}.markdown-body.svelte-h4cdis h1,.markdown-body.svelte-h4cdis h2,.markdown-body.svelte-h4cdis h3,.markdown-body.svelte-h4cdis h4{margin:var(--space-3) 0 var(--space-2);font-weight:var(--font-bold);line-height:var(--leading-tight,1.25)}.markdown-body.svelte-h4cdis h1{font-size:1.4em}.markdown-body.svelte-h4cdis h2{font-size:1.25em}.markdown-body.svelte-h4cdis h3{font-size:1.1em}.markdown-body.svelte-h4cdis h4{font-size:1em}.markdown-body.svelte-h4cdis hr{margin:var(--space-3) 0;border:0;border-top:1px solid var(--color-border)}.markdown-body.svelte-h4cdis table{border-collapse:collapse;margin:var(--space-2) 0;font-size:.9em}.markdown-body.svelte-h4cdis th,.markdown-body.svelte-h4cdis td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);text-align:left}.message-meta.svelte-h4cdis{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.chat-input-row.svelte-j7h4bp{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg);justify-items:center;width:-webkit-fill-available;width:-moz-available;width:stretch}.input-area.svelte-j7h4bp{align-items:flex-end;gap:var(--space-2);width:-webkit-fill-available;width:-moz-available;width:stretch;max-width:var(--max-width);display:flex}textarea.svelte-j7h4bp{min-height:40px;max-height:160px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);resize:none;transition:border-color var(--transition-fast);flex:1;overflow-y:auto}textarea.svelte-j7h4bp:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}textarea.svelte-j7h4bp:disabled{opacity:.65;cursor:not-allowed}.send-btn.svelte-j7h4bp{background:var(--color-primary);border-radius:var(--radius-md);color:#000;cursor:pointer;width:44px;height:44px;transition:background var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.send-btn.svelte-j7h4bp:hover:not(:disabled){background:var(--color-primary-hover)}.send-btn.svelte-j7h4bp:disabled{opacity:.45;cursor:not-allowed}.chat-toolbar.svelte-74fli4{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.new-chat.svelte-74fli4{align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;display:inline-flex}.new-chat.svelte-74fli4:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.new-chat.svelte-74fli4:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.new-chat.svelte-74fli4:disabled{opacity:.6;cursor:default}.new-chat.svelte-74fli4 svg:where(.svelte-74fli4){flex-shrink:0}@media (width<=480px){.chat-toolbar.svelte-74fli4{padding:var(--space-2) var(--space-3)}}.chat-layout.svelte-23dtxz{height:calc(100dvh - var(--nav-height));flex-direction:column;margin:0;display:flex}.messages-area.svelte-23dtxz{gap:var(--space-4);padding:var(--space-5) var(--space-4);scroll-behavior:smooth;flex-direction:column;flex:1;align-items:center;display:flex;overflow-y:auto}.messages-area.svelte-23dtxz>*{width:100%;max-width:48rem}.empty-state.svelte-23dtxz{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-8);margin:auto}.session-loading.svelte-23dtxz{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-4);margin:auto;display:flex}.chat-error-banner.svelte-23dtxz{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-danger-bg);font-size:var(--text-sm);color:var(--color-danger);border-top:1px solid #fa525240;display:flex}.chat-error-banner.svelte-23dtxz span:where(.svelte-23dtxz):first-child{flex:1}.reconnect-btn.svelte-23dtxz{font-size:var(--text-xs);font-weight:var(--font-semibold);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);background:0 0;padding:3px 10px}.reconnect-btn.svelte-23dtxz:hover{background:var(--color-danger);color:#fff}.dismiss-btn.svelte-23dtxz{width:24px;height:24px;color:var(--color-danger);cursor:pointer;font-size:var(--text-lg);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.dismiss-btn.svelte-23dtxz:hover{background:#fa525226}@media (width<=768px){.messages-area.svelte-23dtxz{padding:var(--space-3) var(--space-4)}}
1
+ .thread-divider.svelte-h4cdis{align-items:center;gap:var(--space-3);padding:var(--space-4) 0;color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.06em;display:flex}.divider-line.svelte-h4cdis{background:var(--color-border);flex:1;height:1px}.divider-label.svelte-h4cdis{padding:0 var(--space-2);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);flex-shrink:0}.message.svelte-h4cdis{gap:var(--space-1);flex-direction:column;width:100%;max-width:100%;display:flex}.message-user.svelte-h4cdis{align-items:flex-end}.message-assistant.svelte-h4cdis{align-items:flex-start}.message-bubble.svelte-h4cdis{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);line-height:var(--leading-normal)}.message-user.svelte-h4cdis .message-bubble:where(.svelte-h4cdis){color:#f3f4f6;border-bottom-right-radius:var(--radius-sm);background:#2c3748}[data-theme=dark] .message-user.svelte-h4cdis .message-bubble:where(.svelte-h4cdis){color:#f3f4f6;background:#3d4f66}.message-assistant.svelte-h4cdis .message-bubble:where(.svelte-h4cdis){background:var(--color-bg-tertiary);color:var(--color-text);border:1px solid var(--color-border);border-bottom-left-radius:var(--radius-sm)}.message-text.svelte-h4cdis{font-size:var(--text-base);word-break:break-word}.message-user.svelte-h4cdis .message-text:where(.svelte-h4cdis):not(.markdown-body){white-space:pre-wrap}.markdown-body.svelte-h4cdis p{margin:0 0 var(--space-2) 0}.markdown-body.svelte-h4cdis p:last-child{margin-bottom:0}.markdown-body.svelte-h4cdis ul,.markdown-body.svelte-h4cdis ol{margin:0 0 var(--space-2) 0;padding-left:var(--space-5)}.markdown-body.svelte-h4cdis li{margin:var(--space-1) 0}.markdown-body.svelte-h4cdis li>p{margin:0}.markdown-body.svelte-h4cdis code{font-family:var(--font-mono);background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:1px 6px;font-size:.9em}.markdown-body.svelte-h4cdis pre{margin:var(--space-2) 0;padding:var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9em;overflow-x:auto}.markdown-body.svelte-h4cdis pre code{background:0 0;border:0;padding:0}.markdown-body.svelte-h4cdis a{color:var(--color-primary);text-decoration:underline}.markdown-body.svelte-h4cdis a:hover{text-decoration:none}.markdown-body.svelte-h4cdis blockquote{margin:var(--space-2) 0;padding-left:var(--space-3);border-left:3px solid var(--color-border);color:var(--color-text-secondary)}.markdown-body.svelte-h4cdis h1,.markdown-body.svelte-h4cdis h2,.markdown-body.svelte-h4cdis h3,.markdown-body.svelte-h4cdis h4{margin:var(--space-3) 0 var(--space-2);font-weight:var(--font-bold);line-height:var(--leading-tight,1.25)}.markdown-body.svelte-h4cdis h1{font-size:1.4em}.markdown-body.svelte-h4cdis h2{font-size:1.25em}.markdown-body.svelte-h4cdis h3{font-size:1.1em}.markdown-body.svelte-h4cdis h4{font-size:1em}.markdown-body.svelte-h4cdis hr{margin:var(--space-3) 0;border:0;border-top:1px solid var(--color-border)}.markdown-body.svelte-h4cdis table{border-collapse:collapse;margin:var(--space-2) 0;font-size:.9em}.markdown-body.svelte-h4cdis th,.markdown-body.svelte-h4cdis td{border:1px solid var(--color-border);padding:var(--space-1) var(--space-2);text-align:left}.message-meta.svelte-h4cdis{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.chat-input-row.svelte-j7h4bp{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg);justify-items:center;width:-webkit-fill-available;width:-moz-available;width:stretch}.input-area.svelte-j7h4bp{align-items:flex-end;gap:var(--space-2);width:-webkit-fill-available;width:-moz-available;width:stretch;max-width:var(--max-width);display:flex}textarea.svelte-j7h4bp{min-height:40px;max-height:160px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);resize:none;transition:border-color var(--transition-fast);flex:1;overflow-y:auto}textarea.svelte-j7h4bp:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}textarea.svelte-j7h4bp:disabled{opacity:.65;cursor:not-allowed}.send-btn.svelte-j7h4bp{background:var(--color-primary);border-radius:var(--radius-md);color:#000;cursor:pointer;width:44px;height:44px;transition:background var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.send-btn.svelte-j7h4bp:hover:not(:disabled){background:var(--color-primary-hover)}.send-btn.svelte-j7h4bp:disabled{opacity:.45;cursor:not-allowed}.chat-toolbar.svelte-74fli4{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--chat-toolbar-height);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-wrap:wrap;display:flex}.new-chat.svelte-74fli4{align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast);flex-shrink:0;display:inline-flex}.new-chat.svelte-74fli4:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover)}.new-chat.svelte-74fli4:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.new-chat.svelte-74fli4:disabled{opacity:.6;cursor:default}.new-chat.svelte-74fli4 svg:where(.svelte-74fli4){flex-shrink:0}@media (width<=480px){.chat-toolbar.svelte-74fli4{padding:var(--space-2) var(--space-3)}}.chat-layout.svelte-23dtxz{height:calc(100dvh - var(--nav-height));flex-direction:column;margin:0;display:flex}.messages-area.svelte-23dtxz{gap:var(--space-4);padding:var(--space-5) var(--space-4);scroll-behavior:smooth;flex-direction:column;flex:1;align-items:center;display:flex;overflow-y:auto}.messages-area.svelte-23dtxz>*{width:100%;max-width:48rem}.empty-state.svelte-23dtxz{text-align:center;color:var(--color-text-secondary);font-size:var(--text-base);padding:var(--space-8);margin:auto}.session-loading.svelte-23dtxz{align-items:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);padding:var(--space-4);margin:auto;display:flex}.chat-error-banner.svelte-23dtxz{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-danger-bg);font-size:var(--text-sm);color:var(--color-danger);border-top:1px solid #fa525240;display:flex}.chat-error-banner.svelte-23dtxz span:where(.svelte-23dtxz):first-child{flex:1}.reconnect-btn.svelte-23dtxz{font-size:var(--text-xs);font-weight:var(--font-semibold);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);background:0 0;padding:3px 10px}.reconnect-btn.svelte-23dtxz:hover{background:var(--color-danger);color:#fff}.dismiss-btn.svelte-23dtxz{width:24px;height:24px;color:var(--color-danger);cursor:pointer;font-size:var(--text-lg);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.dismiss-btn.svelte-23dtxz:hover{background:#fa525226}@media (width<=768px){.messages-area.svelte-23dtxz{padding:var(--space-3) var(--space-4)}}
@@ -1 +1 @@
1
- .theme-toggle.svelte-1y2534t{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle.svelte-1y2534t:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.theme-toggle.svelte-1y2534t:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.theme-toggle[aria-pressed=true].svelte-1y2534t{color:var(--color-primary);background:var(--color-bg-tertiary);border-color:var(--color-border)}.switcher.svelte-48xr05{position:relative}.trigger.svelte-48xr05{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:40px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--endpoint-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-48xr05:hover:not(:disabled){background:var(--color-surface-hover)}.trigger.svelte-48xr05:disabled{opacity:.6;cursor:progress}.trigger-icon.svelte-48xr05{color:var(--color-text-secondary);flex-shrink:0;display:none}.dot.svelte-48xr05{background:var(--color-success,#16a34a);border-radius:50%;flex-shrink:0;width:8px;height:8px}.label.svelte-48xr05{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-48xr05{opacity:.6;font-size:10px}.menu.svelte-48xr05{padding:var(--space-2);position-anchor:--endpoint-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:280px;max-width:min(360px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-48xr05{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.menu-item.svelte-48xr05{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-48xr05:hover:not(:disabled),.menu-item.svelte-48xr05:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-48xr05:disabled{opacity:.6;cursor:progress}.menu-item.active.svelte-48xr05{background:var(--color-bg-tertiary)}.check.svelte-48xr05{width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-48xr05{flex-direction:column;display:flex;overflow:hidden}.menu-item-label.svelte-48xr05{font-weight:500;font-size:var(--text-sm)}.menu-item-url.svelte-48xr05{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-divider.svelte-48xr05{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.menu-item.link.svelte-48xr05{color:var(--color-primary);text-decoration:none}.picker.svelte-cihcnl{position:relative}.trigger.svelte-cihcnl{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:40px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--session-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-cihcnl:hover{background:var(--color-surface-hover)}.trigger-icon.svelte-cihcnl{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-cihcnl{background:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .12s}.dot.connected.svelte-cihcnl{background:var(--color-success,#16a34a)}.label.svelte-cihcnl{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-cihcnl{opacity:.6;font-size:10px}.menu.svelte-cihcnl{padding:var(--space-2);position-anchor:--session-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:300px;max-width:min(380px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-cihcnl{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.menu-item.svelte-cihcnl{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-cihcnl:hover:not(:disabled),.menu-item.svelte-cihcnl:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-cihcnl:disabled{opacity:.6;cursor:not-allowed}.menu-item.active.svelte-cihcnl{background:var(--color-bg-tertiary)}.new-btn.svelte-cihcnl{color:var(--color-primary);font-weight:500}.check.svelte-cihcnl{text-align:center;width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-cihcnl{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.menu-item-label.svelte-cihcnl{font-weight:500;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-item-meta.svelte-cihcnl{font-size:var(--text-xs);color:var(--color-text-secondary)}.menu-divider.svelte-cihcnl{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.session-list.svelte-cihcnl{max-height:60vh;overflow-y:auto}.empty.svelte-cihcnl,.error.svelte-cihcnl{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.error.svelte-cihcnl{color:var(--color-danger)}.error.svelte-cihcnl span:where(.svelte-cihcnl):first-child{flex:1}.retry-btn.svelte-cihcnl{font-size:var(--text-xs);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;background:0 0;padding:2px 8px}.retry-btn.svelte-cihcnl:hover{background:var(--color-danger);color:var(--color-text-inverse)}.notice.svelte-cihcnl{margin:0 var(--space-2) var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm,6px)}.show-all.svelte-cihcnl{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-primary);font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:0}.show-all.svelte-cihcnl:hover{background:var(--color-bg-tertiary)}.voice-control.svelte-7elv0w{align-items:center;gap:var(--space-2);display:flex}.voice-interim.svelte-7elv0w{max-width:200px;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:2px var(--space-2);background:var(--color-surface-hover);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:1;min-width:0;overflow:hidden}.voice-autoplay-banner.svelte-7elv0w{align-items:center;gap:var(--space-2);padding:4px var(--space-3);background:var(--color-primary-subtle);border:1px solid var(--color-primary);border-radius:var(--radius-md);height:32px;color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:filter var(--transition-fast);display:inline-flex}.voice-autoplay-banner.svelte-7elv0w:hover{filter:brightness(1.05)}.voice-autoplay-banner.svelte-7elv0w:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.voice-btn.svelte-7elv0w{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.voice-btn.svelte-7elv0w:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.voice-btn.svelte-7elv0w:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.voice-btn-active.svelte-7elv0w{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.voice-btn-active.svelte-7elv0w:hover{color:var(--color-danger);border-color:var(--color-danger)}.voice-btn-on.svelte-7elv0w{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.voice-btn-on.svelte-7elv0w:hover{color:var(--color-primary);border-color:var(--color-primary)}.voice-btn-speaking.svelte-7elv0w{background:var(--color-primary-subtle);box-shadow:0 0 0 2px var(--color-primary-subtle)}.voice-btn-processing.svelte-7elv0w{color:var(--color-text-tertiary);cursor:not-allowed}.voice-btn-disabled.svelte-7elv0w,.voice-btn.svelte-7elv0w:disabled{color:var(--color-text-tertiary);background:var(--color-bg);cursor:not-allowed;opacity:.7}.voice-btn-disabled.svelte-7elv0w:hover{color:var(--color-text-tertiary);border-color:var(--color-border);background:var(--color-bg)}.voice-pulse.svelte-7elv0w{border:2px solid var(--color-danger);border-radius:var(--radius-md);opacity:0;pointer-events:none;animation:1.5s ease-out infinite svelte-7elv0w-voice-pulse-anim;position:absolute;inset:-3px}.voice-spinner.svelte-7elv0w{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite svelte-7elv0w-voice-spinner-anim;display:inline-block}@keyframes svelte-7elv0w-voice-spinner-anim{to{transform:rotate(360deg)}}.wave-anim.svelte-7elv0w{transform-origin:11px 12px;animation:1.2s ease-in-out infinite svelte-7elv0w-wave-pulse-anim}.wave-anim-2.svelte-7elv0w{transform-origin:11px 12px;animation:1.2s ease-in-out .3s infinite svelte-7elv0w-wave-pulse-anim}@keyframes svelte-7elv0w-wave-pulse-anim{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-7elv0w-voice-pulse-anim{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.voice-pulse.svelte-7elv0w,.voice-spinner.svelte-7elv0w,.wave-anim.svelte-7elv0w,.wave-anim-2.svelte-7elv0w{animation:none}.voice-pulse.svelte-7elv0w{opacity:.4}}.sr-only.svelte-7elv0w{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.navbar.svelte-66bgq1{z-index:50;background:var(--color-navbar-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar.svelte-66bgq1:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}.navbar-inner.svelte-66bgq1{width:100%;padding:0 var(--space-4);height:var(--nav-height);align-items:center;gap:var(--space-3);display:flex}.navbar-brand.svelte-66bgq1{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);flex-shrink:0;text-decoration:none;display:flex}.navbar-brand.svelte-66bgq1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.brand-icon.svelte-66bgq1{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-66bgq1 img:where(.svelte-66bgq1){max-width:34px;display:block}.brand-text.svelte-66bgq1{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);letter-spacing:-.01em;white-space:nowrap}.navbar-actions.svelte-66bgq1{align-items:center;gap:var(--space-2);min-width:0;margin-left:auto;display:flex}.navbar-actions.svelte-66bgq1 .switcher,.navbar-actions.svelte-66bgq1 .trigger{min-width:0}.gear-btn.svelte-66bgq1{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.gear-btn.svelte-66bgq1:hover{color:var(--color-text);background:var(--color-surface-hover)}.gear-btn.svelte-66bgq1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.gear-btn.active.svelte-66bgq1{color:var(--color-text);background:var(--color-surface);border-color:var(--color-border);font-weight:var(--font-semibold)}.gear-btn.svelte-66bgq1 svg:where(.svelte-66bgq1){flex-shrink:0}@media (width<=900px){.navbar-actions.svelte-66bgq1 .trigger .label{display:none}}@media (width<=480px){.brand-text.svelte-66bgq1{display:none}.navbar-inner.svelte-66bgq1{padding:0 var(--space-3);gap:var(--space-2)}}@media (width<=400px){.navbar-inner.svelte-66bgq1{padding:0 var(--space-2);gap:var(--space-1)}.navbar-actions.svelte-66bgq1{gap:var(--space-1)}.navbar-actions.svelte-66bgq1 .trigger{padding-left:var(--space-2);padding-right:var(--space-2)}.gear-btn.svelte-66bgq1{width:36px}}.auth-gate.svelte-zhbyfn{max-width:none;height:100dvh;padding:var(--space-6);box-sizing:border-box;background-color:var(--color-bg-secondary);background-image:url(../../../fu.png);background-position:left -2% bottom -2%;background-repeat:no-repeat;background-size:35%;justify-content:center;align-items:center;margin:0;display:flex;overflow:hidden}.auth-card.svelte-zhbyfn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:var(--space-6);box-sizing:border-box;margin-bottom:10vh}.auth-brand.svelte-zhbyfn{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.auth-brand.svelte-zhbyfn h1:where(.svelte-zhbyfn){font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text)}.auth-brand.svelte-zhbyfn p:where(.svelte-zhbyfn){font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:4px}.brand-icon.svelte-zhbyfn{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-zhbyfn img:where(.svelte-zhbyfn){max-width:34px}.auth-form.svelte-zhbyfn{gap:var(--space-3);display:grid}.auth-form.svelte-zhbyfn label:where(.svelte-zhbyfn){font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.auth-form.svelte-zhbyfn input:where(.svelte-zhbyfn):not(.sr-only){border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;height:40px;color:var(--color-text);font-size:var(--text-sm);padding:0 12px}.auth-form.svelte-zhbyfn input:where(.svelte-zhbyfn):not(.sr-only):focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.auth-error.svelte-zhbyfn{color:var(--color-danger);font-size:var(--text-sm);margin:0}.sr-only.svelte-zhbyfn{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.token-input-wrapper.svelte-zhbyfn{align-items:center;gap:var(--space-2);display:flex}.token-input-wrapper.svelte-zhbyfn input:where(.svelte-zhbyfn){flex:1}.btn-toggle.svelte-zhbyfn{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-toggle.svelte-zhbyfn:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.btn-toggle.svelte-zhbyfn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=480px){.auth-gate.svelte-zhbyfn{padding:var(--space-3);background-size:45%}.auth-card.svelte-zhbyfn{padding:var(--space-4);margin-bottom:5vh}.auth-brand.svelte-zhbyfn h1:where(.svelte-zhbyfn){font-size:var(--text-lg)}}
1
+ .theme-toggle.svelte-1y2534t{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle.svelte-1y2534t:hover{color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-border-hover)}.theme-toggle.svelte-1y2534t:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.theme-toggle[aria-pressed=true].svelte-1y2534t{color:var(--color-primary);background:var(--color-bg-tertiary);border-color:var(--color-border)}.switcher.svelte-48xr05{position:relative}.trigger.svelte-48xr05{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:40px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--endpoint-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-48xr05:hover:not(:disabled){background:var(--color-surface-hover)}.trigger.svelte-48xr05:disabled{opacity:.6;cursor:progress}.trigger-icon.svelte-48xr05{color:var(--color-text-secondary);flex-shrink:0;display:none}.dot.svelte-48xr05{background:var(--color-success,#16a34a);border-radius:50%;flex-shrink:0;width:8px;height:8px}.label.svelte-48xr05{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-48xr05{opacity:.6;font-size:10px}.menu.svelte-48xr05{padding:var(--space-2);position-anchor:--endpoint-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:280px;max-width:min(360px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-48xr05{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.menu-item.svelte-48xr05{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-48xr05:hover:not(:disabled),.menu-item.svelte-48xr05:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-48xr05:disabled{opacity:.6;cursor:progress}.menu-item.active.svelte-48xr05{background:var(--color-bg-tertiary)}.check.svelte-48xr05{width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-48xr05{flex-direction:column;display:flex;overflow:hidden}.menu-item-label.svelte-48xr05{font-weight:500;font-size:var(--text-sm)}.menu-item-url.svelte-48xr05{font-size:var(--text-xs);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-divider.svelte-48xr05{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.menu-item.link.svelte-48xr05{color:var(--color-primary);text-decoration:none}.picker.svelte-cihcnl{position:relative}.trigger.svelte-cihcnl{align-items:center;gap:var(--space-2);padding:0 var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);height:40px;font-size:var(--text-sm);color:var(--color-text);cursor:pointer;anchor-name:--session-anchor;max-width:240px;display:inline-flex;overflow:hidden}.trigger.svelte-cihcnl:hover{background:var(--color-surface-hover)}.trigger-icon.svelte-cihcnl{color:var(--color-text-secondary);flex-shrink:0}.dot.svelte-cihcnl{background:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .12s}.dot.connected.svelte-cihcnl{background:var(--color-success,#16a34a)}.label.svelte-cihcnl{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.caret.svelte-cihcnl{opacity:.6;font-size:10px}.menu.svelte-cihcnl{padding:var(--space-2);position-anchor:--session-anchor;position-area:block-end span-inline-start;position-try-fallbacks:flip-block;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md,8px);min-width:300px;max-width:min(380px,100vw - 24px);box-shadow:var(--shadow-lg);z-index:400;margin:6px 0 0;position:fixed}.menu-header.svelte-cihcnl{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--color-text-secondary)}.menu-item.svelte-cihcnl{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm,6px);cursor:pointer;text-align:left;font:inherit;color:var(--color-text);background:0 0;border:0;display:flex}.menu-item.svelte-cihcnl:hover:not(:disabled),.menu-item.svelte-cihcnl:focus-visible{background:var(--color-bg-tertiary)}.menu-item.svelte-cihcnl:disabled{opacity:.6;cursor:not-allowed}.menu-item.active.svelte-cihcnl{background:var(--color-bg-tertiary)}.new-btn.svelte-cihcnl{color:var(--color-primary);font-weight:500}.check.svelte-cihcnl{text-align:center;width:14px;color:var(--color-primary);flex-shrink:0}.menu-item-text.svelte-cihcnl{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.menu-item-label.svelte-cihcnl{font-weight:500;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-item-meta.svelte-cihcnl{font-size:var(--text-xs);color:var(--color-text-secondary)}.menu-divider.svelte-cihcnl{height:1px;margin:var(--space-2) 0;background:var(--color-border)}.session-list.svelte-cihcnl{max-height:60vh;overflow-y:auto}.empty.svelte-cihcnl,.error.svelte-cihcnl{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);display:flex}.error.svelte-cihcnl{color:var(--color-danger)}.error.svelte-cihcnl span:where(.svelte-cihcnl):first-child{flex:1}.retry-btn.svelte-cihcnl{font-size:var(--text-xs);border:1px solid var(--color-danger);border-radius:var(--radius-full);color:var(--color-danger);cursor:pointer;background:0 0;padding:2px 8px}.retry-btn.svelte-cihcnl:hover{background:var(--color-danger);color:var(--color-text-inverse)}.notice.svelte-cihcnl{margin:0 var(--space-2) var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm,6px)}.show-all.svelte-cihcnl{width:100%;padding:var(--space-2) var(--space-3);color:var(--color-primary);font:inherit;font-size:var(--text-xs);text-align:left;cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:0}.show-all.svelte-cihcnl:hover{background:var(--color-bg-tertiary)}.voice-control.svelte-7elv0w{align-items:center;gap:var(--space-2);display:flex}.voice-interim.svelte-7elv0w{max-width:200px;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:2px var(--space-2);background:var(--color-surface-hover);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:1;min-width:0;overflow:hidden}.voice-autoplay-banner.svelte-7elv0w{align-items:center;gap:var(--space-2);padding:4px var(--space-3);background:var(--color-primary-subtle);border:1px solid var(--color-primary);border-radius:var(--radius-md);height:32px;color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;white-space:nowrap;transition:filter var(--transition-fast);display:inline-flex}.voice-autoplay-banner.svelte-7elv0w:hover{filter:brightness(1.05)}.voice-autoplay-banner.svelte-7elv0w:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.voice-btn.svelte-7elv0w{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.voice-btn.svelte-7elv0w:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.voice-btn.svelte-7elv0w:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.voice-btn-active.svelte-7elv0w{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-danger-bg)}.voice-btn-active.svelte-7elv0w:hover{color:var(--color-danger);border-color:var(--color-danger)}.voice-btn-on.svelte-7elv0w{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-primary-subtle)}.voice-btn-on.svelte-7elv0w:hover{color:var(--color-primary);border-color:var(--color-primary)}.voice-btn-speaking.svelte-7elv0w{background:var(--color-primary-subtle);box-shadow:0 0 0 2px var(--color-primary-subtle)}.voice-btn-processing.svelte-7elv0w{color:var(--color-text-tertiary);cursor:not-allowed}.voice-btn-disabled.svelte-7elv0w,.voice-btn.svelte-7elv0w:disabled{color:var(--color-text-tertiary);background:var(--color-bg);cursor:not-allowed;opacity:.7}.voice-btn-disabled.svelte-7elv0w:hover{color:var(--color-text-tertiary);border-color:var(--color-border);background:var(--color-bg)}.voice-pulse.svelte-7elv0w{border:2px solid var(--color-danger);border-radius:var(--radius-md);opacity:0;pointer-events:none;animation:1.5s ease-out infinite svelte-7elv0w-voice-pulse-anim;position:absolute;inset:-3px}.voice-spinner.svelte-7elv0w{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite svelte-7elv0w-voice-spinner-anim;display:inline-block}@keyframes svelte-7elv0w-voice-spinner-anim{to{transform:rotate(360deg)}}.wave-anim.svelte-7elv0w{transform-origin:11px 12px;animation:1.2s ease-in-out infinite svelte-7elv0w-wave-pulse-anim}.wave-anim-2.svelte-7elv0w{transform-origin:11px 12px;animation:1.2s ease-in-out .3s infinite svelte-7elv0w-wave-pulse-anim}@keyframes svelte-7elv0w-wave-pulse-anim{0%,to{opacity:.4}50%{opacity:1}}@keyframes svelte-7elv0w-voice-pulse-anim{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.voice-pulse.svelte-7elv0w,.voice-spinner.svelte-7elv0w,.wave-anim.svelte-7elv0w,.wave-anim-2.svelte-7elv0w{animation:none}.voice-pulse.svelte-7elv0w{opacity:.4}}.sr-only.svelte-7elv0w{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.navbar.svelte-66bgq1{z-index:50;background:var(--color-navbar-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.navbar.svelte-66bgq1:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;position:absolute;inset:0}.navbar-inner.svelte-66bgq1{width:100%;padding:0 var(--space-4);height:var(--nav-height);align-items:center;gap:var(--space-3);display:flex}.navbar-brand.svelte-66bgq1{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);flex-shrink:0;text-decoration:none;display:flex}.navbar-brand.svelte-66bgq1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.brand-icon.svelte-66bgq1{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-66bgq1 img:where(.svelte-66bgq1){max-width:34px;display:block}.brand-text.svelte-66bgq1{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-text);letter-spacing:-.01em;white-space:nowrap}.navbar-actions.svelte-66bgq1{align-items:center;gap:var(--space-2);min-width:0;margin-left:auto;display:flex}.navbar-actions.svelte-66bgq1 .switcher,.navbar-actions.svelte-66bgq1 .trigger{min-width:0}.gear-btn.svelte-66bgq1{border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.gear-btn.svelte-66bgq1:hover{color:var(--color-text);background:var(--color-surface-hover)}.gear-btn.svelte-66bgq1:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.gear-btn.svelte-66bgq1 svg:where(.svelte-66bgq1){flex-shrink:0}@media (width<=900px){.navbar-actions.svelte-66bgq1 .trigger .label{display:none}}@media (width<=480px){.brand-text.svelte-66bgq1{display:none}.navbar-inner.svelte-66bgq1{padding:0 var(--space-3);gap:var(--space-2)}}@media (width<=400px){.navbar-inner.svelte-66bgq1{padding:0 var(--space-2);gap:var(--space-1)}.navbar-actions.svelte-66bgq1{gap:var(--space-1)}.navbar-actions.svelte-66bgq1 .trigger{padding-left:var(--space-2);padding-right:var(--space-2)}.gear-btn.svelte-66bgq1{width:36px}}.auth-gate.svelte-zhbyfn{max-width:none;height:100dvh;padding:var(--space-6);box-sizing:border-box;background-color:var(--color-bg-secondary);background-image:url(../../../fu.png);background-position:left -2% bottom -2%;background-repeat:no-repeat;background-size:35%;justify-content:center;align-items:center;margin:0;display:flex;overflow:hidden}.auth-card.svelte-zhbyfn{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:460px;box-shadow:var(--shadow-lg);padding:var(--space-6);box-sizing:border-box;margin-bottom:10vh}.auth-brand.svelte-zhbyfn{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.auth-brand.svelte-zhbyfn h1:where(.svelte-zhbyfn){font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text)}.auth-brand.svelte-zhbyfn p:where(.svelte-zhbyfn){font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:4px}.brand-icon.svelte-zhbyfn{flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-icon.svelte-zhbyfn img:where(.svelte-zhbyfn){max-width:34px}.auth-form.svelte-zhbyfn{gap:var(--space-3);display:grid}.auth-form.svelte-zhbyfn label:where(.svelte-zhbyfn){font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-secondary)}.auth-form.svelte-zhbyfn input:where(.svelte-zhbyfn):not(.sr-only){border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);width:100%;height:40px;color:var(--color-text);font-size:var(--text-sm);padding:0 12px}.auth-form.svelte-zhbyfn input:where(.svelte-zhbyfn):not(.sr-only):focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-subtle);outline:none}.auth-error.svelte-zhbyfn{color:var(--color-danger);font-size:var(--text-sm);margin:0}.sr-only.svelte-zhbyfn{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.token-input-wrapper.svelte-zhbyfn{align-items:center;gap:var(--space-2);display:flex}.token-input-wrapper.svelte-zhbyfn input:where(.svelte-zhbyfn){flex:1}.btn-toggle.svelte-zhbyfn{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-toggle.svelte-zhbyfn:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-hover)}.btn-toggle.svelte-zhbyfn:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}@media (width<=480px){.auth-gate.svelte-zhbyfn{padding:var(--space-3);background-size:45%}.auth-card.svelte-zhbyfn{padding:var(--space-4);margin-bottom:5vh}.auth-brand.svelte-zhbyfn h1:where(.svelte-zhbyfn){font-size:var(--text-lg)}}
@@ -1,5 +1,5 @@
1
- import{$ as e,D as t,F as n,H as r,I as i,J as a,L as o,M as s,O as c,P as l,Q as u,T as d,X as f,Y as p,Z as m,at as h,ct as g,d as _,it as v,j as y,k as b,l as x,lt as S,n as C,r as w,s as T,tt as E,u as D,v as O}from"./0swOyi-5.js";import"./xihTtKlq.js";import{B as k,V as A,X as j,Y as M,a as N,c as P,g as F,i as I,k as L,l as R,n as ee,o as te,r as ne,s as z,t as B,u as V}from"./BBdT9Cjm.js";import{t as H}from"./BPh8tqAg.js";import{t as U}from"./BQ0vnNWj.js";var W=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`),re=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`),G=y(`<button type="button" class="theme-toggle svelte-1y2534t"><!></button>`);function K(e,i){h(i,!0);let s=E(()=>B.resolved===`dark`),c=E(()=>o(s)?`Switch to light mode`:`Switch to dark mode`);function l(){B.toggle()}var u=G(),d=a(u),f=e=>{b(e,W())},p=e=>{b(e,re())};t(d,e=>{o(s)?e(f):e(p,-1)}),S(u),r(()=>{_(u,`aria-label`,o(c)),_(u,`aria-pressed`,o(s)),_(u,`title`,o(c))}),n(`click`,u,l),b(e,u),v()}l([`click`]);var q=1e3,J=3e4,Y=`/proxy/assistant/event`;function X(e){let t={},n=[];for(let r of e.split(`
1
+ import{$ as e,D as t,F as n,H as r,I as i,J as a,L as o,M as s,O as c,P as l,Q as u,T as d,X as f,Y as p,Z as m,at as h,ct as g,d as _,it as v,j as y,k as b,l as x,lt as S,n as C,r as w,s as T,tt as E,u as D,v as O}from"./0swOyi-5.js";import"./xihTtKlq.js";import{B as k,V as A,X as j,Y as M,a as N,c as P,g as F,i as I,k as L,l as R,n as ee,o as te,r as ne,s as z,t as B,u as V}from"./BBdT9Cjm.js";import{t as H}from"./CHbj1pWz.js";import{t as U}from"./BQ0vnNWj.js";var W=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg>`),re=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9z"></path></svg>`),G=y(`<button type="button" class="theme-toggle svelte-1y2534t"><!></button>`);function K(e,i){h(i,!0);let s=E(()=>B.resolved===`dark`),c=E(()=>o(s)?`Switch to light mode`:`Switch to dark mode`);function l(){B.toggle()}var u=G(),d=a(u),f=e=>{b(e,W())},p=e=>{b(e,re())};t(d,e=>{o(s)?e(f):e(p,-1)}),S(u),r(()=>{_(u,`aria-label`,o(c)),_(u,`aria-pressed`,o(s)),_(u,`title`,o(c))}),n(`click`,u,l),b(e,u),v()}l([`click`]);var q=1e3,J=3e4,Y=`/proxy/assistant/event`;function X(e){let t={},n=[];for(let r of e.split(`
2
2
  `))!r||r.startsWith(`:`)||(r.startsWith(`data:`)?n.push(r.replace(/^data:\s?/,``)):r.startsWith(`event:`)?t.event=r.replace(/^event:\s?/,``):r.startsWith(`id:`)&&(t.id=r.replace(/^id:\s?/,``)));return n.length>0&&(t.data=n.join(`
3
3
  `)),t}function ie(e,t){let n=t.properties?.info,r=n?.id;if(r)switch(t.type){case`session.created`:e.onCreated(r);return;case`session.updated`:e.onUpdated(r,{title:n?.title,updatedAt:n?.time?.updated});return;case`session.deleted`:e.onDeleted(r);return;default:return}}function ae(e){let t=!1,n=new AbortController,r,i=e=>new Promise(t=>{let r=setTimeout(t,e);n.signal.addEventListener(`abort`,()=>{clearTimeout(r),t()},{once:!0})});async function a(){let t={accept:`text/event-stream`};r!==void 0&&(t[`Last-Event-ID`]=r);let i=await fetch(Y,{method:`GET`,headers:t,credentials:`include`,signal:n.signal});if(!i.ok||!i.body)throw Error(`SSE stream failed: ${i.status} ${i.statusText}`);e.onConnect?.();let a=i.body.pipeThrough(new TextDecoderStream).getReader(),o=``;try{for(;;){let{done:t,value:n}=await a.read();if(t)break;o+=n;let i=o.split(`
4
4
 
5
- `);o=i.pop()??``;for(let t of i){if(!t)continue;let n=X(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}ie(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(q*2**Math.max(0,r-1),J)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=e(m(new Map));get byEndpoint(){return o(this.#e)}set byEndpoint(e){u(this.#e,e,!0)}#t=e(`default`);get activeEndpointId(){return o(this.#t)}set activeEndpointId(e){u(this.#t,e,!0)}#n=e(m([]));get entries(){return o(this.#n)}set entries(e){u(this.#n,e,!0)}#r=e(!1);get entriesLoading(){return o(this.#r)}set entriesLoading(e){u(this.#r,e,!0)}#i=e(!1);get sending(){return o(this.#i)}set sending(e){u(this.#i,e,!0)}#a=e(``);get error(){return o(this.#a)}set error(e){u(this.#a,e,!0)}#o=e(!1);get liveConnected(){return o(this.#o)}set liveConnected(e){u(this.#o,e,!0)}_unsubscribeEvents=null;#s=E(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return o(this.#s)}set activeSessionId(e){u(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=ae({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)return;let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await A();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this.entriesLoading=!0,this.error=``;try{let n=await k(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await F(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this.error=``,this.sending=!0;try{let e=(await M(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}V.ttsSupported&&V.ttsAutoEnabled&&e&&te(e)}catch(e){let t=e;t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`}finally{this.sending=!1}}reset(){if(R(),this.entries=[],this.error=``,this.byEndpoint=new Map,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}},$=new class{#e=e(m([]));get endpoints(){return o(this.#e)}set endpoints(e){u(this.#e,e,!0)}#t=e(`default`);get activeId(){return o(this.#t)}set activeId(e){u(this.#t,e,!0)}#n=e(!1);get loading(){return o(this.#n)}set loading(e){u(this.#n,e,!0)}#r=e(!1);get loaded(){return o(this.#r)}set loaded(e){u(this.#r,e,!0)}#i=e(``);get error(){return o(this.#i)}set error(e){u(this.#i,e,!0)}#a=E(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return o(this.#a)}set active(e){u(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await L();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(Q.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await j(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},oe=y(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-48xr05" aria-hidden="true"> </span> <span class="menu-item-text svelte-48xr05"><span class="menu-item-label svelte-48xr05"> </span> <span class="menu-item-url svelte-48xr05"> </span></span></button>`),se=y(`<div class="switcher svelte-48xr05"><button type="button" class="trigger svelte-48xr05" id="endpoint-trigger" aria-haspopup="menu"><svg class="trigger-icon svelte-48xr05" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <div class="menu svelte-48xr05" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-48xr05">Assistant endpoint</div> <!> <div class="menu-divider svelte-48xr05"></div> <a class="menu-item link svelte-48xr05" href="/admin/endpoints" role="menuitem">Manage endpoints…</a></div></div>`);function ce(t,s){h(s,!0);let l=`endpoint-menu`,p=e(!1),m=e(!1),y=E(()=>$.active),x=E(()=>$.endpoints),C=E(()=>o(x).length>1);w(()=>{$.load()});function T(e){o(C)||(e.preventDefault(),window.location.href=`/admin/endpoints`)}async function D(e){if(!o(p)&&e!==o(y)?.id){u(p,!0);try{await $.activate(e)}catch{}finally{u(p,!1)}}}function k(e){u(m,e.newState===`open`)}var A=se(),j=a(A);_(j,`aria-controls`,l);var M=f(a(j),4),N=a(M,!0);S(M),g(2),S(j);var P=f(j,2);_(P,`id`,l),d(f(a(P),2),17,()=>o(x),e=>e.id,(e,t)=>{var i=oe();let s;_(i,`popovertarget`,l);var u=a(i),d=a(u,!0);S(u);var m=f(u,2),h=a(m),g=a(h,!0);S(h);var v=f(h,2),x=a(v,!0);S(v),S(m),S(i),r(()=>{s=O(i,1,`menu-item svelte-48xr05`,null,s,{active:o(t).id===o(y)?.id}),_(i,`aria-checked`,o(t).id===o(y)?.id),i.disabled=o(p),c(d,o(t).id===o(y)?.id?`●`:`○`),c(g,o(t).label),c(x,o(t).url)}),n(`click`,i,()=>D(o(t).id)),b(e,i)}),g(4),S(P),S(A),r(()=>{_(j,`popovertarget`,o(C)?l:void 0),_(j,`aria-expanded`,o(m)),_(j,`aria-label`,o(y)?`Assistant endpoint: ${o(y).label}`:`Assistant endpoints`),_(j,`title`,o(y)?`Connected to: ${o(y).label} (${o(y).url})`:`Assistant endpoints`),j.disabled=o(p)||$.loading,c(N,o(y)?.label??`Endpoint…`)}),n(`click`,j,T),i(`toggle`,P,k),b(t,A),v()}l([`click`]);var le=y(`<div class="notice svelte-cihcnl">Wait for the current reply to finish before switching.</div>`),ue=y(`<div class="empty svelte-cihcnl"><!> <span>Loading sessions…</span></div>`),de=y(`<div class="error svelte-cihcnl"><span class="svelte-cihcnl"> </span> <button type="button" class="retry-btn svelte-cihcnl">Retry</button></div>`),fe=y(`<div class="empty svelte-cihcnl">No sessions yet. Start the first one.</div>`),pe=y(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-cihcnl" aria-hidden="true"> </span> <span class="menu-item-text svelte-cihcnl"><span class="menu-item-label svelte-cihcnl"> </span> <span class="menu-item-meta svelte-cihcnl"> </span></span></button>`),me=y(`<button type="button" class="show-all svelte-cihcnl"> </button>`),he=y(`<div class="session-list svelte-cihcnl" role="none"></div> <!>`,1),ge=y(`<div class="picker svelte-cihcnl"><button type="button" class="trigger svelte-cihcnl" id="session-trigger" aria-haspopup="menu" aria-label="Sessions"><svg class="trigger-icon svelte-cihcnl" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <div class="menu svelte-cihcnl" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-cihcnl"> </div> <!> <button type="button" class="menu-item new-btn svelte-cihcnl" role="menuitem" popovertargetaction="hide"><span class="check svelte-cihcnl" aria-hidden="true">+</span> <span class="menu-item-text svelte-cihcnl"><span class="menu-item-label svelte-cihcnl">New session</span></span></button> <div class="menu-divider svelte-cihcnl"></div> <!></div></div>`);function _e(s,l){h(l,!0);let m=`session-menu`,y=e(!1),x=e(!1),C=E(()=>$.active),w=E(()=>o(C)?Q.byEndpoint.get(o(C).id)??null:null),T=E(()=>o(w)?.sessions??[]),D=E(()=>o(w)?.sessionsLoading??!1),k=E(()=>o(w)?.sessionsError??``),A=E(()=>Q.activeSessionId),j=E(()=>o(T).find(e=>e.id===o(A))??null),M=E(()=>o(j)?o(j).title||`Untitled · ${I(o(j).updatedAt)}`:`New session`),N=E(()=>Q.liveConnected),P=E(()=>o(y)?o(T):o(T).slice(0,50)),F=E(()=>Math.max(0,o(T).length-50));function I(e){if(!e)return``;let t=Math.max(0,(Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i}d ago`;let a=Math.floor(i/7);if(a<5)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}function L(){o(C)&&!o(w)?.sessionsLoaded&&!o(D)&&Q.loadSessions()}async function R(e){Q.sending||await Q.openSession(e)}async function ee(){Q.sending||await Q.startNewSession()}async function te(){await Q.loadSessions()}function ne(e){u(x,e.newState===`open`)}var z=ge(),B=a(z);_(B,`popovertarget`,m),_(B,`aria-controls`,m);var V=f(a(B),2);let H;var W=f(V,2),re=a(W,!0);S(W),g(2),S(B);var G=f(B,2);_(G,`id`,m);var K=a(G),q=a(K);S(K);var J=f(K,2),Y=e=>{b(e,le())};t(J,e=>{Q.sending&&e(Y)});var X=f(J,2);_(X,`popovertarget`,m);var ie=f(X,4),ae=e=>{var t=ue();U(a(t),{size:12}),g(2),S(t),b(e,t)},Z=e=>{var t=de(),i=a(t),s=a(i,!0);S(i);var l=f(i,2);S(t),r(()=>c(s,o(k))),n(`click`,l,te),b(e,t)},oe=e=>{b(e,fe())},se=e=>{var i=he(),s=p(i);d(s,21,()=>o(P),e=>e.id,(e,t)=>{var i=pe();let s;_(i,`popovertarget`,m);var l=a(i),u=a(l,!0);S(l);var d=f(l,2),p=a(d),h=a(p,!0);S(p);var g=f(p,2),v=a(g,!0);S(g),S(d),S(i),r(e=>{s=O(i,1,`menu-item session-item svelte-cihcnl`,null,s,{active:o(t).id===o(A)}),_(i,`aria-checked`,o(t).id===o(A)),i.disabled=Q.sending,c(u,o(t).id===o(A)?`●`:`○`),c(h,o(t).title||`Untitled`),c(v,e)},[()=>I(o(t).updatedAt)]),n(`click`,i,()=>R(o(t).id)),b(e,i)}),S(s);var l=f(s,2),h=e=>{var t=me(),i=a(t);S(t),r(()=>c(i,`Show all (${o(F)??``} more)`)),n(`click`,t,()=>u(y,!0)),b(e,t)};t(l,e=>{!o(y)&&o(F)>0&&e(h)}),b(e,i)};t(ie,e=>{o(D)?e(ae):o(k)?e(Z,1):o(T).length===0?e(oe,2):e(se,-1)}),S(G),S(z),r(()=>{_(B,`aria-expanded`,o(x)),_(B,`title`,o(M)),H=O(V,1,`dot svelte-cihcnl`,null,H,{connected:o(N)}),_(V,`title`,o(N)?`Live updates connected`:`Live updates disconnected`),c(re,o(M)),c(q,`Sessions on ${o(C)?.label??`this endpoint`??``}`),X.disabled=Q.sending}),n(`click`,B,L),i(`toggle`,G,ne),n(`click`,X,ee),b(s,z),v()}l([`click`]);var ve=y(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),ye=y(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),be=s(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path>`,1),xe=s(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`,1),Se=y(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><!></svg></button>`),Ce=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),we=y(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),Te=y(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),Ee=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),De=y(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function Oe(i,s){h(s,!0);let l=e(!1);w(()=>{ne().then(()=>{u(l,!0)})}),C(()=>{ee()});let d=E(()=>o(l)&&V.sttEngine!==`disabled`&&V.sttSupported),m=E(()=>o(l)&&V.ttsSupported),y=E(()=>V.status===`recording`),x=E(()=>V.status===`transcribing`),T=E(()=>!o(y)&&!o(x)&&Q.sending),D=E(()=>V.status===`speaking`);function k(){if(o(y)){P();return}o(x)||(R(),z(e=>{let t=e.trim();t&&Q.send(t)}))}function A(){N(!V.ttsAutoEnabled)}var j=De(),M=a(j),F=e=>{var t=ve(),n=a(t,!0);S(t),r(e=>{_(t,`title`,V.interimTranscript),c(n,e)},[()=>V.interimTranscript.length>48?V.interimTranscript.slice(0,48)+`…`:V.interimTranscript]),b(e,t)};t(M,e=>{o(y)&&V.interimTranscript&&e(F)});var L=f(M,2),te=e=>{var t=ye();n(`click`,t,()=>I()),b(e,t)};t(L,e=>{V.autoplayBlocked&&e(te)});var B=f(L,2),H=e=>{var i=Se();let s;var c=a(i),l=f(a(c)),u=e=>{var t=be(),n=p(t);let i;var a=f(n);let s;r(()=>{i=O(n,0,`svelte-7elv0w`,null,i,{"wave-anim":o(D)}),s=O(a,0,`svelte-7elv0w`,null,s,{"wave-anim-2":o(D)})}),b(e,t)},d=e=>{var t=xe();g(),b(e,t)};t(l,e=>{V.ttsAutoEnabled?e(u):e(d,-1)}),S(c),S(i),r(()=>{s=O(i,1,`voice-btn svelte-7elv0w`,null,s,{"voice-btn-on":V.ttsAutoEnabled,"voice-btn-speaking":o(D)}),_(i,`aria-label`,V.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),_(i,`aria-pressed`,V.ttsAutoEnabled),_(i,`title`,o(D)?`Speaking — click to turn off spoken responses`:V.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),n(`click`,i,A),b(e,i)};t(B,e=>{o(m)&&e(H)});var U=f(B,2);let W;var re=a(U),G=e=>{b(e,Ce())},K=e=>{b(e,we())},q=e=>{var t=Te();g(2),b(e,t)},J=e=>{b(e,Ee())};t(re,e=>{o(d)?o(x)||o(T)?e(K,1):o(y)?e(q,2):e(J,-1):e(G)}),S(U);var Y=f(U,2),X=a(Y,!0);S(Y),S(j),r(()=>{W=O(U,1,`voice-btn svelte-7elv0w`,null,W,{"voice-btn-active":o(y),"voice-btn-processing":o(T)||o(x),"voice-btn-disabled":!o(d)}),U.disabled=!o(d)||o(T),_(U,`aria-label`,o(d)?o(y)?`Stop recording`:o(x)?`Transcribing…`:o(T)?`Sending message…`:`Start recording`:`Voice input unavailable`),_(U,`aria-pressed`,o(y)),_(U,`title`,o(d)?o(y)?`Stop recording`:o(x)?`Transcribing…`:o(T)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),c(X,o(y)&&V.interimTranscript?V.interimTranscript:o(y)?`Recording`:o(x)?`Transcribing`:o(T)?`Sending message to assistant`:o(D)?`Assistant is speaking`:V.ttsAutoEnabled?`Spoken responses on`:``)}),n(`click`,U,k),b(i,j),v()}l([`click`]);var ke=y(`<a href="/admin" aria-label="Settings &amp; administration" title="Manage this machine"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-66bgq1"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a>`),Ae=y(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1" href="/chat" aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-66bgq1"/></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1"><!> <!> <!> <!> <!></div></div></header>`);function je(e,n){h(n,!0);let i=E(()=>H.url?.pathname??``),s=E(()=>o(i)===`/admin`||o(i).startsWith(`/admin/`)),c=E(()=>{let e=$.active?.url??``;if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}});var l=Ae(),u=a(l),d=f(a(u),2),p=a(d),m=e=>{var t=ke();let n;r(()=>{n=O(t,1,`gear-btn svelte-66bgq1`,null,n,{active:o(s)}),_(t,`aria-current`,o(s)?`page`:void 0)}),b(e,t)};t(p,e=>{o(c)&&e(m)});var g=f(p,2);ce(g,{});var y=f(g,2);_e(y,{});var x=f(y,2);K(x,{}),Oe(f(x,2),{}),S(d),S(u),S(l),b(e,l),v()}var Me=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line><path d="M14.12 14.12a3 3 0 1 1-4.24-4.24"></path></svg>`),Ne=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`),Pe=y(`<p class="auth-error svelte-zhbyfn" role="alert"> </p>`),Fe=y(`<main class="auth-gate svelte-zhbyfn" aria-label="Admin login gate"><section class="auth-card svelte-zhbyfn"><div class="auth-brand svelte-zhbyfn"><span class="brand-icon svelte-zhbyfn"><img src="/logo-128.png" alt="OpenPalm Logo" class="svelte-zhbyfn"/></span> <div><h1 class="svelte-zhbyfn">OpenPalm Console</h1> <p class="svelte-zhbyfn">Enter your admin password to unlock the control plane.</p></div></div> <form class="auth-form svelte-zhbyfn"><label for="admin-token" class="svelte-zhbyfn">Admin Password</label> <input type="text" name="username" autocomplete="username" value="admin" class="sr-only svelte-zhbyfn" tabindex="-1" aria-hidden="true"/> <div class="token-input-wrapper svelte-zhbyfn"><input id="admin-token" name="admin-token" placeholder="Enter admin password" autocomplete="current-password" class="svelte-zhbyfn"/> <button type="button" class="btn-toggle svelte-zhbyfn"><!></button></div> <!> <button class="btn btn-primary" type="submit"><!> Unlock Console</button></form></section></main>`);function Ie(s,l){h(l,!0);let d=e(``),p=e(!1),m=e(void 0);async function y(e){e.preventDefault();let t=o(d).trim();if(!t||l.loading){o(m)?.focus();return}await l.onSuccess(t)||(o(m)?.focus(),o(m)?.select())}var C=Fe(),w=a(C),E=f(a(w),2),O=f(f(a(E),2),2),k=a(O);D(k),T(k,e=>u(m,e),()=>o(m));var A=f(k,2),j=a(A),M=e=>{b(e,Me())},N=e=>{b(e,Ne())};t(j,e=>{o(p)?e(M):e(N,-1)}),S(A),S(O);var P=f(O,2),F=e=>{var t=Pe(),n=a(t,!0);S(t),r(()=>c(n,l.error)),b(e,t)};t(P,e=>{l.error&&e(F)});var I=f(P,2),L=a(I),R=e=>{U(e,{})};t(L,e=>{l.loading&&e(R)}),g(),S(I),S(E),S(w),S(C),r(e=>{_(k,`type`,o(p)?`text`:`password`),_(A,`aria-label`,o(p)?`Hide token`:`Show token`),I.disabled=e},[()=>l.loading||!o(d).trim()]),i(`submit`,E,y),x(k,()=>o(d),e=>u(d,e)),n(`click`,A,()=>u(p,!o(p))),b(s,C),v()}l([`click`]);export{Q as i,je as n,$ as r,Ie as t};
5
+ `);o=i.pop()??``;for(let t of i){if(!t)continue;let n=X(t);if(n.id!==void 0&&(r=n.id),!n.data)continue;let i;try{i=JSON.parse(n.data)}catch(e){console.warn(`[session-events] Bad JSON in SSE frame`,e);continue}ie(e,i)}}}finally{try{a.releaseLock()}catch{}}}return(async()=>{let r=0;for(;!t;)try{r++,await a(),r=0,t||await i(500)}catch(a){if(t)return;let o=a instanceof Error?a:Error(String(a));o.name!==`AbortError`&&(console.warn(`[session-events] SSE error, reconnecting`,o),e.onDisconnect?.(o)),await i(Math.min(q*2**Math.max(0,r-1),J)),n.signal.aborted&&!t&&(n=new AbortController)}})(),()=>{t=!0;try{n.abort()}catch{}}}function Z(){return{sessions:[],sessionsLoaded:!1,sessionsLoading:!1,sessionsError:``,activeSessionId:null}}var Q=new class{#e=e(m(new Map));get byEndpoint(){return o(this.#e)}set byEndpoint(e){u(this.#e,e,!0)}#t=e(`default`);get activeEndpointId(){return o(this.#t)}set activeEndpointId(e){u(this.#t,e,!0)}#n=e(m([]));get entries(){return o(this.#n)}set entries(e){u(this.#n,e,!0)}#r=e(!1);get entriesLoading(){return o(this.#r)}set entriesLoading(e){u(this.#r,e,!0)}#i=e(!1);get sending(){return o(this.#i)}set sending(e){u(this.#i,e,!0)}#a=e(``);get error(){return o(this.#a)}set error(e){u(this.#a,e,!0)}#o=e(!1);get liveConnected(){return o(this.#o)}set liveConnected(e){u(this.#o,e,!0)}_unsubscribeEvents=null;#s=E(()=>this.byEndpoint.get(this.activeEndpointId)?.activeSessionId??null);get activeSessionId(){return o(this.#s)}set activeSessionId(e){u(this.#s,e)}setEndpointState(e,t){let n={...this.byEndpoint.get(e)??Z(),...t};return this.byEndpoint=new Map(this.byEndpoint).set(e,n),n}async onEndpointChanged(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}this.activeEndpointId=e,this.entries=[],this.error=``,this.byEndpoint.get(e)?.sessionsLoaded||await this.loadSessions();let t=this.byEndpoint.get(e)??Z(),n=t.sessions,r=t.activeSessionId,i=null;r&&n.some(e=>e.id===r)?i=r:n.length>0&&(i=n[0].id),i!==t.activeSessionId&&this.setEndpointState(e,{activeSessionId:i}),i&&await this.openSession(i),this._resubscribeEvents()}_resubscribeEvents(){if(this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from previous event stream`,e)}this._unsubscribeEvents=null}this.liveConnected=!1,this._unsubscribeEvents=ae({onCreated:e=>{this._onSessionCreated(e)},onUpdated:(e,t)=>{this._onSessionUpdated(e,t)},onDeleted:e=>{this._onSessionDeleted(e)},onConnect:()=>{this.liveConnected=!0},onDisconnect:()=>{this.liveConnected=!1}})}_onSessionCreated(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t)??Z();if(n.sessions.some(t=>t.id===e))return;let r=Date.now(),i={id:e,title:``,createdAt:r,updatedAt:r};this.setEndpointState(t,{sessions:[i,...n.sessions],sessionsLoaded:!0})}_onSessionUpdated(e,t){let n=this.activeEndpointId,r=this.byEndpoint.get(n);if(!r)return;let i=r.sessions.findIndex(t=>t.id===e);if(i===-1)return;let a=r.sessions[i],o=[{...a,title:t?.title??a.title,updatedAt:t?.updatedAt??Date.now()},...r.sessions.filter(t=>t.id!==e)];o.sort((e,t)=>t.updatedAt-e.updatedAt),this.setEndpointState(n,{sessions:o})}async _onSessionDeleted(e){let t=this.activeEndpointId,n=this.byEndpoint.get(t);if(!n||!n.sessions.some(t=>t.id===e))return;let r=n.sessions.filter(t=>t.id!==e),i=n.activeSessionId===e,a=i?r[0]?.id??null:n.activeSessionId;this.setEndpointState(t,{sessions:r,activeSessionId:a}),i&&(this.entries=[],a&&await this.openSession(a))}async loadSessions(){let e=this.activeEndpointId;this.setEndpointState(e,{sessionsLoading:!0,sessionsError:``});try{let t=await A();this.setEndpointState(e,{sessions:t,sessionsLoaded:!0,sessionsLoading:!1,sessionsError:``})}catch(t){let n=t,r=n.status===503||n.status===502?`Assistant is not reachable.`:n.message??`Failed to load sessions.`;this.setEndpointState(e,{sessionsLoading:!1,sessionsError:r})}}async openSession(e){if(this.sending){this.error=`Wait for the current reply to finish before switching.`;return}let t=this.activeEndpointId;this.setEndpointState(t,{activeSessionId:e}),this.entries=[],this.entriesLoading=!0,this.error=``;try{let n=await k(e);this.activeEndpointId===t&&this.byEndpoint.get(t)?.activeSessionId===e&&(this.entries=n)}catch(e){let t=e;t.status===503||t.status===502?this.error=`Assistant is not reachable. Try reconnecting.`:t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Failed to load messages.`}finally{this.entriesLoading=!1}}async startNewSession(){if(this.sending)return this.error=`Wait for the current reply to finish before switching.`,null;let e=this.activeEndpointId;this.error=``;try{let{id:t}=await F(),n=Date.now(),r={id:t,title:``,createdAt:n,updatedAt:n},i=this.byEndpoint.get(e)??Z();return this.setEndpointState(e,{sessions:[r,...i.sessions.filter(e=>e.id!==t)],sessionsLoaded:!0,activeSessionId:t}),this.entries=[],t}catch(e){let t=e;return this.error=`Failed to start session: ${t.message??`unknown error`}`,null}}async send(e){if(this.sending)return;let t=e.trim();if(!t)return;let n=this.activeSessionId;if(!n&&(n=await this.startNewSession(),!n))return;let r={id:crypto.randomUUID(),role:`user`,text:t,timestamp:Date.now()};this.entries=[...this.entries,r],this.error=``,this.sending=!0;try{let e=(await M(n,t)).parts.filter(e=>e.type===`text`&&e.text).map(e=>e.text??``).join(``),r={id:crypto.randomUUID(),role:`assistant`,text:e||`(no response)`,timestamp:Date.now()};this.entries=[...this.entries,r];let i=this.activeEndpointId,a=this.byEndpoint.get(i);if(a){let e=Date.now(),t=a.sessions.find(e=>e.id===n),r=t?{...t,updatedAt:e}:{id:n,title:``,createdAt:e,updatedAt:e},o=a.sessions.filter(e=>e.id!==n);this.setEndpointState(i,{sessions:[r,...o]})}V.ttsSupported&&V.ttsAutoEnabled&&e&&te(e)}catch(e){let t=e;t.status===503||t.status===502?(this.error=`Assistant is not reachable. Try reconnecting.`,this.setEndpointState(this.activeEndpointId,{activeSessionId:null})):t.status===401?this.error=`Sign-in required.`:this.error=t.message??`Message failed.`}finally{this.sending=!1}}reset(){if(R(),this.entries=[],this.error=``,this.byEndpoint=new Map,this._unsubscribeEvents){try{this._unsubscribeEvents()}catch(e){console.warn(`[chat] failed to unsubscribe from event stream during reset`,e)}this._unsubscribeEvents=null}this.liveConnected=!1}},$=new class{#e=e(m([]));get endpoints(){return o(this.#e)}set endpoints(e){u(this.#e,e,!0)}#t=e(`default`);get activeId(){return o(this.#t)}set activeId(e){u(this.#t,e,!0)}#n=e(!1);get loading(){return o(this.#n)}set loading(e){u(this.#n,e,!0)}#r=e(!1);get loaded(){return o(this.#r)}set loaded(e){u(this.#r,e,!0)}#i=e(``);get error(){return o(this.#i)}set error(e){u(this.#i,e,!0)}#a=E(()=>this.endpoints.find(e=>e.id===this.activeId)??this.endpoints[0]??null);get active(){return o(this.#a)}set active(e){u(this.#a,e)}async load(e=!1){if(!this.loading&&!(this.loaded&&!e)){this.loading=!0,this.error=``;try{let{endpoints:e,activeId:t}=await L();this.endpoints=e,this.activeId=t,this.loaded=!0}catch(e){let t=e;t.status!==401&&(this.error=t.message??`Failed to load endpoints`)}finally{this.loading=!1}}}async activate(e){if(e===this.activeId)return;if(Q.sending)throw this.error=`Wait for the current reply to finish before switching.`,Error(this.error);let t=this.activeId;this.activeId=e;try{await j(e),await Q.onEndpointChanged(e)}catch(e){this.activeId=t;let n=e;throw this.error=n.message??`Failed to switch endpoint`,e}}},oe=y(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-48xr05" aria-hidden="true"> </span> <span class="menu-item-text svelte-48xr05"><span class="menu-item-label svelte-48xr05"> </span> <span class="menu-item-url svelte-48xr05"> </span></span></button>`),se=y(`<div class="switcher svelte-48xr05"><button type="button" class="trigger svelte-48xr05" id="endpoint-trigger" aria-haspopup="menu"><svg class="trigger-icon svelte-48xr05" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg> <span class="dot svelte-48xr05" aria-hidden="true"></span> <span class="label svelte-48xr05"> </span> <span class="caret svelte-48xr05" aria-hidden="true">▾</span></button> <div class="menu svelte-48xr05" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-48xr05">Assistant endpoint</div> <!> <div class="menu-divider svelte-48xr05"></div> <a class="menu-item link svelte-48xr05" href="/admin/endpoints" role="menuitem">Manage endpoints…</a></div></div>`);function ce(t,s){h(s,!0);let l=`endpoint-menu`,p=e(!1),m=e(!1),y=E(()=>$.active),x=E(()=>$.endpoints),C=E(()=>o(x).length>1);w(()=>{$.load()});function T(e){o(C)||(e.preventDefault(),window.location.href=`/admin/endpoints`)}async function D(e){if(!o(p)&&e!==o(y)?.id){u(p,!0);try{await $.activate(e)}catch{}finally{u(p,!1)}}}function k(e){u(m,e.newState===`open`)}var A=se(),j=a(A);_(j,`aria-controls`,l);var M=f(a(j),4),N=a(M,!0);S(M),g(2),S(j);var P=f(j,2);_(P,`id`,l),d(f(a(P),2),17,()=>o(x),e=>e.id,(e,t)=>{var i=oe();let s;_(i,`popovertarget`,l);var u=a(i),d=a(u,!0);S(u);var m=f(u,2),h=a(m),g=a(h,!0);S(h);var v=f(h,2),x=a(v,!0);S(v),S(m),S(i),r(()=>{s=O(i,1,`menu-item svelte-48xr05`,null,s,{active:o(t).id===o(y)?.id}),_(i,`aria-checked`,o(t).id===o(y)?.id),i.disabled=o(p),c(d,o(t).id===o(y)?.id?`●`:`○`),c(g,o(t).label),c(x,o(t).url)}),n(`click`,i,()=>D(o(t).id)),b(e,i)}),g(4),S(P),S(A),r(()=>{_(j,`popovertarget`,o(C)?l:void 0),_(j,`aria-expanded`,o(m)),_(j,`aria-label`,o(y)?`Assistant endpoint: ${o(y).label}`:`Assistant endpoints`),_(j,`title`,o(y)?`Connected to: ${o(y).label} (${o(y).url})`:`Assistant endpoints`),j.disabled=o(p)||$.loading,c(N,o(y)?.label??`Endpoint…`)}),n(`click`,j,T),i(`toggle`,P,k),b(t,A),v()}l([`click`]);var le=y(`<div class="notice svelte-cihcnl">Wait for the current reply to finish before switching.</div>`),ue=y(`<div class="empty svelte-cihcnl"><!> <span>Loading sessions…</span></div>`),de=y(`<div class="error svelte-cihcnl"><span class="svelte-cihcnl"> </span> <button type="button" class="retry-btn svelte-cihcnl">Retry</button></div>`),fe=y(`<div class="empty svelte-cihcnl">No sessions yet. Start the first one.</div>`),pe=y(`<button type="button" role="menuitemradio" popovertargetaction="hide"><span class="check svelte-cihcnl" aria-hidden="true"> </span> <span class="menu-item-text svelte-cihcnl"><span class="menu-item-label svelte-cihcnl"> </span> <span class="menu-item-meta svelte-cihcnl"> </span></span></button>`),me=y(`<button type="button" class="show-all svelte-cihcnl"> </button>`),he=y(`<div class="session-list svelte-cihcnl" role="none"></div> <!>`,1),ge=y(`<div class="picker svelte-cihcnl"><button type="button" class="trigger svelte-cihcnl" id="session-trigger" aria-haspopup="menu" aria-label="Sessions"><svg class="trigger-icon svelte-cihcnl" aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z"></path><path d="M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1"></path></svg> <span aria-hidden="true"></span> <span class="label svelte-cihcnl"> </span> <span class="caret svelte-cihcnl" aria-hidden="true">▾</span></button> <div class="menu svelte-cihcnl" popover="auto" role="menu" tabindex="-1"><div class="menu-header svelte-cihcnl"> </div> <!> <button type="button" class="menu-item new-btn svelte-cihcnl" role="menuitem" popovertargetaction="hide"><span class="check svelte-cihcnl" aria-hidden="true">+</span> <span class="menu-item-text svelte-cihcnl"><span class="menu-item-label svelte-cihcnl">New session</span></span></button> <div class="menu-divider svelte-cihcnl"></div> <!></div></div>`);function _e(s,l){h(l,!0);let m=`session-menu`,y=e(!1),x=e(!1),C=E(()=>$.active),w=E(()=>o(C)?Q.byEndpoint.get(o(C).id)??null:null),T=E(()=>o(w)?.sessions??[]),D=E(()=>o(w)?.sessionsLoading??!1),k=E(()=>o(w)?.sessionsError??``),A=E(()=>Q.activeSessionId),j=E(()=>o(T).find(e=>e.id===o(A))??null),M=E(()=>o(j)?o(j).title||`Untitled · ${I(o(j).updatedAt)}`:`New session`),N=E(()=>Q.liveConnected),P=E(()=>o(y)?o(T):o(T).slice(0,50)),F=E(()=>Math.max(0,o(T).length-50));function I(e){if(!e)return``;let t=Math.max(0,(Date.now()-e)/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i}d ago`;let a=Math.floor(i/7);if(a<5)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}function L(){o(C)&&!o(w)?.sessionsLoaded&&!o(D)&&Q.loadSessions()}async function R(e){Q.sending||await Q.openSession(e)}async function ee(){Q.sending||await Q.startNewSession()}async function te(){await Q.loadSessions()}function ne(e){u(x,e.newState===`open`)}var z=ge(),B=a(z);_(B,`popovertarget`,m),_(B,`aria-controls`,m);var V=f(a(B),2);let H;var W=f(V,2),re=a(W,!0);S(W),g(2),S(B);var G=f(B,2);_(G,`id`,m);var K=a(G),q=a(K);S(K);var J=f(K,2),Y=e=>{b(e,le())};t(J,e=>{Q.sending&&e(Y)});var X=f(J,2);_(X,`popovertarget`,m);var ie=f(X,4),ae=e=>{var t=ue();U(a(t),{size:12}),g(2),S(t),b(e,t)},Z=e=>{var t=de(),i=a(t),s=a(i,!0);S(i);var l=f(i,2);S(t),r(()=>c(s,o(k))),n(`click`,l,te),b(e,t)},oe=e=>{b(e,fe())},se=e=>{var i=he(),s=p(i);d(s,21,()=>o(P),e=>e.id,(e,t)=>{var i=pe();let s;_(i,`popovertarget`,m);var l=a(i),u=a(l,!0);S(l);var d=f(l,2),p=a(d),h=a(p,!0);S(p);var g=f(p,2),v=a(g,!0);S(g),S(d),S(i),r(e=>{s=O(i,1,`menu-item session-item svelte-cihcnl`,null,s,{active:o(t).id===o(A)}),_(i,`aria-checked`,o(t).id===o(A)),i.disabled=Q.sending,c(u,o(t).id===o(A)?`●`:`○`),c(h,o(t).title||`Untitled`),c(v,e)},[()=>I(o(t).updatedAt)]),n(`click`,i,()=>R(o(t).id)),b(e,i)}),S(s);var l=f(s,2),h=e=>{var t=me(),i=a(t);S(t),r(()=>c(i,`Show all (${o(F)??``} more)`)),n(`click`,t,()=>u(y,!0)),b(e,t)};t(l,e=>{!o(y)&&o(F)>0&&e(h)}),b(e,i)};t(ie,e=>{o(D)?e(ae):o(k)?e(Z,1):o(T).length===0?e(oe,2):e(se,-1)}),S(G),S(z),r(()=>{_(B,`aria-expanded`,o(x)),_(B,`title`,o(M)),H=O(V,1,`dot svelte-cihcnl`,null,H,{connected:o(N)}),_(V,`title`,o(N)?`Live updates connected`:`Live updates disconnected`),c(re,o(M)),c(q,`Sessions on ${o(C)?.label??`this endpoint`??``}`),X.disabled=Q.sending}),n(`click`,B,L),i(`toggle`,G,ne),n(`click`,X,ee),b(s,z),v()}l([`click`]);var ve=y(`<span class="voice-interim svelte-7elv0w" aria-hidden="true"> </span>`),ye=y(`<button type="button" class="voice-autoplay-banner svelte-7elv0w" aria-label="Resume paused audio" title="Audio was blocked by the browser. Click to resume."><svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line></svg> <span class="svelte-7elv0w">Audio paused — click to resume</span></button>`),be=s(`<path d="M15.54 8.46a5 5 0 0 1 0 7.07"></path><path d="M19.07 4.93a10 10 0 0 1 0 14.14"></path>`,1),xe=s(`<line x1="23" y1="9" x2="17" y2="15" class="svelte-7elv0w"></line><line x1="17" y1="9" x2="23" y2="15" class="svelte-7elv0w"></line>`,1),Se=y(`<button><svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5" class="svelte-7elv0w"></polygon><!></svg></button>`),Ce=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><line x1="1" y1="1" x2="23" y2="23" class="svelte-7elv0w"></line><path d="M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6" class="svelte-7elv0w"></path><path d="M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),we=y(`<span class="voice-spinner svelte-7elv0w" aria-hidden="true"></span>`),Te=y(`<svg aria-hidden="true" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="svelte-7elv0w"><rect x="6" y="6" width="12" height="12" rx="1.5" class="svelte-7elv0w"></rect></svg> <span class="voice-pulse svelte-7elv0w" aria-hidden="true"></span>`,1),Ee=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-7elv0w"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" class="svelte-7elv0w"></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" class="svelte-7elv0w"></path><line x1="12" y1="19" x2="12" y2="23" class="svelte-7elv0w"></line><line x1="8" y1="23" x2="16" y2="23" class="svelte-7elv0w"></line></svg>`),De=y(`<div class="voice-control svelte-7elv0w" role="toolbar" aria-label="Voice controls"><!> <!> <!> <button><!></button> <span class="sr-only svelte-7elv0w" aria-live="polite"> </span></div>`);function Oe(i,s){h(s,!0);let l=e(!1);w(()=>{ne().then(()=>{u(l,!0)})}),C(()=>{ee()});let d=E(()=>o(l)&&V.sttEngine!==`disabled`&&V.sttSupported),m=E(()=>o(l)&&V.ttsSupported),y=E(()=>V.status===`recording`),x=E(()=>V.status===`transcribing`),T=E(()=>!o(y)&&!o(x)&&Q.sending),D=E(()=>V.status===`speaking`);function k(){if(o(y)){P();return}o(x)||(R(),z(e=>{let t=e.trim();t&&Q.send(t)}))}function A(){N(!V.ttsAutoEnabled)}var j=De(),M=a(j),F=e=>{var t=ve(),n=a(t,!0);S(t),r(e=>{_(t,`title`,V.interimTranscript),c(n,e)},[()=>V.interimTranscript.length>48?V.interimTranscript.slice(0,48)+`…`:V.interimTranscript]),b(e,t)};t(M,e=>{o(y)&&V.interimTranscript&&e(F)});var L=f(M,2),te=e=>{var t=ye();n(`click`,t,()=>I()),b(e,t)};t(L,e=>{V.autoplayBlocked&&e(te)});var B=f(L,2),H=e=>{var i=Se();let s;var c=a(i),l=f(a(c)),u=e=>{var t=be(),n=p(t);let i;var a=f(n);let s;r(()=>{i=O(n,0,`svelte-7elv0w`,null,i,{"wave-anim":o(D)}),s=O(a,0,`svelte-7elv0w`,null,s,{"wave-anim-2":o(D)})}),b(e,t)},d=e=>{var t=xe();g(),b(e,t)};t(l,e=>{V.ttsAutoEnabled?e(u):e(d,-1)}),S(c),S(i),r(()=>{s=O(i,1,`voice-btn svelte-7elv0w`,null,s,{"voice-btn-on":V.ttsAutoEnabled,"voice-btn-speaking":o(D)}),_(i,`aria-label`,V.ttsAutoEnabled?`Turn off spoken responses`:`Turn on spoken responses`),_(i,`aria-pressed`,V.ttsAutoEnabled),_(i,`title`,o(D)?`Speaking — click to turn off spoken responses`:V.ttsAutoEnabled?`Spoken responses are on — click to turn off`:`Spoken responses are off — click to turn on`)}),n(`click`,i,A),b(e,i)};t(B,e=>{o(m)&&e(H)});var U=f(B,2);let W;var re=a(U),G=e=>{b(e,Ce())},K=e=>{b(e,we())},q=e=>{var t=Te();g(2),b(e,t)},J=e=>{b(e,Ee())};t(re,e=>{o(d)?o(x)||o(T)?e(K,1):o(y)?e(q,2):e(J,-1):e(G)}),S(U);var Y=f(U,2),X=a(Y,!0);S(Y),S(j),r(()=>{W=O(U,1,`voice-btn svelte-7elv0w`,null,W,{"voice-btn-active":o(y),"voice-btn-processing":o(T)||o(x),"voice-btn-disabled":!o(d)}),U.disabled=!o(d)||o(T),_(U,`aria-label`,o(d)?o(y)?`Stop recording`:o(x)?`Transcribing…`:o(T)?`Sending message…`:`Start recording`:`Voice input unavailable`),_(U,`aria-pressed`,o(y)),_(U,`title`,o(d)?o(y)?`Stop recording`:o(x)?`Transcribing…`:o(T)?`Sending message…`:`Speak — message will be sent to the selected assistant`:`Voice input is unavailable — no speech-to-text engine is configured for this browser`),c(X,o(y)&&V.interimTranscript?V.interimTranscript:o(y)?`Recording`:o(x)?`Transcribing`:o(T)?`Sending message to assistant`:o(D)?`Assistant is speaking`:V.ttsAutoEnabled?`Spoken responses on`:``)}),n(`click`,U,k),b(i,j),v()}l([`click`]);var ke=y(`<a href="/chat" class="gear-btn svelte-66bgq1" aria-label="Back to chat" title="Chat"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-66bgq1"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg></a>`),Ae=y(`<a href="/admin" class="gear-btn svelte-66bgq1" aria-label="Settings &amp; administration" title="Manage this machine"><svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-66bgq1"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a>`),je=y(`<header class="navbar svelte-66bgq1"><div class="navbar-inner svelte-66bgq1"><a class="navbar-brand svelte-66bgq1" href="/chat" aria-label="OpenPalm — go to chat"><span class="brand-icon svelte-66bgq1" aria-hidden="true"><img src="/logo-128.png" alt="" class="svelte-66bgq1"/></span> <span class="brand-text svelte-66bgq1">OpenPalm</span></a> <div class="navbar-actions svelte-66bgq1"><!> <!> <!> <!> <!></div></div></header>`);function Me(e,n){h(n,!0);let r=E(()=>H.url?.pathname??``),i=E(()=>o(r)===`/admin`||o(r).startsWith(`/admin/`)),s=E(()=>{let e=$.active?.url??``;if(!e)return!0;try{let t=new URL(e).hostname;return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`host.docker.internal`}catch{return!0}});var c=je(),l=a(c),u=f(a(l),2),d=a(u),p=e=>{b(e,ke())},m=e=>{b(e,Ae())};t(d,e=>{o(i)?e(p):o(s)&&e(m,1)});var g=f(d,2);ce(g,{});var _=f(g,2);_e(_,{});var y=f(_,2);K(y,{}),Oe(f(y,2),{}),S(u),S(l),S(c),b(e,c),v()}var Ne=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"></path><path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"></path><line x1="1" y1="1" x2="23" y2="23"></line><path d="M14.12 14.12a3 3 0 1 1-4.24-4.24"></path></svg>`),Pe=s(`<svg aria-hidden="true" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"></path><circle cx="12" cy="12" r="3"></circle></svg>`),Fe=y(`<p class="auth-error svelte-zhbyfn" role="alert"> </p>`),Ie=y(`<main class="auth-gate svelte-zhbyfn" aria-label="Admin login gate"><section class="auth-card svelte-zhbyfn"><div class="auth-brand svelte-zhbyfn"><span class="brand-icon svelte-zhbyfn"><img src="/logo-128.png" alt="OpenPalm Logo" class="svelte-zhbyfn"/></span> <div><h1 class="svelte-zhbyfn">OpenPalm Console</h1> <p class="svelte-zhbyfn">Enter your admin password to unlock the control plane.</p></div></div> <form class="auth-form svelte-zhbyfn"><label for="admin-token" class="svelte-zhbyfn">Admin Password</label> <input type="text" name="username" autocomplete="username" value="admin" class="sr-only svelte-zhbyfn" tabindex="-1" aria-hidden="true"/> <div class="token-input-wrapper svelte-zhbyfn"><input id="admin-token" name="admin-token" placeholder="Enter admin password" autocomplete="current-password" class="svelte-zhbyfn"/> <button type="button" class="btn-toggle svelte-zhbyfn"><!></button></div> <!> <button class="btn btn-primary" type="submit"><!> Unlock Console</button></form></section></main>`);function Le(s,l){h(l,!0);let d=e(``),p=e(!1),m=e(void 0);async function y(e){e.preventDefault();let t=o(d).trim();if(!t||l.loading){o(m)?.focus();return}await l.onSuccess(t)||(o(m)?.focus(),o(m)?.select())}var C=Ie(),w=a(C),E=f(a(w),2),O=f(f(a(E),2),2),k=a(O);D(k),T(k,e=>u(m,e),()=>o(m));var A=f(k,2),j=a(A),M=e=>{b(e,Ne())},N=e=>{b(e,Pe())};t(j,e=>{o(p)?e(M):e(N,-1)}),S(A),S(O);var P=f(O,2),F=e=>{var t=Fe(),n=a(t,!0);S(t),r(()=>c(n,l.error)),b(e,t)};t(P,e=>{l.error&&e(F)});var I=f(P,2),L=a(I),R=e=>{U(e,{})};t(L,e=>{l.loading&&e(R)}),g(),S(I),S(E),S(w),S(C),r(e=>{_(k,`type`,o(p)?`text`:`password`),_(A,`aria-label`,o(p)?`Hide token`:`Show token`),I.disabled=e},[()=>l.loading||!o(d).trim()]),i(`submit`,E,y),x(k,()=>o(d),e=>u(d,e)),n(`click`,A,()=>u(p,!o(p))),b(s,C),v()}l([`click`]);export{Q as i,Me as n,$ as r,Le as t};
@@ -1 +1 @@
1
- import"./0swOyi-5.js";import{i as e,n as t,r as n}from"./E7W0MQkU.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
1
+ import"./0swOyi-5.js";import{i as e,n as t,r as n}from"./kWSYYB4z.js";var r={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};Object.defineProperty({get from(){return n.current?n.current.from:null},get to(){return n.current?n.current.to:null},get type(){return n.current?n.current.type:null},get willUnload(){return n.current?n.current.willUnload:null},get delta(){return n.current?n.current.delta:null},get complete(){return n.current?n.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),t.updated.check;var i=r;export{i as t};
@@ -1 +1 @@
1
- import{H as e,J as t,L as n,X as r,at as i,d as a,it as o,j as s,k as c,lt as l,tt as u,v as d}from"./0swOyi-5.js";import"./xihTtKlq.js";import{t as f}from"./BPh8tqAg.js";var p=s(`<nav class="mode-switch svelte-dn9fn0" aria-label="Chat mode"><a href="/chat"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-dn9fn0"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg> <span>Chat</span></a> <a href="/advanced"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-dn9fn0"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="m7 9 3 3-3 3"></path><line x1="13" y1="15" x2="17" y2="15"></line></svg> <span>Advanced</span></a></nav>`);function m(s,m){i(m,!0);let h=u(()=>f.url?.pathname??``),g=u(()=>n(h)===`/chat`||n(h).startsWith(`/chat/`)),_=u(()=>n(h)===`/advanced`||n(h).startsWith(`/advanced/`));var v=p(),y=t(v);let b;var x=r(y,2);let S;l(v),e(()=>{b=d(y,1,`mode-tab svelte-dn9fn0`,null,b,{active:n(g)}),a(y,`aria-current`,n(g)?`page`:void 0),S=d(x,1,`mode-tab svelte-dn9fn0`,null,S,{active:n(_)}),a(x,`aria-current`,n(_)?`page`:void 0)}),c(s,v),o()}export{m as t};
1
+ import{H as e,J as t,L as n,X as r,at as i,d as a,it as o,j as s,k as c,lt as l,tt as u,v as d}from"./0swOyi-5.js";import"./xihTtKlq.js";import{t as f}from"./CHbj1pWz.js";var p=s(`<nav class="mode-switch svelte-dn9fn0" aria-label="Chat mode"><a href="/chat"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-dn9fn0"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"></path></svg> <span>Chat</span></a> <a href="/advanced"><svg aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-dn9fn0"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><path d="m7 9 3 3-3 3"></path><line x1="13" y1="15" x2="17" y2="15"></line></svg> <span>Advanced</span></a></nav>`);function m(s,m){i(m,!0);let h=u(()=>f.url?.pathname??``),g=u(()=>n(h)===`/chat`||n(h).startsWith(`/chat/`)),_=u(()=>n(h)===`/advanced`||n(h).startsWith(`/advanced/`));var v=p(),y=t(v);let b;var x=r(y,2);let S;l(v),e(()=>{b=d(y,1,`mode-tab svelte-dn9fn0`,null,b,{active:n(g)}),a(y,`aria-current`,n(g)?`page`:void 0),S=d(x,1,`mode-tab svelte-dn9fn0`,null,S,{active:n(_)}),a(x,`aria-current`,n(_)?`page`:void 0)}),c(s,v),o()}export{m as t};