lantern-harness 0.1.2 → 0.1.3

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 (81) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +6 -6
  3. package/builtin/session/lh-spaces.mjs +102 -0
  4. package/cli/data-root.mjs +80 -3
  5. package/cli/lantern.mjs +2 -1
  6. package/cli/server.mjs +4 -0
  7. package/cli/spaces.mjs +91 -5
  8. package/config/app.defaults.json +4 -2
  9. package/dist/500.html +9 -5
  10. package/dist/_astro/Base.ByB0D4ZA.css +1 -0
  11. package/dist/_astro/{Base.astro_astro_type_script_index_0_lang.lxEwQ1R4.js → Base.astro_astro_type_script_index_0_lang.Cg_8YLVA.js} +1 -1
  12. package/dist/_astro/CaseGenerateApp.BlZyjWEr.js +9 -0
  13. package/dist/_astro/CasesLibrary.C76La3Xj.js +1 -0
  14. package/dist/_astro/ChatApp.gfsPLvan.js +269 -0
  15. package/dist/_astro/ColumnResize.Bs6GL3DJ.js +1 -0
  16. package/dist/_astro/DatePicker.BdwFRioL.js +1 -0
  17. package/dist/_astro/{DocsFileBrowser.DkE26UTR.js → DocsFileBrowser.BxAyrkkw.js} +1 -1
  18. package/dist/_astro/KnowledgeLibrary.Cv488Hot.js +1 -0
  19. package/dist/_astro/NavLibraries.ALZ9e12z.js +1 -0
  20. package/dist/_astro/PluginsPage.B2uxCiHL.js +1 -0
  21. package/dist/_astro/{PluginsPage.BNzpPg2H.js → PluginsPage.DEkyOfQE.js} +2 -2
  22. package/dist/_astro/PromptsLibrary.BUC1OiCH.js +1 -0
  23. package/dist/_astro/RequirementsLibrary.D3olQI63.js +1 -0
  24. package/dist/_astro/{SearchableSelect.DMS2XmXc.js → SearchableSelect.DP74JRWW.js} +1 -1
  25. package/dist/_astro/SelectDropdown.D2i7-lQC.js +1 -0
  26. package/dist/_astro/{SettingsDialog.DC0e7580.js → SettingsDialog.CrMDjSLJ.js} +1 -1
  27. package/dist/_astro/SlideOverDrawer.C7UVeCX1.js +1 -0
  28. package/dist/_astro/SpaceSwitcher.Wf8EPYUx.js +7 -0
  29. package/dist/_astro/TasksBoard.2j7rGT9O.js +1 -0
  30. package/dist/_astro/TemplatesLibrary.J0x7yIcY.js +1 -0
  31. package/dist/_astro/TodosBoard.BugeB7_7.js +1 -0
  32. package/dist/_astro/app-config.vqDkEMS3.js +1 -0
  33. package/dist/_astro/doc-roots.DAJP9Svr.js +1 -0
  34. package/dist/_astro/i18n.9qZsrs3u.js +7 -0
  35. package/dist/_astro/{open-docs-in-session.D3JCwMWB.js → open-docs-in-session.fLwnA5qh.js} +1 -1
  36. package/dist/_astro/plugins.DSUPSizB.js +1 -0
  37. package/dist/_astro/project-docs.Cd2gKPKh.js +1 -0
  38. package/dist/_astro/{settings.BoQ0e0m1.js → settings.CkbipdPI.js} +2 -2
  39. package/dist/_astro/{useListAnim.CnbC_9MC.js → useListAnim.Y3N2budK.js} +1 -1
  40. package/dist/cases/generate/index.html +10 -6
  41. package/dist/cases/library/index.html +10 -6
  42. package/dist/docs/changelog/index.html +69 -6
  43. package/dist/docs/install/index.html +22 -8
  44. package/dist/docs/manual/index.html +74 -11
  45. package/dist/index.html +10 -6
  46. package/dist/knowledge/index.html +10 -6
  47. package/dist/knowledge//345/212/237/350/203/275/346/265/213/350/257/225/347/224/250/344/276/213/347/274/226/345/206/231/350/247/204/350/214/203/index.html +9 -5
  48. package/dist/plugins/index.html +10 -6
  49. package/dist/prompts/index.html +10 -6
  50. package/dist/requirements/index.html +10 -6
  51. package/dist/tasks/index.html +253 -0
  52. package/dist/templates/index.html +10 -6
  53. package/dist/templates//345/212/237/350/203/275/346/265/213/350/257/225/346/212/245/345/221/212//345/212/237/350/203/275/346/265/213/350/257/225/346/212/245/345/221/212/346/250/241/346/235/277/index.html +9 -5
  54. package/dist/templates//346/200/247/350/203/275/346/265/213/350/257/225/346/212/245/345/221/212//346/200/247/350/203/275/346/265/213/350/257/225/346/212/245/345/221/212/346/250/241/346/235/277/index.html +9 -5
  55. package/dist/templates//346/200/247/350/203/275/346/265/213/350/257/225/347/224/250/344/276/213//346/200/247/350/203/275/346/265/213/350/257/225/347/224/250/344/276/213/346/250/241/346/235/277/index.html +9 -5
  56. package/dist/templates//346/216/245/345/217/243/346/265/213/350/257/225/346/212/245/345/221/212//346/216/245/345/217/243/346/265/213/350/257/225/346/212/245/345/221/212/346/250/241/346/235/277/index.html +9 -5
  57. package/dist/templates//350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/347/224/250/344/276/213//350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/347/224/250/344/276/213/346/250/241/346/235/277/index.html +9 -5
  58. package/dist/todos/index.html +253 -0
  59. package/docs//345/205/250/345/261/200/346/217/222/344/273/266.md +2 -2
  60. package/docs//345/256/211/350/243/205/346/211/213/345/206/214.md +10 -8
  61. package/docs//346/223/215/344/275/234/346/211/213/345/206/214.md +73 -23
  62. package/lh-plugins/lh-project-docs.mjs +2 -0
  63. package/lh-plugins/lh-tasks.mjs +223 -0
  64. package/lh-plugins/lh-todos.mjs +297 -0
  65. package/lh-plugins/storage-domain.mjs +1 -0
  66. package/package.json +1 -1
  67. package/dist/_astro/Base.B9f_iFAZ.css +0 -1
  68. package/dist/_astro/CaseGenerateApp.Br4uKjun.js +0 -9
  69. package/dist/_astro/CasesLibrary.CpPoVQ4P.js +0 -1
  70. package/dist/_astro/ChatApp.CYSPlSNP.js +0 -258
  71. package/dist/_astro/KnowledgeLibrary.DZinlAWn.js +0 -1
  72. package/dist/_astro/NavLibraries.EayBsg5g.js +0 -1
  73. package/dist/_astro/PluginsPage.CY61glLU.js +0 -1
  74. package/dist/_astro/PromptsLibrary.DfrrCjs7.js +0 -1
  75. package/dist/_astro/RequirementsLibrary.Dt0Gj6Nr.js +0 -1
  76. package/dist/_astro/SelectDropdown.Dc7QaPbH.js +0 -1
  77. package/dist/_astro/SpaceSwitcher.Yy2w8MDF.js +0 -7
  78. package/dist/_astro/TemplatesLibrary.uK-SjK1z.js +0 -1
  79. package/dist/_astro/app-config.CpjKWnzM.js +0 -1
  80. package/dist/_astro/i18n.BVvhz-vw.js +0 -7
  81. package/dist/_astro/plugins.CrpY8UI9.js +0 -1
