@smartspace/chat-ui 1.14.4-pr.453.668909 → 1.14.4-pr.453.7071735

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -1,3 +1,3 @@
1
1
  *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
2
2
 
3
- /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--border))}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.bottom-1{bottom:.25rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-1{top:.25rem}.top-2{top:.5rem}.z-50{z-index:50}.m-0{margin:0}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-6{margin-bottom:1.5rem}.mb-auto{margin-bottom:auto}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[58px\]{height:58px}.h-full{height:100%}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-\[400px\]{max-height:400px}.max-h-\[60\%\]{max-height:60%}.min-h-0{min-height:0}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[180px\]{width:180px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[16px\]{min-width:16px}.min-w-\[180px\]{min-width:180px}.max-w-2xl{max-width:42rem}.max-w-\[9rem\]{max-width:9rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border)/.6)}.border-border\/70{border-color:hsl(var(--border)/.7)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive)/.3)}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.border-primary\/30{border-color:hsl(var(--primary)/.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-current{border-top-color:currentColor}.border-t-foreground\/60{border-top-color:hsl(var(--foreground)/.6)}.bg-amber-500\/10{background-color:rgba(245,158,11,.1)}.bg-background{background-color:hsl(var(--background))}.bg-background\/90{background-color:hsl(var(--background)/.9)}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-destructive\/30{background-color:hsl(var(--destructive)/.3)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted)/.1)}.bg-muted\/20{background-color:hsl(var(--muted)/.2)}.bg-muted\/30{background-color:hsl(var(--muted)/.3)}.bg-muted\/5{background-color:hsl(var(--muted)/.05)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/60{background-color:hsl(var(--secondary)/.6)}.bg-transparent{background-color:transparent}.via-blue-500\/5{--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(59,130,246,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-emerald-500\/5{--tw-gradient-to:rgba(16,185,129,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(16,185,129,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-500\/5{--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(239,68,68,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-500\/10{--tw-gradient-to:rgba(59,130,246,.1) var(--tw-gradient-to-position)}.to-emerald-500\/10{--tw-gradient-to:rgba(16,185,129,.1) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to:hsl(var(--primary)/0.1) var(--tw-gradient-to-position)}.to-red-500\/10{--tw-gradient-to:rgba(239,68,68,.1) var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.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)}.leading-4{line-height:1rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/80{color:hsl(var(--foreground)/.8)}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.invert{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)}.invert{--tw-invert:invert(100%)}.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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.running{animation-play-state:running}.paused{animation-play-state:paused}@layer chat-ui-defaults{:root{--background:30 25% 99%;--foreground:222 47% 11%;--card:0 0% 100%;--card-foreground:222 47% 11%;--popover:0 0% 100%;--popover-foreground:222 47% 11%;--brand-accent:194.25 90.91% 34.51%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:30 15% 95%;--secondary-foreground:222 47% 11%;--muted:30 15% 95%;--muted-foreground:215 16% 47%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--border:30 15% 90%;--input:30 15% 90%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:30 25% 99%;--surface-raised:0 0% 100%;--surface-hairline:30 15% 88%;--bubble-user-bg:30 15% 95%;--bubble-user-fg:222 47% 18%;--composer-shadow:0 8px 24px hsla(30,15%,70%,.18),0 1px 2px hsla(30,15%,70%,.1);--scrollbar-thumb:30 10% 78%;--star:40 90% 55%;--notification:0 80% 55%;--sidebar-background:220 43% 7%;--sidebar-foreground:0 0% 98%;--sidebar-primary:189 81% 49%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:232 17% 18%;--sidebar-accent-foreground:0 0% 98%;--sidebar-border:232 17% 20%;--sidebar-ring:189 81% 49%}.dark{--background:222 35% 7%;--foreground:210 20% 92%;--card:224 30% 12%;--card-foreground:210 20% 92%;--popover:224 30% 12%;--popover-foreground:210 20% 92%;--brand-accent:189 81% 49%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:224 30% 12%;--secondary-foreground:210 20% 92%;--muted:222 25% 10%;--muted-foreground:215 16% 60%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 63% 31%;--destructive-foreground:210 40% 98%;--border:222 20% 22%;--input:222 20% 22%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:222 35% 7%;--surface-raised:224 30% 12%;--surface-hairline:222 20% 25%;--bubble-user-bg:224 30% 12%;--bubble-user-fg:210 20% 88%;--composer-shadow:0 8px 24px rgba(0,0,0,.35);--scrollbar-thumb:222 20% 26%}}.chat-main{background-color:hsl(var(--chat-area-bg))}.chat-scroll{mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent)}.chat-column{max-width:48rem;margin-left:auto;margin-right:auto}.chat-turns>*+*{margin-top:1.75rem}.chat-bubble-user{background-color:hsl(var(--bubble-user-bg));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;border-top-right-radius:.25rem;box-shadow:0 1px 2px hsla(30,15%,80%,.25);color:hsl(var(--bubble-user-fg));padding:.875rem 1.25rem}.dark .chat-bubble-user{box-shadow:0 1px 2px rgba(0,0,0,.3)}.chat-composer{background-color:hsl(var(--surface-raised));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;box-shadow:var(--composer-shadow);transition:border-color .15s ease-out,box-shadow .15s ease-out}.chat-composer:focus-within{border-color:hsl(var(--brand-accent)/.5);box-shadow:0 8px 24px hsl(var(--brand-accent)/.1),0 0 0 4px hsl(var(--brand-accent)/.08)}.dark .chat-composer:focus-within{box-shadow:0 8px 24px rgba(0,0,0,.4),0 0 0 4px hsl(var(--brand-accent)/.12)}.chat-send{background-color:hsl(var(--brand-accent));color:#fff;box-shadow:0 2px 8px hsl(var(--brand-accent)/.35)}.chat-send:disabled{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground));box-shadow:none}.ss-composer__actions .jsonforms-compact .ss-jsonforms-grid{gap:4px;align-items:center}.ss-composer__actions .jsonforms-compact .compact-field,.ss-composer__actions .jsonforms-compact .ss-jsonforms-textarea{width:auto;flex:0 0 auto;min-width:0}.ss-composer__actions .jsonforms-compact .w-full{width:auto}.ss-composer__actions .jsonforms-compact .justify-center{justify-content:flex-start}.ss-variables-panel .jsonforms-compact .ss-jsonforms-grid{flex-direction:column;align-items:stretch;gap:12px}.ss-variables-panel .jsonforms-compact .compact-field,.ss-variables-panel .jsonforms-compact .ss-jsonforms-cell{width:100%}.chat-prose{font-size:.875rem;line-height:1.65;color:hsl(var(--foreground));overflow-wrap:break-word;word-break:break-word}.chat-prose>*+*{margin-top:.75rem}.chat-prose p{margin:0}.chat-prose strong{color:hsl(var(--foreground));font-weight:600}.chat-prose p:has(>strong:only-child){margin-top:1.1rem;margin-bottom:.15rem}.chat-prose p:has(>strong:only-child)>strong{display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:-.005em}.chat-prose h1,.chat-prose h2,.chat-prose h3,.chat-prose h4{font-size:.875rem;font-weight:600;letter-spacing:-.005em;color:hsl(var(--foreground));margin-top:1.1rem;margin-bottom:.15rem;line-height:1.4}.chat-prose ol,.chat-prose ul{margin:.35rem 0 0;padding-left:0;list-style:none}.chat-prose ol+*,.chat-prose ul+*{margin-top:.85rem}.chat-prose li{position:relative;padding-left:1.5rem;margin-top:.2rem;line-height:1.5}.chat-prose li:first-child{margin-top:0}.chat-prose ul>li:before{content:"";position:absolute;left:.5rem;top:.6em;width:3px;height:3px;border-radius:50%;background:hsl(var(--muted-foreground))}.chat-prose ol{counter-reset:chat-ol}.chat-prose ol>li{counter-increment:chat-ol}.chat-prose ol>li:before{content:counter(chat-ol) ".";position:absolute;left:0;top:0;font-size:.875rem;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--muted-foreground));width:1.1rem;text-align:right;line-height:1.5}.chat-prose li>ol,.chat-prose li>ul{margin-top:.2rem}.chat-prose-table-wrap{margin:1rem 0;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--card));overflow-x:auto;max-width:100%;box-shadow:0 1px 2px hsla(30,15%,80%,.18)}.chat-prose table{width:100%;border-collapse:collapse;font-size:.8125rem}.chat-prose th{background:hsl(var(--brand-accent)/.07);font-weight:600;text-align:left;border-bottom:1px solid hsl(var(--border));letter-spacing:-.005em}.chat-prose td,.chat-prose th{color:hsl(var(--foreground));padding:.625rem .875rem}.chat-prose td{border-bottom:1px solid hsl(var(--border)/.6)}.chat-prose tr:last-child td{border-bottom:none}.chat-prose tr:hover td{background:hsl(var(--brand-accent)/.03)}.dark .chat-prose-table-wrap{box-shadow:0 1px 2px rgba(0,0,0,.35)}.chat-prose :not(pre)>code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125em;padding:.125rem .375rem;border-radius:4px;background:hsl(var(--brand-accent)/.08);color:hsl(var(--brand-accent));border:1px solid hsl(var(--brand-accent)/.15)}.chat-prose pre{margin:1rem 0;padding:1rem 1.125rem;border-radius:12px;background:#0c0f18;border:1px solid #2d3443;overflow-x:auto;max-width:100%;font-size:.8125rem;line-height:1.6}.chat-prose pre code{background:none;border:none;padding:0;color:#dae0e7;font-size:inherit;white-space:pre}.chat-prose a{color:hsl(var(--brand-accent));text-decoration:none;border-bottom:1px solid hsl(var(--brand-accent)/.3);transition:border-color .15s ease-out}.chat-prose a:hover{border-bottom-color:hsl(var(--brand-accent))}.chat-prose blockquote{margin:1rem 0;padding:.5rem 0 .5rem 1rem;border-left:2px solid hsl(var(--brand-accent)/.4);color:hsl(var(--muted-foreground));font-style:italic}.chat-prose hr{border:none;border-top:1px solid hsl(var(--border));margin:1.5rem 0}@keyframes chat-stream-clip{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.chat-streaming{animation:chat-stream-clip 1.8s cubic-bezier(.22,1,.36,1) forwards;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent)}@keyframes chat-caret-blink{0%,49%{opacity:1}50%,to{opacity:.15}}.chat-streaming>:last-child:after{content:"";display:inline-block;width:7px;height:1em;margin-left:4px;vertical-align:-2px;background:hsl(var(--brand-accent));border-radius:1px;animation:chat-caret-blink .85s steps(2,start) infinite;box-shadow:0 0 6px hsl(var(--brand-accent)/.55)}.chat-streaming>.chat-prose-table-wrap:last-child:after{display:block;margin:.5rem 0 0 2px}@keyframes chat-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.chat-thinking-shimmer{background-image:linear-gradient(90deg,hsl(var(--muted-foreground)) 0,hsl(var(--muted-foreground)) 35%,hsl(var(--brand-accent)) 50%,hsl(var(--muted-foreground)) 65%,hsl(var(--muted-foreground)) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:chat-shimmer 2.2s linear infinite;letter-spacing:-.005em}@keyframes chat-dot-wave{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-3px);opacity:1}}.chat-thinking-dots{display:inline-flex;align-items:flex-end;gap:3px}.chat-thinking-dots>span{width:4px;height:4px;border-radius:50%;background:hsl(var(--brand-accent));animation:chat-dot-wave 1.1s ease-in-out infinite}.chat-thinking-dots>span:nth-child(2){animation-delay:.15s}.chat-thinking-dots>span:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion:reduce){.chat-streaming,.chat-thinking-dots>span,.chat-thinking-shimmer{animation:none!important}.chat-streaming{clip-path:none;mask-image:none;-webkit-mask-image:none}}.jsonforms-compact .ss-jsonforms-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.jsonforms-compact .ss-jsonforms-cell{flex:0 0 auto;min-width:0}.jsonforms-compact .ss-jsonforms-textarea{flex:1 1 100%}.jsonforms-compact .compact-field{width:280px;max-width:100%}@media (max-width:480px){.jsonforms-compact .compact-field{width:100%}}.md-editor,.ss-attach{position:relative}.ss-attach{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-radius:8px;background:hsl(var(--muted,0 0% 96%));border:1px solid hsl(var(--border,0 0% 89%));overflow:hidden;min-width:32px;min-height:32px}.ss-attach--image{padding:2px}.ss-attach__img{display:block;-o-object-fit:contain;object-fit:contain;border-radius:6px}.ss-attach__spinner{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid hsl(var(--muted-foreground,0 0% 40%)/.25);border-top-color:hsl(var(--foreground,0 0% 10%));animation:ss-attach-spin .7s linear infinite;pointer-events:none;z-index:1;box-sizing:border-box}@keyframes ss-attach-spin{to{transform:rotate(1turn)}}.ss-attach__remove{position:absolute;top:4px;right:4px;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid hsl(var(--border,0 0% 89%));background:hsla(0,0%,100%,.95);color:hsl(var(--muted-foreground,0 0% 40%));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;font:inherit;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease;z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.08)}.ss-attach:hover .ss-attach__remove,.ss-attach__remove:focus-visible{opacity:1}.ss-attach__remove:hover{color:#dc2626;background:#fff}.ss-attach__remove svg{width:12px;height:12px;display:block}.md-editor .ProseMirror{min-height:var(--md-min-height,1.6em);max-height:var(--md-max-height,none);overflow:auto;--md-pad-v:12px;--md-pad-h:14px;padding:var(--md-pad-v) var(--md-pad-h);border:1px solid #e3e3e3;border-radius:10px;line-height:1.6;outline:none}.md-editor .ProseMirror:focus{border-color:#b9d6ff;box-shadow:0 0 0 3px rgba(70,128,255,.15)}.md-editor.md-editor--readonly .ProseMirror{border:none;padding:0;box-shadow:none}.md-editor.md-editor--bare .ProseMirror{border:none;padding:0;box-shadow:none;--md-pad-v:0px;--md-pad-h:0px}.md-editor .ProseMirror a{color:#2563eb;text-decoration:underline;cursor:pointer}.ss-markdown .ss-attach__img[data-error]{background:rgba(220,38,38,.08)}.file-tag{display:inline-block;padding:0 6px;border-radius:6px;border:1px solid #a7b7e9;background:#eef2ff;font-size:.9em;color:#2b3a8a;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:nowrap}.md-editor__ghost{position:absolute;top:var(--md-pad-v);left:var(--md-pad-h);right:var(--md-pad-h);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.md-editor__dictation-ghost,.md-editor__ghost{color:#9aa2af;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font:inherit;line-height:inherit}.md-editor__dictation-ghost{white-space:pre-wrap}.md-editor__dictation-dots{display:inline-flex;align-items:center;gap:3px;margin-left:4px;line-height:0;vertical-align:middle}.md-editor__dictation-dots>span{width:4px;height:4px;border-radius:50%;background:currentColor;animation:chat-dot-wave 1.1s ease-in-out infinite}.md-editor__dictation-dots>span:nth-child(2){animation-delay:.15s}.md-editor__dictation-dots>span:nth-child(3){animation-delay:.3s}.md-editor .ProseMirror>:first-child{margin-top:0}.mention{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:0 6px;color:#0369a1}.md-editor .ss-code-block,.ss-markdown .ss-code-block{border:1px solid var(--border,#e5e7eb);border-radius:8px;background:#0b1020;color:#e6edf3;margin:.75em 0;overflow:hidden}.md-editor .ss-code-block__header,.ss-markdown .ss-code-block__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:hsla(0,0%,100%,.06);border-bottom:1px solid hsla(0,0%,100%,.08);font-size:12px;line-height:1}.md-editor .ss-code-block__lang,.ss-markdown .ss-code-block__lang{text-transform:uppercase;letter-spacing:.04em;color:#9ba3af;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.md-editor .ss-code-block__actions,.ss-markdown .ss-code-block__actions{display:flex;align-items:center;gap:6px}.md-editor .ss-code-block__copy,.md-editor .ss-code-block__toggle,.ss-markdown .ss-code-block__copy,.ss-markdown .ss-code-block__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.1);color:#e6edf3;border:1px solid hsla(0,0%,100%,.15);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit;line-height:1}.md-editor .ss-code-block__copy:hover,.md-editor .ss-code-block__toggle:hover,.ss-markdown .ss-code-block__copy:hover,.ss-markdown .ss-code-block__toggle:hover{background:hsla(0,0%,100%,.18)}.md-editor .ss-code-block pre,.ss-markdown .ss-code-block pre{margin:0;padding:12px 14px;background:transparent;color:inherit;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre}.md-editor .ss-code-block pre code,.ss-markdown .ss-code-block pre code{background:transparent;color:inherit;padding:0;font:inherit}.md-editor .ss-code-block__iframe,.ss-markdown .ss-code-block__iframe{display:block;width:100%;height:500px;border:0;background:#fff;vertical-align:top;transition:opacity .2s ease}.ss-markdown .ss-code-block__preview{position:relative}.ss-markdown .ss-code-block__loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:1;color:#6b7280;font-size:12px;letter-spacing:.02em;background-color:#fff;background-image:linear-gradient(100deg,transparent 30%,rgba(0,0,0,.05) 50%,transparent 70%);background-size:200% 100%;animation:ss-code-block-shimmer 1.4s ease-in-out infinite}.ss-markdown .ss-code-block__spinner{width:22px;height:22px;border:2.5px solid rgba(0,0,0,.12);border-top-color:rgba(0,0,0,.5);border-radius:50%;animation:ss-code-block-spin .8s linear infinite}@keyframes ss-code-block-spin{to{transform:rotate(1turn)}}@keyframes ss-code-block-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ss-markdown .ss-code-block__loading{animation:none}.ss-markdown .ss-code-block__spinner{animation-duration:1.6s}.ss-markdown .ss-code-block__iframe{transition:none}}.ss-markdown :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.ss-markdown a{color:#2563eb;text-decoration:underline}.ss-markdown details{margin:.75em 0}.ss-markdown summary{cursor:pointer;font-weight:600}.md-editor .ProseMirror :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.md-mention-menu{background:hsl(var(--background,0 0% 100%));color:var(--foreground,#111);border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);min-width:220px;max-width:320px;overflow:hidden;z-index:1000}.md-editor__has-dictation-ghost br.ProseMirror-trailingBreak{display:none}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.first\:mt-0:first-child{margin-top:0}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary)/.6)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary)/.4)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color:hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:via-emerald-400\/10:is(.dark *){--tw-gradient-to:rgba(52,211,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(52,211,153,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-primary\/10:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-red-400\/10:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,91%,71%,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-emerald-400\/20:is(.dark *){--tw-gradient-to:rgba(52,211,153,.2) var(--tw-gradient-to-position)}.dark\:to-primary\/20:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0.2) var(--tw-gradient-to-position)}.dark\:to-red-400\/20:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,.2) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}@media not all and (min-width:640px){.max-sm\:hidden{display:none}.max-sm\:max-w-\[180px\]{max-width:180px}}@media (min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>button\]\:h-6>button{height:1.5rem}.\[\&\>button\]\:w-6>button{width:1.5rem}.\[\&\>div\]\:\!block>div{display:block!important}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-100{opacity:1}}
3
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--border))}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-2{right:-.5rem}.-top-2{top:-.5rem}.bottom-1{bottom:.25rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-1{top:.25rem}.top-2{top:.5rem}.z-50{z-index:50}.m-0{margin:0}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-6{margin-bottom:1.5rem}.mb-auto{margin-bottom:auto}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[58px\]{height:58px}.h-full{height:100%}.max-h-60{max-height:15rem}.max-h-72{max-height:18rem}.max-h-\[400px\]{max-height:400px}.max-h-\[60\%\]{max-height:60%}.min-h-0{min-height:0}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[180px\]{width:180px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[16px\]{min-width:16px}.min-w-\[180px\]{min-width:180px}.max-w-2xl{max-width:42rem}.max-w-\[9rem\]{max-width:9rem}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-y{resize:vertical}.resize{resize:both}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/60{border-color:hsl(var(--border)/.6)}.border-border\/70{border-color:hsl(var(--border)/.7)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive)/.3)}.border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-muted-foreground\/30{border-color:hsl(var(--muted-foreground)/.3)}.border-primary\/30{border-color:hsl(var(--primary)/.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-current{border-top-color:currentColor}.border-t-foreground\/60{border-top-color:hsl(var(--foreground)/.6)}.bg-amber-500\/10{background-color:rgba(245,158,11,.1)}.bg-background{background-color:hsl(var(--background))}.bg-background\/90{background-color:hsl(var(--background)/.9)}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/10{background-color:hsl(var(--destructive)/.1)}.bg-destructive\/30{background-color:hsl(var(--destructive)/.3)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/10{background-color:hsl(var(--muted)/.1)}.bg-muted\/20{background-color:hsl(var(--muted)/.2)}.bg-muted\/30{background-color:hsl(var(--muted)/.3)}.bg-muted\/5{background-color:hsl(var(--muted)/.05)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/60{background-color:hsl(var(--secondary)/.6)}.bg-transparent{background-color:transparent}.via-blue-500\/5{--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(59,130,246,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-emerald-500\/5{--tw-gradient-to:rgba(16,185,129,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(16,185,129,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-primary\/5{--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-500\/5{--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(239,68,68,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-500\/10{--tw-gradient-to:rgba(59,130,246,.1) var(--tw-gradient-to-position)}.to-emerald-500\/10{--tw-gradient-to:rgba(16,185,129,.1) var(--tw-gradient-to-position)}.to-primary\/10{--tw-gradient-to:hsl(var(--primary)/0.1) var(--tw-gradient-to-position)}.to-red-500\/10{--tw-gradient-to:rgba(239,68,68,.1) var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.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)}.leading-4{line-height:1rem}.leading-none{line-height:1}.leading-snug{line-height:1.375}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/80{color:hsl(var(--foreground)/.8)}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-muted-foreground\/80{color:hsl(var(--muted-foreground)/.8)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.invert{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)}.invert{--tw-invert:invert(100%)}.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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.running{animation-play-state:running}.paused{animation-play-state:paused}@layer chat-ui-defaults{:root{--background:30 25% 99%;--foreground:222 47% 11%;--card:0 0% 100%;--card-foreground:222 47% 11%;--popover:0 0% 100%;--popover-foreground:222 47% 11%;--brand-accent:194.25 90.91% 34.51%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:30 15% 95%;--secondary-foreground:222 47% 11%;--muted:30 15% 95%;--muted-foreground:215 16% 47%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--border:30 15% 90%;--input:30 15% 90%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:30 25% 99%;--surface-raised:0 0% 100%;--surface-hairline:30 15% 88%;--bubble-user-bg:30 15% 95%;--bubble-user-fg:222 47% 18%;--composer-shadow:0 8px 24px hsla(30,15%,70%,.18),0 1px 2px hsla(30,15%,70%,.1);--scrollbar-thumb:30 10% 78%;--star:40 90% 55%;--notification:0 80% 55%;--sidebar-background:220 43% 7%;--sidebar-foreground:0 0% 98%;--sidebar-primary:189 81% 49%;--sidebar-primary-foreground:0 0% 100%;--sidebar-accent:232 17% 18%;--sidebar-accent-foreground:0 0% 98%;--sidebar-border:232 17% 20%;--sidebar-ring:189 81% 49%}.dark{--background:222 35% 7%;--foreground:210 20% 92%;--card:224 30% 12%;--card-foreground:210 20% 92%;--popover:224 30% 12%;--popover-foreground:210 20% 92%;--brand-accent:189 81% 49%;--primary:var(--brand-accent);--primary-foreground:0 0% 100%;--secondary:224 30% 12%;--secondary-foreground:210 20% 92%;--muted:222 25% 10%;--muted-foreground:215 16% 60%;--accent:var(--brand-accent);--accent-foreground:0 0% 100%;--destructive:0 63% 31%;--destructive-foreground:210 40% 98%;--border:222 20% 22%;--input:222 20% 22%;--ring:var(--brand-accent);--radius:0.75rem;--chat-area-bg:222 35% 7%;--surface-raised:224 30% 12%;--surface-hairline:222 20% 25%;--bubble-user-bg:224 30% 12%;--bubble-user-fg:210 20% 88%;--composer-shadow:0 8px 24px rgba(0,0,0,.35);--scrollbar-thumb:222 20% 26%}}.chat-main{background-color:hsl(var(--chat-area-bg))}.chat-scroll{mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 32px,#000 calc(100% - 12px),transparent)}.chat-column{max-width:48rem;margin-left:auto;margin-right:auto}.chat-turns>*+*{margin-top:1.75rem}.chat-bubble-user{background-color:hsl(var(--bubble-user-bg));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;border-top-right-radius:.25rem;box-shadow:0 1px 2px hsla(30,15%,80%,.25);color:hsl(var(--bubble-user-fg));padding:.875rem 1.25rem}.dark .chat-bubble-user{box-shadow:0 1px 2px rgba(0,0,0,.3)}.chat-composer{background-color:hsl(var(--surface-raised));border:1px solid hsl(var(--surface-hairline));border-radius:1rem;box-shadow:var(--composer-shadow);transition:border-color .15s ease-out,box-shadow .15s ease-out}.chat-composer:focus-within{border-color:hsl(var(--brand-accent)/.5);box-shadow:0 8px 24px hsl(var(--brand-accent)/.1),0 0 0 4px hsl(var(--brand-accent)/.08)}.dark .chat-composer:focus-within{box-shadow:0 8px 24px rgba(0,0,0,.4),0 0 0 4px hsl(var(--brand-accent)/.12)}.chat-send{background-color:hsl(var(--brand-accent));color:#fff;box-shadow:0 2px 8px hsl(var(--brand-accent)/.35)}.chat-send:disabled{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground));box-shadow:none}.ss-composer__actions .jsonforms-compact .ss-jsonforms-grid{gap:4px;align-items:center}.ss-composer__actions .jsonforms-compact .compact-field,.ss-composer__actions .jsonforms-compact .ss-jsonforms-textarea{width:auto;flex:0 0 auto;min-width:0}.ss-composer__actions .jsonforms-compact .w-full{width:auto}.ss-composer__actions .jsonforms-compact .justify-center{justify-content:flex-start}.ss-variables-panel .jsonforms-compact .ss-jsonforms-grid{flex-direction:column;align-items:stretch;gap:12px}.ss-variables-panel .jsonforms-compact .compact-field,.ss-variables-panel .jsonforms-compact .ss-jsonforms-cell{width:100%}.control.root input,.control.root select,.control.root textarea{display:block;width:100%;padding:.5rem .75rem;font-size:.875rem;color:hsl(var(--foreground));background-color:hsl(var(--background));border:1px solid hsl(var(--input));border-radius:.5rem;outline:none;transition:border-color .15s ease-out,box-shadow .15s ease-out}.control.root input:focus,.control.root select:focus,.control.root textarea:focus{border-color:hsl(var(--brand-accent)/.5);box-shadow:0 0 0 3px hsl(var(--brand-accent)/.12)}.control.root input:disabled,.control.root select:disabled,.control.root textarea:disabled{opacity:.6;cursor:not-allowed}.control.root input.invalid,.control.root select.invalid,.control.root textarea.invalid{border-color:hsl(var(--destructive))}.control.root .validation.input-description{margin-top:.25rem;font-size:.75rem;color:hsl(var(--muted-foreground))}.chat-prose{font-size:.875rem;line-height:1.65;color:hsl(var(--foreground));overflow-wrap:break-word;word-break:break-word}.chat-prose>*+*{margin-top:.75rem}.chat-prose p{margin:0}.chat-prose strong{color:hsl(var(--foreground));font-weight:600}.chat-prose p:has(>strong:only-child){margin-top:1.1rem;margin-bottom:.15rem}.chat-prose p:has(>strong:only-child)>strong{display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:-.005em}.chat-prose h1,.chat-prose h2,.chat-prose h3,.chat-prose h4{font-size:.875rem;font-weight:600;letter-spacing:-.005em;color:hsl(var(--foreground));margin-top:1.1rem;margin-bottom:.15rem;line-height:1.4}.chat-prose ol,.chat-prose ul{margin:.35rem 0 0;padding-left:0;list-style:none}.chat-prose ol+*,.chat-prose ul+*{margin-top:.85rem}.chat-prose li{position:relative;padding-left:1.5rem;margin-top:.2rem;line-height:1.5}.chat-prose li:first-child{margin-top:0}.chat-prose ul>li:before{content:"";position:absolute;left:.5rem;top:.6em;width:3px;height:3px;border-radius:50%;background:hsl(var(--muted-foreground))}.chat-prose ol{counter-reset:chat-ol}.chat-prose ol>li{counter-increment:chat-ol}.chat-prose ol>li:before{content:counter(chat-ol) ".";position:absolute;left:0;top:0;font-size:.875rem;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--muted-foreground));width:1.1rem;text-align:right;line-height:1.5}.chat-prose li>ol,.chat-prose li>ul{margin-top:.2rem}.chat-prose-table-wrap{margin:1rem 0;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--card));overflow-x:auto;max-width:100%;box-shadow:0 1px 2px hsla(30,15%,80%,.18)}.chat-prose table{width:100%;border-collapse:collapse;font-size:.8125rem}.chat-prose th{background:hsl(var(--brand-accent)/.07);font-weight:600;text-align:left;border-bottom:1px solid hsl(var(--border));letter-spacing:-.005em}.chat-prose td,.chat-prose th{color:hsl(var(--foreground));padding:.625rem .875rem}.chat-prose td{border-bottom:1px solid hsl(var(--border)/.6)}.chat-prose tr:last-child td{border-bottom:none}.chat-prose tr:hover td{background:hsl(var(--brand-accent)/.03)}.dark .chat-prose-table-wrap{box-shadow:0 1px 2px rgba(0,0,0,.35)}.chat-prose :not(pre)>code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125em;padding:.125rem .375rem;border-radius:4px;background:hsl(var(--brand-accent)/.08);color:hsl(var(--brand-accent));border:1px solid hsl(var(--brand-accent)/.15)}.chat-prose pre{margin:1rem 0;padding:1rem 1.125rem;border-radius:12px;background:#0c0f18;border:1px solid #2d3443;overflow-x:auto;max-width:100%;font-size:.8125rem;line-height:1.6}.chat-prose pre code{background:none;border:none;padding:0;color:#dae0e7;font-size:inherit;white-space:pre}.chat-prose a{color:hsl(var(--brand-accent));text-decoration:none;border-bottom:1px solid hsl(var(--brand-accent)/.3);transition:border-color .15s ease-out}.chat-prose a:hover{border-bottom-color:hsl(var(--brand-accent))}.chat-prose blockquote{margin:1rem 0;padding:.5rem 0 .5rem 1rem;border-left:2px solid hsl(var(--brand-accent)/.4);color:hsl(var(--muted-foreground));font-style:italic}.chat-prose hr{border:none;border-top:1px solid hsl(var(--border));margin:1.5rem 0}@keyframes chat-stream-clip{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.chat-streaming{animation:chat-stream-clip 1.8s cubic-bezier(.22,1,.36,1) forwards;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 28px),rgba(0,0,0,.4) calc(100% - 8px),transparent)}@keyframes chat-caret-blink{0%,49%{opacity:1}50%,to{opacity:.15}}.chat-streaming>:last-child:after{content:"";display:inline-block;width:7px;height:1em;margin-left:4px;vertical-align:-2px;background:hsl(var(--brand-accent));border-radius:1px;animation:chat-caret-blink .85s steps(2,start) infinite;box-shadow:0 0 6px hsl(var(--brand-accent)/.55)}.chat-streaming>.chat-prose-table-wrap:last-child:after{display:block;margin:.5rem 0 0 2px}@keyframes chat-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.chat-thinking-shimmer{background-image:linear-gradient(90deg,hsl(var(--muted-foreground)) 0,hsl(var(--muted-foreground)) 35%,hsl(var(--brand-accent)) 50%,hsl(var(--muted-foreground)) 65%,hsl(var(--muted-foreground)) 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:chat-shimmer 2.2s linear infinite;letter-spacing:-.005em}@keyframes chat-dot-wave{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-3px);opacity:1}}.chat-thinking-dots{display:inline-flex;align-items:flex-end;gap:3px}.chat-thinking-dots>span{width:4px;height:4px;border-radius:50%;background:hsl(var(--brand-accent));animation:chat-dot-wave 1.1s ease-in-out infinite}.chat-thinking-dots>span:nth-child(2){animation-delay:.15s}.chat-thinking-dots>span:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion:reduce){.chat-streaming,.chat-thinking-dots>span,.chat-thinking-shimmer{animation:none!important}.chat-streaming{clip-path:none;mask-image:none;-webkit-mask-image:none}}.jsonforms-compact .ss-jsonforms-grid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.jsonforms-compact .ss-jsonforms-cell{flex:0 0 auto;min-width:0}.jsonforms-compact .ss-jsonforms-textarea{flex:1 1 100%}.jsonforms-compact .compact-field{width:280px;max-width:100%}@media (max-width:480px){.jsonforms-compact .compact-field{width:100%}}.md-editor,.ss-attach{position:relative}.ss-attach{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;border-radius:8px;background:hsl(var(--muted,0 0% 96%));border:1px solid hsl(var(--border,0 0% 89%));overflow:hidden;min-width:32px;min-height:32px}.ss-attach--image{padding:2px}.ss-attach__img{display:block;-o-object-fit:contain;object-fit:contain;border-radius:6px}.ss-attach__spinner{position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid hsl(var(--muted-foreground,0 0% 40%)/.25);border-top-color:hsl(var(--foreground,0 0% 10%));animation:ss-attach-spin .7s linear infinite;pointer-events:none;z-index:1;box-sizing:border-box}@keyframes ss-attach-spin{to{transform:rotate(1turn)}}.ss-attach__remove{position:absolute;top:4px;right:4px;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid hsl(var(--border,0 0% 89%));background:hsla(0,0%,100%,.95);color:hsl(var(--muted-foreground,0 0% 40%));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;font:inherit;opacity:0;transition:opacity .15s ease,color .15s ease,background .15s ease;z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.08)}.ss-attach:hover .ss-attach__remove,.ss-attach__remove:focus-visible{opacity:1}.ss-attach__remove:hover{color:#dc2626;background:#fff}.ss-attach__remove svg{width:12px;height:12px;display:block}.md-editor .ProseMirror{min-height:var(--md-min-height,1.6em);max-height:var(--md-max-height,none);overflow:auto;--md-pad-v:12px;--md-pad-h:14px;padding:var(--md-pad-v) var(--md-pad-h);border:1px solid #e3e3e3;border-radius:10px;line-height:1.6;outline:none}.md-editor .ProseMirror:focus{border-color:#b9d6ff;box-shadow:0 0 0 3px rgba(70,128,255,.15)}.md-editor.md-editor--readonly .ProseMirror{border:none;padding:0;box-shadow:none}.md-editor.md-editor--bare .ProseMirror{border:none;padding:0;box-shadow:none;--md-pad-v:0px;--md-pad-h:0px}.md-editor .ProseMirror a{color:#2563eb;text-decoration:underline;cursor:pointer}.ss-markdown .ss-attach__img[data-error]{background:rgba(220,38,38,.08)}.file-tag{display:inline-block;padding:0 6px;border-radius:6px;border:1px solid #a7b7e9;background:#eef2ff;font-size:.9em;color:#2b3a8a;-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:nowrap}.md-editor__ghost{position:absolute;top:var(--md-pad-v);left:var(--md-pad-h);right:var(--md-pad-h);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.md-editor__dictation-ghost,.md-editor__ghost{color:#9aa2af;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;font:inherit;line-height:inherit}.md-editor__dictation-ghost{white-space:pre-wrap}.md-editor__dictation-dots{display:inline-flex;align-items:center;gap:3px;margin-left:4px;line-height:0;vertical-align:middle}.md-editor__dictation-dots>span{width:4px;height:4px;border-radius:50%;background:currentColor;animation:chat-dot-wave 1.1s ease-in-out infinite}.md-editor__dictation-dots>span:nth-child(2){animation-delay:.15s}.md-editor__dictation-dots>span:nth-child(3){animation-delay:.3s}.md-editor .ProseMirror>:first-child{margin-top:0}.mention{background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:0 6px;color:#0369a1}.md-editor .ss-code-block,.ss-markdown .ss-code-block{border:1px solid var(--border,#e5e7eb);border-radius:8px;background:#0b1020;color:#e6edf3;margin:.75em 0;overflow:hidden}.md-editor .ss-code-block__header,.ss-markdown .ss-code-block__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:hsla(0,0%,100%,.06);border-bottom:1px solid hsla(0,0%,100%,.08);font-size:12px;line-height:1}.md-editor .ss-code-block__lang,.ss-markdown .ss-code-block__lang{text-transform:uppercase;letter-spacing:.04em;color:#9ba3af;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.md-editor .ss-code-block__actions,.ss-markdown .ss-code-block__actions{display:flex;align-items:center;gap:6px}.md-editor .ss-code-block__copy,.md-editor .ss-code-block__toggle,.ss-markdown .ss-code-block__copy,.ss-markdown .ss-code-block__toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:hsla(0,0%,100%,.1);color:#e6edf3;border:1px solid hsla(0,0%,100%,.15);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit;line-height:1}.md-editor .ss-code-block__copy:hover,.md-editor .ss-code-block__toggle:hover,.ss-markdown .ss-code-block__copy:hover,.ss-markdown .ss-code-block__toggle:hover{background:hsla(0,0%,100%,.18)}.md-editor .ss-code-block pre,.ss-markdown .ss-code-block pre{margin:0;padding:12px 14px;background:transparent;color:inherit;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre}.md-editor .ss-code-block pre code,.ss-markdown .ss-code-block pre code{background:transparent;color:inherit;padding:0;font:inherit}.md-editor .ss-code-block__iframe,.ss-markdown .ss-code-block__iframe{display:block;width:100%;height:500px;border:0;background:#fff;vertical-align:top;transition:opacity .2s ease}.ss-markdown .ss-code-block__preview{position:relative}.ss-markdown .ss-code-block__loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:1;color:#6b7280;font-size:12px;letter-spacing:.02em;background-color:#fff;background-image:linear-gradient(100deg,transparent 30%,rgba(0,0,0,.05) 50%,transparent 70%);background-size:200% 100%;animation:ss-code-block-shimmer 1.4s ease-in-out infinite}.ss-markdown .ss-code-block__spinner{width:22px;height:22px;border:2.5px solid rgba(0,0,0,.12);border-top-color:rgba(0,0,0,.5);border-radius:50%;animation:ss-code-block-spin .8s linear infinite}@keyframes ss-code-block-spin{to{transform:rotate(1turn)}}@keyframes ss-code-block-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.ss-markdown .ss-code-block__loading{animation:none}.ss-markdown .ss-code-block__spinner{animation-duration:1.6s}.ss-markdown .ss-code-block__iframe{transition:none}}.ss-markdown :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.ss-markdown a{color:#2563eb;text-decoration:underline}.ss-markdown details{margin:.75em 0}.ss-markdown summary{cursor:pointer;font-weight:600}.md-editor .ProseMirror :not(pre)>code{background:hsla(44,6%,50%,.15);color:#c7254e;padding:1px 5px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.md-mention-menu{background:hsl(var(--background,0 0% 100%));color:var(--foreground,#111);border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.12);min-width:220px;max-width:320px;overflow:hidden;z-index:1250}.md-editor__has-dictation-ghost br.ProseMirror-trailingBreak{display:none}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.first\:mt-0:first-child{margin-top:0}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/60:hover{background-color:hsl(var(--secondary)/.6)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-destructive:hover{color:hsl(var(--destructive))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus\:border-primary\/40:focus{border-color:hsl(var(--primary)/.4)}.focus-visible\:opacity-100:focus-visible{opacity:1}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color:hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:via-emerald-400\/10:is(.dark *){--tw-gradient-to:rgba(52,211,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(52,211,153,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-primary\/10:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsl(var(--primary)/0.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-red-400\/10:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,91%,71%,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-emerald-400\/20:is(.dark *){--tw-gradient-to:rgba(52,211,153,.2) var(--tw-gradient-to-position)}.dark\:to-primary\/20:is(.dark *){--tw-gradient-to:hsl(var(--primary)/0.2) var(--tw-gradient-to-position)}.dark\:to-red-400\/20:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,.2) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}@media not all and (min-width:640px){.max-sm\:hidden{display:none}.max-sm\:max-w-\[180px\]{max-width:180px}}@media (min-width:640px){.sm\:inline{display:inline}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\>button\]\:h-6>button{height:1.5rem}.\[\&\>button\]\:w-6>button{width:1.5rem}.\[\&\>div\]\:\!block>div{display:block!important}@media(hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-100{opacity:1}}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/shared/markdown/styles.css","../src/chat-variables/VariablesForm.css"],"sourcesContent":["/* Base editor container */\n.md-editor {\n position: relative;\n}\n\n.ss-attach {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n border-radius: 8px;\n background: hsl(var(--muted, 0 0% 96%));\n border: 1px solid hsl(var(--border, 0 0% 89%));\n overflow: hidden;\n min-width: 32px;\n min-height: 32px;\n}\n\n.ss-attach--image {\n padding: 2px;\n}\n\n.ss-attach__img {\n display: block;\n -o-object-fit: contain;\n object-fit: contain;\n border-radius: 6px;\n}\n\n/* Loading spinner overlay shared by Milkdown node view and read-only renderer */\n.ss-attach__spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 22px;\n height: 22px;\n margin: -11px 0 0 -11px;\n border-radius: 50%;\n border: 2px solid hsl(var(--muted-foreground, 0 0% 40%) / 0.25);\n border-top-color: hsl(var(--foreground, 0 0% 10%));\n animation: ss-attach-spin 0.7s linear infinite;\n pointer-events: none;\n z-index: 1;\n box-sizing: border-box;\n}\n\n@keyframes ss-attach-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Remove (X) button — only present in editable Milkdown node view. */\n.ss-attach__remove {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n padding: 0;\n border-radius: 50%;\n border: 1px solid hsl(var(--border, 0 0% 89%));\n background: rgba(255, 255, 255, 0.95);\n color: hsl(var(--muted-foreground, 0 0% 40%));\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n font: inherit;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;\n z-index: 2;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);\n}\n\n.ss-attach:hover .ss-attach__remove,\n.ss-attach__remove:focus-visible {\n opacity: 1;\n}\n\n.ss-attach__remove:hover {\n color: #dc2626;\n background: #fff;\n}\n\n.ss-attach__remove svg {\n width: 12px;\n height: 12px;\n display: block;\n}\n\n.md-editor .ProseMirror {\n /* Height controls via CSS variables set on the root element */\n min-height: var(--md-min-height, 1.6em);\n max-height: var(--md-max-height, none);\n overflow: auto; /* will only scroll when max-height is exceeded */\n /* Expose padding as variables for consistent placeholder alignment */\n --md-pad-v: 12px;\n --md-pad-h: 14px;\n padding: var(--md-pad-v) var(--md-pad-h);\n border: 1px solid #e3e3e3;\n border-radius: 10px;\n line-height: 1.6;\n outline: none;\n}\n\n/* Focus ring */\n.md-editor .ProseMirror:focus {\n border-color: #b9d6ff;\n box-shadow: 0 0 0 3px rgba(70, 128, 255, 0.15);\n}\n\n/* Readonly appearance: remove border and padding to blend into bubbles */\n.md-editor.md-editor--readonly .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n}\n\n/* Bare composer appearance (no border or padding regardless of editable) */\n.md-editor.md-editor--bare .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n /* Ensure placeholder aligns to the start of content when bare */\n --md-pad-v: 0px;\n --md-pad-h: 0px;\n}\n\n/* Links (autolinked bare URLs and markdown-syntax links) */\n.md-editor .ProseMirror a {\n color: #2563eb;\n text-decoration: underline;\n cursor: pointer;\n}\n\n/* Read-only: error state for ss-file image attachments. The SsImage renderer\n sets `data-error` when the file resolver hook rejects. */\n.ss-markdown .ss-attach__img[data-error] {\n background: rgba(220, 38, 38, 0.08);\n}\n\n/* Custom inline file-tag */\n.file-tag {\n display: inline-block;\n padding: 0 6px;\n border-radius: 6px;\n border: 1px solid #a7b7e9;\n background: #eef2ff;\n font-size: 0.9em;\n color: #2b3a8a;\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text; /* allow selection across it */\n white-space: nowrap;\n}\n\n/* Ghost placeholder for empty editable state */\n.md-editor__ghost {\n position: absolute;\n top: var(--md-pad-v); /* align with ProseMirror padding */\n left: var(--md-pad-h); /* align with ProseMirror padding */\n right: var(--md-pad-h);\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font: inherit;\n line-height: inherit;\n}\n\n/* Normalize top margin so caret height is consistent when empty */\n.md-editor .ProseMirror > :first-child {\n margin-top: 0;\n}\n\n/* Mention (placeholder) – tweak as desired */\n.mention {\n background: #f0f9ff;\n border: 1px solid #bae6fd;\n border-radius: 6px;\n padding: 0 6px;\n color: #0369a1;\n}\n\n/* Code block wrapper — shared by the Milkdown editor node view\n (`.md-editor` scope) and the react-markdown read-only renderer\n (`.ss-markdown` scope). Keep selectors in sync. */\n.md-editor .ss-code-block,\n.ss-markdown .ss-code-block {\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n background: #0b1020;\n color: #e6edf3;\n margin: 0.75em 0;\n overflow: hidden;\n}\n\n.md-editor .ss-code-block__header,\n.ss-markdown .ss-code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 10px;\n background: rgba(255, 255, 255, 0.06);\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n font-size: 12px;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__lang,\n.ss-markdown .ss-code-block__lang {\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: #9ba3af;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n.md-editor .ss-code-block__actions,\n.ss-markdown .ss-code-block__actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.md-editor .ss-code-block__toggle,\n.md-editor .ss-code-block__copy,\n.ss-markdown .ss-code-block__toggle,\n.ss-markdown .ss-code-block__copy {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: rgba(255, 255, 255, 0.1);\n color: #e6edf3;\n border: 1px solid rgba(255, 255, 255, 0.15);\n border-radius: 6px;\n padding: 4px 10px;\n font-size: 12px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__toggle:hover,\n.md-editor .ss-code-block__copy:hover,\n.ss-markdown .ss-code-block__toggle:hover,\n.ss-markdown .ss-code-block__copy:hover {\n background: rgba(255, 255, 255, 0.18);\n}\n\n.md-editor .ss-code-block pre,\n.ss-markdown .ss-code-block pre {\n margin: 0;\n padding: 12px 14px;\n background: transparent;\n color: inherit;\n overflow-x: auto;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 13px;\n line-height: 1.5;\n white-space: pre;\n}\n\n.md-editor .ss-code-block pre code,\n.ss-markdown .ss-code-block pre code {\n background: transparent;\n color: inherit;\n padding: 0;\n font: inherit;\n}\n\n.md-editor .ss-code-block__iframe,\n.ss-markdown .ss-code-block__iframe {\n display: block;\n width: 100%;\n /* Initial height before the height reporter postMessages in the real size\n (capped in JS by MAX_IFRAME_HEIGHT). */\n height: 500px;\n border: 0;\n background: #ffffff;\n /* Kill the baseline gap under replaced elements (iframe is inline by\n default), which otherwise adds ~4px of empty space below the preview. */\n vertical-align: top;\n /* Fade in once the rendered preview replaces the loading shimmer. */\n transition: opacity 0.2s ease;\n}\n\n/* Loading state shown while the previewed HTML is still streaming in or the\n iframe hasn't reported its measured height yet. Sits on a white backdrop so\n there's no dark flash before a (white) chart appears, and is covered by an\n absolutely-positioned shimmer so the box keeps a stable size. */\n.ss-markdown .ss-code-block__preview {\n position: relative;\n}\n\n.ss-markdown .ss-code-block__loading {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n z-index: 1;\n color: #6b7280;\n font-size: 12px;\n letter-spacing: 0.02em;\n background-color: #ffffff;\n background-image: linear-gradient(\n 100deg,\n rgba(0, 0, 0, 0) 30%,\n rgba(0, 0, 0, 0.05) 50%,\n rgba(0, 0, 0, 0) 70%\n );\n background-size: 200% 100%;\n animation: ss-code-block-shimmer 1.4s ease-in-out infinite;\n}\n\n.ss-markdown .ss-code-block__spinner {\n width: 22px;\n height: 22px;\n border: 2.5px solid rgba(0, 0, 0, 0.12);\n border-top-color: rgba(0, 0, 0, 0.5);\n border-radius: 50%;\n animation: ss-code-block-spin 0.8s linear infinite;\n}\n\n@keyframes ss-code-block-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes ss-code-block-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ss-markdown .ss-code-block__loading {\n animation: none;\n }\n .ss-markdown .ss-code-block__spinner {\n animation-duration: 1.6s;\n }\n .ss-markdown .ss-code-block__iframe {\n transition: none;\n }\n}\n\n/* Inline code in read-only messages — matches the Milkdown editor's\n inline code treatment. */\n.ss-markdown :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Read-only: anchors should feel clickable. */\n.ss-markdown a {\n color: #2563eb;\n text-decoration: underline;\n}\n\n/* Read-only: give <details>/<summary> sensible defaults. Most browser UAs\n already render the triangle, but we tidy spacing. */\n.ss-markdown details {\n margin: 0.75em 0;\n}\n\n.ss-markdown summary {\n cursor: pointer;\n font-weight: 600;\n}\n\n/* Inline code */\n.md-editor .ProseMirror :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Mentions popup */\n.md-mention-menu {\n background: hsl(var(--background, 0 0% 100%));\n color: var(--foreground, #111);\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);\n min-width: 220px;\n max-width: 320px;\n overflow: hidden;\n z-index: 1000;\n}\n\n/* Provisional dictation text at the caret. Display-only: it is a ProseMirror\n widget decoration, never document content, so it cannot be selected, copied,\n or serialised into the sent message. It reads grey while the service is still\n revising, and is replaced by real black text when the phrase finalises. */\n.md-editor__dictation-ghost {\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: pre-wrap;\n font: inherit;\n /* `font: inherit` does not reliably carry line-height, and a span whose\n line-height differs from the editor's grows the line box the moment ghost\n text appears - which reads as the composer jumping taller mid-sentence.\n The sibling .md-editor__ghost rule sets this for the same reason. */\n line-height: inherit;\n}\n.md-editor__dictation-dots {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n margin-left: 4px;\n /* Contribute no leading of its own, and centre the 4px dots on the text\n rather than hanging them off the baseline, so the dots cannot make the\n line taller either. */\n line-height: 0;\n vertical-align: middle;\n}\n.md-editor__dictation-dots > span {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: chat-dot-wave 1.1s ease-in-out infinite;\n}\n.md-editor__dictation-dots > span:nth-child(2) {\n animation-delay: 0.15s;\n}\n.md-editor__dictation-dots > span:nth-child(3) {\n animation-delay: 0.3s;\n}\n\n/* While provisional dictation text is showing, hide ProseMirror's empty-block\n placeholder break. The ghost is a decoration, not document content, so the\n block still counts as empty and keeps its trailing <br> - which would put the\n ghost on one line and the break on the next, growing the composer by a line. */\n.md-editor__has-dictation-ghost br.ProseMirror-trailingBreak {\n display: none;\n}\n","/* Horizontal wrap layout for variables (no forced stretching).\n The gap matches the reference composer's action bar, where the pills sit 4px\n apart; the larger row gap only shows once they wrap onto a second line. */\n.jsonforms-compact .ss-jsonforms-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 6px 4px;\n align-items: center;\n}\n\n/* Each variable is its own flex item */\n.jsonforms-compact .ss-jsonforms-cell {\n flex: 0 0 auto;\n min-width: 0;\n}\n\n/* Let long/tall fields take a full row when present */\n.jsonforms-compact .ss-jsonforms-textarea {\n flex: 1 1 100%;\n}\n\n/* Keep compact fields at a comfortable fixed width */\n.jsonforms-compact .compact-field {\n width: 280px;\n max-width: 100%;\n}\n\n/* On very small screens, let it shrink gracefully */\n@media (max-width: 480px) {\n .jsonforms-compact .compact-field {\n width: 100%; /* full width on phones */\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/shared/markdown/styles.css","../src/chat-variables/VariablesForm.css"],"sourcesContent":["/* Base editor container */\n.md-editor {\n position: relative;\n}\n\n.ss-attach {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n border-radius: 8px;\n background: hsl(var(--muted, 0 0% 96%));\n border: 1px solid hsl(var(--border, 0 0% 89%));\n overflow: hidden;\n min-width: 32px;\n min-height: 32px;\n}\n\n.ss-attach--image {\n padding: 2px;\n}\n\n.ss-attach__img {\n display: block;\n -o-object-fit: contain;\n object-fit: contain;\n border-radius: 6px;\n}\n\n/* Loading spinner overlay shared by Milkdown node view and read-only renderer */\n.ss-attach__spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 22px;\n height: 22px;\n margin: -11px 0 0 -11px;\n border-radius: 50%;\n border: 2px solid hsl(var(--muted-foreground, 0 0% 40%) / 0.25);\n border-top-color: hsl(var(--foreground, 0 0% 10%));\n animation: ss-attach-spin 0.7s linear infinite;\n pointer-events: none;\n z-index: 1;\n box-sizing: border-box;\n}\n\n@keyframes ss-attach-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* Remove (X) button — only present in editable Milkdown node view. */\n.ss-attach__remove {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 20px;\n height: 20px;\n padding: 0;\n border-radius: 50%;\n border: 1px solid hsl(var(--border, 0 0% 89%));\n background: rgba(255, 255, 255, 0.95);\n color: hsl(var(--muted-foreground, 0 0% 40%));\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n font: inherit;\n opacity: 0;\n transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;\n z-index: 2;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);\n}\n\n.ss-attach:hover .ss-attach__remove,\n.ss-attach__remove:focus-visible {\n opacity: 1;\n}\n\n.ss-attach__remove:hover {\n color: #dc2626;\n background: #fff;\n}\n\n.ss-attach__remove svg {\n width: 12px;\n height: 12px;\n display: block;\n}\n\n.md-editor .ProseMirror {\n /* Height controls via CSS variables set on the root element */\n min-height: var(--md-min-height, 1.6em);\n max-height: var(--md-max-height, none);\n overflow: auto; /* will only scroll when max-height is exceeded */\n /* Expose padding as variables for consistent placeholder alignment */\n --md-pad-v: 12px;\n --md-pad-h: 14px;\n padding: var(--md-pad-v) var(--md-pad-h);\n border: 1px solid #e3e3e3;\n border-radius: 10px;\n line-height: 1.6;\n outline: none;\n}\n\n/* Focus ring */\n.md-editor .ProseMirror:focus {\n border-color: #b9d6ff;\n box-shadow: 0 0 0 3px rgba(70, 128, 255, 0.15);\n}\n\n/* Readonly appearance: remove border and padding to blend into bubbles */\n.md-editor.md-editor--readonly .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n}\n\n/* Bare composer appearance (no border or padding regardless of editable) */\n.md-editor.md-editor--bare .ProseMirror {\n border: none;\n padding: 0;\n box-shadow: none;\n /* Ensure placeholder aligns to the start of content when bare */\n --md-pad-v: 0px;\n --md-pad-h: 0px;\n}\n\n/* Links (autolinked bare URLs and markdown-syntax links) */\n.md-editor .ProseMirror a {\n color: #2563eb;\n text-decoration: underline;\n cursor: pointer;\n}\n\n/* Read-only: error state for ss-file image attachments. The SsImage renderer\n sets `data-error` when the file resolver hook rejects. */\n.ss-markdown .ss-attach__img[data-error] {\n background: rgba(220, 38, 38, 0.08);\n}\n\n/* Custom inline file-tag */\n.file-tag {\n display: inline-block;\n padding: 0 6px;\n border-radius: 6px;\n border: 1px solid #a7b7e9;\n background: #eef2ff;\n font-size: 0.9em;\n color: #2b3a8a;\n -webkit-user-select: text;\n -moz-user-select: text;\n user-select: text; /* allow selection across it */\n white-space: nowrap;\n}\n\n/* Ghost placeholder for empty editable state */\n.md-editor__ghost {\n position: absolute;\n top: var(--md-pad-v); /* align with ProseMirror padding */\n left: var(--md-pad-h); /* align with ProseMirror padding */\n right: var(--md-pad-h);\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font: inherit;\n line-height: inherit;\n}\n\n/* Normalize top margin so caret height is consistent when empty */\n.md-editor .ProseMirror > :first-child {\n margin-top: 0;\n}\n\n/* Mention (placeholder) – tweak as desired */\n.mention {\n background: #f0f9ff;\n border: 1px solid #bae6fd;\n border-radius: 6px;\n padding: 0 6px;\n color: #0369a1;\n}\n\n/* Code block wrapper — shared by the Milkdown editor node view\n (`.md-editor` scope) and the react-markdown read-only renderer\n (`.ss-markdown` scope). Keep selectors in sync. */\n.md-editor .ss-code-block,\n.ss-markdown .ss-code-block {\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n background: #0b1020;\n color: #e6edf3;\n margin: 0.75em 0;\n overflow: hidden;\n}\n\n.md-editor .ss-code-block__header,\n.ss-markdown .ss-code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 10px;\n background: rgba(255, 255, 255, 0.06);\n border-bottom: 1px solid rgba(255, 255, 255, 0.08);\n font-size: 12px;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__lang,\n.ss-markdown .ss-code-block__lang {\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: #9ba3af;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n}\n\n.md-editor .ss-code-block__actions,\n.ss-markdown .ss-code-block__actions {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.md-editor .ss-code-block__toggle,\n.md-editor .ss-code-block__copy,\n.ss-markdown .ss-code-block__toggle,\n.ss-markdown .ss-code-block__copy {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n background: rgba(255, 255, 255, 0.1);\n color: #e6edf3;\n border: 1px solid rgba(255, 255, 255, 0.15);\n border-radius: 6px;\n padding: 4px 10px;\n font-size: 12px;\n cursor: pointer;\n font-family: inherit;\n line-height: 1;\n}\n\n.md-editor .ss-code-block__toggle:hover,\n.md-editor .ss-code-block__copy:hover,\n.ss-markdown .ss-code-block__toggle:hover,\n.ss-markdown .ss-code-block__copy:hover {\n background: rgba(255, 255, 255, 0.18);\n}\n\n.md-editor .ss-code-block pre,\n.ss-markdown .ss-code-block pre {\n margin: 0;\n padding: 12px 14px;\n background: transparent;\n color: inherit;\n overflow-x: auto;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 13px;\n line-height: 1.5;\n white-space: pre;\n}\n\n.md-editor .ss-code-block pre code,\n.ss-markdown .ss-code-block pre code {\n background: transparent;\n color: inherit;\n padding: 0;\n font: inherit;\n}\n\n.md-editor .ss-code-block__iframe,\n.ss-markdown .ss-code-block__iframe {\n display: block;\n width: 100%;\n /* Initial height before the height reporter postMessages in the real size\n (capped in JS by MAX_IFRAME_HEIGHT). */\n height: 500px;\n border: 0;\n background: #ffffff;\n /* Kill the baseline gap under replaced elements (iframe is inline by\n default), which otherwise adds ~4px of empty space below the preview. */\n vertical-align: top;\n /* Fade in once the rendered preview replaces the loading shimmer. */\n transition: opacity 0.2s ease;\n}\n\n/* Loading state shown while the previewed HTML is still streaming in or the\n iframe hasn't reported its measured height yet. Sits on a white backdrop so\n there's no dark flash before a (white) chart appears, and is covered by an\n absolutely-positioned shimmer so the box keeps a stable size. */\n.ss-markdown .ss-code-block__preview {\n position: relative;\n}\n\n.ss-markdown .ss-code-block__loading {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n z-index: 1;\n color: #6b7280;\n font-size: 12px;\n letter-spacing: 0.02em;\n background-color: #ffffff;\n background-image: linear-gradient(\n 100deg,\n rgba(0, 0, 0, 0) 30%,\n rgba(0, 0, 0, 0.05) 50%,\n rgba(0, 0, 0, 0) 70%\n );\n background-size: 200% 100%;\n animation: ss-code-block-shimmer 1.4s ease-in-out infinite;\n}\n\n.ss-markdown .ss-code-block__spinner {\n width: 22px;\n height: 22px;\n border: 2.5px solid rgba(0, 0, 0, 0.12);\n border-top-color: rgba(0, 0, 0, 0.5);\n border-radius: 50%;\n animation: ss-code-block-spin 0.8s linear infinite;\n}\n\n@keyframes ss-code-block-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes ss-code-block-shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ss-markdown .ss-code-block__loading {\n animation: none;\n }\n .ss-markdown .ss-code-block__spinner {\n animation-duration: 1.6s;\n }\n .ss-markdown .ss-code-block__iframe {\n transition: none;\n }\n}\n\n/* Inline code in read-only messages — matches the Milkdown editor's\n inline code treatment. */\n.ss-markdown :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Read-only: anchors should feel clickable. */\n.ss-markdown a {\n color: #2563eb;\n text-decoration: underline;\n}\n\n/* Read-only: give <details>/<summary> sensible defaults. Most browser UAs\n already render the triangle, but we tidy spacing. */\n.ss-markdown details {\n margin: 0.75em 0;\n}\n\n.ss-markdown summary {\n cursor: pointer;\n font-weight: 600;\n}\n\n/* Inline code */\n.md-editor .ProseMirror :not(pre) > code {\n background: rgba(135, 131, 120, 0.15);\n color: #c7254e;\n padding: 1px 5px;\n border-radius: 4px;\n font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;\n font-size: 0.9em;\n}\n\n/* Mentions popup */\n.md-mention-menu {\n background: hsl(var(--background, 0 0% 100%));\n color: var(--foreground, #111);\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);\n min-width: 220px;\n max-width: 320px;\n overflow: hidden;\n /* Must outrank MUI's Drawer (z-index 1200), which the comments panel\n becomes on narrow windows — otherwise the drawer's own content paints\n over this popup even though it's positioned correctly on screen. Kept\n below MUI's Modal/Snackbar/Tooltip tiers (1300/1400/1500) rather than\n jumping above all of them. */\n z-index: 1250;\n}\n\n/* Provisional dictation text at the caret. Display-only: it is a ProseMirror\n widget decoration, never document content, so it cannot be selected, copied,\n or serialised into the sent message. It reads grey while the service is still\n revising, and is replaced by real black text when the phrase finalises. */\n.md-editor__dictation-ghost {\n color: #9aa2af;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: pre-wrap;\n font: inherit;\n /* `font: inherit` does not reliably carry line-height, and a span whose\n line-height differs from the editor's grows the line box the moment ghost\n text appears - which reads as the composer jumping taller mid-sentence.\n The sibling .md-editor__ghost rule sets this for the same reason. */\n line-height: inherit;\n}\n.md-editor__dictation-dots {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n margin-left: 4px;\n /* Contribute no leading of its own, and centre the 4px dots on the text\n rather than hanging them off the baseline, so the dots cannot make the\n line taller either. */\n line-height: 0;\n vertical-align: middle;\n}\n.md-editor__dictation-dots > span {\n width: 4px;\n height: 4px;\n border-radius: 50%;\n background: currentColor;\n animation: chat-dot-wave 1.1s ease-in-out infinite;\n}\n.md-editor__dictation-dots > span:nth-child(2) {\n animation-delay: 0.15s;\n}\n.md-editor__dictation-dots > span:nth-child(3) {\n animation-delay: 0.3s;\n}\n\n/* While provisional dictation text is showing, hide ProseMirror's empty-block\n placeholder break. The ghost is a decoration, not document content, so the\n block still counts as empty and keeps its trailing <br> - which would put the\n ghost on one line and the break on the next, growing the composer by a line. */\n.md-editor__has-dictation-ghost br.ProseMirror-trailingBreak {\n display: none;\n}\n","/* Horizontal wrap layout for variables (no forced stretching).\n The gap matches the reference composer's action bar, where the pills sit 4px\n apart; the larger row gap only shows once they wrap onto a second line. */\n.jsonforms-compact .ss-jsonforms-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 6px 4px;\n align-items: center;\n}\n\n/* Each variable is its own flex item */\n.jsonforms-compact .ss-jsonforms-cell {\n flex: 0 0 auto;\n min-width: 0;\n}\n\n/* Let long/tall fields take a full row when present */\n.jsonforms-compact .ss-jsonforms-textarea {\n flex: 1 1 100%;\n}\n\n/* Keep compact fields at a comfortable fixed width */\n.jsonforms-compact .compact-field {\n width: 280px;\n max-width: 100%;\n}\n\n/* On very small screens, let it shrink gracefully */\n@media (max-width: 480px) {\n .jsonforms-compact .compact-field {\n width: 100%; /* full width on phones */\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.d.ts CHANGED
@@ -82,17 +82,20 @@ declare const ChatVariablesForm: React.ForwardRefExoticComponent<ChatVariablesFo
82
82
 
83
83
  /**
84
84
  * What the backend tells the composer about speech-to-text (dictation).
85
- * `endpoint` is the Speech resource's custom-domain URL the browser SDK
86
- * connects to directly; it is absent when speech isn't configured.
85
+ * `region` is the Azure region of the Speech resource, e.g. `australiaeast`.
86
+ * The SDK needs the region rather than the account's custom-domain URL: the
87
+ * recognition path only exists on the regional host, and that is what the
88
+ * issued token is scoped to. Absent when speech isn't configured.
87
89
  */
88
90
  type SpeechConfig = {
89
91
  enabled: boolean;
90
- endpoint?: string | null;
92
+ region?: string | null;
91
93
  /** BCP-47 locale to recognise when the client doesn't ask for one. */
92
94
  defaultLocale: string;
93
95
  };
94
96
  /**
95
- * A short-lived bearer token for the Speech resource. Handed to the Speech SDK
97
+ * A short-lived token from the Speech resource's own token service, scoped to
98
+ * recognition in one region and good for about ten minutes. Handed to the SDK
96
99
  * as-is; the backend owns how it is minted.
97
100
  */
98
101
  type SpeechToken = {
@@ -108,8 +111,8 @@ type DictationError = 'permission-denied' | 'no-microphone' | 'network'
108
111
  /** Don't keep asking: this install can't do dictation. */
109
112
  | 'unavailable' | 'unknown';
110
113
  type UseDictationOptions = {
111
- /** Speech resource endpoint from `SpeechConfig`; dictation is unavailable without it. */
112
- endpoint?: string | null;
114
+ /** Azure region from `SpeechConfig`; dictation is unavailable without it. */
115
+ region?: string | null;
113
116
  /** BCP-47 recognition locale (server default unless the user chose one). */
114
117
  locale: string;
115
118
  /** From the ChatService; dictation is unavailable without it. */
@@ -122,23 +125,31 @@ type UseDictationOptions = {
122
125
  * in state would re-render the whole composer on every partial result.
123
126
  */
124
127
  onInterim?: (text: string) => void;
125
- /** Hard stop, so a forgotten mic can't run for an hour. */
128
+ /**
129
+ * Hard stop, so a forgotten mic can't run for an hour. Keep it under the
130
+ * token's ~10 minute life: the token is never refreshed once the session is
131
+ * running, so a longer cap would end the session on an auth failure.
132
+ */
126
133
  maxDurationMs?: number;
127
134
  /** Stop after this long without any speech. */
128
135
  idleTimeoutMs?: number;
129
136
  };
130
137
  /**
131
138
  * Streams microphone audio to Azure AI Speech and hands back recognised
132
- * phrases. Owns the whole session: mic permission + stream, lazy SDK load,
139
+ * phrases. Owns the whole session: mic permission + stream, SDK loading,
133
140
  * recogniser lifecycle, idle/max timers, and teardown on stop or unmount.
134
141
  * Interim (not yet final) text goes to `onInterim` for display only; only final
135
142
  * phrases reach `onPhrase`.
136
143
  */
137
- declare function useDictation({ endpoint, locale, getToken, onPhrase, onInterim, maxDurationMs, idleTimeoutMs, }: UseDictationOptions): {
144
+ declare function useDictation({ region, locale, getToken, onPhrase, onInterim, maxDurationMs, idleTimeoutMs, }: UseDictationOptions): {
138
145
  supported: boolean;
139
146
  available: boolean;
140
147
  state: DictationState;
141
148
  error: DictationError | null;
149
+ /** Name of the microphone in use, once a session is live. May be ''. */
150
+ deviceLabel: string;
151
+ /** Listening, but the microphone has produced no sound for a while. */
152
+ silent: boolean;
142
153
  start: () => Promise<void>;
143
154
  stop: () => void;
144
155
  toggle: () => void;
@@ -149,6 +160,12 @@ type DictationButtonProps = {
149
160
  error: DictationError | null;
150
161
  disabled?: boolean;
151
162
  onToggle: () => void;
163
+ /**
164
+ * Microphone in use. Shown while listening because the browser picks the
165
+ * device, not us, and picking the wrong one is otherwise invisible: the
166
+ * session looks perfectly healthy and simply transcribes nothing.
167
+ */
168
+ deviceLabel?: string;
152
169
  /** Icon/button sizing to match the surrounding toolbar. */
153
170
  size?: 'sm' | 'md';
154
171
  };
@@ -159,32 +176,7 @@ type DictationButtonProps = {
159
176
  * run, because the button's job is the same at that point. The transcript appears
160
177
  * in the composer at the caret, so nothing is reported in two places.
161
178
  */
162
- declare function DictationButton({ state, error, disabled, onToggle, size, }: DictationButtonProps): react_jsx_runtime.JSX.Element;
163
-
164
- /**
165
- * Structural stand-in for `@azure/core-auth`'s `TokenCredential` — what
166
- * `SpeechConfig.fromEndpoint(url, credential)` accepts. Declared here rather
167
- * than imported so this package doesn't take a type dependency on a transitive
168
- * package of the SDK.
169
- */
170
- type SpeechTokenCredential = {
171
- getToken: (scopes: string | string[]) => Promise<{
172
- token: string;
173
- expiresOnTimestamp: number;
174
- }>;
175
- };
176
- /**
177
- * Adapts the app's authenticated token fetch to the shape the Speech SDK wants.
178
- * The SDK calls `getToken` when it connects and again as the token nears expiry;
179
- * caching means a long dictation doesn't re-hit the API on every reconnect, and
180
- * concurrent callers share one in-flight request.
181
- *
182
- * `seed` is the token the caller already fetched to start the session. Passing it
183
- * keeps the SDK's first connect off the network, and — more importantly — means a
184
- * failed fetch surfaces to the caller with its own error rather than reaching us
185
- * inside SDK internals, where it would only ever resurface as a generic cancel.
186
- */
187
- declare function createSpeechTokenCredential(fetchToken: () => Promise<SpeechToken>, seed?: SpeechToken): SpeechTokenCredential;
179
+ declare function DictationButton({ state, error, disabled, onToggle, deviceLabel, size, }: DictationButtonProps): react_jsx_runtime.JSX.Element;
188
180
 
189
181
  type MentionUserLike = {
190
182
  id: string;
@@ -499,9 +491,12 @@ interface ChatService {
499
491
  * Speech-to-text (composer dictation). Both are optional so existing
500
492
  * service implementations keep compiling — the composer renders a
501
493
  * microphone only when both are provided AND the config says enabled.
502
- * `getSpeechConfig` is read once per session; `getSpeechToken` is called
503
- * lazily by the Speech SDK when it connects and again as the token nears
504
- * expiry, so implementations needn't cache.
494
+ * `getSpeechConfig` is read once per session. `getSpeechToken` is called
495
+ * when a dictation session starts (in parallel with the mic permission
496
+ * prompt — and again if that token aged out while the prompt sat open). The
497
+ * token is handed to the SDK as-is and never refreshed mid-session, so a
498
+ * session is capped to stay inside its life. No caching wanted: a stale
499
+ * token cannot be renewed.
505
500
  */
506
501
  getSpeechConfig?(): Promise<SpeechConfig>;
507
502
  getSpeechToken?(): Promise<SpeechToken>;
@@ -569,6 +564,7 @@ declare const messagesResponseSchema: z.ZodObject<{
569
564
  value: z.ZodOptional<z.ZodNullable<z.ZodAny>>;
570
565
  }, z.core.$strip>>;
571
566
  }, z.core.$strip>>;
567
+ scoped: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
572
568
  total: z.ZodNumber;
573
569
  }, z.core.$strip>;
574
570
  type MessagesResponseDto = z.infer<typeof messagesResponseSchema>;
@@ -681,6 +677,7 @@ declare const threadsListResponseSchema: z.ZodObject<{
681
677
  totalMessages: z.ZodNumber;
682
678
  workSpaceId: z.ZodString;
683
679
  }, z.core.$strip>>;
680
+ scoped: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
684
681
  total: z.ZodNumber;
685
682
  }, z.core.$strip>;
686
683
  declare const threadResponseSchema: z.ZodObject<{
@@ -795,6 +792,7 @@ declare const workspaceResponseSchema: z.ZodObject<{
795
792
  path: z.ZodString;
796
793
  }, z.core.$strip>;
797
794
  flowId: z.ZodString;
795
+ honourSourceDeletes: z.ZodBoolean;
798
796
  id: z.ZodString;
799
797
  inputName: z.ZodString;
800
798
  type: z.ZodEnum<{
@@ -1037,6 +1035,7 @@ declare const workspacesListResponseSchema: z.ZodObject<{
1037
1035
  path: z.ZodString;
1038
1036
  }, z.core.$strip>;
1039
1037
  flowId: z.ZodString;
1038
+ honourSourceDeletes: z.ZodBoolean;
1040
1039
  id: z.ZodString;
1041
1040
  inputName: z.ZodString;
1042
1041
  type: z.ZodEnum<{
@@ -1184,6 +1183,7 @@ declare const workspacesListResponseSchema: z.ZodObject<{
1184
1183
  schema: z.ZodRecord<z.ZodString, z.ZodAny>;
1185
1184
  }, z.core.$strip>>;
1186
1185
  }, z.core.$strip>>;
1186
+ scoped: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
1187
1187
  total: z.ZodNumber;
1188
1188
  }, z.core.$strip>;
1189
1189
  type WorkspaceDto = z.infer<typeof workspaceResponseSchema>;
@@ -1568,4 +1568,4 @@ declare function useModels({ search, take, skip, }?: {
1568
1568
  */
1569
1569
  declare function useSpeechConfig(): _tanstack_react_query.UseQueryResult<SpeechConfig, Error>;
1570
1570
 
1571
- export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, DictationButton, type DictationButtonProps, type DictationError, type DictationState, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, type MessageErrorLike, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, type RetryStatus, type SpeechConfig, type SpeechToken, type SpeechTokenCredential, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type UseDictationOptions, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createSpeechTokenCredential, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getMessageErrorText, getModelIcon, getRetryStatusText, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, parseRetryStatus, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, speechKeys, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDictation, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useIsDraftThreadId, useMessages, useModels, useSendMessage, useSpeechConfig, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };
1571
+ export { type ChatContextIds, type ChatIdentity, ChatProvider, type ChatProviderProps, type ChatService, ChatVariablesForm, DRAFT_THREAD_PREFIX, DateFromApi, DictationButton, type DictationButtonProps, type DictationError, type DictationState, type FileInfo$1 as FileInfo, type FileScope, type FlowRunVariables, MarkdownEditor, type MarkdownEditorHandle, type MentionUser, type Message, MessageComposer, type MessageComposerProps, type MessageContentItem, type MessageError, type MessageErrorLike, MessageList, type MessageListProps, MessageListSkeleton, MessageMarkdown, type MessageThread, type MessageValue, MessageValueType, type Model, type ModelProperty, NEW_THREAD_ID, type RetryStatus, type SpeechConfig, type SpeechToken, THREAD_LIST_PAGE_SIZE, type ThreadsResponse, type UseDictationOptions, type Variables, type Workspace, applyDeltaToMessage, applyThreadToCache, createDraftThreadId, createThreadId, downloadFileBlobOptions, filesKeys, flowRunsKeys, getMessageErrorText, getModelIcon, getRetryStatusText, getThreadPlaceholderFromListCache, getUserPhotoUrl, invalidateWorkspaceThreadLists, isDraftThreadId, mapFileInfoDtoToModel, mapMentionUserDtoToModel, mapMessageDtoToModel, mapMessageErrorDtoToModel, mapMessageValueDtoToModel, mapMessagesDtoToModels, mapSignalRThreadSummaryToModel, mapThreadDtoToModel, mapThreadsResponseDtoToModel, mapWorkspaceDtoToModel, mapWorkspacesDtoToModels, markDraftThreadId, messagesKeys, messagesListOptions, messagesMutationsKeys, modelsKeys, parseDateTime, parseDateTimeHuman, parseRetryStatus, randomUUID, setThreadOptimisticRunning, setThreadRunningInLists, speechKeys, taggableUsersOptions, threadDetailOptions, threadsKeys, unmarkDraftThreadId, useAddInputToMessage, useChatContext, useChatIdentity, useChatService, useDictation, useDownloadFileBlobQuery, useFileMutations, useFlowRunVariables, useIsDraftThreadId, useMessages, useModels, useSendMessage, useSpeechConfig, useTaggableWorkspaceUsers, useThread, useThreadIsRunning, useUpdateFlowRunVariable, useWorkspace, utcDate, workspaceDetailOptions, workspaceKeys };