@@ -1 +0,0 @@
1
- @keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-700:oklch(50% .134 242.749);--color-blue-600:oklch(54.6% .245 262.881);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-700:oklch(49.1% .27 292.581);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-rose-500:oklch(64.5% .246 16.439);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-800:oklch(26.8% .007 34.298);--color-stone-900:oklch(21.6% .006 56.043);--color-stone-950:oklch(14.7% .004 49.25);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-3\.5{top:calc(var(--spacing) * 3.5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-8{right:calc(var(--spacing) * 8)}.right-full{right:100%}.-bottom-px{bottom:-1px}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.-z-10{z-index:calc(10 * -1)}.z-0{z-index:0}.z-40{z-index:40}.z-45{z-index:45}.z-50{z-index:50}.z-60{z-index:60}.z-80{z-index:80}.z-95{z-index:95}.z-96{z-index:96}.z-110{z-index:110}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);margin-top:1.2em;margin-bottom:1.2em;font-size:1.25em;line-height:1.6}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);font-weight:500;text-decoration:underline}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:decimal}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em;list-style-type:disc}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-counters);font-weight:400}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.25em;font-weight:600}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em;font-style:italic;font-weight:500}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:900}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:800}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);margin-top:1.5em;margin-bottom:.5em;font-weight:600;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-weight:700}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;display:block}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows);padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;border-radius:.3125rem;padding-inline-start:.375em;font-family:inherit;font-size:.875em;font-weight:500}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-size:.875em;font-weight:600}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);padding-top:.857143em;padding-inline-end:1.14286em;padding-bottom:.857143em;border-radius:.375rem;margin-top:1.71429em;margin-bottom:1.71429em;padding-inline-start:1.14286em;font-size:.875em;font-weight:400;line-height:1.71429;overflow-x:auto}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;background-color:#0000;border-width:0;border-radius:0;padding:0}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before,.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){table-layout:auto;width:100%;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);vertical-align:bottom;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em;font-weight:600}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);margin-top:.857143em;font-size:.875em;line-height:1.42857}.prose{--tw-prose-body:oklch(37.3% .034 259.733);--tw-prose-headings:oklch(21% .034 264.665);--tw-prose-lead:oklch(44.6% .03 256.802);--tw-prose-links:oklch(21% .034 264.665);--tw-prose-bold:oklch(21% .034 264.665);--tw-prose-counters:oklch(55.1% .027 264.364);--tw-prose-bullets:oklch(87.2% .01 258.338);--tw-prose-hr:oklch(92.8% .006 264.531);--tw-prose-quotes:oklch(21% .034 264.665);--tw-prose-quote-borders:oklch(92.8% .006 264.531);--tw-prose-captions:oklch(55.1% .027 264.364);--tw-prose-kbd:oklch(21% .034 264.665);--tw-prose-kbd-shadows:oklab(21% -.00316127 -.0338527/.1);--tw-prose-code:oklch(21% .034 264.665);--tw-prose-pre-code:oklch(92.8% .006 264.531);--tw-prose-pre-bg:oklch(27.8% .033 256.848);--tw-prose-th-borders:oklch(87.2% .01 258.338);--tw-prose-td-borders:oklch(92.8% .006 264.531);--tw-prose-invert-body:oklch(87.2% .01 258.338);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.7% .022 261.325);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.7% .022 261.325);--tw-prose-invert-bullets:oklch(44.6% .03 256.802);--tw-prose-invert-hr:oklch(37.3% .034 259.733);--tw-prose-invert-quotes:oklch(96.7% .003 264.542);--tw-prose-invert-quote-borders:oklch(37.3% .034 259.733);--tw-prose-invert-captions:oklch(70.7% .022 261.325);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(87.2% .01 258.338);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.6% .03 256.802);--tw-prose-invert-td-borders:oklch(37.3% .034 259.733);font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.571429em;padding-inline-end:.571429em;padding-bottom:.571429em;padding-inline-start:.571429em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-sm{font-size:.875rem;line-height:1.71429}.prose-sm :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.888889em;margin-bottom:.888889em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.33333em;margin-bottom:1.33333em;padding-inline-start:1.11111em}.prose-sm :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:.8em;font-size:2.14286em;line-height:1.2}.prose-sm :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6em;margin-bottom:.8em;font-size:1.42857em;line-height:1.4}.prose-sm :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.55556em;margin-bottom:.444444em;font-size:1.28571em;line-height:1.55556}.prose-sm :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.42857em;margin-bottom:.571429em;line-height:1.42857}.prose-sm :where(img):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.142857em;padding-inline-end:.357143em;padding-bottom:.142857em;border-radius:.3125rem;padding-inline-start:.357143em;font-size:.857143em}.prose-sm :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em}.prose-sm :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.9em}.prose-sm :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.888889em}.prose-sm :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;border-radius:.25rem;margin-top:1.66667em;margin-bottom:1.66667em;padding-inline-start:1em;font-size:.857143em;line-height:1.66667}.prose-sm :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em;padding-inline-start:1.57143em}.prose-sm :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;margin-bottom:.285714em}.prose-sm :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.428571em}.prose-sm :where(.prose-sm>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(.prose-sm>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(.prose-sm>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.14286em}.prose-sm :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.571429em;margin-bottom:.571429em}.prose-sm :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em;margin-bottom:1.14286em}.prose-sm :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.14286em}.prose-sm :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.285714em;padding-inline-start:1.57143em}.prose-sm :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2.85714em;margin-bottom:2.85714em}.prose-sm :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)),.prose-sm :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.857143em;line-height:1.5}.prose-sm :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.666667em;padding-inline-end:1em;padding-bottom:.666667em;padding-inline-start:1em}.prose-sm :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-sm :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-sm :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.71429em;margin-bottom:1.71429em}.prose-sm :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-sm :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.666667em;font-size:.857143em;line-height:1.33333}.prose-sm :where(.prose-sm>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-sm :where(.prose-sm>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.-mr-0\.5{margin-right:calc(var(--spacing) * -.5)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-17{height:calc(var(--spacing) * 17)}.h-19{height:calc(var(--spacing) * 19)}.h-\[min\(70vh\,20rem\)\]{height:min(70vh,20rem)}.h-\[min\(92vh\,720px\)\]{height:min(92vh,720px)}.h-\[min\(520px\,60vh\)\]{height:min(520px,60vh)}.h-full{height:100%}.max-h-28{max-height:calc(var(--spacing) * 28)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-44{max-height:calc(var(--spacing) * 44)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-\[86vh\]{max-height:86vh}.max-h-\[min\(60vh\,520px\)\]{max-height:min(60vh,520px)}.min-h-0{min-height:0}.min-h-5{min-height:calc(var(--spacing) * 5)}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-13{min-height:calc(var(--spacing) * 13)}.min-h-22{min-height:calc(var(--spacing) * 22)}.min-h-30{min-height:calc(var(--spacing) * 30)}.min-h-screen{min-height:100vh}.w-\(--button-width\){width:var(--button-width)}.w-\(--input-width\){width:var(--input-width)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-18{width:calc(var(--spacing) * 18)}.w-34{width:calc(var(--spacing) * 34)}.w-38{width:calc(var(--spacing) * 38)}.w-40{width:calc(var(--spacing) * 40)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-\[min\(100vw-2rem\,16rem\)\]{width:min(100vw - 2rem,16rem)}.w-\[min\(320px\,calc\(100vw-24px\)\)\]{width:min(320px,100vw - 24px)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-32{max-width:calc(var(--spacing) * 32)}.max-w-36{max-width:calc(var(--spacing) * 36)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-48{max-width:calc(var(--spacing) * 48)}.max-w-55{max-width:calc(var(--spacing) * 55)}.max-w-\[45\%\]{max-width:45%}.max-w-\[82\%\]{max-width:82%}.max-w-\[min\(40vw\,11rem\)\]{max-width:min(40vw,11rem)}.max-w-\[min\(64rem\,100\%\)\]{max-width:min(64rem,100%)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.min-w-4\.5{min-width:calc(var(--spacing) * 4.5)}.min-w-30{min-width:calc(var(--spacing) * 30)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-48{min-width:calc(var(--spacing) * 48)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-decimal{list-style-type:decimal}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.flex-col{flex-direction:column}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-stone-100>:not(:last-child)){border-color:var(--color-stone-100)}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[14px\]{border-radius:14px}.rounded-\[20px\]{border-radius:20px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\(--tw-border\){border-color:var(--tw-border)}.border-\[\#4176e6\]{border-color:#4176e6}.border-\[\#4176e6\]\/20{border-color:oklab(58.9558% -.0218001 -.178009/.2)}.border-\[\#4176e6\]\/25{border-color:oklab(58.9558% -.0218001 -.178009/.25)}.border-\[\#4176e6\]\/30{border-color:oklab(58.9558% -.0218001 -.178009/.3)}.border-\[\#4176e6\]\/35{border-color:oklab(58.9558% -.0218001 -.178009/.35)}.border-\[\#4176e6\]\/40{border-color:oklab(58.9558% -.0218001 -.178009/.4)}.border-\[\#4176e6\]\/50{border-color:oklab(58.9558% -.0218001 -.178009/.5)}.border-\[\#c7dcff\]{border-color:#c7dcff}.border-amber-100{border-color:var(--color-amber-100)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-200\/70{border-color:#fee685b3}@supports (color:color-mix(in lab, red, red)){.border-amber-200\/70{border-color:color-mix(in oklab, var(--color-amber-200) 70%, transparent)}}.border-amber-200\/80{border-color:#fee685cc}@supports (color:color-mix(in lab, red, red)){.border-amber-200\/80{border-color:color-mix(in oklab, var(--color-amber-200) 80%, transparent)}}.border-amber-300{border-color:var(--color-amber-300)}.border-amber-300\/60{border-color:#ffd23699}@supports (color:color-mix(in lab, red, red)){.border-amber-300\/60{border-color:color-mix(in oklab, var(--color-amber-300) 60%, transparent)}}.border-emerald-100{border-color:var(--color-emerald-100)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-500{border-color:var(--color-emerald-500)}.border-purple-400{border-color:var(--color-purple-400)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-stone-100{border-color:var(--color-stone-100)}.border-stone-200{border-color:var(--color-stone-200)}.border-stone-200\/60{border-color:#e7e5e499}@supports (color:color-mix(in lab, red, red)){.border-stone-200\/60{border-color:color-mix(in oklab, var(--color-stone-200) 60%, transparent)}}.border-stone-200\/80{border-color:#e7e5e4cc}@supports (color:color-mix(in lab, red, red)){.border-stone-200\/80{border-color:color-mix(in oklab, var(--color-stone-200) 80%, transparent)}}.border-stone-200\/90{border-color:#e7e5e4e6}@supports (color:color-mix(in lab, red, red)){.border-stone-200\/90{border-color:color-mix(in oklab, var(--color-stone-200) 90%, transparent)}}.border-stone-300{border-color:var(--color-stone-300)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-\(--tw-session-hover-bg\){background-color:var(--tw-session-hover-bg)}.bg-\(--tw-surface-page\){background-color:var(--tw-surface-page)}.bg-\[\#4176e6\]{background-color:#4176e6}.bg-\[\#4176e6\]\/10{background-color:oklab(58.9558% -.0218001 -.178009/.1)}.bg-\[\#e8f0fe\]{background-color:#e8f0fe}.bg-\[\#edf3fe\]{background-color:#edf3fe}.bg-\[\#f2f7ff\]{background-color:#f2f7ff}.bg-\[\#f4f5f7\]{background-color:#f4f5f7}.bg-\[\#f5f8ff\]{background-color:#f5f8ff}.bg-\[\#f8f9fb\]{background-color:#f8f9fb}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-50\/30{background-color:#fffbeb4d}@supports (color:color-mix(in lab, red, red)){.bg-amber-50\/30{background-color:color-mix(in oklab, var(--color-amber-50) 30%, transparent)}}.bg-amber-50\/90{background-color:#fffbebe6}@supports (color:color-mix(in lab, red, red)){.bg-amber-50\/90{background-color:color-mix(in oklab, var(--color-amber-50) 90%, transparent)}}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/15{background-color:#fcbb0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/15{background-color:color-mix(in oklab, var(--color-amber-400) 15%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-current{background-color:currentColor}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-stone-50{background-color:var(--color-stone-50)}.bg-stone-50\/50{background-color:#fafaf980}@supports (color:color-mix(in lab, red, red)){.bg-stone-50\/50{background-color:color-mix(in oklab, var(--color-stone-50) 50%, transparent)}}.bg-stone-50\/60{background-color:#fafaf999}@supports (color:color-mix(in lab, red, red)){.bg-stone-50\/60{background-color:color-mix(in oklab, var(--color-stone-50) 60%, transparent)}}.bg-stone-100{background-color:var(--color-stone-100)}.bg-stone-100\/80{background-color:#f5f5f4cc}@supports (color:color-mix(in lab, red, red)){.bg-stone-100\/80{background-color:color-mix(in oklab, var(--color-stone-100) 80%, transparent)}}.bg-stone-200{background-color:var(--color-stone-200)}.bg-stone-200\/70{background-color:#e7e5e4b3}@supports (color:color-mix(in lab, red, red)){.bg-stone-200\/70{background-color:color-mix(in oklab, var(--color-stone-200) 70%, transparent)}}.bg-stone-300{background-color:var(--color-stone-300)}.bg-stone-400{background-color:var(--color-stone-400)}.bg-stone-800{background-color:var(--color-stone-800)}.bg-stone-900{background-color:var(--color-stone-900)}.bg-stone-900\/30{background-color:#1c19174d}@supports (color:color-mix(in lab, red, red)){.bg-stone-900\/30{background-color:color-mix(in oklab, var(--color-stone-900) 30%, transparent)}}.bg-stone-950\/45{background-color:#0c0a0973}@supports (color:color-mix(in lab, red, red)){.bg-stone-950\/45{background-color:color-mix(in oklab, var(--color-stone-950) 45%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-12{padding-inline:calc(var(--spacing) * 12)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pl-0{padding-left:0}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-5\.5{padding-left:calc(var(--spacing) * 5.5)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-\[inherit\]{font-family:inherit}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[18px\]{font-size:18px}.text-\[22px\]{font-size:22px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-4\.5{--tw-leading:calc(var(--spacing) * 4.5);line-height:calc(var(--spacing) * 4.5)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-5\.5{--tw-leading:calc(var(--spacing) * 5.5);line-height:calc(var(--spacing) * 5.5)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\(--tw-accent\){color:var(--tw-accent)}.text-\(--tw-label-primary\){color:var(--tw-label-primary)}.text-\(--tw-label-tertiary\){color:var(--tw-label-tertiary)}.text-\[\#3565c7\]{color:#3565c7}.text-\[\#4176e6\]{color:#4176e6}.text-\[\#4176e6\]\/70{color:oklab(58.9558% -.0218001 -.178009/.7)}.text-\[\#4176e6\]\/80{color:oklab(58.9558% -.0218001 -.178009/.8)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-700\/80{color:#b75000cc}@supports (color:color-mix(in lab, red, red)){.text-amber-700\/80{color:color-mix(in oklab, var(--color-amber-700) 80%, transparent)}}.text-amber-700\/90{color:#b75000e6}@supports (color:color-mix(in lab, red, red)){.text-amber-700\/90{color:color-mix(in oklab, var(--color-amber-700) 90%, transparent)}}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-700\/70{color:#007956b3}@supports (color:color-mix(in lab, red, red)){.text-emerald-700\/70{color:color-mix(in oklab, var(--color-emerald-700) 70%, transparent)}}.text-emerald-800{color:var(--color-emerald-800)}.text-emerald-900{color:var(--color-emerald-900)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-700\/70{color:#bf000fb3}@supports (color:color-mix(in lab, red, red)){.text-red-700\/70{color:color-mix(in oklab, var(--color-red-700) 70%, transparent)}}.text-red-800{color:var(--color-red-800)}.text-rose-500{color:var(--color-rose-500)}.text-sky-700{color:var(--color-sky-700)}.text-stone-300{color:var(--color-stone-300)}.text-stone-400{color:var(--color-stone-400)}.text-stone-400\/80{color:#a6a09bcc}@supports (color:color-mix(in lab, red, red)){.text-stone-400\/80{color:color-mix(in oklab, var(--color-stone-400) 80%, transparent)}}.text-stone-500{color:var(--color-stone-500)}.text-stone-600{color:var(--color-stone-600)}.text-stone-700{color:var(--color-stone-700)}.text-stone-800{color:var(--color-stone-800)}.text-stone-900{color:var(--color-stone-900)}.text-transparent{color:#0000}.text-violet-700{color:var(--color-violet-700)}.text-white{color:var(--color-white)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-\[\#4176e6\]{accent-color:#4176e6}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_1px_0_rgba\(15\,23\,42\,0\.02\)\]{--tw-shadow:0 1px 0 var(--tw-shadow-color,#0f172a05);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_4px_14px_-4px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow:0 4px 14px -4px var(--tw-shadow-color,#0f172a14);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_4px_20px_rgba\(15\,23\,42\,0\.06\)\]{--tw-shadow:0 4px 20px var(--tw-shadow-color,#0f172a0f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_6px_24px_rgba\(15\,23\,42\,0\.08\)\]{--tw-shadow:0 6px 24px var(--tw-shadow-color,#0f172a14);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-\[\#4176e6\]{--tw-ring-color:#4176e6}.ring-\[\#4176e6\]\/30{--tw-ring-color:oklab(58.9558% -.0218001 -.178009/.3)}.ring-stone-200{--tw-ring-color:var(--color-stone-200)}.ring-stone-200\/80{--tw-ring-color:#e7e5e4cc}@supports (color:color-mix(in lab, red, red)){.ring-stone-200\/80{--tw-ring-color:color-mix(in oklab, var(--color-stone-200) 80%, transparent)}}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.prose-stone{--tw-prose-body:oklch(37.4% .01 67.558);--tw-prose-headings:oklch(21.6% .006 56.043);--tw-prose-lead:oklch(44.4% .011 73.639);--tw-prose-links:oklch(21.6% .006 56.043);--tw-prose-bold:oklch(21.6% .006 56.043);--tw-prose-counters:oklch(55.3% .013 58.071);--tw-prose-bullets:oklch(86.9% .005 56.366);--tw-prose-hr:oklch(92.3% .003 48.717);--tw-prose-quotes:oklch(21.6% .006 56.043);--tw-prose-quote-borders:oklch(92.3% .003 48.717);--tw-prose-captions:oklch(55.3% .013 58.071);--tw-prose-kbd:oklch(21.6% .006 56.043);--tw-prose-kbd-shadows:oklab(21.6% .00335142 .00497674/.1);--tw-prose-code:oklch(21.6% .006 56.043);--tw-prose-pre-code:oklch(92.3% .003 48.717);--tw-prose-pre-bg:oklch(26.8% .007 34.298);--tw-prose-th-borders:oklch(86.9% .005 56.366);--tw-prose-td-borders:oklch(92.3% .003 48.717);--tw-prose-invert-body:oklch(86.9% .005 56.366);--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:oklch(70.9% .01 56.259);--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:oklch(70.9% .01 56.259);--tw-prose-invert-bullets:oklch(44.4% .011 73.639);--tw-prose-invert-hr:oklch(37.4% .01 67.558);--tw-prose-invert-quotes:oklch(97% .001 106.424);--tw-prose-invert-quote-borders:oklch(37.4% .01 67.558);--tw-prose-invert-captions:oklch(70.9% .01 56.259);--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:#ffffff1a;--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:oklch(86.9% .005 56.366);--tw-prose-invert-pre-bg:#00000080;--tw-prose-invert-th-borders:oklch(44.4% .011 73.639);--tw-prose-invert-td-borders:oklch(37.4% .01 67.558)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.group-data-\[open\]\:rotate-180:is(:where(.group)[data-open] *){rotate:180deg}.group-data-\[selected\]\:opacity-100:is(:where(.group)[data-selected] *){opacity:1}.placeholder\:text-\(--tw-label-tertiary\)::placeholder{color:var(--tw-label-tertiary)}.placeholder\:text-stone-400::placeholder{color:var(--color-stone-400)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.focus-within\:z-40:focus-within{z-index:40}.focus-within\:border-\[\#4176e6\]:focus-within{border-color:#4176e6}.focus-within\:shadow-\[0_4px_24px_rgba\(65\,118\,230\,0\.14\)\]:focus-within{--tw-shadow:0 4px 24px var(--tw-shadow-color,#4176e624);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[\#4176e6\]\/25:focus-within{--tw-ring-color:oklab(58.9558% -.0218001 -.178009/.25)}.focus-within\:ring-\[\#4176e6\]\/30:focus-within{--tw-ring-color:oklab(58.9558% -.0218001 -.178009/.3)}@media (hover:hover){.hover\:z-40:hover{z-index:40}.hover\:border-\[\#4176e6\]:hover{border-color:#4176e6}.hover\:border-amber-400:hover{border-color:var(--color-amber-400)}.hover\:border-stone-300:hover{border-color:var(--color-stone-300)}.hover\:border-stone-400:hover{border-color:var(--color-stone-400)}.hover\:bg-\(--tw-session-hover-bg\):hover{background-color:var(--tw-session-hover-bg)}.hover\:bg-\[\#3467d4\]:hover{background-color:#3467d4}.hover\:bg-\[\#3565c7\]:hover{background-color:#3565c7}.hover\:bg-\[\#3566d0\]:hover{background-color:#3566d0}.hover\:bg-\[\#e8f0fe\]:hover{background-color:#e8f0fe}.hover\:bg-\[\#edf3fe\]\/50:hover{background-color:oklab(96.2819% -.00202993 -.0159631/.5)}.hover\:bg-\[\#f5f8ff\]:hover{background-color:#f5f8ff}.hover\:bg-amber-50\/40:hover{background-color:#fffbeb66}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-50\/40:hover{background-color:color-mix(in oklab, var(--color-amber-50) 40%, transparent)}}.hover\:bg-amber-50\/70:hover{background-color:#fffbebb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-50\/70:hover{background-color:color-mix(in oklab, var(--color-amber-50) 70%, transparent)}}.hover\:bg-amber-400:hover{background-color:var(--color-amber-400)}.hover\:bg-black\/75:hover{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/75:hover{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.hover\:bg-emerald-50:hover{background-color:var(--color-emerald-50)}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-emerald-700:hover{background-color:var(--color-emerald-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-stone-50:hover{background-color:var(--color-stone-50)}.hover\:bg-stone-50\/80:hover{background-color:#fafaf9cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-stone-50\/80:hover{background-color:color-mix(in oklab, var(--color-stone-50) 80%, transparent)}}.hover\:bg-stone-100:hover{background-color:var(--color-stone-100)}.hover\:bg-stone-200\/60:hover{background-color:#e7e5e499}@supports (color:color-mix(in lab, red, red)){.hover\:bg-stone-200\/60:hover{background-color:color-mix(in oklab, var(--color-stone-200) 60%, transparent)}}.hover\:bg-stone-200\/70:hover{background-color:#e7e5e4b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-stone-200\/70:hover{background-color:color-mix(in oklab, var(--color-stone-200) 70%, transparent)}}.hover\:bg-stone-200\/80:hover{background-color:#e7e5e4cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-stone-200\/80:hover{background-color:color-mix(in oklab, var(--color-stone-200) 80%, transparent)}}.hover\:bg-stone-300:hover{background-color:var(--color-stone-300)}.hover\:bg-stone-700:hover{background-color:var(--color-stone-700)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/70:hover{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/70:hover{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.hover\:bg-white\/80:hover{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/80:hover{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.hover\:text-\(--tw-label-primary\):hover{color:var(--tw-label-primary)}.hover\:text-\[\#4176e6\]:hover{color:#4176e6}.hover\:text-amber-700:hover{color:var(--color-amber-700)}.hover\:text-emerald-700:hover{color:var(--color-emerald-700)}.hover\:text-emerald-900:hover{color:var(--color-emerald-900)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-900:hover{color:var(--color-red-900)}.hover\:text-stone-500:hover{color:var(--color-stone-500)}.hover\:text-stone-600:hover{color:var(--color-stone-600)}.hover\:text-stone-700:hover{color:var(--color-stone-700)}.hover\:text-stone-800:hover{color:var(--color-stone-800)}.hover\:text-stone-900:hover{color:var(--color-stone-900)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-\[inset_3px_0_0_0_var\(--tw-accent\)\]:hover{--tw-shadow:inset 3px 0 0 0 var(--tw-shadow-color,var(--tw-accent));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus\:border-\[\#4176e6\]:focus{border-color:#4176e6}.focus\:border-amber-500:focus{border-color:var(--color-amber-500)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[\#4176e6\]\/30:focus{--tw-ring-color:oklab(58.9558% -.0218001 -.178009/.3)}.focus\:ring-\[\#4176e6\]\/35:focus{--tw-ring-color:oklab(58.9558% -.0218001 -.178009/.35)}.focus\:ring-\[\#4176e6\]\/40:focus{--tw-ring-color:oklab(58.9558% -.0218001 -.178009/.4)}.focus\:ring-amber-500\/40:focus{--tw-ring-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.focus\:ring-amber-500\/40:focus{--tw-ring-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.focus\:outline-none:focus,.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[\#a9c3ef\]:disabled{background-color:#a9c3ef}.disabled\:bg-stone-50:disabled{background-color:var(--color-stone-50)}.disabled\:bg-stone-300:disabled{background-color:var(--color-stone-300)}.disabled\:text-stone-200:disabled{color:var(--color-stone-200)}.disabled\:text-stone-400:disabled{color:var(--color-stone-400)}.disabled\:no-underline:disabled{text-decoration-line:none}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.data-\[focus\]\:bg-\[\#edf3fe\][data-focus]{background-color:#edf3fe}.data-\[focus\]\:bg-stone-50[data-focus]{background-color:var(--color-stone-50)}.data-\[focus\]\:bg-stone-100[data-focus],.data-\[open\]\:bg-stone-100[data-open]{background-color:var(--color-stone-100)}.data-\[selected\]\:font-medium[data-selected]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[selected\]\:text-\(--tw-accent\)[data-selected]{color:var(--tw-accent)}.data-\[selected\]\:text-\[\#3565c7\][data-selected]{color:#3565c7}.data-\[selected\]\:text-stone-900[data-selected]{color:var(--color-stone-900)}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (width>=40rem){.sm\:right-10{right:calc(var(--spacing) * 10)}.sm\:block{display:block}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:justify-start{justify-content:flex-start}.sm\:px-1{padding-inline:var(--spacing)}.sm\:px-10{padding-inline:calc(var(--spacing) * 10)}.sm\:px-16{padding-inline:calc(var(--spacing) * 16)}}@media (width>=48rem){.md\:block{display:block}.md\:min-h-screen{min-height:100vh}.md\:w-52{width:calc(var(--spacing) * 52)}.md\:w-full{width:100%}.md\:flex-col{flex-direction:column}.md\:flex-row{flex-direction:row}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:px-8{padding-inline:calc(var(--spacing) * 8)}.md\:py-0{padding-block:0}.md\:py-8{padding-block:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:right-12{right:calc(var(--spacing) * 12)}.lg\:px-12{padding-inline:calc(var(--spacing) * 12)}.lg\:px-20{padding-inline:calc(var(--spacing) * 20)}}@media (width>=80rem){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}:root{--tw-font-session-title:14px;--tw-font-session-title-lh:20px;--tw-font-session-meta:10px;--tw-font-session-meta-lh:16px;--tw-font-ui-sm:12px;--tw-font-ui:var(--tw-ui-font-size,14px);--tw-session-row-h:32px;--tw-project-row-h:34px;--tw-accent:#4176e6;--tw-accent-soft:#e8f0fe;--tw-surface-page:#f5f6f8;--tw-surface-nav:#fff;--tw-surface-rail:#eef0f49e;--tw-surface-rail-solid:#eef0f4;--tw-surface-panel:#fff;--tw-border:#e4e7ec;--tw-session-hover-bg:#0000000a;--tw-session-selected-bg:#4176e61a;--tw-rail-edge:transparent;--tw-label-primary:#1c1c1e;--tw-label-secondary:#5f6368;--tw-label-tertiary:#8e8e93;--tw-nav-width:15rem;--tw-nav-width-collapsed:3.75rem}html,body{height:100%}.tw-app button:focus,.tw-app button:focus-visible,.tw-app [role=button]:focus,.tw-app [role=button]:focus-visible,.tw-app summary:focus,.tw-app summary:focus-visible,.tw-app a:focus,.tw-app a:focus-visible{box-shadow:none;outline:none!important}.tw-app button:focus-visible,.tw-app [role=button]:focus-visible{--tw-ring-shadow:0 0 #0000;--tw-ring-offset-shadow:0 0 #0000}html{background-color:var(--tw-surface-page);font-size:16px}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body,.tw-body,.tw-main{font-size:var(--tw-ui-font-size,14px);line-height:1.5;font-family:var(--font-sans);letter-spacing:.01em}.tw-body{background-color:var(--tw-surface-page);color:var(--tw-label-primary);min-width:1024px}.tw-main{margin-left:var(--tw-nav-width);background-color:var(--tw-surface-page);color:var(--tw-label-primary);transition:margin-left .18s;position:relative}html[data-nav-collapsed="1"] .tw-main{margin-left:var(--tw-nav-width-collapsed)}.tw-library-page{flex-direction:column;width:100%;max-width:72rem;height:100dvh;margin-inline:auto;display:flex}@media (width>=1280px){.tw-library-page{max-width:80rem}}@media (width>=1536px){.tw-library-page{max-width:90rem}}.tw-library-page>astro-island{flex:auto;min-height:0;display:flex}.tw-library-page>astro-island>*{flex:auto;min-width:0;min-height:0}.tw-library-page>astro-island>.tw-lib-notice{flex:none;align-self:flex-start;width:100%;min-height:0}.tw-lib-probing{border:1px solid var(--tw-border);background:var(--tw-surface-panel);border-radius:12px;flex:auto;justify-content:center;align-items:center;min-height:0;display:flex}.tw-lib-spin{border:2.5px solid var(--tw-accent);border-radius:999px;width:1.5rem;height:1.5rem}@supports (color:color-mix(in lab, red, red)){.tw-lib-spin{border:2.5px solid color-mix(in srgb, var(--tw-accent) 25%, transparent)}}.tw-lib-spin{border-top-color:var(--tw-accent);animation:.7s linear infinite tw-route-spin}.tw-busy-status{color:var(--tw-accent);font-size:11px;line-height:1.25rem}.tw-busy-ellipsis:after{text-align:left;content:"";width:1.25em;animation:1.2s steps(4,end) infinite tw-busy-ellipsis;display:inline-block}@keyframes tw-busy-ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%,to{content:"..."}}.tw-project-row,.tw-session-row{box-shadow:none;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--tw-label-primary);box-sizing:border-box;text-align:left;border:0;border-radius:6px;outline:none;justify-content:flex-start;align-items:center;gap:6px;padding:0 10px;display:flex}.tw-project-row{height:var(--tw-project-row-h)}.tw-session-row{height:var(--tw-session-row-h);gap:0}.tw-project-row:hover,.tw-session-row:hover{background:var(--tw-session-hover-bg)}.tw-session-row.is-selected,.tw-session-row.is-menu-open{background:var(--tw-session-selected-bg)}.tw-session-rail{background:var(--tw-surface-rail-solid);position:relative;border-right-color:var(--tw-border)!important}.tw-rail-plugin-btn{color:var(--tw-label-secondary);background:var(--tw-label-primary)}@supports (color:color-mix(in lab, red, red)){.tw-rail-plugin-btn{background:color-mix(in srgb, var(--tw-label-primary) 6%, transparent)}}.tw-rail-plugin-btn{border:1px solid #0000}.tw-rail-plugin-btn:hover{color:var(--tw-label-primary);background:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){.tw-rail-plugin-btn:hover{background:color-mix(in srgb, var(--tw-accent) 12%, transparent)}}.tw-rail-plugin-btn.is-active{color:#fff;background:var(--tw-accent)}.tw-rail-plugin-btn--icon{background:0 0;border:0}.tw-rail-plugin-btn--icon:hover{background:var(--tw-session-hover-bg)}.tw-rail-plugin-btn--icon.is-active{color:#fff;background:var(--tw-accent)}.tw-workbench-host{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.tw-workbench-host>astro-island{flex:auto;width:100%;min-height:0;display:flex}.tw-workbench-host>astro-island>*{flex:auto;width:100%;min-width:0;min-height:0}.tw-plugins-rail{background:var(--tw-surface-rail-solid);border-left-color:var(--tw-border)!important}.tw-plugins-page{container:plugins/inline-size}.tw-plugins-rail .tw-plugins-page{flex:auto;min-height:0}.tw-plugin-grid{grid-template-columns:1fr;align-items:start;gap:.75rem;display:grid}@container plugins (width>=34rem){.tw-plugin-grid{grid-template-columns:1fr 1fr}}.tw-session-action-btn{color:var(--tw-label-tertiary);background:0 0;border:0}.tw-session-action-btn:hover{color:var(--tw-label-primary);background:var(--tw-session-hover-bg)}.tw-rail-workspace-footer{align-items:center;gap:8px;min-width:0;display:flex}.tw-rail-workspace-label{color:var(--tw-label-tertiary);flex:none;font-size:11px;line-height:1.3}.tw-rail-workspace-name{min-width:0;color:var(--tw-label-secondary);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;line-height:1.3;overflow:hidden}.tw-session-row.is-nested{padding-inline-start:30px}.tw-slot{width:16px;height:20px;color:var(--tw-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.tw-project-row .tw-chevron{display:none}.tw-project-row .tw-folder,.tw-project-row:hover .tw-chevron,.tw-project-row.is-menu-open .tw-chevron{color:var(--tw-label-tertiary);display:inline-flex}.tw-project-row:hover .tw-folder,.tw-project-row.is-menu-open .tw-folder{display:none}.tw-project-row.is-active .tw-folder,.tw-project-row.is-active:hover .tw-chevron,.tw-project-row.is-active.is-menu-open .tw-chevron{color:var(--tw-accent)}.tw-arrow{transition:transform .15s ease-in-out}.tw-arrow.is-open{transform:rotate(90deg)}.tw-project-row .tw-ws-actions{align-items:center;gap:0;display:none}.tw-project-row:hover .tw-ws-actions,.tw-project-row.is-menu-open .tw-ws-actions{display:inline-flex}.tw-session-title{white-space:nowrap;min-width:0;font-size:var(--tw-font-session-title);line-height:var(--tw-font-session-title-lh);color:var(--tw-label-secondary);box-shadow:none;background:0 0;border:0;outline:none;flex:auto;justify-content:flex-start;margin:0 8px 0 0;padding:0;position:relative;overflow:hidden;text-align:left!important}.tw-session-title-inner{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.tw-session-row:hover .tw-session-title.is-overflow,.tw-session-row.is-menu-open .tw-session-title.is-overflow{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 14px calc(100% - 14px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 14px calc(100% - 14px),#0000 100%)}.tw-session-row:hover .tw-session-title.is-overflow .tw-session-title-inner,.tw-session-row.is-menu-open .tw-session-title.is-overflow .tw-session-title-inner{text-overflow:clip;max-width:none;padding-right:28px;animation:7s linear infinite tw-session-marquee;display:inline-block;overflow:visible}@keyframes tw-session-marquee{0%,12%{transform:translate(0)}88%,to{transform:translateX(var(--tw-marquee-shift,-40%))}}.tw-session-row.is-selected .tw-session-title{color:var(--tw-label-primary);font-weight:500}.tw-session-preview{z-index:90;background:var(--tw-surface-panel);width:240px;color:var(--tw-label-primary);border:1px solid var(--tw-border);pointer-events:auto;text-align:left;cursor:default;border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px #0000001a}html[data-theme=dark] .tw-session-preview{box-shadow:0 12px 28px #00000073}.tw-session-preview-title{color:var(--tw-label-primary);white-space:normal;overflow-wrap:anywhere;word-break:break-word;font-size:13px;font-weight:500;line-height:18px}.tw-session-preview-meta{color:var(--tw-label-tertiary);margin-top:6px;font-size:11px;line-height:16px}.tw-session-preview-status{color:var(--tw-label-secondary);align-items:center;gap:6px;margin-top:6px;font-size:11px;line-height:16px;display:flex}.tw-session-preview-status:before{content:"";background:var(--tw-label-tertiary);border-radius:999px;flex:none;width:6px;height:6px}.tw-session-preview-status.is-busy:before{background:#34c759}.tw-session-busy-slot{pointer-events:none;z-index:1;justify-content:center;align-items:center;width:16px;height:20px;display:inline-flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.tw-session-row:not(.is-nested) .tw-session-busy-slot{pointer-events:auto;flex:none;position:static;transform:none}.tw-session-busy-dot{background:#34c759;border-radius:999px;width:7px;height:7px;animation:1.4s ease-out infinite tw-session-busy-pulse;box-shadow:0 0 #34c75980}@keyframes tw-session-busy-pulse{0%{box-shadow:0 0 #34c75980}70%{box-shadow:0 0 0 5px #34c75900}to{box-shadow:0 0 #34c75900}}@media (prefers-reduced-motion:reduce){.tw-session-busy-dot{animation:none}}.tw-project-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--tw-font-session-title);line-height:var(--tw-font-session-title-lh);color:var(--tw-label-secondary);text-align:left;flex:auto;overflow:hidden}.tw-session-time{font-size:var(--tw-font-session-meta);line-height:var(--tw-font-session-meta-lh);color:var(--tw-label-tertiary);font-variant-numeric:tabular-nums;flex:none}.tw-session-row:hover .tw-session-time,.tw-session-row.is-menu-open .tw-session-time,.tw-session-row:hover .tw-pin-indicator,.tw-session-row.is-menu-open .tw-pin-indicator,.tw-session-row .tw-row-actions{display:none}.tw-session-row:hover .tw-row-actions,.tw-session-row.is-menu-open .tw-row-actions{display:inline-flex}.tw-chat-text{font-family:var(--font-sans);font-size:var(--tw-font-session-title);line-height:var(--tw-font-session-title-lh);color:var(--tw-label-primary);letter-spacing:.01em}.tw-chat-text-secondary{font-family:var(--font-sans);font-size:var(--tw-font-session-title);line-height:var(--tw-font-session-title-lh);color:var(--tw-label-secondary);letter-spacing:.01em}.tw-app .chat-md.prose{font-family:var(--font-sans);font-size:var(--tw-font-session-title);color:var(--tw-label-primary);line-height:1.65}.tw-app .chat-md.prose :where(p,li,td,th){font-size:inherit;line-height:inherit;color:inherit}.tw-app .chat-md.prose :where(h1,h2,h3,h4){color:var(--tw-label-primary);font-weight:600}.tw-app textarea.tw-chat-input{font-family:var(--font-sans);font-size:var(--tw-font-session-title);line-height:var(--tw-font-session-title-lh);color:var(--tw-label-primary);letter-spacing:.01em}.tw-nav-aside{width:var(--tw-nav-width);background-color:var(--tw-surface-nav);color:var(--tw-label-primary);border-right:1px solid var(--tw-border);transition:width .18s;overflow:visible}.tw-nav-brand{border-bottom:1px solid var(--tw-border);padding:14px 12px 12px}.tw-nav-brand-row{align-items:center;gap:6px;display:flex}.tw-nav-brand-link{min-width:0;color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.tw-nav-brand-mark{background:0 0;border-radius:9px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;overflow:hidden}.tw-nav-brand-mark-img{object-fit:contain;width:100%;height:100%;display:block}.tw-nav-brand-text{flex-direction:column;justify-content:center;gap:2px;min-width:0;display:flex}.tw-nav-brand-title-row{align-items:flex-start;gap:6px;min-width:0;display:flex}.tw-nav-brand-title{color:var(--tw-label-primary);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:600;line-height:1.25;overflow:hidden}.tw-nav-brand-ver{font-variant-numeric:tabular-nums;letter-spacing:.02em;height:18px;color:var(--tw-accent);background:var(--tw-accent-soft);border-radius:999px;flex:none;align-items:center;margin-top:-3px;padding:0 7px;font-size:10px;font-weight:600;line-height:1;display:inline-flex}.tw-nav-toggle{z-index:70;border:1px solid var(--tw-border);background:var(--tw-surface-nav);width:22px;height:44px;color:var(--tw-accent);cursor:pointer;view-transition-name:tw-nav-toggle;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .14s,border-color .14s,color .14s,box-shadow .14s,transform .14s;display:inline-flex;position:absolute;top:50%;right:0;transform:translate(50%,-50%);box-shadow:0 1px 2px #1018280f,0 4px 10px #1018280a}::view-transition-group(tw-nav-toggle){z-index:100;animation:none}::view-transition-new(tw-nav-toggle){animation:none}::view-transition-old(tw-nav-toggle){visibility:hidden;animation:none}.tw-nav-toggle:hover{background:var(--tw-accent-soft);border-color:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){.tw-nav-toggle:hover{border-color:color-mix(in srgb, var(--tw-accent) 40%, var(--tw-border))}}.tw-nav-toggle:hover{color:var(--tw-accent);box-shadow:0 2px 4px #10182814,0 6px 14px #4176e61f}.tw-nav-toggle:active{transform:translate(50%,-50%)scale(.96)}.tw-nav-toggle-icon.is-expand,html[data-nav-collapsed="1"] .tw-nav-toggle-icon.is-collapse{display:none}html[data-nav-collapsed="1"] .tw-nav-toggle-icon.is-expand{display:block}.tw-nav-list{flex-direction:column;gap:2px;padding:12px 10px;display:flex}.tw-nav-item{min-height:38px;color:var(--tw-label-secondary);border-radius:10px;align-items:center;gap:10px;padding:0 10px;text-decoration:none;transition:background-color .12s,color .12s;display:flex}html[data-plugin-off-cases] [data-plugin-nav=cases],html[data-plugin-off-prompts] [data-plugin-nav=prompts],html[data-plugin-off-knowledge-lib] [data-plugin-nav=knowledgeLib],html[data-plugin-off-requirements] [data-plugin-nav=requirements],html[data-plugin-off-templates] [data-plugin-nav=templates]{display:none}.tw-nav-libraries{flex-direction:column;gap:2px;display:flex}.tw-nav-libraries:has(>astro-island:not(:empty)) .tw-nav-libraries-ph,.tw-nav-ready{display:none}html[data-nav-cached] .tw-nav-libraries-ph{visibility:hidden}.tw-nav-item-main{min-width:0;color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;display:flex}.tw-nav-hover-btn{width:22px;height:22px;color:inherit;opacity:0;pointer-events:none;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tw-nav-item:hover .tw-nav-hover-btn,.tw-nav-item:focus-within .tw-nav-hover-btn,.tw-nav-item.is-action-open .tw-nav-hover-btn,.tw-nav-summary:hover .tw-nav-hover-btn,.tw-nav-summary:focus-within .tw-nav-hover-btn,.tw-nav-summary.is-action-open .tw-nav-hover-btn{opacity:.62;pointer-events:auto}.tw-nav-item:hover .tw-nav-hover-btn:hover,.tw-nav-summary:hover .tw-nav-hover-btn:hover,.tw-nav-hover-btn:focus-visible{opacity:1;color:var(--tw-accent);background:var(--tw-accent-soft)}.tw-nav-hover-btn svg{width:14px;height:14px}.tw-nav-group-pop{z-index:120;border:1px solid var(--tw-border);background:var(--tw-surface-panel);transform-origin:0 0;border-radius:12px;min-width:200px;max-width:240px;max-height:280px;padding:8px;animation:.12s ease-out both tw-nav-pop-in;position:fixed;overflow:auto;box-shadow:0 12px 32px #0f111529}.tw-nav-group-pop.is-closing{animation:.12s ease-in both tw-nav-pop-out}@keyframes tw-nav-pop-in{0%{opacity:0;transform:translateY(-4px)scale(.97)}to{opacity:1;transform:none}}@keyframes tw-nav-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-4px)scale(.98)}}@media (prefers-reduced-motion:reduce){.tw-nav-group-pop,.tw-nav-group-pop.is-closing{animation:none}}.tw-nav-group-pop-head{letter-spacing:.02em;color:var(--tw-label-primary);padding:4px 8px 8px;font-size:12px;font-weight:600}.tw-nav-group-pop-list{flex-direction:column;gap:2px;display:flex}.tw-nav-group-pop-item{width:100%;color:var(--tw-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:7px 8px;font-size:13px;line-height:1.3;display:flex}.tw-nav-group-pop-item:hover{background:var(--tw-session-hover-bg)}.tw-nav-group-pop-item.is-current{background:var(--tw-accent-soft);color:var(--tw-accent)}.tw-nav-group-pop-item.is-child{padding-left:22px}.tw-nav-group-pop-ico{width:14px;height:14px;color:var(--tw-label-muted,#a8a29e);flex:none}.tw-nav-group-pop-ico svg{width:14px;height:14px;display:block}.tw-nav-group-pop-item.is-current .tw-nav-group-pop-ico{color:var(--tw-accent)}.tw-nav-group-pop-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tw-nav-group-pop-tag{color:var(--tw-accent);flex:none;font-size:10px;font-weight:500}.tw-nav-group-pop-empty{color:var(--tw-label-muted,#a8a29e);padding:8px;font-size:12px}.tw-nav-group-pop-foot{border-top:1px solid var(--tw-border);flex-direction:column;gap:2px;margin-top:6px;padding-top:6px;display:flex}.tw-nav-group-pop-item.is-create,.tw-nav-group-pop-item.is-create .tw-nav-group-pop-ico{color:var(--tw-accent)}.tw-nav-group-pop-item.is-leave,.tw-nav-group-pop-item.is-leave .tw-nav-group-pop-ico{color:#c24141}html[data-theme=dark] .tw-nav-group-pop-item.is-leave,html[data-theme=dark] .tw-nav-group-pop-item.is-leave .tw-nav-group-pop-ico{color:#f2a4a4}.tw-nav-drag-row{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;display:flex}.tw-nav-drag-row.is-dragging{opacity:.45;cursor:grabbing;background:var(--tw-accent-soft)}.tw-nav-drag-grip{width:14px;height:14px;color:var(--tw-label-muted,#a8a29e);flex:none}.tw-nav-drag-row:active{cursor:grabbing}.tw-nav-drag-row--nested{padding-left:26px}html[data-nav-collapsed="1"] .tw-nav-hover-btn{display:none}.tw-nav-item:hover{background-color:var(--tw-session-hover-bg);color:var(--tw-label-primary)}.tw-nav-item.is-active{background-color:var(--tw-accent-soft);color:var(--tw-accent)}.tw-nav-ico{flex:none;width:18px;height:18px}.tw-nav-ico--open,.tw-nav-details[open]:not(.is-closing)>.tw-nav-summary .tw-nav-ico--closed{display:none}.tw-nav-details[open]:not(.is-closing)>.tw-nav-summary .tw-nav-ico--open{display:block}.tw-nav-item.is-branch-active{color:var(--tw-label-secondary);background-color:#0000}.tw-nav-item.is-branch-active .tw-nav-ico{color:var(--tw-accent)}.tw-nav-item.is-branch-active .tw-nav-label{color:var(--tw-label-secondary);font-weight:400}.tw-nav-item.is-branch-active .tw-nav-chevron{color:var(--tw-label-tertiary)}.tw-nav-item.is-branch-active:hover{background-color:var(--tw-session-hover-bg)}.tw-nav-item.is-branch-active:hover .tw-nav-label{color:var(--tw-label-primary)}.tw-nav-item.is-branch-active:hover .tw-nav-ico{color:var(--tw-accent)}.tw-mkdir-btn{color:var(--tw-accent);border-radius:6px;padding:4px 8px;font-size:12px;line-height:1;text-decoration:none;transition:background-color .12s,color .12s}.tw-mkdir-btn:hover:not(:disabled){background-color:var(--tw-accent-soft);text-decoration:none}.tw-mkdir-btn:disabled{opacity:.4}.tw-toggle{background-color:#d6d3d1;border-radius:9999px;flex-shrink:0;width:2.75rem;height:1.5rem;transition:background-color .15s;position:relative}.tw-toggle[aria-checked=true]{background-color:var(--tw-accent)}.tw-toggle-knob{background-color:#fff;border-radius:9999px;width:1.25rem;height:1.25rem;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.tw-toggle[aria-checked=true] .tw-toggle-knob{transform:translate(1.25rem)}html[data-theme=dark] .tw-toggle{background-color:#3a3f4b}html[data-theme=dark] .tw-toggle[aria-checked=true]{background-color:var(--tw-accent)}html[data-theme=dark] .tw-toggle-knob{background-color:#eceff4}.tw-nav-label{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:13.5px;line-height:20px;overflow:hidden}.tw-nav-summary{cursor:pointer;box-sizing:border-box;width:100%;list-style:none}.tw-nav-summary::-webkit-details-marker{display:none}.tw-nav-chevron{flex:none;width:14px;height:14px;margin-left:auto;transition:transform .28s cubic-bezier(.22,1,.36,1)}.tw-nav-details[open]:not(.is-closing)>.tw-nav-summary .tw-nav-chevron{transform:rotate(90deg)}.tw-nav-details>.tw-nav-subtree-anim{opacity:0;contain:layout paint;grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.22,1,.36,1),opacity .22s;display:grid;overflow:hidden}.tw-nav-details[open]>.tw-nav-subtree-anim{opacity:1;grid-template-rows:1fr}.tw-nav-details.is-closing>.tw-nav-subtree-anim{opacity:0;grid-template-rows:0fr}.tw-nav-subtree-anim>.tw-nav-subtree{min-height:0;overflow:hidden}.tw-nav-subtree{border-left:1px solid var(--tw-border);flex-direction:column;gap:2px;margin-left:14px;padding-left:12px;display:flex}.tw-nav-subtree .tw-nav-item{opacity:.65;min-height:32px;padding-left:8px;transition:opacity .2s}.tw-nav-details[open]:not(.is-closing)>.tw-nav-subtree-anim .tw-nav-item{opacity:1}.tw-route-loading{display:none!important}.tw-nav-subtree .tw-nav-item-main{gap:8px}.tw-nav-subtree .tw-nav-ico{width:15px;height:15px}.tw-nav-group-pop-arrow{width:14px;height:14px;color:var(--tw-label-muted,#a8a29e);flex:none;margin-left:auto}.tw-nav-icon-pop{z-index:130;transform-origin:0 0;animation-name:tw-nav-sub-in}.tw-nav-icon-pop.is-closing{animation-name:tw-nav-pop-out}@keyframes tw-nav-sub-in{0%{opacity:0;transform:translate(-6px)scale(.97)}to{opacity:1;transform:none}}.tw-nav-icon-grid{grid-template-columns:repeat(5,34px);gap:4px;padding:2px;display:grid}.tw-nav-icon-cell{width:34px;height:34px;color:var(--tw-label-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;display:flex}.tw-nav-icon-cell:hover{background:var(--tw-session-hover-bg);color:var(--tw-label-primary)}.tw-nav-icon-cell.is-current{border-color:var(--tw-accent);color:var(--tw-accent);background:var(--tw-accent-soft)}.tw-nav-icon-cell .tw-nav-ico{width:16px;height:16px}.tw-nav-editor-ico{color:var(--tw-label-muted,#a8a29e);flex:none;display:inline-flex}.tw-nav-editor-ico .tw-nav-ico{width:15px;height:15px}.tw-nav-meta{margin-top:auto;padding:4px 10px 10px}.tw-nav-ext{background:var(--tw-surface-rail-solid);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;margin:0;padding:4px;display:grid}@supports (color:color-mix(in lab, red, red)){.tw-nav-ext{background:color-mix(in srgb, var(--tw-surface-rail-solid) 78%, var(--tw-surface-nav))}}.tw-nav-ext{border:1px solid var(--tw-border)}.tw-nav-ext-btn{min-height:48px;color:var(--tw-label-secondary);border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 2px;text-decoration:none;transition:background-color .14s,color .14s;display:flex}.tw-nav-ext-btn:hover{background-color:var(--tw-surface-nav);color:var(--tw-accent);box-shadow:0 1px 2px #1018280a}.tw-nav-ext-ico{width:18px;height:18px;display:block}.tw-nav-ext-label{letter-spacing:.02em;white-space:nowrap;font-size:10px;font-weight:500;line-height:1.2}.tw-nav-foot{border-top:1px solid var(--tw-border);padding:12px 10px}.tw-nav-foot-row{align-items:center;gap:6px;width:100%;min-width:0;display:flex}.tw-nav-settings-btn{color:var(--tw-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;align-items:center;gap:8px;padding:8px 10px;font-size:14px;transition:background-color .14s,color .14s;display:inline-flex}.tw-nav-settings-btn:hover{background-color:var(--tw-session-hover-bg);color:var(--tw-label-primary)}.tw-nav-provider-chip{min-width:0;min-height:34px;color:var(--tw-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;justify-content:flex-end;align-items:center;gap:6px;padding:0 4px 0 8px;transition:color .14s;display:inline-flex}.tw-nav-provider-chip:hover{color:var(--tw-accent)}.tw-nav-provider-chip.is-empty{color:var(--tw-label-tertiary);opacity:.85}.tw-nav-provider-dot{background:#22c55e;border-radius:999px;flex:none;width:7px;height:7px;display:block;box-shadow:0 0 0 2px #22c55e38}.tw-nav-provider-chip.is-empty .tw-nav-provider-dot{background:var(--tw-label-tertiary);box-shadow:none;opacity:.55}.tw-nav-provider-name{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em;text-align:right;min-width:0;max-width:calc(100% - 12px);font-size:11px;font-weight:500;overflow:hidden}html[data-nav-collapsed="1"] .tw-nav-aside{width:var(--tw-nav-width-collapsed)}html[data-nav-collapsed="1"] .tw-nav-brand-text,html[data-nav-collapsed="1"] .tw-nav-label,html[data-nav-collapsed="1"] .tw-nav-chevron,html[data-nav-collapsed="1"] .tw-nav-subtree{display:none}html[data-nav-collapsed="1"] .tw-nav-brand-row{flex-direction:column;align-items:center;gap:8px}html[data-nav-collapsed="1"] .tw-nav-brand-link{justify-content:center}html[data-nav-collapsed="1"] .tw-nav-toggle{width:20px;height:40px}html[data-nav-collapsed="1"] .tw-nav-item{justify-content:center;width:40px;margin-inline:auto;padding:0}html[data-nav-collapsed="1"] .tw-nav-item-main{flex:none;justify-content:center}html[data-nav-collapsed="1"] .tw-nav-list{padding-inline:8px}html[data-nav-collapsed="1"] .tw-nav-meta{padding:4px 8px 8px}html[data-nav-collapsed="1"] .tw-nav-ext{grid-template-columns:1fr;gap:2px;padding:4px}html[data-nav-collapsed="1"] .tw-nav-ext-btn{min-height:36px;padding:6px 0}html[data-nav-collapsed="1"] .tw-nav-ext-label{display:none}html[data-nav-collapsed="1"] .tw-nav-foot{justify-content:center;padding-inline:6px;display:flex}html[data-nav-collapsed="1"] .tw-nav-foot-row{justify-content:center;width:auto}html[data-nav-collapsed="1"] .tw-nav-settings-btn>span{display:none}html[data-nav-collapsed="1"] .tw-nav-settings-btn{justify-content:center;width:40px;padding-inline:0}html[data-nav-collapsed="1"] .tw-nav-provider-chip{display:none}.tw-nav-space{border-bottom:1px solid var(--tw-border);padding:8px 10px 10px}.tw-nav-space-menu{min-width:0;position:relative}.tw-nav-space-btn{border:1px solid var(--tw-border);width:100%;min-width:0;color:var(--tw-label-primary);cursor:pointer;text-align:left;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;transition:background-color .14s,border-color .14s;display:flex}.tw-nav-space-btn:hover{background:var(--tw-accent-soft);border-color:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){.tw-nav-space-btn:hover{border-color:color-mix(in srgb, var(--tw-accent) 35%, var(--tw-border))}}.tw-nav-space-btn--off,.tw-nav-space-btn--off:hover{cursor:default;border-style:dashed;border-color:var(--tw-border);background:0 0}.tw-nav-space-btn--off .tw-nav-space-ico{color:var(--tw-label-tertiary)}.tw-nav-space-btn--off .tw-nav-space-name{color:var(--tw-label-secondary);font-weight:500}.tw-nav-space-ico{color:var(--tw-accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.tw-nav-space-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.tw-nav-space-cap{color:var(--tw-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:10px;line-height:1.2;overflow:hidden}.tw-nav-space-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:1.25;overflow:hidden}.tw-nav-space-caret{color:var(--tw-label-tertiary);flex:none}.tw-nav-space-pop{z-index:60;width:max(13.5rem, var(--button-width,13.5rem));border:1px solid var(--tw-border);border-radius:12px;outline:none;flex-direction:column;gap:2px;padding:6px;display:flex;overflow-y:auto;max-width:min(22rem,100vw - 2rem)!important;max-height:min(60vh,30rem)!important}.tw-nav-space-group{letter-spacing:.04em;color:var(--tw-label-tertiary);padding:6px 9px 2px;font-size:10px;font-weight:600}.tw-nav-space-item{width:100%;min-width:0;color:var(--tw-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:7px 9px;transition:background-color .12s;display:flex}.tw-nav-space-item:hover,.tw-nav-space-item[data-focus]{background:var(--tw-accent-soft)}.tw-nav-space-item:disabled{opacity:.5;cursor:default}.tw-nav-space-item-main{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.tw-nav-space-item-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;line-height:1.3;overflow:hidden}.tw-nav-space-item-path{color:var(--tw-label-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.35;overflow:hidden}.tw-nav-space-item-go,.tw-nav-space-item-ico{color:var(--tw-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.tw-nav-space-item:hover .tw-nav-space-item-go,.tw-nav-space-item[data-focus] .tw-nav-space-item-go{color:var(--tw-accent)}.tw-nav-space-item--manage .tw-nav-space-item-name{color:var(--tw-accent);font-weight:500}.tw-nav-space-item--manage .tw-nav-space-item-ico{color:var(--tw-accent)}.tw-nav-space-sep{background:var(--tw-border);height:1px;margin:5px 9px}.tw-nav-space-hint{color:var(--tw-label-tertiary);padding:8px 9px 10px;font-size:12px;line-height:1.6}.tw-nav-space-err{color:#b42318;overflow-wrap:anywhere;word-break:break-word;white-space:normal;background:#fef3f2;border-radius:7px;margin:4px;padding:6px 8px;font-size:12px;line-height:1.5}html[data-theme=dark] .tw-nav-space-err{color:#f87171;background:#f871711f}html[data-nav-collapsed="1"] .tw-nav-space{padding-inline:6px}html[data-nav-collapsed="1"] .tw-nav-space-text,html[data-nav-collapsed="1"] .tw-nav-space-caret{display:none}html[data-nav-collapsed="1"] .tw-nav-space-btn{justify-content:center;padding-inline:0}:root{--tw-nav-space-slot-h:62px}html[data-nav-collapsed="1"]{--tw-nav-space-slot-h:48px}.tw-nav-space-slot{min-height:var(--tw-nav-space-slot-h);position:relative}.tw-nav-space-ph{pointer-events:none;position:absolute;inset:0}.tw-nav-space-ph-box{border:1px solid var(--tw-border);border-radius:8px;align-items:center;gap:8px;height:43px;padding:6px 8px;display:flex}html[data-nav-collapsed="1"] .tw-nav-space-ph-box{justify-content:center;height:29px;padding-inline:0}.tw-nav-space-ph-ico{background:var(--tw-border);border-radius:4px;flex:none;width:15px;height:15px}.tw-nav-space-ph-lines{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}html[data-nav-collapsed="1"] .tw-nav-space-ph-lines{display:none}.tw-nav-space-ph-bar{background:var(--tw-border);border-radius:999px;height:7px;display:block}.tw-nav-space-ph-bar.is-cap{opacity:.75;width:38%;height:6px}.tw-nav-space-ph-bar.is-name{width:66%}.tw-nav-space-slot:has(>astro-island:not(:empty)) .tw-nav-space-ph,html[data-space-service=none] .tw-nav-space-ph{display:none}html[data-theme=dark]{--tw-accent:#7aa2f7;--tw-accent-soft:#7aa2f729;--tw-surface-page:#0f1115;--tw-surface-nav:#151821;--tw-surface-rail:#1a1d26ad;--tw-surface-rail-solid:#1a1d26;--tw-surface-panel:#1a1d26;--tw-surface-recessed:#12141a;--tw-border:#2a2e3a;--tw-session-hover-bg:#ffffff0d;--tw-session-selected-bg:#7aa2f71f;--tw-rail-edge:transparent;--tw-label-primary:#eceff4;--tw-label-secondary:#c0c6d0;--tw-label-tertiary:#8b93a1}html[data-theme=dark] .tw-body,html[data-theme=dark] .tw-main{background-color:var(--tw-surface-page);color:var(--tw-label-primary)}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.bg-white,.bg-\[\#f4f5f7\],[class~=bg-white\/60],[class~=bg-white\/70],[class~=bg-stone-50],[class~=bg-stone-50\/50],[class~=bg-stone-50\/60],[class~=bg-stone-50\/80],[class~="bg-[#f4f5f7]"],[class~="bg-[#f8f9fb]"],[class~="data-[focus]:bg-stone-50"],[class~=disabled\:bg-stone-50]){background-color:var(--tw-surface-panel)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~=bg-stone-100],[class~=bg-stone-100\/80],[class~="data-[focus]:bg-stone-100"],[class~="data-[open]:bg-stone-100"]){background-color:var(--tw-surface-recessed)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~=bg-stone-200],[class~=bg-stone-200\/70]){background-color:#ffffff14!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~="bg-[#e8f0fe]"],[class~="bg-[#edf3fe]"],[class~="data-[focus]:bg-[#edf3fe]"]){background-color:var(--tw-accent-soft)!important;color:var(--tw-accent)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~="bg-[#edf3fe]/50"],[class~="hover:bg-[#e8f0fe]"],[class~="hover:bg-[#edf3fe]/50"],[class~="hover:bg-[#f5f8ff]"]){background-color:var(--tw-accent-soft)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.hover\:bg-stone-50:hover,.hover\:bg-stone-100:hover,.hover\:bg-white:hover,[class~="hover:bg-stone-50/80"]:hover,[class~="hover:bg-stone-200/50"]:hover,[class~="hover:bg-stone-200/60"]:hover,[class~="hover:bg-stone-200/70"]:hover,[class~="hover:bg-stone-200/80"]:hover,[class~=hover\:bg-stone-300]:hover,[class~="hover:bg-white/70"]:hover,[class~="hover:bg-white/80"]:hover){background-color:#ffffff0f!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.border-stone-100,.border-stone-200,.border-dashed,[class~=border-stone-200\/60],[class~=border-stone-200\/80],[class~=border-stone-200\/90]){border-color:var(--tw-border)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~=border-stone-300]{border-color:#3a4050!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~=hover\:border-stone-300]:hover,[class~=hover\:border-stone-400]:hover){border-color:#4b5160!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~=ring-stone-200],[class~=ring-stone-200\/80]){--tw-ring-color:var(--tw-border)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.text-stone-900,.text-stone-800,.text-stone-700,[class~="data-[selected]:text-stone-900"]){color:var(--tw-label-primary)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.text-stone-600,.text-stone-500,.text-stone-400,[class~=disabled\:text-stone-400]),html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~=hover\:text-stone-400]:hover,[class~=hover\:text-stone-500]:hover,.hover\:text-stone-600:hover){color:var(--tw-label-secondary)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~=hover\:text-stone-700]:hover,[class~=hover\:text-stone-800]:hover,[class~=hover\:text-stone-900]:hover){color:var(--tw-label-primary)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is([class~="text-[#4176e6]"],.text-\[\#4176e6\],[class~="text-[#3565c7]"],.text-\[\#3565c7\],[class~="data-[selected]:text-[#3565c7]"],[class~="hover:text-[#4176e6]"]:hover),html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~="text-[#4176e6]/70"]{color:var(--tw-accent)!important}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~="text-[#4176e6]/70"]{color:color-mix(in srgb, var(--tw-accent) 70%, transparent)!important}}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~="text-[#4176e6]/80"]{color:var(--tw-accent)!important}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~="text-[#4176e6]/80"]{color:color-mix(in srgb, var(--tw-accent) 80%, transparent)!important}}[class*=divide-stone-100]>*{border-color:var(--color-stone-100)}[class*=divide-stone-200]>*{border-color:var(--color-stone-200)}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class*=divide-stone-]>*{border-color:var(--tw-border)!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.text-red-600,.text-red-700){color:#f87171!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.bg-red-50,.hover\:bg-red-50:hover,[class~=bg-red-50\/40]){background-color:#f871711f!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.border-red-200,[class~=border-red-200\/80]){border-color:#f8717166!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.bg-amber-50,[class~=bg-amber-50\/30],[class~=bg-amber-50\/90],[class~="hover:bg-amber-50/40"],[class~="hover:bg-amber-50/70"]){background-color:#fbbf241f!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~=bg-amber-100]{background-color:#fbbf2433!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.text-amber-600,.text-amber-700,.text-amber-800,.text-amber-900){color:#fbbf24!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.border-amber-100,.border-amber-200,[class~=border-amber-200\/80],[class~=border-amber-300\/60]){border-color:#fbbf2447!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.bg-emerald-50,[class~=bg-emerald-50\/60]){background-color:#34d3991f!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.border-emerald-200,[class~=border-emerald-200\/80]){border-color:#34d39966!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) :is(.text-emerald-600,.text-emerald-700){color:#34d399!important}html[data-theme=dark] :is(main,.tw-settings-dialog,.tw-popover,.tw-confirm-dialog,.tw-select-menu,.tw-space-dialog,.tw-nav-space-pop) [class~="bg-[#4176e6]/10"]{background-color:var(--tw-accent-soft)!important}.tw-popover,.tw-confirm-dialog,.tw-space-dialog,.tw-nav-space-pop{color:var(--tw-label-primary);box-shadow:0 12px 28px -6px #0000002e;background-color:var(--tw-surface-panel)!important;border-color:var(--tw-border)!important}html[data-theme=dark] .tw-popover,html[data-theme=dark] .tw-confirm-dialog,html[data-theme=dark] .tw-space-dialog,html[data-theme=dark] .tw-nav-space-pop{box-shadow:0 16px 40px -8px #0000008c}.tw-confirm-dialog .tw-confirm-title,.tw-popover .tw-popover-title{color:var(--tw-label-primary)!important}.tw-confirm-dialog .tw-confirm-msg,.tw-popover .tw-popover-muted,.tw-popover .text-stone-500,.tw-popover .text-stone-400{color:var(--tw-label-secondary)!important}.tw-popover .text-stone-800,.tw-popover .text-stone-900,.tw-popover .text-stone-700,.tw-popover .text-stone-600{color:var(--tw-label-primary)!important}.tw-confirm-dialog .tw-confirm-cancel{color:var(--tw-label-secondary)!important}.tw-confirm-dialog .tw-confirm-cancel:hover,.tw-popover .hover\:bg-stone-50:hover,.tw-popover .hover\:bg-stone-100:hover{background-color:var(--tw-session-hover-bg)!important}.tw-confirm-dialog input{background-color:var(--tw-surface-page)!important;border-color:var(--tw-border)!important;color:var(--tw-label-primary)!important}html[data-theme=dark] .tw-confirm-dialog input{background-color:#14161d!important}.tw-icon-btn{color:var(--tw-label-tertiary)}.tw-icon-btn:hover{color:var(--tw-label-primary);background-color:var(--tw-session-hover-bg)}.tw-msg-actions{min-height:22px;color:var(--tw-label-tertiary);align-items:center;gap:8px;font-size:13px;line-height:1;display:flex}.tw-msg-action-btn{flex:none;width:22px;height:22px}.tw-msg-action-meta{height:22px;font-size:13px;line-height:1}.tw-msg-action-time{font-variant-numeric:tabular-nums;color:var(--tw-label-tertiary);flex:none;font-size:13px;line-height:1}html[data-theme=dark] .tw-app .hover\:bg-stone-200\/60:hover,html[data-theme=dark] .tw-app .hover\:bg-stone-200\/70:hover,html[data-theme=dark] .tw-app .hover\:bg-stone-200\/50:hover,html[data-theme=dark] .tw-app .hover\:bg-stone-100:hover{background-color:var(--tw-session-hover-bg)!important}html[data-theme=dark] .tw-app .hover\:text-stone-600:hover,html[data-theme=dark] .tw-app .hover\:text-stone-700:hover,html[data-theme=dark] .tw-app .hover\:text-stone-800:hover{color:var(--tw-label-primary)!important}.tw-slide-over{color:var(--tw-label-primary);background-color:var(--tw-surface-panel)!important;border-color:var(--tw-border)!important}.tw-slide-over .tw-slide-over-title{color:var(--tw-label-primary)!important}.tw-slide-over .border-stone-100,.tw-slide-over .border-stone-200,.tw-slide-over .border-b,.tw-slide-over .border-l{border-color:var(--tw-border)!important}.tw-slide-over .text-stone-800,.tw-slide-over .text-stone-700,.tw-slide-over .text-stone-900{color:var(--tw-label-primary)!important}.tw-slide-over .text-stone-500,.tw-slide-over .text-stone-600,.tw-slide-over .text-stone-400{color:var(--tw-label-secondary)!important}html[data-theme=dark] .tw-app{color:var(--tw-label-primary);background-color:var(--tw-surface-page)!important}html[data-theme=dark] .tw-app aside.tw-session-rail{background:var(--tw-surface-rail-solid)!important;border-color:var(--tw-border)!important}html[data-theme=dark] .tw-app aside:not(.tw-session-rail){background-color:var(--tw-surface-rail-solid)!important;border-color:var(--tw-border)!important}html[data-theme=dark] .tw-app :is([class~=bg-stone-100],[class~=bg-stone-100\/80]){background-color:var(--tw-surface-panel)!important}html[data-theme=dark] .tw-app .bg-\[\#edf3fe\]{color:var(--tw-label-primary)!important;background-color:#7aa2f729!important}html[data-theme=dark] .tw-app .text-stone-800,html[data-theme=dark] .tw-app .text-stone-900,html[data-theme=dark] .tw-app .text-stone-700{color:#e7e5e4!important}html[data-theme=dark] .tw-app .text-stone-600,html[data-theme=dark] .tw-app .text-stone-500,html[data-theme=dark] .tw-app .text-stone-400{color:#a8a29e!important}html[data-theme=dark] .tw-settings-dialog{color:var(--tw-label-primary);background-color:#1a1d26}html[data-theme=dark] .tw-settings-dialog aside{border-color:var(--tw-border)!important;background-color:#14161d!important}html[data-theme=dark] .tw-settings-dialog input,html[data-theme=dark] .tw-settings-dialog textarea,html[data-theme=dark] .tw-settings-dialog select,html[data-theme=dark] .tw-settings-dialog .bg-stone-100{background-color:var(--tw-surface-recessed)!important;color:var(--tw-label-primary)!important;border-color:#3a3f4d!important}html[data-theme=dark] .tw-settings-dialog [class~="border-[#4176e6]"]{border-color:var(--tw-accent)!important}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .tw-settings-dialog [class~="border-[#4176e6]"]{border-color:color-mix(in srgb, var(--tw-accent) 55%, var(--tw-border))!important}}html[data-theme=dark] .tw-settings-dialog button.bg-\[\#4176e6\],html[data-theme=dark] .tw-settings-dialog .bg-\[\#4176e6\]{background-color:var(--tw-accent)!important;color:#fff!important}html[data-theme=dark] .tw-space-dialog input,html[data-theme=dark] .tw-space-dialog textarea{background-color:var(--tw-surface-recessed)!important;color:var(--tw-label-primary)!important;border-color:#3a3f4d!important}html[data-theme=dark] .tw-space-dialog input::placeholder,html[data-theme=dark] .tw-space-dialog textarea::placeholder{color:var(--tw-label-tertiary)!important}html[data-theme=dark] .tw-space-dialog button.bg-\[\#4176e6\],html[data-theme=dark] .tw-space-dialog .bg-\[\#4176e6\]{background-color:var(--tw-accent)!important;color:#fff!important}html[data-theme=dark] .tw-space-dialog [class~="hover:bg-[#3565c7]"]:hover{background-color:var(--tw-accent)!important}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .tw-space-dialog [class~="hover:bg-[#3565c7]"]:hover{background-color:color-mix(in srgb, var(--tw-accent) 88%, #000)!important}}html[data-theme=dark] .tw-space-dialog .tw-space-prompt-composer{box-shadow:none;background-color:var(--tw-surface-recessed)!important;border-color:#3a3f4d!important}html[data-theme=dark] .tw-space-dialog .tw-space-prompt-composer textarea{background-color:#0000!important;border-color:#0000!important}.tw-plugin-toast{animation:.16s ease-out tw-pop-in}html[data-theme=dark] .tw-plugins-page .tw-plugin-card,html[data-theme=dark] .tw-app .tw-plugins-page .tw-plugin-card{background-color:var(--tw-surface-panel)!important;border-color:var(--tw-border)!important}html[data-theme=dark] .tw-plugins-page .tw-plugin-card:hover{border-color:#3a4050!important}.tw-select-menu{border:1px solid var(--tw-label-primary);background-color:var(--tw-surface-panel)!important;color:var(--tw-label-primary)!important}@supports (color:color-mix(in lab, red, red)){.tw-select-menu{border:1px solid color-mix(in srgb, var(--tw-label-primary) 24%, transparent)}}.tw-select-menu{--tw-ring-color:var(--tw-border);box-shadow:0 12px 28px -6px #00000029,0 4px 8px -4px #00000014}html[data-theme=dark] .tw-select-menu{border-color:var(--tw-border);--tw-ring-color:var(--tw-border);box-shadow:0 12px 28px -6px #0000008c!important}.tw-select-menu [data-focus]{background-color:var(--tw-accent-soft)!important}.tw-select-menu .text-stone-700,.tw-select-menu .text-stone-800,.tw-select-menu .text-stone-900,.tw-select-menu [class*=text-stone-7],.tw-select-menu [class*=text-stone-8],.tw-select-menu [class*=text-stone-9]{color:var(--tw-label-primary)!important}.tw-select-menu .text-stone-400,.tw-select-menu .text-stone-500,.tw-select-menu .text-stone-600{color:var(--tw-label-secondary)!important}.tw-popover .border-stone-100,.tw-popover .border-stone-200,.tw-popover .border-t{border-color:var(--tw-border)!important}.tw-composer-bar{flex-wrap:nowrap;min-width:0;container:composer-bar/inline-size}@container composer-bar (width<=34rem){.tw-composer-bar-label{display:none}.tw-composer-bar-ws,.tw-composer-bar-access{max-width:none;padding-left:.375rem;padding-right:.25rem}.tw-composer-bar-chevron{display:none}.tw-composer-bar-model-name{max-width:7.5rem}}@container composer-bar (width<=26rem){.tw-composer-bar-effort{display:none}.tw-composer-bar-model-name{max-width:5.5rem}}.tw-composer-mode-chip{white-space:nowrap;border:1px solid #0000;border-radius:9999px;flex-shrink:0;align-items:center;gap:.35rem;height:1.75rem;margin-top:.15rem;padding:0 .35rem 0 .55rem;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.tw-composer-mode-chip.is-goal{color:var(--tw-accent);background:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){.tw-composer-mode-chip.is-goal{background:color-mix(in srgb, var(--tw-accent) 14%, var(--tw-surface-panel))}}.tw-composer-mode-chip.is-goal{border-color:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){.tw-composer-mode-chip.is-goal{border-color:color-mix(in srgb, var(--tw-accent) 35%, transparent)}}.tw-composer-mode-chip.is-plan{color:#9a3412;background:#f59e0b}@supports (color:color-mix(in lab, red, red)){.tw-composer-mode-chip.is-plan{background:color-mix(in srgb, #f59e0b 22%, var(--tw-surface-panel))}}.tw-composer-mode-chip.is-plan{border-color:#d9770666}.tw-composer-mode-chip.is-plan.is-approved{color:#065f46;background:#10b981}@supports (color:color-mix(in lab, red, red)){.tw-composer-mode-chip.is-plan.is-approved{background:color-mix(in srgb, #10b981 20%, var(--tw-surface-panel))}}.tw-composer-mode-chip.is-plan.is-approved{border-color:#05966966}.tw-composer-mode-chip.is-plugin-dev{color:#5b21b6;background:#8b5cf6}@supports (color:color-mix(in lab, red, red)){.tw-composer-mode-chip.is-plugin-dev{background:color-mix(in srgb, #8b5cf6 20%, var(--tw-surface-panel))}}.tw-composer-mode-chip.is-plugin-dev{border-color:#7c3aed66}.tw-composer-mode-chip button{opacity:.75;border-radius:9999px;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;display:inline-flex}.tw-composer-mode-chip button:hover{opacity:1;background:currentColor}@supports (color:color-mix(in lab, red, red)){.tw-composer-mode-chip button:hover{background:color-mix(in srgb, currentColor 12%, transparent)}}html[data-theme=dark] .tw-composer-mode-chip.is-goal{color:#9db8f5;background:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .tw-composer-mode-chip.is-goal{background:color-mix(in srgb, var(--tw-accent) 22%, #1a1d24)}}html[data-theme=dark] .tw-composer-mode-chip.is-goal{border-color:var(--tw-accent)}@supports (color:color-mix(in lab, red, red)){html[data-theme=dark] .tw-composer-mode-chip.is-goal{border-color:color-mix(in srgb, var(--tw-accent) 45%, transparent)}}html[data-theme=dark] .tw-composer-mode-chip.is-plan{color:#fdba74;background:#413420;border-color:#f59e0b66}html[data-theme=dark] .tw-composer-mode-chip.is-plan.is-approved{color:#6ee7b7;background:#183935;border-color:#10b98166}html[data-theme=dark] .tw-composer-mode-chip.is-plugin-dev{color:#c4b5fd;background:#332b52;border-color:#8b5cf673}.tw-composer-menu{background-color:#fff;border-color:#e7e5e4;box-shadow:0 4px 16px -4px #0f172a14}@supports ((-moz-appearance:none)){.tw-composer-menu .tw-dsh-scroll,.tw-dsh-scroll{scrollbar-width:thin;scrollbar-color:#a8b3c4 transparent}}.tw-composer-menu .tw-dsh-scroll::-webkit-scrollbar{-webkit-appearance:none!important;background:0 0!important;width:3px!important;height:3px!important}.tw-dsh-scroll::-webkit-scrollbar{-webkit-appearance:none!important;background:0 0!important;width:3px!important;height:3px!important}.tw-composer-menu .tw-dsh-scroll::-webkit-scrollbar-track{background:0 0!important}.tw-dsh-scroll::-webkit-scrollbar-track{background:0 0!important}.tw-composer-menu .tw-dsh-scroll::-webkit-scrollbar-thumb{min-height:24px;background:#a8b3c4!important;border:none!important;border-radius:999px!important}.tw-dsh-scroll::-webkit-scrollbar-thumb{min-height:24px;background:#a8b3c4!important;border:none!important;border-radius:999px!important}.tw-composer-menu .tw-dsh-scroll::-webkit-scrollbar-thumb:hover{background:#8b97ab!important}.tw-dsh-scroll::-webkit-scrollbar-thumb:hover{background:#8b97ab!important}.tw-composer-menu .tw-dsh-scroll::-webkit-scrollbar-corner{background:0 0!important}.tw-dsh-scroll::-webkit-scrollbar-corner{background:0 0!important}@keyframes tw-notice-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tw-notice-anim{animation:.18s ease-out tw-notice-in}.tw-composer-menu-item.is-active{background-color:#edf3fe!important}html[data-theme=dark] .tw-app .tw-composer-menu{box-shadow:0 12px 28px -6px #0000008c;background-color:var(--tw-surface-panel)!important;border-color:var(--tw-border)!important}html[data-theme=dark] .tw-app .tw-composer-menu-item.is-active{background-color:#7aa2f738!important}html[data-theme=dark] .tw-app .tw-composer-menu-item:hover:not(.is-active){background-color:#ffffff0f!important}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}.prose pre{border-radius:.5rem}.prose a{color:var(--color-amber-700);text-decoration:underline;-webkit-text-decoration-color:var(--color-amber-300);-webkit-text-decoration-color:var(--color-amber-300);text-decoration-color:var(--color-amber-300);text-underline-offset:2px;transition:color .15s,text-decoration-color .15s}.prose a:hover{color:var(--color-amber-800);-webkit-text-decoration-color:var(--color-amber-600);-webkit-text-decoration-color:var(--color-amber-600);text-decoration-color:var(--color-amber-600)}@keyframes tw-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tw-turn-stopped-pill{color:var(--tw-label-tertiary);background:var(--tw-session-hover-bg);border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;line-height:16px;display:inline-flex}.text-shimmer{background-image:linear-gradient(100deg, var(--color-blue-600) 20%, var(--color-purple-500) 40%, var(--color-blue-600) 60%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:2.2s linear infinite tw-shimmer}.text-shimmer-static{background-image:linear-gradient(100deg, var(--color-blue-600), var(--color-purple-500));color:#0000;-webkit-background-clip:text;background-clip:text}.text-shimmer-muted{background-image:linear-gradient(100deg, var(--color-stone-400) 20%, var(--color-stone-300) 40%, var(--color-stone-400) 60%);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;animation:2.2s linear infinite tw-shimmer}.think-mask{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 48px),#0000)}.chat-md code:before,.chat-md code:after{content:none}.chat-md :not(pre)>code{color:var(--color-stone-800);background:#eef1f5;border-radius:6px;padding:1px 6px;font-size:.86em;font-weight:400}.chat-md .code-block{background:#f6f7f9;border:1px solid #e8ebf0;border-radius:12px;margin:1em 0;overflow:hidden}.chat-md .code-block-head{color:var(--color-stone-400);justify-content:space-between;align-items:center;padding:8px 14px 0;font-size:12px;display:flex}.chat-md .code-block-head button{color:var(--color-stone-400);border-radius:6px;padding:2px 6px;transition:color .15s,background-color .15s}.chat-md .code-block-head button:hover{color:var(--color-stone-700);background:#e9ecf1}.chat-md .code-block pre{color:var(--color-stone-800);background:0 0;border-radius:0;margin:0;padding:10px 14px 14px;font-size:12.5px;line-height:1.7}html[data-theme=dark] .chat-md.prose,html[data-theme=dark] .tw-app .chat-md.prose{--tw-prose-body:var(--tw-label-primary);--tw-prose-headings:var(--tw-label-primary);--tw-prose-lead:var(--tw-label-secondary);--tw-prose-links:#93c5fd;--tw-prose-bold:#f8fafc;--tw-prose-counters:var(--tw-label-tertiary);--tw-prose-bullets:var(--tw-label-tertiary);--tw-prose-hr:var(--tw-border);--tw-prose-quotes:var(--tw-label-secondary);--tw-prose-quote-borders:#4b5568;--tw-prose-captions:var(--tw-label-tertiary);--tw-prose-kbd:var(--tw-label-primary);--tw-prose-kbd-shadows:transparent;--tw-prose-code:#93c5fd;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#12141a;--tw-prose-th-borders:var(--tw-border);--tw-prose-td-borders:var(--tw-border);color:var(--tw-label-primary)}html[data-theme=dark] .chat-md.prose :where(p,li,td,th,blockquote,strong){color:var(--tw-label-primary)}html[data-theme=dark] .chat-md.prose :where(blockquote){color:var(--tw-label-secondary);border-left-color:#4b5568}html[data-theme=dark] .chat-md.prose :where(a){color:#93c5fd;text-decoration-color:#93c5fd73}html[data-theme=dark] .chat-md.prose :where(a):hover{color:#bfdbfe;text-decoration-color:#bfdbfeb3}html[data-theme=dark] .chat-md :not(pre)>code{color:#e2e8f0;background:#ffffff14}html[data-theme=dark] .chat-md .code-block{border-color:var(--tw-border);background:#12141a}html[data-theme=dark] .chat-md .code-block-head,html[data-theme=dark] .chat-md .code-block-head button{color:var(--tw-label-tertiary)}html[data-theme=dark] .chat-md .code-block-head button:hover{color:var(--tw-label-primary);background:#ffffff14}html[data-theme=dark] .chat-md .code-block pre{color:#e5e7eb}html[data-theme=dark] .prose a{color:#93c5fd;text-decoration-color:#93c5fd73}html[data-theme=dark] .prose a:hover{color:#bfdbfe;text-decoration-color:#bfdbfeb3}@keyframes tw-route-spin{to{transform:rotate(360deg)}}.tw-route-loading{z-index:30;background:var(--tw-surface-page,#f4f5f7);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.tw-route-loading{background:color-mix(in srgb, var(--tw-surface-page,#f4f5f7) 42%, transparent)}}.tw-route-loading{-webkit-backdrop-filter:blur(2px);transition:opacity .22s,visibility .22s}.tw-route-loading.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.tw-route-loading-spin{border:2.5px solid var(--tw-accent,#4176e6);border-radius:999px;width:1.75rem;height:1.75rem}@supports (color:color-mix(in lab, red, red)){.tw-route-loading-spin{border:2.5px solid color-mix(in srgb, var(--tw-accent,#4176e6) 28%, transparent)}}.tw-route-loading-spin{border-top-color:var(--tw-accent,#4176e6);box-shadow:0 0 0 6px var(--tw-surface-page);animation:.7s linear infinite tw-route-spin}@supports (color:color-mix(in lab, red, red)){.tw-route-loading-spin{box-shadow:0 0 0 6px color-mix(in srgb, var(--tw-surface-page) 70%, transparent)}}@keyframes tw-pane-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tw-pane-enter{animation:.28s cubic-bezier(.22,1,.36,1) both tw-pane-enter}@keyframes tw-welcome-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes tw-welcome-exit{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}.tw-welcome-enter{animation:.28s cubic-bezier(.22,1,.36,1) both tw-welcome-enter}.tw-welcome-exit{pointer-events:none;animation:.24s cubic-bezier(.4,0,1,1) both tw-welcome-exit}@keyframes tw-fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tw-anim-list>*{animation:.36s cubic-bezier(.22,1,.36,1) both tw-fade-up}.tw-anim-list>:first-child{animation-delay:60ms}.tw-anim-list>:nth-child(2){animation-delay:.1s}.tw-anim-list>:nth-child(3){animation-delay:.14s}.tw-anim-list>:nth-child(4){animation-delay:.18s}.tw-anim-list>:nth-child(5){animation-delay:.22s}.tw-anim-list>:nth-child(6){animation-delay:.26s}.tw-anim-list>:nth-child(7){animation-delay:.3s}.tw-anim-list>:nth-child(8){animation-delay:.34s}.tw-anim-list>:nth-child(9){animation-delay:.38s}.tw-anim-list>:nth-child(10){animation-delay:.42s}.tw-anim-list>:nth-child(11){animation-delay:.46s}.tw-anim-list>:nth-child(12){animation-delay:.5s}.tw-anim-list>:nth-child(n+13){animation-delay:.54s}.tw-collapse{opacity:0;pointer-events:none;grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.22,1,.36,1),opacity .2s;display:grid;overflow:hidden}.tw-collapse.is-open{opacity:1;pointer-events:auto;grid-template-rows:1fr}.tw-collapse-inner{min-height:0;overflow:hidden}.tw-plugins-page .tw-anim-list.grid{align-items:start;overflow:visible}.tw-plugins-page .tw-anim-list.grid>*{z-index:0;position:relative;overflow:visible}.tw-plugins-page .tw-anim-list.grid>:hover,.tw-plugins-page .tw-anim-list.grid>:focus-within{z-index:40}.tw-menu-anim{transform-origin:top;transition:opacity .15s ease-out,transform .15s ease-out}.tw-menu-anim[data-closed]{opacity:0;transform:scale(.96)}.tw-nav-space-pop.tw-menu-anim{transform-origin:20px 0;transition:opacity .18s ease-out,transform .18s cubic-bezier(.16,1,.3,1)}.tw-nav-space-pop.tw-menu-anim[data-closed]{opacity:0;transform:translateY(-8px)scale(.96)}.tw-tooltip{background-color:var(--tw-surface-panel);border:1px solid var(--tw-border)}html[data-theme=dark] .tw-tooltip{color:var(--tw-label-primary);box-shadow:0 12px 28px #00000073}.tw-tooltip-arrow.is-up{background-color:var(--tw-surface-panel);border-right:1px solid var(--tw-border);border-bottom:1px solid var(--tw-border)}.tw-tooltip-arrow.is-down{background-color:var(--tw-surface-panel);border-top:1px solid var(--tw-border);border-left:1px solid var(--tw-border)}.tw-tooltip-anim{transform:var(--tw-tip-base,translateY(0));transition:opacity .15s ease-out,transform .15s ease-out}.tw-tooltip-anim.is-down{--tw-tip-base:translateY(0);transform-origin:top}.tw-tooltip-anim.is-up{--tw-tip-base:translateY(-100%);transform-origin:bottom}.tw-tooltip-anim[data-closed]{opacity:0;transform:var(--tw-tip-base,translateY(0)) scale(.94)}.tw-dialog-backdrop-anim{transition:opacity .2s ease-out}.tw-dialog-backdrop-anim[data-closed]{opacity:0}.tw-dialog-panel-anim{transition:opacity .2s ease-out,transform .2s cubic-bezier(.22,1,.36,1)}.tw-dialog-panel-anim[data-closed]{opacity:0;transform:scale(.96)translateY(6px)}@keyframes tw-pop-in{0%{opacity:0;transform:translateY(4px)scale(.98)}to{opacity:1;transform:none}}.tw-popover-anim{animation:.15s ease-out tw-pop-in}@media (prefers-reduced-motion:reduce){.tw-anim-list>*,.tw-popover-anim,.tw-notice-anim,.tw-pane-enter,.tw-welcome-enter,.tw-welcome-exit,.tw-route-loading-spin{animation:none!important}.tw-route-loading,.tw-collapse,.tw-menu-anim,.tw-tooltip-anim,.tw-dialog-backdrop-anim,.tw-dialog-panel-anim{transition:none!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}.tw-docs-article,.tw-changelog{max-width:48rem;margin:0 auto}@media (width>=1280px){.tw-docs-article,.tw-changelog{max-width:60rem}}@media (width>=1536px){.tw-docs-article,.tw-changelog{max-width:72rem}}.tw-docs-article{padding:2.5rem 2rem 4rem}.tw-docs-article-hero{margin-bottom:1.5rem}.tw-docs-article-title{letter-spacing:-.02em;color:var(--tw-label-primary);margin:0;font-size:1.85rem;font-weight:700;line-height:1.2}.tw-docs-article-lead{color:var(--tw-label-secondary);margin:.75rem 0 0;font-size:.9375rem;line-height:1.65}.tw-docs-prose h2{letter-spacing:-.01em;color:var(--tw-label-primary);margin:1.75rem 0 .65rem;font-size:1.2rem;font-weight:650}.tw-docs-prose h3{color:var(--tw-label-primary);margin:1.25rem 0 .45rem;font-size:1rem;font-weight:650}.tw-docs-prose h4{color:var(--tw-label-primary);margin:1rem 0 .35rem;font-size:.9rem;font-weight:650}.tw-docs-prose p{color:var(--tw-label-secondary);margin:.55rem 0;font-size:.9375rem;line-height:1.7}.tw-docs-prose ul,.tw-docs-prose ol{color:var(--tw-label-secondary);margin:.45rem 0 .85rem;padding-left:1.25rem;font-size:.9375rem;line-height:1.65}.tw-docs-prose li{margin:.3rem 0}.tw-docs-prose a{color:var(--tw-accent);border-bottom:1px solid color-mix(in srgb, var(--tw-accent) 35%, transparent);text-decoration:none}.tw-docs-prose a:hover{border-bottom-color:var(--tw-accent)}.tw-docs-prose pre{border:1px solid var(--tw-border);background:color-mix(in srgb, var(--tw-surface-rail-solid) 72%, var(--tw-surface-panel));border-radius:10px;margin:.65rem 0 .95rem;padding:.85rem 1rem;font-size:.8125rem;line-height:1.55;overflow-x:auto}.tw-docs-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.tw-docs-prose pre code{font-size:inherit;color:var(--tw-label-primary);background:0 0;padding:0}.tw-docs-prose :not(pre)>code{background:var(--tw-accent-soft);color:var(--tw-accent);border-radius:4px;padding:.1em .35em}.tw-docs-prose table{border-collapse:collapse;width:100%;margin:.75rem 0 1rem;font-size:.875rem}.tw-docs-prose th,.tw-docs-prose td{border:1px solid var(--tw-border);text-align:left;vertical-align:top;color:var(--tw-label-secondary);padding:.45rem .65rem}.tw-docs-prose th{background:color-mix(in srgb, var(--tw-surface-rail-solid) 60%, var(--tw-surface-panel));color:var(--tw-label-primary);font-weight:600}.tw-docs-prose blockquote{border-left:3px solid color-mix(in srgb, var(--tw-accent) 55%, var(--tw-border));color:var(--tw-label-secondary);margin:.75rem 0;padding:.35rem 0 .35rem .9rem}.tw-changelog-card-detail-wrap{opacity:0;grid-template-rows:0fr;margin-top:0;transition:grid-template-rows .32s cubic-bezier(.22,1,.36,1),opacity .24s,margin-top .32s;display:grid}.tw-changelog-card[data-open=true] .tw-changelog-card-detail-wrap{opacity:1;grid-template-rows:1fr;margin-top:.35rem}.tw-changelog-card-detail{min-height:0;overflow:hidden}.tw-changelog-card[data-open=true] .tw-changelog-toggle-arrow{transform:rotate(90deg)}.tw-changelog-toggle{cursor:pointer;z-index:1;position:relative}
@@ -1,9 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["_astro/lib.DJNDi_Ht.js","_astro/react-dom.CqAxpHMt.js","_astro/ExcelFieldTags.B_XMwNNx.js","_astro/jsx-runtime.BUXbF_vF.js"])))=>i.map(i=>d[i]);
2
- import{c as e,n as t}from"./react-dom.CqAxpHMt.js";import{i as n}from"./app-config.CpjKWnzM.js";import{a as r,i,l as a,n as o,o as s,r as c,s as l,t as u,u as d}from"./SearchableSelect.DMS2XmXc.js";import{a as f,c as p,i as m,n as h,o as g,r as _,s as v,t as ee,u as y}from"./ExcelFieldTags.B_XMwNNx.js";import{o as te}from"./llm.BZEzE0x2.js";import{b,d as ne,f as x,h as S,m as C,o as w,r as T,t as re,u as ie,y as ae}from"./SelectDropdown.Dc7QaPbH.js";import{r as oe}from"./prompts-meta.F4wwkjUA.js";import{f as se,l as ce,p as le,y as E}from"./settings.BoQ0e0m1.js";import{t as D}from"./jsx-runtime.BUXbF_vF.js";var O=e(t(),1),k=D(),ue=[{value:`md`,label:`Markdown 表格`},{value:`xlsx`,label:`Excel`},{value:`csv`,label:`CSV`}];function de(e){let t=e.match(/```(?:json)?\s*([\s\S]*?)```/)?.[1]??e.match(/\{[\s\S]*\}/)?.[0]??e.match(/\[[\s\S]*\]/)?.[0];if(!t)return null;try{let e=JSON.parse(t);if(Array.isArray(e)&&e.length>0)return{docTitle:``,cases:e};if(e&&typeof e==`object`){let t=e,n=t.用例??t.cases??t.items;if(!Array.isArray(n)||n.length===0)return null;let r=t.需求名称??t.文档名称??t.docTitle??t.title;return{docTitle:typeof r==`string`?r.trim():``,cases:n}}}catch{return null}return null}function fe(e){return(e.split(`/`).pop()||e).replace(/\.[^.]+$/,``).trim()}function pe(e){let t=e.match(/^#\s+(.+)$/m);if(t?.[1])return t[1].trim().slice(0,48);let n=e.match(/^标题[::]\s*(.+)$/m);return n?.[1]?n[1].trim().slice(0,48):``}function me(e){return e.replace(/[\\/:*?"<>|]/g,`_`).replace(/\s+/g,`-`).slice(0,48)||`cases`}function he(e,t){let n=[];if(!e.length)return n.push(`未生成任何用例`),n;for(let r of t){let t=e.filter(e=>!String(e[r]??``).trim()).length;t===e.length?n.push(`字段「${r}」全部为空`):t>Math.max(2,Math.floor(e.length*.3))&&n.push(`字段「${r}」有 ${t}/${e.length} 条为空`)}e.length<15&&n.push(`用例数量偏少(${e.length} 条),建议核对需求覆盖`);let r=e.map(e=>{for(let t of[`用例标题`,`标题`,`测试分项目`,`测试项目`])if(e[t]?.trim())return e[t].trim();return``}).filter(Boolean),i=new Set(r);return r.length>=4&&i.size<r.length*.6&&n.push(`用例标题/分项重复偏多,可能覆盖不足`),n}function ge(e){if(e==null||e<0)return`—`;if(e<1e3)return`${e} ms`;let t=e/1e3;if(t<60)return`${t.toFixed(1)} s`;let n=Math.floor(t/60);return`${n} 分 ${Math.round(t-n*60)} 秒`}function _e(e){if(!e)return`—`;try{return new Date(e).toLocaleString(`zh-CN`,{hour12:!1})}catch{return`—`}}async function ve(e){let t=a(e).templateFolder;try{let{entries:e}=await ie(`templates`,t),n=e.filter(e=>e.type===`file`).sort((e,t)=>(t.mtime??0)-(e.mtime??0)),r=[];for(let e of n){let t=e.name.toLowerCase(),n=[...y],i=``;try{if(t.endsWith(`.xlsx`)||t.endsWith(`.xls`)){let t=await C(`templates`,e.path);if(t.encoding===`base64`&&t.contentBase64){let e=f(t.contentBase64);n=e.headers,i=e.body}}else if(t.endsWith(`.csv`)){let t=await S(`templates`,e.path),r=_(t.content);n=r.headers,i=r.body}else if(t.endsWith(`.md`)||t.endsWith(`.txt`)){let t=await S(`templates`,e.path),r=m(t.content);n=r.headers,i=r.body}}catch{i=``}r.push({id:e.path,title:e.name.replace(/\.[^.]+$/,``),body:i,headers:n})}return r}catch{return[]}}async function ye(t){let n=t.toLowerCase();if(n.endsWith(`.md`)||n.endsWith(`.txt`)||n.endsWith(`.csv`))return(await S(`requirements`,t)).content;if(n.endsWith(`.docx`)){let n=await C(`requirements`,t);if(n.encoding!==`base64`||!n.contentBase64)throw Error(`无法读取 docx`);let r=atob(n.contentBase64),i=new Uint8Array(r.length);for(let e=0;e<r.length;e++)i[e]=r.charCodeAt(e);return((await(await E(()=>import(`./lib.DJNDi_Ht.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2,3]))).extractRawText({arrayBuffer:i.buffer})).value??``).trim()}throw Error(`该需求文件类型暂不支持正文提取`)}function A(){let[e,t]=(0,O.useState)(null),[f,m]=(0,O.useState)(!1),[_,C]=(0,O.useState)([]),[E,D]=(0,O.useState)(``),[A,j]=(0,O.useState)(`functional`),[M,be]=(0,O.useState)([]),[N,P]=(0,O.useState)(``),[xe,Se]=(0,O.useState)([]),[F,I]=(0,O.useState)(``),[Ce,L]=(0,O.useState)(``),[we,Te]=(0,O.useState)([]),[R,z]=(0,O.useState)([]),[B,V]=(0,O.useState)(`md`),[H,Ee]=(0,O.useState)(``),[U,W]=(0,O.useState)(null),[G,De]=(0,O.useState)(!1),[Oe,K]=(0,O.useState)(null),[q,J]=(0,O.useState)(null),Y=(0,O.useRef)(null),ke=(0,O.useRef)(null),X=(0,O.useMemo)(()=>M.find(e=>e.id===N)??M[0],[M,N]),Z=A,Ae=a(Z).label;(0,O.useEffect)(()=>{n().then(()=>t(ce()));let e=se(()=>t(ce()));return(async()=>{await i();let e=await w(`requirements`),t=await w(`cases`),n=await w(`templates`),a=await w(`prompts`),o=await w(`knowledge`);m(e&&t&&n&&a);async function s(e,t,n){let{entries:r}=await ie(e,t);for(let t of r)t.type===`file`?n.push(t):await s(e,t.path,n)}if(e)try{let e=[];await s(`requirements`,`.`,e),C(e)}catch{}if(o)try{let e=[];await s(`knowledge`,`.`,e),e.sort((e,t)=>(t.mtime??0)-(e.mtime??0)),Te(e)}catch{}if(a)try{let e=[];await s(`prompts`,`.`,e);let t=e.filter(e=>!oe(e.path));t.sort((e,t)=>(t.mtime??0)-(e.mtime??0)),Se(t);let n=t.find(e=>e.path.includes(`功能测试用例提示词`))?.path??t[0]?.path??``;I(e=>e&&!oe(e)&&t.some(t=>t.path===e)?e:n)}catch{}let u=new URLSearchParams(window.location.search),f=u.get(`session`),p=u.get(`path`),h=r();if(f){let e=h.sessions.find(e=>e.id===f);e&&(W(e),j(e.caseType),V(e.outputFormat),D(e.reqPaths[0]??``),e.templateId&&P(e.templateId),e.promptPath&&I(e.promptPath),e.knowledgePaths?.length&&z([...e.knowledgePaths]),e.linkedCasePath&&J({path:e.linkedCasePath,count:0}))}else if(p){let e=h.sessions.find(e=>e.linkedCasePath===p);if(e)W(e),j(e.caseType),V(e.outputFormat),D(e.reqPaths[0]??``),e.templateId&&P(e.templateId),e.promptPath&&I(e.promptPath),e.knowledgePaths?.length&&z([...e.knowledgePaths]),e.linkedCasePath&&J({path:e.linkedCasePath,count:0});else{let e=p.split(`.`).pop()?.toLowerCase(),t=e===`csv`?`csv`:e===`xlsx`||e===`xls`?`xlsx`:`md`,n=p.split(`/`)[0]??``,r=d().find(e=>e.casesFolder===n)?.id??d()[0]?.id??`functional`,i=c({title:p.split(`/`).pop()?.replace(/\.[^.]+$/,``)||`用例续改`,caseType:r,outputFormat:t,reqPaths:[]}),a=l(i.id,{linkedCasePath:p}).sessions.find(e=>e.id===i.id)??null;W(a),j(r),V(t),J({path:p,count:0})}}})(),e},[]),(0,O.useEffect)(()=>{if(!f)return;let e=!1;return ve(A).then(t=>{e||(be(t),P(e=>e&&t.some(t=>t.id===e)?e:U?.templateId&&t.some(e=>e.id===U.templateId)?U.templateId:t[0]?.id??``))}),()=>{e=!0}},[f,A,U?.templateId]),(0,O.useEffect)(()=>{F?S(`prompts`,F).then(e=>L(e.content)).catch(()=>L(``)):L(``)},[F]),(0,O.useEffect)(()=>{ke.current?.scrollIntoView({behavior:`smooth`,block:`end`})},[U?.messages,G]);function Q(e){if(!U)return;let t=l(U.id,e);W(t.sessions.find(e=>e.id===U.id)??U)}async function je(){let e=``;if(E)try{let t=await ye(E);e+=`\n### 需求文档:${E}\n${t.slice(0,16e3)}\n`}catch{e+=`\n### 需求文档:${E}\n(无法读取正文)\n`}X?.body?e+=`\n### 用例模板:${X.title}\n${X.body.slice(0,8e3)}\n`:X&&(e+=`\n### 用例模板:${X.title}\n字段:${(X.headers.length?X.headers:y).join(`、`)}\n`);for(let t of R)try{let n=await S(`knowledge`,t);e+=`\n### 知识库:${t}\n${n.content.slice(0,6e3)}\n`}catch{e+=`\n### 知识库:${t}\n(无法读取)\n`}return e}async function Me(e,t,n,r){let i=a(t.caseType),o=n||t.title||i.label,s=me(o),c=i.casesFolder;try{await ne(`cases`,`.`,c)}catch{}let l=t.outputFormat===`md`?`.md`:t.outputFormat===`csv`?`.csv`:`.xlsx`,u;u=t.linkedCasePath?t.linkedCasePath:`${c}/${s}${l}`;let d=r.length?r:[...y];return t.outputFormat===`md`?await b(`cases`,u,v(e,o,d)):t.outputFormat===`csv`?await b(`cases`,u,g(e,d)):await ae(`cases`,u,await p(e,d,i.label)),u}async function Ne(){if(!E)return``;let e=fe(E);try{return pe(await ye(E))||e}catch{return e}}async function Pe(t,n){if(!e){le(`model`);return}if(!f){K(`本地文档服务未就绪,无法读写用例 / 需求 / 模板库`);return}let r=await Ne(),i=n;i?(l(i.id,{caseType:A,outputFormat:B,reqPaths:E?[E]:[],templateId:X?.id,templateTitle:X?.title,promptPath:F||void 0,knowledgePaths:R.length?[...R]:void 0}),i={...i,caseType:A,outputFormat:B,reqPaths:E?[E]:[],templateId:X?.id,templateTitle:X?.title,promptPath:F||void 0,knowledgePaths:R.length?[...R]:void 0}):(i=c({title:r||t.slice(0,24)||`用例生成`,caseType:A,outputFormat:B,reqPaths:E?[E]:[],templateId:X?.id,templateTitle:X?.title,promptPath:F||void 0,knowledgePaths:R.length?[...R]:void 0}),W(i));let o=await je(),s=a(A).label,u=X?.headers?.length?X.headers:[...y],d=B===`md`?`最终结果将保存为 Markdown 表格文件`:B===`csv`?`最终结果将保存为 CSV 文件`:`最终结果将保存为 Excel 文件`,p=Ce.trim();if(!p){K(`请先选择提示词`);return}let m=`${p}
3
-
4
- 【运行时约束】
5
- - 用例类型:${s}
6
- - ${d}
7
- - 需求名称默认可用「${r||`未命名需求`}」
8
- - 「用例」对象键必须与模板字段完全一致:${u.join(`、`)}
9
- - 仅输出 JSON 对象:{"需求名称":"...","覆盖需求率":0-100,"未覆盖说明":[],"编写说明":"...","用例":[...]},不要其他解释`,g=[{role:`system`,content:m},{role:`user`,content:`${o}\n\n【用户请求】\n${t}`}];if(n&&n.messages.length){g.length=0,g.push({role:`system`,content:m});for(let e of n.messages.slice(-8))(e.role===`user`||e.role===`assistant`)&&g.push({role:e.role,content:e.content});g.push({role:`user`,content:t})}let _=Date.now(),v={role:`user`,content:t,time:_},ee={role:`assistant`,content:``,time:_,result:{ok:!1,count:0}},b=[...i.messages||[],v,ee],ne=i.messages.length>0?i.title:r||t.slice(0,24)||i.title;i={...i,messages:b,title:ne},W(i),l(i.id,{messages:b,title:i.title}),De(!0),K(null);let x=new AbortController;Y.current=x;let S=``;function C(e,t=``){let n=[...b];n[n.length-1]={role:`assistant`,content:t,time:Date.now(),result:e};let r={messages:n,outputFormat:i.outputFormat,caseType:i.caseType};e.ok&&e.path&&(r.linkedCasePath=e.path,e.path&&J({path:e.path,count:e.count}));let a=l(i.id,r);W(a.sessions.find(e=>e.id===i.id)??null)}try{for await(let t of te(e,g,x.signal,{thinking:!1}))t.type===`content`&&(S+=t.delta);let t=Date.now()-_,n=de(S);if(n){let e=X?.headers?.length?X.headers:[...y],o=h(n.cases,e),s=n.docTitle||r||i.title||a(i.caseType).label,c=await Me(o,{...i,title:s},s,e),u=he(o,e);l(i.id,{title:s}),C({ok:!0,count:o.length,path:c,durationMs:t,finishedAt:Date.now(),omissions:u})}else{let e=`未能解析出用例 JSON`;K(`${e},可调整提示词或需求后重试。`),C({ok:!1,count:0,durationMs:t,finishedAt:Date.now(),error:e,omissions:[`输出无法解析,未写入用例文件`]})}}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)C({ok:!1,count:0,durationMs:Date.now()-_,finishedAt:Date.now(),error:`已停止`,omissions:[`用户停止生成`]});else{let t=e instanceof Error?e.message:String(e);K(t),C({ok:!1,count:0,durationMs:Date.now()-_,finishedAt:Date.now(),error:t,omissions:[`生成过程中断或失败`]})}}finally{De(!1),Y.current=null}}async function Fe(){let e=H.trim();e&&!G&&(Ee(``),await Pe(e,U??void 0))}let Ie=!!H.trim()&&!G,Le=_.map(e=>({value:e.path,label:e.path})),Re=M.map(e=>({value:e.id,label:e.title})),$=xe.map(e=>({value:e.path,label:e.path.replace(/\.[^.]+$/,``)}));return(0,k.jsxs)(`div`,{className:`flex flex-col gap-4 max-w-4xl mx-auto`,children:[f?null:(0,k.jsx)(`div`,{className:`rounded-lg border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-900`,children:`本地文档服务未就绪,无法读写需求 / 模板 / 提示词 / 用例库。`}),(0,k.jsxs)(`section`,{className:`rounded-xl border border-stone-200 bg-white p-4 space-y-4`,children:[(0,k.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500`,children:`用例类型`}),(0,k.jsx)(re,{options:d().map(e=>({value:e.id,label:e.label})),value:Z,onChange:e=>{j(e),Q({caseType:e})}})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500`,children:`输出格式`}),(0,k.jsx)(re,{options:ue,value:B,onChange:e=>{if(V(e),U?.linkedCasePath){let t=`${U.linkedCasePath.replace(/\.[^.]+$/,``)}${e===`md`?`.md`:e===`csv`?`.csv`:`.xlsx`}`;Q({outputFormat:e,linkedCasePath:t}),J(e=>e?{...e,path:t}:{path:t,count:0})}else Q({outputFormat:e})}})]})]}),(0,k.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500 mb-0.5`,children:`需求文档`}),(0,k.jsx)(u,{options:Le,value:E,onChange:e=>{D(e),Q({reqPaths:e?[e]:[]})},allowEmpty:!1,placeholder:`未选择需求文档`})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`div`,{className:`text-xs font-medium text-stone-500 mb-0.5`,children:[`用例模板`,(0,k.jsxs)(`span`,{className:`ml-1 font-normal text-stone-400`,children:[`(`,Ae,` · `,a(Z).templateFolder,`)`]})]}),(0,k.jsx)(u,{options:Re,value:X?.id??``,onChange:e=>{P(e),Q({templateId:e,templateTitle:M.find(t=>t.id===e)?.title})},allowEmpty:!1,placeholder:Re.length?`搜索并选择模板…`:`暂无「${a(Z).templateFolder}」模板`}),X?.headers?.length?(0,k.jsx)(ee,{fields:X.headers}):X?(0,k.jsx)(`p`,{className:`mt-1.5 text-[11px] text-stone-400`,children:`未识别到模板字段`}):null]})]}),(0,k.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500 mb-0.5`,children:`提示词`}),(0,k.jsx)(u,{options:$,value:F,onChange:e=>{I(e),Q({promptPath:e||void 0})},allowEmpty:!1,placeholder:$.length?`搜索并选择提示词…`:`请先在提示词管理中上传`})]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500 mb-0.5`,children:`引用知识库(可多选)`}),(0,k.jsx)(o,{options:we.map(e=>({value:e.path,label:e.path.replace(/\.[^.]+$/,``)})),values:R,onChange:e=>{z(e),Q({knowledgePaths:e.length?e:void 0})},placeholder:we.length?`选择知识库文档…`:`暂无知识库文档`})]})]}),U?.linkedCasePath&&!q?(0,k.jsxs)(`p`,{className:`text-xs text-emerald-700 bg-emerald-50 border border-emerald-100 rounded-md px-3 py-2`,children:[`已关联用例文件:`,T(`cases`),U.linkedCasePath]}):null]}),(0,k.jsxs)(`section`,{className:`rounded-xl border border-stone-200 bg-[#f8f9fb] flex flex-col h-[min(520px,60vh)]`,children:[(0,k.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto px-4 py-4 space-y-3`,children:[U?.messages.length?(()=>{let e=[];for(let t of U.messages)if(t.role===`user`)e.push({user:t});else if(t.role===`assistant`){let n=e[e.length-1];n&&!n.assistant?n.assistant=t:e.push({assistant:t})}return e.map((t,n)=>{let r=n===e.length-1,i=G&&r&&!t.assistant?.result?.finishedAt,a=t.assistant?.result;return(0,k.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3 items-stretch`,children:[(0,k.jsxs)(`div`,{className:`rounded-xl border border-stone-200 bg-white px-3 py-3 min-h-22`,children:[(0,k.jsx)(`div`,{className:`text-[11px] font-medium text-stone-400 mb-1.5`,children:`提问`}),(0,k.jsx)(`div`,{className:`text-sm text-stone-800 whitespace-pre-wrap leading-6`,children:t.user?.content||`—`})]}),(0,k.jsxs)(`div`,{className:`rounded-xl border border-stone-200 bg-white px-3 py-3 min-h-22`,children:[(0,k.jsx)(`div`,{className:`text-[11px] font-medium text-stone-400 mb-1.5`,children:`生成结果`}),i?(0,k.jsx)(`div`,{className:`text-sm text-[#4176e6]`,children:`生成中…`}):a?(0,k.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,k.jsx)(`span`,{className:`inline-flex items-center h-6 px-2 rounded-md text-xs font-medium ${a.ok?`bg-emerald-50 text-emerald-700`:`bg-red-50 text-red-700`}`,children:a.ok?`成功`:`失败`}),(0,k.jsx)(`span`,{className:`text-xs text-stone-500`,children:_e(a.finishedAt??t.assistant?.time)}),(0,k.jsxs)(`span`,{className:`text-xs text-stone-500`,children:[`耗时 `,ge(a.durationMs)]})]}),(0,k.jsxs)(`div`,{className:`text-stone-700`,children:[`用例数量:`,(0,k.jsx)(`span`,{className:`font-medium text-stone-900`,children:a.count}),` 条`]}),a.path?(0,k.jsxs)(`button`,{type:`button`,className:`text-xs text-[#4176e6] hover:underline text-left truncate max-w-full`,"data-hint":`本地打开`,onClick:()=>void x(`cases`,a.path).catch(e=>K(e instanceof Error?e.message:String(e))),children:[T(`cases`),a.path]}):null,a.error?(0,k.jsx)(`div`,{className:`text-xs text-red-600`,children:a.error}):null,(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500 mb-1`,children:`遗漏检测`}),a.omissions&&a.omissions.length>0?(0,k.jsx)(`ul`,{className:`text-xs text-amber-800 bg-amber-50 border border-amber-100 rounded-md px-2.5 py-2 space-y-1`,children:a.omissions.map(e=>(0,k.jsxs)(`li`,{children:[`· `,e]},e))}):a.ok?(0,k.jsx)(`div`,{className:`text-xs text-emerald-700 bg-emerald-50 border border-emerald-100 rounded-md px-2.5 py-2`,children:`未发现明显遗漏`}):(0,k.jsx)(`div`,{className:`text-xs text-stone-400`,children:`—`})]})]}):(0,k.jsx)(`div`,{className:`text-sm text-stone-400`,children:`等待结果`})]})]},n)})})():(0,k.jsx)(`div`,{className:`h-full flex items-center justify-center text-sm text-stone-400 py-16`,children:`选择上下文后,在下方输入需求说明并提交,将创建一条用例会话。`}),(0,k.jsx)(`div`,{ref:ke})]}),Oe?(0,k.jsx)(`div`,{className:`shrink-0 mx-4 mb-2 px-3 py-2 text-sm text-red-700 bg-red-50 border border-red-200 rounded-lg`,children:Oe}):null,q?(0,k.jsxs)(`div`,{className:`shrink-0 mx-4 mb-3`,children:[(0,k.jsx)(`div`,{className:`text-xs font-medium text-stone-500 mb-1.5`,children:`生成的用例文件`}),(0,k.jsxs)(`button`,{type:`button`,"data-hint":`点击在本地打开`,onClick:()=>{x(`cases`,q.path).catch(e=>K(e instanceof Error?e.message:String(e)))},onDoubleClick:()=>{x(`cases`,q.path).catch(e=>K(e instanceof Error?e.message:String(e)))},className:`w-full flex items-center gap-3 rounded-lg border border-stone-200 bg-white px-3 py-2.5 text-left hover:border-[#4176e6] hover:bg-[#f5f8ff] transition-colors`,children:[(0,k.jsx)(`span`,{className:`w-9 h-9 rounded-lg bg-emerald-50 text-emerald-700 flex items-center justify-center text-xs font-semibold shrink-0`,children:q.path.split(`.`).pop()?.toUpperCase()||`FILE`}),(0,k.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,k.jsx)(`span`,{className:`block text-sm text-stone-800 truncate`,children:q.path.split(`/`).pop()}),(0,k.jsxs)(`span`,{className:`block text-[11px] text-stone-400 truncate`,children:[T(`cases`),q.path,q.count>0?` · ${q.count} 条`:``,` · 点击打开`]})]})]})]}):null,(0,k.jsxs)(`div`,{className:`shrink-0 p-3 border-t border-stone-200 bg-white rounded-b-xl`,children:[(0,k.jsxs)(`div`,{className:`rounded-2xl border border-stone-200 focus-within:ring-2 focus-within:ring-[#4176e6]/25`,children:[(0,k.jsx)(`textarea`,{value:H,onChange:e=>Ee(e.target.value),rows:3,placeholder:e?`描述要生成或修改的用例… Enter 发送,Shift+Enter 换行`:`请先配置模型`,onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),Fe())},className:`w-full px-4 pt-3 pb-2 text-sm resize-none outline-none bg-transparent`}),(0,k.jsxs)(`div`,{className:`flex items-center justify-end gap-2 px-3 pb-2`,children:[e?null:(0,k.jsx)(`button`,{type:`button`,onClick:()=>le(`model`),className:`text-xs text-amber-700 hover:underline`,children:`配置模型`}),G?(0,k.jsx)(`button`,{type:`button`,onClick:()=>Y.current?.abort(),className:`h-8 px-3 text-sm rounded-full bg-stone-200 text-stone-700`,children:`停止`}):null,(0,k.jsx)(`button`,{type:`button`,disabled:!Ie,onClick:()=>void Fe(),className:`h-8 px-4 text-sm font-medium text-white bg-[#4176e6] rounded-full hover:bg-[#3565c7] disabled:opacity-40`,children:`提交`})]})]}),U?(0,k.jsx)(`button`,{type:`button`,className:`mt-2 text-xs text-stone-400 hover:text-stone-600`,onClick:()=>{W(null),J(null),K(null);let e=r();s({...e,activeId:``})},children:`开始新的用例会话`}):null]})]})]})}export{A as default};
@@ -1 +0,0 @@
1
- import{c as e,n as t}from"./react-dom.CqAxpHMt.js";import{i as n}from"./app-config.CpjKWnzM.js";import{a as r,f as i,o as a,r as o,u as s}from"./SelectDropdown.Dc7QaPbH.js";import{t as c}from"./jsx-runtime.BUXbF_vF.js";import{t as l}from"./ConfirmDialog.BYz4HREM.js";import{i as u,n as d,r as f,t as p}from"./DocsFileBrowser.DkE26UTR.js";import{a as m,o as h,r as g}from"./plugins.CrpY8UI9.js";import{t as _,u as v}from"./open-docs-in-session.D3JCwMWB.js";var y=e(t(),1),b=c(),x=10;function S(e){let t=e.split(`/`).pop()??e;return t.startsWith(`~$`)||t.startsWith(`.~`)}async function C(e=`.`){let{entries:t}=await s(`cases`,e),n=[];for(let e of t)e.type===`file`?!S(e.path)&&!S(e.name)&&n.push(e):n.push(...await C(e.path));return n}function w(){let e=f(`cases`),[t,s]=(0,y.useState)(!1),[c,S]=(0,y.useState)(!0),[w,T]=(0,y.useState)(e?!0:null),[E,D]=(0,y.useState)(()=>e??[]),[O,k]=(0,y.useState)({}),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(null),I=d(E,x),L=(0,y.useCallback)(async()=>{j(null);let e=await C(`.`);D(e),u(`cases`,e),k(t=>{let n={};for(let r of e)t[r.path]&&(n[r.path]=!0);return n})},[]);(0,y.useEffect)(()=>{let e=m(e=>S(!!e.cases));return n().then(()=>{S(g(`cases`)),s(!0)}),e},[]),(0,y.useEffect)(()=>{t&&c&&(async()=>{if(!await a(`cases`))T(!1);else try{await v().catch(()=>null),await L(),T(!0)}catch(e){j(e instanceof Error?e.message:String(e)),T(!0)}})()},[t,c,L]);let R=(0,y.useMemo)(()=>Object.keys(O).filter(e=>O[e]),[O]);async function z(){let e=P;if(e){F(null),N(!0),j(null);try{if(e.kind===`one`)await r(`cases`,e.entry.path);else{for(let t of e.paths)await r(`cases`,t);k({})}await L()}catch(e){j(e instanceof Error?e.message:String(e))}finally{N(!1)}}}let B=P?.kind===`one`?`删除「${P.entry.name}」?将从 ${o(`cases`)} 中移除。`:P?.kind===`batch`?`确认删除已选中的 ${P.paths.length} 个用例文件?此操作不可恢复。`:``;function V(){g(`caseGen`)?window.location.href=`/?plugin=caseGen`:j(h(`caseGen`))}async function H(e){N(!0),j(null);try{await _(`cases`,e)}catch(e){j(e instanceof Error?e.message:String(e)),N(!1)}}async function U(e){let t=typeof e==`string`?e:e.path;j(null);try{await i(`cases`,t)}catch(e){j(e instanceof Error?e.message:String(e))}}return t?c?w===null?(0,b.jsx)(`div`,{className:`rounded-xl border border-stone-200 bg-white overflow-hidden flex flex-col min-h-0`,"aria-busy":`true`,"aria-label":`正在连接本地文档服务`,children:(0,b.jsx)(`div`,{className:`flex-1 min-h-0 flex items-center justify-center`,children:(0,b.jsx)(`span`,{className:`tw-lib-spin`,"aria-hidden":`true`})})}):w?(0,b.jsxs)(`div`,{className:`rounded-xl border border-stone-200 bg-white overflow-hidden flex flex-col min-h-0`,children:[(0,b.jsxs)(`div`,{className:`shrink-0 px-4 py-3 border-b border-stone-100 flex items-center gap-2 flex-wrap`,children:[(0,b.jsxs)(`div`,{className:`text-sm text-stone-600 flex-1 min-w-0`,children:[I.query.trim()?(0,b.jsxs)(b.Fragment,{children:[`匹配 `,(0,b.jsx)(`span`,{className:`font-medium text-stone-800`,children:I.filtered.length}),` 个`,(0,b.jsxs)(`span`,{className:`text-stone-400`,children:[` · 共 `,E.length]})]}):(0,b.jsxs)(b.Fragment,{children:[`共 `,(0,b.jsx)(`span`,{className:`font-medium text-stone-800`,children:E.length}),` 个文件`]}),R.length>0?(0,b.jsxs)(`span`,{className:`text-stone-400`,children:[` · 已选 `,R.length]}):null]}),(0,b.jsx)(`button`,{type:`button`,disabled:M||R.length===0,onClick:()=>F({kind:`batch`,paths:R}),className:`h-8 px-3 shrink-0 whitespace-nowrap text-sm font-medium text-red-600 border border-red-200 rounded-lg hover:bg-red-50 disabled:opacity-40`,children:`批量删除`}),(0,b.jsx)(`button`,{type:`button`,disabled:M,onClick:V,className:`h-8 px-3 shrink-0 whitespace-nowrap text-sm font-medium text-white bg-[#4176e6] rounded-lg hover:bg-[#3565c7] disabled:opacity-40`,children:`生成用例`})]}),A?(0,b.jsx)(`div`,{className:`shrink-0 mx-4 mt-3 px-3 py-2 text-sm text-red-700 bg-red-50 border border-red-200 rounded-lg`,children:A}):null,(0,b.jsx)(p,{files:E,filtered:I.filtered,pageFiles:I.pageFiles,query:I.query,onQuery:I.setQuery,sortBy:I.sortBy,onSortBy:I.setSortBy,page:I.page,totalPages:I.totalPages,pageSize:I.pageSize,onPage:I.setPage,onPageSize:I.setPageSize,busy:M,emptyText:`暂无用例文件,点击「生成用例」前往我的工作台。`,searchPlaceholder:`搜索文件名或路径…`,selected:O,onToggleRow:e=>k(t=>({...t,[e]:!t[e]})),onSelectPage:(e,t)=>k(n=>{let r={...n};for(let n of e)t?r[n]=!0:delete r[n];return r}),onRowDoubleClick:e=>void U(e),renderActions:e=>(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`button`,{type:`button`,disabled:M,onClick:()=>void H(e),className:`text-xs whitespace-nowrap text-white bg-[#4176e6] px-2 py-1 rounded hover:bg-[#3565c7] cursor-pointer disabled:opacity-40`,children:`在会话中打开`}),(0,b.jsx)(`button`,{type:`button`,disabled:M,onClick:()=>F({kind:`one`,entry:e}),className:`text-xs whitespace-nowrap text-red-600 hover:bg-red-50 px-2 py-1 rounded cursor-pointer disabled:opacity-40`,children:`删除`})]})}),(0,b.jsx)(l,{open:P!=null,title:P?.kind===`batch`?`批量删除`:`删除用例文件`,message:B,confirmLabel:`删除`,cancelLabel:`取消`,danger:!0,onClose:()=>F(null),onConfirm:()=>void z()})]}):(0,b.jsx)(`div`,{className:`tw-lib-notice rounded-xl border border-amber-200 bg-amber-50 px-5 py-8 text-sm text-amber-900`,children:`用例管理需要本地文档服务,当前未就绪。`}):(0,b.jsx)(`div`,{className:`tw-lib-notice rounded-xl border border-amber-200 bg-amber-50 px-5 py-8 text-sm text-amber-900`,children:h(`cases`)}):(0,b.jsx)(`div`,{className:`rounded-xl border border-stone-200 bg-white overflow-hidden flex flex-col min-h-0`,"aria-busy":`true`,"aria-label":`正在读取插件开关`,children:(0,b.jsx)(`div`,{className:`flex-1 min-h-0 flex items-center justify-center`,children:(0,b.jsx)(`span`,{className:`tw-lib-spin`,"aria-hidden":`true`})})})}export{w as default};