@copilotkit/web-inspector 1.69.0 → 1.69.2

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.umd.js CHANGED
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
7
7
 
8
8
  //#region src/styles/generated.css
9
- var generated_default = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-800:oklch(45.5% .188 13.697);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{font-family:var(--font-sans);color:var(--color-slate-900);background-color:#0000;display:block}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:calc(var(--spacing)*0)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-auto{margin-right:auto}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[28rem\\]{height:28rem}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing)*32)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-\\[20rem\\]{min-height:20rem}.min-h-\\[40px\\]{min-height:40px}.min-h-\\[420px\\]{min-height:420px}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-40{width:calc(var(--spacing)*40)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\\[80\\%\\]{max-width:80%}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[240px\\]{max-width:240px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[200px\\]{min-width:200px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\\[2px\\]{--tw-translate-y:calc(2px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-nesw-resize{cursor:nesw-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[16px\\]{border-radius:16px}.rounded-\\[28px\\]{border-radius:28px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-violet-200{border-color:var(--color-violet-200)}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-\\[\\#00000014\\]{background-color:#00000014}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-950\\/95{background-color:#020618f2}@supports (color:color-mix(in lab, red, red)){.bg-slate-950\\/95{background-color:color-mix(in oklab,var(--color-slate-950)95%,transparent)}}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-white\\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\\[22px\\]{--tw-leading:22px;line-height:22px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[rgb\\(13\\,13\\,13\\)\\]{color:#0d0d0d}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-fuchsia-700{color:var(--color-fuchsia-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-700{color:var(--color-purple-700)}.text-rose-600{color:var(--color-rose-600)}.text-rose-700{color:var(--color-rose-700)}.text-rose-800{color:var(--color-rose-800)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-800{color:var(--color-slate-800)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-violet-950{color:var(--color-violet-950)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-violet-300{-webkit-text-decoration-color:var(--color-violet-300);-webkit-text-decoration-color:var(--color-violet-300);text-decoration-color:var(--color-violet-300)}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_4px_4px_0_\\#0000000a\\,0_0_1px_0_\\#0000009e\\]{--tw-shadow:0 4px 4px 0 var(--tw-shadow-color,#0000000a),0 0 1px 0 var(--tw-shadow-color,#0000009e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-black\\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-white\\/10{--tw-ring-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.ring-white\\/10{--tw-ring-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-gray-500::placeholder{color:var(--color-gray-500)}.focus-within\\:shadow-\\[0_6px_18px_0_\\#00000014\\,0_0_1px_0_\\#0000009e\\]:focus-within{--tw-shadow:0 6px 18px 0 var(--tw-shadow-color,#00000014),0 0 1px 0 var(--tw-shadow-color,#0000009e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:border-white\\/30:hover{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\\:border-white\\/30:hover{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.hover\\:bg-blue-50\\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-blue-50\\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\\:bg-slate-900\\/95:hover{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-slate-900\\/95:hover{background-color:color-mix(in oklab,var(--color-slate-900)95%,transparent)}}.hover\\:bg-violet-100:hover{background-color:var(--color-violet-100)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-violet-800:hover{color:var(--color-violet-800)}.hover\\:decoration-violet-700:hover{-webkit-text-decoration-color:var(--color-violet-700);-webkit-text-decoration-color:var(--color-violet-700);text-decoration-color:var(--color-violet-700)}.hover\\:opacity-70:hover{opacity:.7}}.focus\\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\\:border-violet-400:focus{border-color:var(--color-violet-400)}.focus\\:bg-gray-50:focus{background-color:var(--color-gray-50)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\\:ring-violet-100:focus{--tw-ring-color:var(--color-violet-100)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:rounded:focus-visible{border-radius:.25rem}.focus-visible\\:rounded-sm:focus-visible{border-radius:var(--radius-sm)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-rose-300:focus-visible{--tw-ring-color:var(--color-rose-300)}.focus-visible\\:ring-violet-300:focus-visible{--tw-ring-color:var(--color-violet-300)}.focus-visible\\:ring-violet-400:focus-visible{--tw-ring-color:var(--color-violet-400)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-\\[\\#BEC2FF\\]:focus-visible{outline-color:#bec2ff}.focus-visible\\:outline-gray-300:focus-visible{outline-color:var(--color-gray-300)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:opacity-60:active{opacity:.6}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-60:disabled{opacity:.6}@media (min-width:48rem){.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\\[\\&\\>svg\\]\\:\\!h-8>svg{height:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:h-3>svg{height:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:h-3\\.5>svg{height:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:h-\\[18px\\]>svg{height:18px}.\\[\\&\\>svg\\]\\:\\!w-8>svg{width:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:w-3>svg{width:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:w-3\\.5>svg{width:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:w-\\[18px\\]>svg{width:18px}.\\[\\&\\>svg\\]\\:animate-spin>svg{animation:var(--animate-spin)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.cpk-json-block{white-space:pre-wrap;word-break:break-all;color:#57575b;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;line-height:1.8;overflow:auto}.inspector-account-strip{border-bottom:1px solid #d8d8e8;width:100%;min-width:0;color:#010507!important;background:linear-gradient(90deg,#fff 0%,#f3f1ff 58%,#eefbf7 100%)!important}.inspector-account-logo{filter:none}.inspector-account-brand{position:relative}.inspector-account-logo-accent{clip-path:inset(0 0 0 80%);pointer-events:none;display:none;position:absolute;inset:0}.inspector-account-cta{isolation:isolate;color:#3f176f;white-space:nowrap;cursor:pointer;background-color:#eee6fe;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:7px 10px;font-size:11px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.inspector-account-cta:after{z-index:0;content:\"\";opacity:0;pointer-events:none;background:linear-gradient(105deg,#0000 0%,#ffffff14 32%,#ffffffad 50%,#ffffff14 68%,#0000 100%);width:68%;animation:3.8s cubic-bezier(.16,1,.3,1) infinite inspector-account-cta-shimmer;position:absolute;inset:0;transform:translate(-180%)skew(-14deg)}.inspector-account-cta>*{z-index:1;position:relative}.inspector-account-cta[data-motion-paused=true]:after{animation-play-state:paused}@keyframes inspector-account-cta-shimmer{0%{opacity:0;transform:translate(-180%)skew(-14deg)}12%{opacity:1}82%{opacity:.8}to{opacity:0;transform:translate(280%)skew(-14deg)}}.inspector-account-cta:hover{color:#32105d;background-color:#e4d8fc}.inspector-account-cta svg{width:14px;height:14px}@media (prefers-reduced-motion:reduce){.inspector-account-cta:after{animation:none}}.inspector-window-layout{position:relative}.inspector-window-layout-menu{z-index:60;color:#010507;background-color:#fff;border:1px solid #d8d8e8;border-radius:5px;width:188px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 24px #1f173924}.inspector-window-layout-menu button{min-height:34px;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;border-radius:4px;align-items:center;gap:9px;padding:7px 9px;font-size:12px;font-weight:600;display:flex}.inspector-window-layout-menu button:hover,.inspector-window-layout-menu button:focus-visible{color:#3f176f;background-color:#eee6fe;outline:none}.inspector-window-layout-menu button span:first-child{flex:none;display:inline-flex}.inspector-agent-placeholder{color:#68686e;border-color:#c8c8d8}.inspector-primary-navigation,.inspector-child-navigation{display:none}.inspector-shell{background-color:#f7f6fd;flex:auto;min-height:0;display:flex}.inspector-sidebar{z-index:20;background-color:#f7f6fd;border-right:1px solid #d8d8e8;flex-direction:column;flex:none;gap:8px;width:224px;min-width:224px;padding:12px 10px;transition:width .22s,min-width .22s,padding .22s;display:flex;position:relative;overflow:visible}.inspector-sidebar[data-icon-rail=true]{width:56px;min-width:56px;padding:10px 6px}.inspector-sidebar-agent-scope{border-bottom:1px solid #d8d8e8;flex:none;min-width:0;padding-bottom:10px}.inspector-sidebar .inspector-agent-selector{width:100%;min-width:0}.inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{background-color:#fff;border-radius:5px;max-width:none;min-height:34px;padding:6px 8px}.inspector-context-dropdown-icon{color:#68686e;display:inline-flex}.inspector-context-dropdown-icon svg,.inspector-context-dropdown-chevron svg{width:14px;height:14px}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope{padding-bottom:8px}.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true]>button{justify-content:center;width:100%;min-height:34px;padding:6px 0}.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-label,.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-chevron,.inspector-sidebar[data-icon-rail=true] .inspector-agent-placeholder span:last-child{display:none}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope [data-context-dropdown-root=true]>div{margin-top:0;top:0;left:calc(100% + 8px)}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-section+.inspector-sidebar-section{border-top:1px solid #dbdbe5;margin-top:4px;padding-top:10px}.inspector-sidebar-nav{cursor:default;flex-direction:column;flex:auto;gap:14px;min-height:0;display:flex;overflow:hidden auto}.inspector-sidebar-section{flex-direction:column;gap:4px;display:flex}.inspector-sidebar-label{color:#838389;letter-spacing:.02em;text-align:left;text-transform:none;background:0 0;border:0;width:100%;margin:0 0 2px;padding:0 8px;font-size:11px;font-weight:600;display:block}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-label,.inspector-sidebar[data-icon-rail=true] .inspector-nav-label{display:none}.inspector-sidebar-rail-tooltip{z-index:60;color:#fff;pointer-events:none;white-space:nowrap;background-color:#242331;border-radius:6px;max-width:220px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.2;position:absolute;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 7px 18px #1a172a2e}.inspector-sidebar-control{justify-content:flex-start;width:100%;min-height:36px;display:flex;position:relative}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-control,.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-toggle,.inspector-sidebar[data-icon-rail=true] .inspector-nav-control{justify-content:center;align-items:center;gap:0;padding:6px 0;overflow:hidden}.inspector-home-badge{background-color:#fa5f67;border-radius:999px;width:7px;height:7px;position:absolute;top:8px;right:8px}.inspector-sidebar[data-icon-rail=true] .inspector-home-badge{top:6px;right:8px}.inspector-sidebar-toggle{color:#57575b;width:100%;min-height:32px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;display:flex}.inspector-sidebar-toggle:hover{color:#010507;background-color:#f0f0f4}.inspector-sidebar-footer{flex-direction:column;flex:none;gap:6px;padding:2px 0 18px;display:flex}.inspector-sidebar-status-list{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.inspector-sidebar-status-card{color:#2b2b2b;background-color:#fff;border:1px solid #d8d8e8;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:9px 10px;display:grid;position:relative}.inspector-sidebar-status-copy{flex-direction:column;gap:2px;min-width:0;line-height:1.25;display:flex}.inspector-sidebar-status-copy strong{color:#010507;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.inspector-sidebar-status-copy>span{color:#57575b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#68686e}.inspector-sidebar-status-action{color:#3f176f;white-space:nowrap;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;gap:0;width:28px;height:28px;padding:0;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-sidebar-status-action:hover{color:#6430ab;background-color:#eee7f8;text-decoration:none}.inspector-sidebar-status-action svg{width:12px;height:12px}.inspector-sidebar-status-action-label{display:none}.inspector-sidebar-intelligence-setup{color:#3f176f;cursor:pointer;background-color:#eee7f8;border-color:#bba5df;text-decoration:none;transition:border-color .12s,background-color .12s,box-shadow .3s;animation:3.2s ease-in-out infinite inspector-sidebar-intelligence-setup-glow}@keyframes inspector-sidebar-intelligence-setup-glow{0%,to{box-shadow:0 0 #6430ab00}50%{box-shadow:0 0 16px 2px #6430ab26}}.inspector-sidebar-intelligence-setup:hover{background-color:#e4d9f4;border-color:#8e6fc0}.inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#3f176f}.inspector-sidebar-setup-arrow{background-color:#6430ab1a;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.inspector-sidebar-setup-arrow svg{width:13px;height:13px}.inspector-main{background-color:#fff;flex-direction:column;flex:auto;min-width:0;display:flex;position:relative}.cpk-memory-locked{background-color:#fff;justify-content:center;align-items:center;height:100%;padding:32px;display:flex;position:relative;overflow:hidden}.cpk-locked-preview{opacity:.58;pointer-events:none;grid-template-columns:minmax(180px,28%) 1fr;display:grid;position:absolute;inset:0;overflow:hidden}.cpk-locked-preview-sidebar{background-color:#fafafa;border-right:1px solid #dbdbe5;flex-direction:column;gap:12px;padding:28px 24px;display:flex}.cpk-locked-preview-row{background-color:#fff;border-radius:10px;padding:12px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-row[data-accent=true]{background-color:#eee6fe}.cpk-locked-preview-bar{background-color:#d7d7df;border-radius:999px}.cpk-locked-preview-row-title{width:var(--preview-width);height:8px}.cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#a984f5}.cpk-locked-preview-row-line{background-color:#e3e3eb;width:88%;height:6px;margin-top:10px}.cpk-locked-preview-row-line:last-child{background-color:#e8e8ef;width:62%;margin-top:7px}.cpk-locked-preview-main{background-color:#fff;min-width:0;padding:42px 48px}.cpk-locked-preview-heading{width:180px;height:10px}.cpk-locked-preview-copy{background-color:#e3e3eb;width:min(520px,58%);height:8px;margin-top:28px}.cpk-locked-preview-copy+.cpk-locked-preview-copy{background-color:#e8e8ef;width:min(430px,48%);margin-top:12px}.cpk-locked-preview-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:620px;margin-top:30px;display:grid}.cpk-locked-preview-card{background-color:#f5f5f8;border-radius:10px;height:116px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-footer-line{background-color:#e3e3eb;width:min(680px,74%);height:10px;margin-top:34px}.cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#e8e8ef;width:min(560px,60%);margin-top:14px}.cpk-memory-locked-scrim{pointer-events:none;background:radial-gradient(circle,#ffffffe6 0,#ffffffc7 24%,#ffffff57 48%,#ffffff8f 100%);position:absolute;inset:0}.cpk-memory-locked-content{z-index:1;color:#57575b;text-align:center;max-width:440px;position:relative}.cpk-memory-locked-icon-wrap{justify-content:center;margin:0 auto 18px;display:flex}.cpk-memory-locked-icon{color:#57575b;background-color:#eee6fe;border:1px solid #dfd6fb;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 8px 18px #57575b24}.cpk-memory-locked-title{color:#010507;margin:0 0 8px;font-size:16px;font-weight:600;line-height:1.35}.cpk-memory-locked-copy{color:#57575b;max-width:380px;margin:0 auto 18px;font-size:13px;line-height:1.55}.cpk-memory-locked-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cpk-memory-locked-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.cpk-memory-locked-action:hover{background-color:#4e238c;border-color:#4e238c}.cpk-memory-locked-action-secondary{color:#57575b;background-color:#fff;border-color:#dbdbe5}.cpk-memory-locked-action-secondary:hover{background-color:#f7f7f9;border-color:#afafb7}.inspector-home{background-color:#fff;min-height:100%;padding:30px 32px 40px;position:relative;overflow:auto}.inspector-home:before{display:none}.inspector-home>*{width:min(100%,960px);margin-left:auto;margin-right:auto}.inspector-settings{color:#010507;background-color:#fff;min-height:100%;padding:28px 28px 36px;overflow:auto}.inspector-settings-header{border-bottom:1px solid #d5d3e4;max-width:70ch;padding-bottom:22px}.inspector-settings-title{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-settings-subtitle{color:#57575b;max-width:60ch;margin:10px 0 0;font-size:14px;line-height:1.5}.inspector-settings-section{grid-template-columns:minmax(138px,168px) minmax(0,1fr);gap:30px;max-width:820px;margin-top:28px;display:grid}.inspector-settings-section-heading{align-items:flex-start;gap:10px;display:flex}.inspector-settings-section-icon{color:#3f176f;background-color:#eee6fe;border:1px solid #bec2ff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.inspector-settings-section-icon svg{width:16px;height:16px}.inspector-settings-section-heading h2,.inspector-settings-status-row h3{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:600}.inspector-settings-section-heading h2{font-size:15px;line-height:1.3}.inspector-settings-section-heading p{color:#68686e;margin:5px 0 0;font-size:11px;line-height:1.45}.inspector-settings-privacy{border-top:1px solid #d5d3e4;border-bottom:1px solid #d5d3e4;padding:20px 0 22px}.inspector-settings-status-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.inspector-settings-status-row h3{font-size:16px;line-height:1.3}.inspector-settings-status-row p{color:#57575b;max-width:56ch;margin:8px 0 0;font-size:13px;line-height:1.55}.inspector-settings-status{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;min-height:24px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#7d4d0a;background-color:#fff5df;border-color:#dfc08f}.inspector-settings-private-content{border-top:1px solid #e4e4ec;margin-top:20px;padding-top:18px}.inspector-settings-private-content strong{color:#010507;font-size:13px;font-weight:700}.inspector-settings-private-content>p{color:#68686e;margin:4px 0 0;font-size:11px;line-height:1.45}.inspector-settings-private-content ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:12px 0 0;display:grid}.inspector-settings-private-content li{color:#3e3d48;align-items:center;gap:7px;min-width:0;font-size:12px;line-height:1.35;display:flex}.inspector-settings-private-content li span{color:#087653;flex:none;display:inline-flex}.inspector-settings-private-content li svg{width:14px;height:14px}.inspector-settings-policy-link{color:#3f176f;text-underline-offset:3px;outline-offset:2px;outline:2px solid #0000;align-items:center;gap:6px;min-height:32px;margin-top:20px;font-size:12px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.inspector-settings-policy-link:hover{color:#6430ab}.inspector-settings-policy-link:focus-visible{outline-color:#6430ab}.inspector-settings-policy-link svg{width:14px;height:14px}@media (max-width:720px){.inspector-settings{padding:24px 20px 32px}.inspector-settings-section{grid-template-columns:1fr;gap:18px}.inspector-settings-section-heading p{max-width:42ch}}@media (max-width:480px){.inspector-settings-status-row{flex-direction:column;gap:12px}.inspector-settings-private-content ul{grid-template-columns:1fr}}.inspector-home-card,.inspector-home-story{background-color:#ffffffd1;border:1px solid #deddea;border-radius:5px;padding:18px 18px 16px;position:relative}.inspector-home-eyebrow,.inspector-home-card-label,.inspector-home-meta{color:#57575b;margin:0;font-size:12px;font-weight:600}.inspector-home-title,.inspector-home-section-title,.inspector-home-card-title{color:#010507;margin:8px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-home-section-title{letter-spacing:-.015em;margin:0 0 14px;font-size:17px}.inspector-home-card-title{font-size:16px}.inspector-home-body,.inspector-home-card-copy{color:#57575b;max-width:52ch;margin:10px 0 0;font-size:15px;line-height:1.5}.inspector-home-section{margin-top:24px;position:relative}.inspector-home>.inspector-home-section:first-child{margin-top:0}.inspector-whats-new-preview+.inspector-home-section{margin-top:20px}.inspector-home-section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.inspector-home-section-header .inspector-home-section-title{margin-bottom:0}.inspector-home-section-header>span{color:#68686e;font-size:11px;font-weight:600;line-height:1.35}.inspector-system-health-header>span[data-tone=success]{color:#087653}.inspector-system-health-header>span[data-tone=checking]{color:#8a5900}.inspector-system-health-header>span[data-tone=offline],.inspector-system-health-header>span[data-tone=error]{color:#b32d3b}.inspector-system-health-section{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-system-health-section .inspector-system-health-header{background-color:#f7f4fe;border-bottom:1px solid #d5d3e4;align-items:center;min-height:76px;margin:0;padding:18px}.inspector-system-health-heading{min-width:0}.inspector-system-health-heading .inspector-home-section-title{color:#010507;letter-spacing:-.025em;font-size:18px}.inspector-system-health-state,.inspector-intelligence-hud-state{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;gap:6px;min-height:24px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-system-health-state>span,.inspector-intelligence-hud-state>span{background-color:currentColor;border-radius:999px;width:6px;height:6px}.inspector-system-health-state[data-tone=checking],.inspector-intelligence-hud-state[data-tone=checking]{background-color:#fff5df;border-color:#dfc08f;color:#7d4d0a!important}.inspector-system-health-state[data-tone=offline],.inspector-system-health-state[data-tone=error],.inspector-intelligence-hud-state[data-tone=offline],.inspector-intelligence-hud-state[data-tone=error]{background-color:#fff0f1;border-color:#e7a7ac;color:#b32d3b!important}.inspector-system-health-state[data-tone=unavailable],.inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#f0f0f4;border-color:#c8c8d2;color:#57575b!important}.inspector-system-health{background-color:#d5d3e4;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.inspector-system-health-signal{background-color:#fff;grid-template-columns:minmax(0,1fr);align-items:start;min-width:0;min-height:84px;padding:15px 16px 14px;display:grid}.inspector-system-health-copy{flex-direction:column;min-width:0;display:flex}.inspector-system-health-signal dt{color:#68686e;letter-spacing:.035em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.3}.inspector-system-health-signal dd{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:15px;font-weight:700;overflow:hidden}.inspector-system-health-signal small{color:#68686e;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:4px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;line-height:1.4;overflow:hidden}small.inspector-system-health-detail{letter-spacing:0;font-family:inherit;font-size:11px;font-weight:500;line-height:1.4}.inspector-system-health-url{cursor:help;outline:none;position:relative;overflow:visible!important}.inspector-system-health-url>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-url:after{z-index:30;color:#f3f4f8;content:attr(data-full-value);opacity:0;overflow-wrap:anywhere;pointer-events:none;white-space:normal;background-color:#15171e;border:1px solid #3a3d49;border-radius:4px;width:max-content;max-width:min(360px,70vw);padding:7px 9px;font-size:10px;font-weight:500;line-height:1.45;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:0;transform:translateY(3px);box-shadow:0 8px 20px #0105072e}.inspector-system-health-url:hover:after,.inspector-system-health-url:focus-visible:after{opacity:1;transform:translateY(0)}.inspector-system-health-url:focus-visible>span{outline-offset:2px;border-radius:3px;outline:2px solid #6430ab}.inspector-system-health-signal[data-tone=success] dd{color:#087653}.inspector-system-health-signal[data-tone=active] dd{color:#8a5900}.inspector-system-health-event-link{width:100%;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.inspector-system-health-event-link>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-event-link>.inspector-system-health-event-type{color:#57575b;letter-spacing:.025em;background-color:#f1f1f3;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:3px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;line-height:1.25;display:inline-flex}.inspector-system-health-event-link>small{color:#68686e;align-items:center;gap:6px;margin:5px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:10px;font-weight:500;line-height:1.25;display:flex}.inspector-system-health-event-meta strong{color:#6430ab;text-underline-offset:3px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#b32d3b;background-color:#fff0f1}.inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#087653;background-color:#e3f5ee}.inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#8a5900;background-color:#fff5df}.inspector-system-health-event-link:hover .inspector-system-health-event-meta strong{text-decoration-color:currentColor}.inspector-system-health-event-link:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #6430ab}.inspector-intelligence-hud{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-intelligence-hud-header{justify-content:space-between;align-items:center;gap:24px;padding:18px;display:flex}.inspector-intelligence-hud[data-state=disconnected]{border-color:#bba5df}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header{align-items:center;min-height:132px;padding:22px}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header-actions{flex-direction:column;align-items:flex-end;gap:10px}.inspector-intelligence-hud-heading{min-width:0}.inspector-intelligence-hud-header-actions{flex:none;align-items:center;gap:8px;display:flex}.inspector-intelligence-hud-heading .inspector-home-section-title{margin:0;font-size:18px}.inspector-intelligence-hud-description{color:#4f4f55;max-width:64ch;margin:10px 0 0;font-size:12px;line-height:1.55}.inspector-intelligence-hud-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 11px;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-intelligence-hud-action:hover{background-color:#4e238c;border-color:#4e238c}.inspector-intelligence-hud-action svg{width:13px;height:13px}.inspector-intelligence-hud-connect-action{min-height:38px;padding:10px 14px;font-size:12px}.inspector-intelligence-hud-details{background-color:#d5d3e4;border-top:1px solid #d5d3e4;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1px;display:grid}.inspector-intelligence-hud-details>section{background-color:#fff;min-width:0;padding:15px 18px 17px}.inspector-intelligence-hud-detail-label{color:#68686e;font-size:11px;font-weight:600;display:block}.inspector-intelligence-hud-detail-value{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:14px;font-weight:700;display:block;overflow:hidden}.inspector-intelligence-hud-detail-subvalue{color:#68686e;text-transform:capitalize;margin-top:3px;font-size:10px;font-weight:500;display:block}.inspector-intelligence-hud-plan{grid-template-columns:minmax(0,1fr) minmax(120px,1fr);align-items:start;gap:24px;display:grid}.inspector-intelligence-hud-usage{min-width:0}.inspector-intelligence-hud-plan-action{color:#6430ab;text-underline-offset:3px;background-color:#0000;border:0;border-radius:0;gap:4px;min-height:auto;margin-top:9px;padding:0;font-size:10px;font-weight:700;line-height:1.2;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.inspector-intelligence-hud-plan-action:hover{color:#4e238c;background-color:#0000;border-color:#0000;text-decoration-color:currentColor}.inspector-intelligence-hud-plan-action svg{width:11px;height:11px}.inspector-home-usage-bar{background-color:#dbdbe5;border-radius:999px;width:min(160px,100%);height:5px;margin-top:8px;display:block;overflow:hidden}.inspector-home-usage-bar>span{background-color:#bec2ff;height:100%;display:block}.inspector-home-feature-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));align-items:start;gap:12px;display:grid}.inspector-home-feature-group{background-color:#fff;border:1px solid #d5d3e4;border-radius:5px;overflow:hidden}.inspector-home-feature-group-header{color:#57575b;background-color:#f7f7f9;border-bottom:1px solid #e4e4ec;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:9px 12px;display:flex}.inspector-home-feature-group-header strong{font-size:12px;font-weight:700}.inspector-home-feature-group-header>span{background-color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;min-height:20px;padding:2px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#087653;background-color:#e5f7f1;border-color:#b9e3d6}.inspector-home-feature-list{background-color:#fff;flex-direction:column;margin:0;display:flex}.inspector-home-feature{color:#010507;background-color:#fff;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-width:0;min-height:43px;padding:10px 12px;font-size:12px;font-weight:600;text-decoration:none;display:grid}.inspector-home-feature+.inspector-home-feature{border-top:1px solid #ececf1}.inspector-home-feature-group-empty{color:#68686e;margin:0;padding:15px 12px;font-size:11px}.inspector-home-feature:hover{background-color:#f7f7f9}.inspector-home-feature-arrow svg{width:12px;height:12px}.inspector-home-feature small{color:#087653;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700}.inspector-home-feature[data-state=off],.inspector-home-feature[data-state=off] small,.inspector-home-feature-arrow{color:#68686e}.inspector-home-features-empty{color:#57575b;border-top:1px solid #deddea;border-bottom:1px solid #deddea;margin:14px 0 0;padding:16px 0;font-size:12px}.inspector-home-news{gap:12px;display:grid}.inspector-whats-new-preview{color:#010507;background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;align-items:stretch;width:100%;min-height:64px;display:flex;position:relative;overflow:hidden;container-type:inline-size}.inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background-color:#f1ebfc;border-color:#8f91d7}.inspector-whats-new-preview-body{min-width:0;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;flex:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.inspector-whats-new-preview-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.inspector-whats-new-preview-title{align-items:center;gap:8px;min-width:0;display:flex}.inspector-whats-new-preview-copy strong{text-overflow:ellipsis;white-space:nowrap;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:13px;line-height:1.25;overflow:hidden}.inspector-whats-new-preview-copy>span:last-child{color:#4e4c63;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4;overflow:hidden}.inspector-whats-new-preview-action{color:#3f176f;white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.inspector-whats-new-preview-action svg{width:15px;height:15px}@container (max-width:640px){.inspector-whats-new-preview-body{grid-template-columns:minmax(0,1fr)}.inspector-whats-new-preview-action{display:none}}.inspector-whats-new-preview-dismiss{color:#68686e;cursor:pointer;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.inspector-whats-new-preview-dismiss:hover{color:#3f176f;background-color:#6430ab1a}.inspector-whats-new-preview-dismiss svg{width:14px;height:14px}@media (max-width:720px){.inspector-account-cta{width:32px;padding-inline:0}.inspector-account-cta-label{display:none}.inspector-home{padding:24px 22px 34px}.inspector-intelligence-hud-header{flex-wrap:wrap}.inspector-intelligence-hud-details{grid-template-columns:1fr}.inspector-intelligence-hud-plan{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector-whats-new-preview-action{display:none}}@media (max-width:600px){.inspector-system-health{grid-template-columns:1fr}}@media (max-width:480px){.inspector-system-health-section .inspector-system-health-header{align-items:flex-start}.inspector-intelligence-hud-header{flex-direction:column;align-items:stretch}.inspector-intelligence-hud-header-actions{justify-content:space-between}.inspector-intelligence-hud-header-actions .inspector-intelligence-hud-action,.inspector-intelligence-hud-plan{width:100%}.inspector-intelligence-hud-plan{grid-template-columns:1fr;align-items:stretch}.inspector-intelligence-hud-plan-action{justify-self:start}.inspector-whats-new-header{align-items:center;gap:16px;width:calc(100% - 24px);padding:24px 22px}.inspector-whats-new-document,.inspector-whats-new-empty{padding:20px 22px 36px}.inspector-whats-new-document .announcement-content h1+p{font-size:16px}}.inspector-whats-new-header{background:#f8f7ff;border:1px solid #d8d8e8;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;width:calc(100% - 44px);max-width:calc(70ch - 44px);padding:30px 32px 28px;display:flex;box-shadow:0 12px 28px #26224e0f}.inspector-whats-new-header .inspector-home-title{letter-spacing:-.035em;margin:0;font-size:clamp(27px,3.6vw,36px)}.inspector-whats-new-updated{color:#6c687c;letter-spacing:.01em;white-space:nowrap;flex:none;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;font-weight:600}.inspector-whats-new .inspector-home-news{max-width:70ch;margin-top:0}.inspector-whats-new-document,.inspector-whats-new-empty{max-width:70ch;padding:22px 32px 52px}.inspector-whats-new-document .announcement-content{color:#2b2b39;font-size:15px;line-height:1.72}.inspector-whats-new-document .announcement-content h1{color:#15131d;letter-spacing:-.032em;max-width:24ch;margin:0 0 16px;font-size:clamp(26px,3.2vw,34px);line-height:1.1}.inspector-whats-new-document .announcement-content h1+p{color:#504d61;max-width:58ch;margin-top:0;font-size:18px;line-height:1.58}.inspector-whats-new-document .announcement-content>hr:first-child{display:none}.inspector-whats-new-document .announcement-content h2:first-of-type{border-top:0;margin-top:14px;padding-top:0}.inspector-whats-new-document .announcement-content h2{color:#1b1924;letter-spacing:-.024em;border-top:1px solid #dfdeea;margin:44px 0 14px;padding-top:24px;font-size:21px;line-height:1.2}.inspector-whats-new-document .announcement-content p{max-width:70ch;margin:.85rem 0}.inspector-whats-new-document .announcement-content ul,.inspector-whats-new-document .announcement-content ol{max-width:68ch;margin:1.25rem 0 1.5rem;padding-left:1.4rem}.inspector-whats-new-document .announcement-content li+li{margin-top:.7rem}.inspector-whats-new-document .announcement-content a{color:#4e46a5;text-underline-offset:4px;font-weight:600;text-decoration-color:#4e46a56b;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}.inspector-whats-new-document .announcement-content a:hover{color:#312879;text-decoration-color:currentColor}.inspector-whats-new-empty{color:#5e5b70}.inspector-whats-new-empty .inspector-home-card-title{color:#1b1924;margin:0}.inspector-whats-new-empty .inspector-home-card-copy{max-width:48ch;margin:8px 0 0}.inspector-home-story-featured{padding:22px}.inspector-home-story-link{color:inherit;cursor:pointer;text-decoration:none;display:block}.inspector-home-story-link:hover{background-color:#fff;border-color:#8f91d7}.inspector-home-story[data-unread=true]{border-color:#bec2ff;padding-right:64px;box-shadow:0 0 0 1px #6430ab}.inspector-home-story-unread{color:#fff;letter-spacing:.04em;text-transform:uppercase;background-color:#6430ab;border-radius:999px;align-items:center;min-height:18px;padding:0 7px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity .18s,width .22s;overflow:hidden}.inspector-nav-control{color:#57575b;min-height:32px;font:inherit;text-align:left;outline-offset:-2px;cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:5px;outline:2px solid #0000;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;line-height:1.25;display:flex}.inspector-nav-control:hover{color:#010507;background-color:#f0f0f4}.inspector-nav-control-active{color:#3f176f;background-color:#eee6fe;border-color:#bec2ff}.inspector-nav-icon{flex:none;align-items:center;display:inline-flex}.inspector-nav-icon svg{width:15px;height:15px}.inspector-nav-control:focus-visible,.inspector-account-control:focus-visible,[data-inspector-thread-cta]:focus-visible,[data-inspector-sidebar-intelligence-action]:focus-visible,[data-inspector-whats-new-preview]:focus-visible,[data-inspector-whats-new-dismiss]:focus-visible,[data-inspector-home-intelligence-action]:focus-visible,.inspector-home-feature:focus-visible,[data-inspector-action-placement=threads-footer]:focus-visible{outline-offset:2px;outline:2px solid #6430ab!important}.inspector-sidebar .inspector-nav-control:focus-visible,.inspector-sidebar .inspector-sidebar-label:focus-visible,.inspector-sidebar [data-inspector-thread-cta]:focus-visible{outline-offset:-2px!important}.inspector-account-control{color:#57575b;font:inherit;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #0000;outline:2px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.inspector-account-control:hover,.inspector-account-control-active{color:#3f176f;background-color:#6430ab17}:host ::selection{color:#010507;background-color:#cfd2ff}:host *{scrollbar-color:#aaa9c1 transparent;scrollbar-width:thin}:host ::-webkit-scrollbar{width:8px;height:8px}:host ::-webkit-scrollbar-thumb{background:#aaa9c1 padding-box padding-box;border:2px solid #0000;border-radius:999px}.inspector-account-control-icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.inspector-account-control-icon svg{width:15px;height:15px}[data-inspector-thread-cta],[data-inspector-account-strip] button,[data-inspector-account-strip] a{cursor:pointer}@media (prefers-reduced-motion:reduce){.inspector-sidebar,.inspector-nav-label{transition:none}}[data-inspector-threads-setup-prompt],[data-inspector-threads-setup-link]{min-height:34px;font:inherit;outline-offset:2px;cursor:pointer;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-threads-setup-prompt]{color:#fff;background-color:#010507;border-color:#010507}[data-inspector-threads-setup-prompt]:hover{background-color:#2b2b2b;border-color:#2b2b2b}[data-inspector-threads-setup-link]{color:#57575b;background-color:#fff}[data-inspector-threads-setup-link]:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}[data-inspector-threads-setup-prompt]:focus-visible,[data-inspector-threads-setup-link]:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.inspector-threads-footer{color:#57575b;background-color:#f7f7f9;border-top:1px solid #dbdbe5;flex:none;gap:10px;padding:12px;font-size:11px;line-height:1.35;display:grid}.inspector-threads-usage{gap:6px;display:grid}[data-inspector-thread-count]{color:#010507;font-weight:600}[data-inspector-thread-expiry]{color:#57575b}.inspector-thread-progress{--inspector-thread-progress-color:#189370;width:100%;height:6px;accent-color:var(--inspector-thread-progress-color);border-radius:999px;overflow:hidden}.inspector-thread-progress[data-inspector-thread-capacity=warning]{--inspector-thread-progress-color:#b45309}.inspector-thread-progress[data-inspector-thread-capacity=critical]{--inspector-thread-progress-color:#be123c}.inspector-thread-progress::-webkit-progress-bar{background-color:#dbdbe5;border-radius:999px}.inspector-thread-progress::-webkit-progress-value{background-color:var(--inspector-thread-progress-color);border-radius:999px}.inspector-thread-progress::-moz-progress-bar{background-color:var(--inspector-thread-progress-color);border-radius:999px}[data-inspector-action-placement=threads-footer]{color:#57575b;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #d5d3e4;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;width:100%;min-height:32px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]{color:#fff;background-color:#6430ab;border-color:#6430ab}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]:hover{color:#fff;background-color:#3f176f;border-color:#3f176f}[data-inspector-action-placement=threads-footer]:hover{color:#010507;background-color:#f7f4fe;border-color:#c8c6e6}.cpk-threads-overview-video{opacity:0;transition:opacity .22s}.cpk-threads-overview{background-color:#f7f7f9;flex:1;justify-content:center;align-items:center;min-width:0;padding:32px;display:flex}.cpk-threads-overview-content{color:#57575b;width:100%;max-width:440px}.cpk-threads-overview-title{color:#010507;margin:0 0 10px;font-size:20px;font-weight:600;line-height:1.25}.cpk-threads-overview-copy{color:#57575b;margin:0 0 16px;font-size:13px;line-height:1.55}.cpk-threads-overview-actions{flex-wrap:wrap;gap:8px;display:flex}.cpk-threads-overview-action{outline-offset:2px;border:1px solid #0000;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.cpk-threads-overview-action-primary{color:#fff;background-color:#010507;border-color:#010507}.cpk-threads-overview-action-primary:hover{background-color:#2b2b2b;border-color:#2b2b2b}.cpk-threads-overview-action-secondary{color:#010507;background-color:#fff;border-color:#dbdbe5}.cpk-threads-overview-action-secondary:hover{background-color:#fff;border-color:#afafb7}.cpk-threads-overview-video[data-loaded=true]{opacity:1}.cpk-threads-overview-video-control{color:#3f176f;min-height:32px;font:inherit;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;margin:0 0 14px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.25;display:inline-flex}.cpk-threads-overview-video-control:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}.cpk-threads-overview-video-control:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.cpk-threads-overview-video-fallback{color:#57575b;max-width:440px;margin:-4px 0 14px;font-size:12px;line-height:1.5}.cpk-threads-tour-launch{z-index:2;color:#57575b;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600;position:absolute;bottom:16px;right:16px;box-shadow:0 8px 18px #01050714}.cpk-threads-tour{z-index:3;color:#57575b;background-color:#fff;border:1px solid #dbdbe5;border-radius:10px;width:min(340px,100% - 32px);padding:14px;position:absolute;bottom:16px;right:16px;box-shadow:0 16px 36px #01050724}.cpk-threads-tour-step{color:#087653;text-transform:uppercase;margin-bottom:8px;font-family:Spline Sans Mono,monospace;font-size:10px;font-weight:600}.cpk-threads-tour-title{color:#010507;margin-bottom:6px;font-size:14px;font-weight:600;line-height:1.35}.cpk-threads-tour-copy{color:#57575b;font-size:12px;line-height:1.5}.cpk-threads-tour-actions{justify-content:space-between;gap:8px;margin-top:14px;display:flex}.cpk-threads-tour-nav{gap:8px;display:flex}.cpk-threads-tour-skip,.cpk-threads-tour-button{font:inherit;outline-offset:2px;cursor:pointer;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600}.cpk-threads-overview-action:focus-visible,.cpk-threads-tour-launch:focus-visible,.cpk-threads-tour-skip:focus-visible,.cpk-threads-tour-button:focus-visible{outline-color:#6430ab}.cpk-threads-tour-skip{color:#68686e;background-color:#0000;border:0;padding-inline:0}.cpk-threads-tour-button-secondary{color:#57575b;background-color:#fff;border:1px solid #dbdbe5}.cpk-threads-tour-button-primary{color:#fff;background-color:#010507;border:1px solid #010507}.cpk-threads-tour-button:disabled{cursor:not-allowed;opacity:.45}@media (max-width:720px){.cpk-threads-overview{padding:24px}}@media (prefers-reduced-motion:reduce){.cpk-threads-overview-video{transition:none}}.inspector-window[data-color-scheme=dark]{color-scheme:dark;color:#f3f4f8!important;background-color:#111319!important;border-color:#7b7d89!important}.inspector-window[data-color-scheme=dark]>div,.inspector-window[data-color-scheme=dark] .inspector-shell,.inspector-window[data-color-scheme=dark] .inspector-main,.inspector-window[data-color-scheme=dark] #cpk-main-scroll{color:#f3f4f8!important;background-color:#111319!important}.inspector-window[data-color-scheme=dark] .drag-handle,.inspector-window[data-color-scheme=dark] .inspector-account-strip{color:#f3f4f8!important;background:#171a22!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-logo{filter:brightness(0)invert();clip-path:inset(0 20% 0 0)}.inspector-window[data-color-scheme=dark] .inspector-account-logo-accent{filter:none;display:block}.inspector-window[data-color-scheme=dark] .inspector-agent-placeholder{color:#b8bbc7!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-control{color:#b8bbc7!important;border:0!important}.inspector-window[data-color-scheme=dark] .inspector-account-control:hover,.inspector-window[data-color-scheme=dark] .inspector-account-control-active{color:#d8d9ff!important;background-color:#292c38!important}.inspector-window[data-color-scheme=dark] .inspector-account-cta{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-account-cta:hover{color:#fff;background-color:#353854}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu{color:#f3f4f8;background-color:#191c24;border-color:#464957;box-shadow:0 12px 28px #00000052}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:hover,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:focus-visible{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{color:#f3f4f8!important;background-color:#20232c!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button:hover{background-color:#292c38!important;border-color:#777aae!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button>span:last-child{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div{color:#f3f4f8!important;box-shadow:none!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:hover,.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:focus{color:#f3f4f8!important;background-color:#343746!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar{color:#f3f4f8;background-color:#15171e;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-label{color:#8f93a1}.inspector-window[data-color-scheme=dark] .inspector-sidebar-rail-tooltip{color:#191c24;background-color:#e9e9f1;box-shadow:0 7px 18px #00000047}.inspector-window[data-color-scheme=dark] .inspector-nav-control,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle{color:#b8bbc7}.inspector-window[data-color-scheme=dark] .inspector-nav-control:hover,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle:hover{color:#fff;background-color:#22252f}.inspector-window[data-color-scheme=dark] .inspector-nav-control-active{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-agent-scope{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy>span,.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action:hover{color:#fff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup:hover{background-color:#343653;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-setup-arrow{background-color:#caccff1f}@media (prefers-reduced-motion:reduce){.inspector-sidebar-intelligence-setup{animation:none}}.inspector-window[data-color-scheme=dark] .inspector-home{background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings-header,.inspector-window[data-color-scheme=dark] .inspector-settings-privacy,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-settings-title,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading h2,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row h3,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-settings-subtitle,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading p,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row p,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content>p{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-settings-section-icon{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li span{color:#75d8b9}.inspector-window[data-color-scheme=dark] .inspector-settings-status{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#f2cf8f;background-color:#342916;border-color:#866932}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link:hover{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-home-card,.inspector-window[data-color-scheme=dark] .inspector-home-story,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud,.inspector-window[data-color-scheme=dark] .inspector-home-feature-list,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview{color:#f3f4f8;background:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected]{background-color:#1d1e2b;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-description{color:#c5c7d0}.inspector-window[data-color-scheme=dark] .inspector-system-health,.inspector-window[data-color-scheme=dark] .inspector-system-health-section{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-section{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-section .inspector-system-health-header{background-color:#191c24;border-bottom-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-event-link>small{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=success]{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=success],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=success]{background-color:#173b32;border-color:#347d69;color:#8ce1c5!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=checking],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=checking]{background-color:#342916;border-color:#866932;color:#f2cf8f!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=error],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=error]{background-color:#3b1c22;border-color:#87424a;color:#ff9aa0!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=unavailable],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#242731;border-color:#464957;color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=checking]{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=error]{color:#ff9aa0}.inspector-window[data-color-scheme=dark] .inspector-home-story-link:hover,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background:#242131;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-home-title,.inspector-window[data-color-scheme=dark] .inspector-home-section-title,.inspector-window[data-color-scheme=dark] .inspector-home-card-title,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dd,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-value,.inspector-window[data-color-scheme=dark] .inspector-home-feature{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-home-eyebrow,.inspector-window[data-color-scheme=dark] .inspector-home-card-label,.inspector-window[data-color-scheme=dark] .inspector-home-meta,.inspector-window[data-color-scheme=dark] .inspector-home-body,.inspector-window[data-color-scheme=dark] .inspector-home-card-copy,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dt,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal small,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-heading p,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-label,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-subvalue,.inspector-window[data-color-scheme=dark] .inspector-home-section-header>span,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-copy>span:last-child{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details{background-color:#3a3d49;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section{background-color:#15171e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action:hover{color:#fff;background-color:#0000;border-color:#0000}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal+.inspector-system-health-signal,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section+section,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details,.inspector-window[data-color-scheme=dark] .inspector-home-features-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] dd,.inspector-window[data-color-scheme=dark] .inspector-home-feature small{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] dd{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#ff9aa0;background-color:#3b1c22}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#8ce1c5;background-color:#173b32}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#f2cf8f;background-color:#342916}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header{color:#c9ccd6;background-color:#20232d;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header>span{color:#c9ccd6;background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-home-feature{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature:hover{background-color:#20232d}.inspector-window[data-color-scheme=dark] .inspector-home-feature+.inspector-home-feature{border-color:#2f323d}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-empty{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off] small,.inspector-window[data-color-scheme=dark] .inspector-home-feature-arrow{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss:hover{color:#fff;background-color:#302a40}.inspector-window[data-color-scheme=dark] .inspector-home-usage-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-thread-progress::-webkit-progress-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-header{box-shadow:none;background-color:#1d1e2b;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-updated,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-action{color:#d8d9ff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:hover .inspector-whats-new-preview-action{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty .inspector-home-card-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1+p{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2{border-top-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h3,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content a{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-threads-footer{color:#aeb1bd;background-color:#15171e;border-color:#343742}.inspector-window[data-color-scheme=dark] [data-inspector-thread-count]{color:#f3f4f8}.inspector-window[data-color-scheme=dark] [data-inspector-thread-expiry]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]:hover{color:#fff;background-color:#20232d;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-content,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-copy,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-fallback,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-title,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-frame{background:linear-gradient(135deg,#666a9e3d,#347d6929),#191c24;border-color:#3a3d49;box-shadow:0 8px 20px #00000038}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary{color:#171823;background-color:#caccff;border-color:#caccff}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary:hover{background-color:#d8d9ff;border-color:#d8d9ff}.inspector-window[data-color-scheme=dark] .cpk-threads-tour{color:#aeb1bd;background-color:#191c24;border-color:#464957;box-shadow:0 16px 36px #00000052}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-step{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button:focus-visible{outline-color:#bec2ff}.inspector-window[data-color-scheme=dark] .cpk-memory-locked{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-sidebar{background-color:#15171e;border-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-main{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true]{background-color:#292b43}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-bar{background-color:#333641}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line{background-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line:last-child,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy+.cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#292c36}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-card{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-scrim{background:radial-gradient(circle,#111319f0 0,#111319d6 24%,#11131975 48%,#111319ad 100%)}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-content,.inspector-window[data-color-scheme=dark] .cpk-memory-locked-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-icon{color:#d8d9ff;box-shadow:none;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-agent-overview,.inspector-window[data-color-scheme=dark] .cpk-section-card{background-color:#191c24!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header{background-color:#242731!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header h4{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .cpk-agent-icon{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] .cpk-stat-card{background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] button.cpk-stat-card:hover{background-color:#20232d!important}.inspector-window[data-color-scheme=dark] .cpk-agent-view .divide-gray-200>:not([hidden])~:not([hidden]){border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-json-block{color:#c9ccd6}.inspector-window[data-color-scheme=dark] [class*=bg-emerald-50],.inspector-window[data-color-scheme=dark] [class*=bg-green-100]{color:#8ce1c5!important;background-color:#173b32!important}.inspector-window[data-color-scheme=dark] [class*=bg-rose-50]{color:#ff9aa0!important;background-color:#3b1c22!important}.inspector-window[data-color-scheme=dark] [class*=bg-amber-50],.inspector-window[data-color-scheme=dark] [class*=bg-amber-100]{color:#f2cf8f!important;background-color:#342916!important}.inspector-window[data-color-scheme=dark] [class*=bg-blue-50],.inspector-window[data-color-scheme=dark] [class*=bg-blue-100],.inspector-window[data-color-scheme=dark] [class*=bg-sky-50],.inspector-window[data-color-scheme=dark] [class*=bg-violet-50],.inspector-window[data-color-scheme=dark] [class*=bg-purple-50],.inspector-window[data-color-scheme=dark] [class*=bg-fuchsia-50]{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] [class*=bg-white]{background-color:#191c24!important}.inspector-window[data-color-scheme=dark] [class*=bg-gray-50],.inspector-window[data-color-scheme=dark] [class*=bg-slate-50],.inspector-window[data-color-scheme=dark] [class*=bg-gray-100],.inspector-window[data-color-scheme=dark] [class*=bg-slate-100]{background-color:#171a22!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-900],.inspector-window[data-color-scheme=dark] [class*=text-slate-900],.inspector-window[data-color-scheme=dark] [class*=text-gray-800],.inspector-window[data-color-scheme=dark] [class*=text-slate-800],.inspector-window[data-color-scheme=dark] [class*=text-gray-700],.inspector-window[data-color-scheme=dark] [class*=text-slate-700]{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-600],.inspector-window[data-color-scheme=dark] [class*=text-slate-600],.inspector-window[data-color-scheme=dark] [class*=text-gray-500],.inspector-window[data-color-scheme=dark] [class*=text-slate-500],.inspector-window[data-color-scheme=dark] [class*=text-gray-400],.inspector-window[data-color-scheme=dark] [class*=text-slate-400]{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [class*=border-gray-100],.inspector-window[data-color-scheme=dark] [class*=border-slate-100],.inspector-window[data-color-scheme=dark] [class*=border-gray-200],.inspector-window[data-color-scheme=dark] [class*=border-slate-200],.inspector-window[data-color-scheme=dark] [class*=border-gray-300],.inspector-window[data-color-scheme=dark] [class*=border-slate-300]{border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] input,.inspector-window[data-color-scheme=dark] select,.inspector-window[data-color-scheme=dark] textarea{color:#f3f4f8!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] input::placeholder,.inspector-window[data-color-scheme=dark] textarea::placeholder{color:#858996}.inspector-window[data-color-scheme=dark] ::selection{color:#fff;background-color:#5b5f92}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
9
+ var generated_default = "/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-green-100:oklch(96.2% .044 156.743);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-700:oklch(50% .134 242.749);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-100:oklch(94.3% .029 294.588);--color-violet-200:oklch(89.4% .057 293.283);--color-violet-300:oklch(81.1% .111 293.571);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-600:oklch(54.1% .281 293.009);--color-violet-700:oklch(49.1% .27 292.581);--color-violet-800:oklch(43.2% .232 292.759);--color-violet-950:oklch(28.3% .141 291.089);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-700:oklch(49.6% .265 301.924);--color-fuchsia-50:oklch(97.7% .017 320.058);--color-fuchsia-200:oklch(90.3% .076 319.62);--color-fuchsia-700:oklch(51.8% .253 323.949);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-700:oklch(51.4% .222 16.935);--color-rose-950:oklch(27.1% .105 12.094);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:host{font-family:var(--font-sans);color:var(--color-slate-900);background-color:#0000;display:block}}@layer components;@layer utilities{.\\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.m-0{margin:calc(var(--spacing)*0)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-3{margin-block:calc(var(--spacing)*3)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-auto{margin-right:auto}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-auto{margin-left:auto}.box-border{box-sizing:border-box}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[28rem\\]{height:28rem}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing)*32)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-7{min-height:calc(var(--spacing)*7)}.min-h-\\[20rem\\]{min-height:20rem}.min-h-\\[40px\\]{min-height:40px}.min-h-\\[420px\\]{min-height:420px}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-40{width:calc(var(--spacing)*40)}.w-auto{width:auto}.w-full{width:100%}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\\[80\\%\\]{max-width:80%}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[240px\\]{max-width:240px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\\[200px\\]{min-width:200px}.flex-1{flex:1}.flex-shrink,.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-\\[2px\\]{--tw-translate-y:calc(2px*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-nesw-resize{cursor:nesw-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\\[16px\\]{border-radius:16px}.rounded-\\[28px\\]{border-radius:28px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-200{border-color:var(--color-blue-200)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-fuchsia-200{border-color:var(--color-fuchsia-200)}.border-gray-200{border-color:var(--color-gray-200)}.border-purple-200{border-color:var(--color-purple-200)}.border-rose-200{border-color:var(--color-rose-200)}.border-rose-300{border-color:var(--color-rose-300)}.border-sky-200{border-color:var(--color-sky-200)}.border-slate-200{border-color:var(--color-slate-200)}.border-violet-200{border-color:var(--color-violet-200)}.bg-\\[\\#00000014\\]{background-color:#00000014}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black{background-color:var(--color-black)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\\/50{background-color:#f9fafb80}@supports (color:color-mix(in lab, red, red)){.bg-gray-50\\/50{background-color:color-mix(in oklab,var(--color-gray-50)50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-100{background-color:var(--color-green-100)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-rose-50{background-color:var(--color-rose-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-sky-50{background-color:var(--color-sky-50)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-transparent{background-color:#0000}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-white\\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\\/95{background-color:color-mix(in oklab,var(--color-white)95%,transparent)}}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.pt-1{padding-top:calc(var(--spacing)*1)}.pt-1\\.5{padding-top:calc(var(--spacing)*1.5)}.pt-8{padding-top:calc(var(--spacing)*8)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-3{padding-bottom:calc(var(--spacing)*3)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-\\[22px\\]{--tw-leading:22px;line-height:22px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\\[rgb\\(13\\,13\\,13\\)\\]{color:#0d0d0d}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-amber-900{color:var(--color-amber-900)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-700{color:var(--color-emerald-700)}.text-fuchsia-700{color:var(--color-fuchsia-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-purple-700{color:var(--color-purple-700)}.text-rose-700{color:var(--color-rose-700)}.text-rose-950{color:var(--color-rose-950)}.text-sky-700{color:var(--color-sky-700)}.text-slate-500{color:var(--color-slate-500)}.text-slate-800{color:var(--color-slate-800)}.text-violet-500{color:var(--color-violet-500)}.text-violet-600{color:var(--color-violet-600)}.text-violet-700{color:var(--color-violet-700)}.text-violet-950{color:var(--color-violet-950)}.text-white{color:var(--color-white)}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-violet-300{-webkit-text-decoration-color:var(--color-violet-300);-webkit-text-decoration-color:var(--color-violet-300);text-decoration-color:var(--color-violet-300)}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_4px_4px_0_\\#0000000a\\,0_0_1px_0_\\#0000009e\\]{--tw-shadow:0 4px 4px 0 var(--tw-shadow-color,#0000000a),0 0 1px 0 var(--tw-shadow-color,#0000009e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-black\\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--color-black)5%,transparent)}}.ring-transparent{--tw-ring-color:transparent}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-gray-500::placeholder{color:var(--color-gray-500)}.focus-within\\:shadow-\\[0_6px_18px_0_\\#00000014\\,0_0_1px_0_\\#0000009e\\]:focus-within{--tw-shadow:0 6px 18px 0 var(--tw-shadow-color,#00000014),0 0 1px 0 var(--tw-shadow-color,#0000009e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-gray-300:hover{border-color:var(--color-gray-300)}.hover\\:bg-blue-50\\/50:hover{background-color:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-blue-50\\/50:hover{background-color:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.hover\\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-gray-800:hover{background-color:var(--color-gray-800)}.hover\\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\\:bg-violet-100:hover{background-color:var(--color-violet-100)}.hover\\:text-gray-900:hover{color:var(--color-gray-900)}.hover\\:text-violet-800:hover{color:var(--color-violet-800)}.hover\\:decoration-violet-700:hover{-webkit-text-decoration-color:var(--color-violet-700);-webkit-text-decoration-color:var(--color-violet-700);text-decoration-color:var(--color-violet-700)}.hover\\:opacity-70:hover{opacity:.7}}.focus\\:border-gray-300:focus{border-color:var(--color-gray-300)}.focus\\:border-violet-400:focus{border-color:var(--color-violet-400)}.focus\\:bg-gray-50:focus{background-color:var(--color-gray-50)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-gray-200:focus{--tw-ring-color:var(--color-gray-200)}.focus\\:ring-violet-100:focus{--tw-ring-color:var(--color-violet-100)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:rounded:focus-visible{border-radius:.25rem}.focus-visible\\:rounded-sm:focus-visible{border-radius:var(--radius-sm)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-rose-300:focus-visible{--tw-ring-color:var(--color-rose-300)}.focus-visible\\:ring-violet-300:focus-visible{--tw-ring-color:var(--color-violet-300)}.focus-visible\\:ring-violet-400:focus-visible{--tw-ring-color:var(--color-violet-400)}.focus-visible\\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\\:outline-\\[\\#BEC2FF\\]:focus-visible{outline-color:#bec2ff}.focus-visible\\:outline-gray-300:focus-visible{outline-color:var(--color-gray-300)}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:opacity-60:active{opacity:.6}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\\:opacity-50:disabled{opacity:.5}.disabled\\:opacity-60:disabled{opacity:.6}@media (min-width:48rem){.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\\[\\&\\>svg\\]\\:\\!h-8>svg{height:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:h-3>svg{height:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:h-3\\.5>svg{height:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:h-\\[18px\\]>svg{height:18px}.\\[\\&\\>svg\\]\\:\\!w-8>svg{width:calc(var(--spacing)*8)!important}.\\[\\&\\>svg\\]\\:w-3>svg{width:calc(var(--spacing)*3)}.\\[\\&\\>svg\\]\\:w-3\\.5>svg{width:calc(var(--spacing)*3.5)}.\\[\\&\\>svg\\]\\:w-\\[18px\\]>svg{width:18px}.\\[\\&\\>svg\\]\\:animate-spin>svg{animation:var(--animate-spin)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.cpk-json-block{white-space:pre-wrap;word-break:break-all;color:#57575b;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;line-height:1.8;overflow:auto}.inspector-account-strip{border-bottom:1px solid #d8d8e8;width:100%;min-width:0;color:#010507!important;background:linear-gradient(90deg,#fff 0%,#f3f1ff 58%,#eefbf7 100%)!important}.inspector-account-logo{filter:none}.inspector-account-brand{position:relative}.inspector-account-logo-accent{clip-path:inset(0 0 0 80%);pointer-events:none;display:none;position:absolute;inset:0}.inspector-account-cta{isolation:isolate;color:#3f176f;white-space:nowrap;cursor:pointer;background-color:#eee6fe;border:0;border-radius:5px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:32px;padding:7px 10px;font-size:11px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.inspector-account-cta:after{z-index:0;content:\"\";opacity:0;pointer-events:none;background:linear-gradient(105deg,#0000 0%,#ffffff14 32%,#ffffffad 50%,#ffffff14 68%,#0000 100%);width:68%;animation:3.8s cubic-bezier(.16,1,.3,1) infinite inspector-account-cta-shimmer;position:absolute;inset:0;transform:translate(-180%)skew(-14deg)}.inspector-account-cta>*{z-index:1;position:relative}.inspector-account-cta[data-motion-paused=true]:after{animation-play-state:paused}@keyframes inspector-account-cta-shimmer{0%{opacity:0;transform:translate(-180%)skew(-14deg)}12%{opacity:1}82%{opacity:.8}to{opacity:0;transform:translate(280%)skew(-14deg)}}.inspector-account-cta:hover{color:#32105d;background-color:#e4d8fc}.inspector-account-cta svg{width:14px;height:14px}@media (prefers-reduced-motion:reduce){.inspector-account-cta:after{animation:none}}.inspector-window-layout{position:relative}.inspector-window-layout-menu{z-index:60;color:#010507;background-color:#fff;border:1px solid #d8d8e8;border-radius:5px;width:188px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 10px 24px #1f173924}.inspector-window-layout-menu button{min-height:34px;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;border-radius:4px;align-items:center;gap:9px;padding:7px 9px;font-size:12px;font-weight:600;display:flex}.inspector-window-layout-menu button:hover,.inspector-window-layout-menu button:focus-visible{color:#3f176f;background-color:#eee6fe;outline:none}.inspector-window-layout-menu button span:first-child{flex:none;display:inline-flex}.inspector-agent-placeholder{color:#68686e;border-color:#c8c8d8}.inspector-primary-navigation,.inspector-child-navigation{display:none}.inspector-shell{background-color:#f7f6fd;flex:auto;min-height:0;display:flex}.inspector-sidebar{z-index:20;background-color:#f7f6fd;border-right:1px solid #d8d8e8;flex-direction:column;flex:none;gap:8px;width:224px;min-width:224px;padding:12px 10px;transition:width .22s,min-width .22s,padding .22s;display:flex;position:relative;overflow:visible}.inspector-sidebar[data-icon-rail=true]{width:56px;min-width:56px;padding:10px 6px}.inspector-sidebar-agent-scope{border-bottom:1px solid #d8d8e8;flex:none;min-width:0;padding-bottom:10px}.inspector-sidebar .inspector-agent-selector{width:100%;min-width:0}.inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{background-color:#fff;border-radius:5px;max-width:none;min-height:34px;padding:6px 8px}.inspector-context-dropdown-icon{color:#68686e;display:inline-flex}.inspector-context-dropdown-icon svg,.inspector-context-dropdown-chevron svg{width:14px;height:14px}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope{padding-bottom:8px}.inspector-sidebar[data-icon-rail=true] .inspector-agent-selector>[data-context-dropdown-root=true]>button{justify-content:center;width:100%;min-height:34px;padding:6px 0}.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-label,.inspector-sidebar[data-icon-rail=true] .inspector-context-dropdown-chevron,.inspector-sidebar[data-icon-rail=true] .inspector-agent-placeholder span:last-child{display:none}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-agent-scope [data-context-dropdown-root=true]>div{margin-top:0;top:0;left:calc(100% + 8px)}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-section+.inspector-sidebar-section{border-top:1px solid #dbdbe5;margin-top:4px;padding-top:10px}.inspector-sidebar-nav{cursor:default;flex-direction:column;flex:auto;gap:14px;min-height:0;display:flex;overflow:hidden auto}.inspector-sidebar-section{flex-direction:column;gap:4px;display:flex}.inspector-sidebar-label{color:#838389;letter-spacing:.02em;text-align:left;text-transform:none;background:0 0;border:0;width:100%;margin:0 0 2px;padding:0 8px;font-size:11px;font-weight:600;display:block}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-label,.inspector-sidebar[data-icon-rail=true] .inspector-nav-label{display:none}.inspector-sidebar-rail-tooltip{z-index:60;color:#fff;pointer-events:none;white-space:nowrap;background-color:#242331;border-radius:6px;max-width:220px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.2;position:absolute;left:calc(100% + 8px);transform:translateY(-50%);box-shadow:0 7px 18px #1a172a2e}.inspector-sidebar-control{justify-content:flex-start;width:100%;min-height:36px;display:flex;position:relative}.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-control,.inspector-sidebar[data-icon-rail=true] .inspector-sidebar-toggle,.inspector-sidebar[data-icon-rail=true] .inspector-nav-control{justify-content:center;align-items:center;gap:0;padding:6px 0;overflow:hidden}.inspector-home-badge{background-color:#fa5f67;border-radius:999px;width:7px;height:7px;position:absolute;top:8px;right:8px}.inspector-sidebar[data-icon-rail=true] .inspector-home-badge{top:6px;right:8px}.inspector-sidebar-toggle{color:#57575b;width:100%;min-height:32px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;display:flex}.inspector-sidebar-toggle:hover{color:#010507;background-color:#f0f0f4}.inspector-sidebar-footer{flex-direction:column;flex:none;gap:6px;padding:2px 0 18px;display:flex}.inspector-sidebar-status-list{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.inspector-sidebar-status-card{color:#2b2b2b;background-color:#fff;border:1px solid #d8d8e8;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:9px 10px;display:grid;position:relative}.inspector-sidebar-status-copy{flex-direction:column;gap:2px;min-width:0;line-height:1.25;display:flex}.inspector-sidebar-status-copy strong{color:#010507;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.inspector-sidebar-status-copy>span{color:#57575b;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#68686e}.inspector-sidebar-status-action{color:#3f176f;white-space:nowrap;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;gap:0;width:28px;height:28px;padding:0;font-size:10px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-sidebar-status-action:hover{color:#6430ab;background-color:#eee7f8;text-decoration:none}.inspector-sidebar-status-action svg{width:12px;height:12px}.inspector-sidebar-status-action-label{display:none}.inspector-sidebar-intelligence-setup{color:#3f176f;cursor:pointer;background-color:#eee7f8;border-color:#bba5df;text-decoration:none;transition:border-color .12s,background-color .12s,box-shadow .3s;animation:3.2s ease-in-out infinite inspector-sidebar-intelligence-setup-glow}@keyframes inspector-sidebar-intelligence-setup-glow{0%,to{box-shadow:0 0 #6430ab00}50%{box-shadow:0 0 16px 2px #6430ab26}}.inspector-sidebar-intelligence-setup:hover{background-color:#e4d9f4;border-color:#8e6fc0}.inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#3f176f}.inspector-sidebar-setup-arrow{background-color:#6430ab1a;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.inspector-sidebar-setup-arrow svg{width:13px;height:13px}.inspector-main{background-color:#fff;flex-direction:column;flex:auto;min-width:0;display:flex;position:relative}.cpk-memory-locked{background-color:#fff;justify-content:center;align-items:center;height:100%;padding:32px;display:flex;position:relative;overflow:hidden}.cpk-locked-preview{opacity:.58;pointer-events:none;grid-template-columns:minmax(180px,28%) 1fr;display:grid;position:absolute;inset:0;overflow:hidden}.cpk-locked-preview-sidebar{background-color:#fafafa;border-right:1px solid #dbdbe5;flex-direction:column;gap:12px;padding:28px 24px;display:flex}.cpk-locked-preview-row{background-color:#fff;border-radius:10px;padding:12px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-row[data-accent=true]{background-color:#eee6fe}.cpk-locked-preview-bar{background-color:#d7d7df;border-radius:999px}.cpk-locked-preview-row-title{width:var(--preview-width);height:8px}.cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#a984f5}.cpk-locked-preview-row-line{background-color:#e3e3eb;width:88%;height:6px;margin-top:10px}.cpk-locked-preview-row-line:last-child{background-color:#e8e8ef;width:62%;margin-top:7px}.cpk-locked-preview-main{background-color:#fff;min-width:0;padding:42px 48px}.cpk-locked-preview-heading{width:180px;height:10px}.cpk-locked-preview-copy{background-color:#e3e3eb;width:min(520px,58%);height:8px;margin-top:28px}.cpk-locked-preview-copy+.cpk-locked-preview-copy{background-color:#e8e8ef;width:min(430px,48%);margin-top:12px}.cpk-locked-preview-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:620px;margin-top:30px;display:grid}.cpk-locked-preview-card{background-color:#f5f5f8;border-radius:10px;height:116px;box-shadow:inset 0 0 0 1px #eeeef4}.cpk-locked-preview-footer-line{background-color:#e3e3eb;width:min(680px,74%);height:10px;margin-top:34px}.cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#e8e8ef;width:min(560px,60%);margin-top:14px}.cpk-memory-locked-scrim{pointer-events:none;background:radial-gradient(circle,#ffffffe6 0,#ffffffc7 24%,#ffffff57 48%,#ffffff8f 100%);position:absolute;inset:0}.cpk-memory-locked-content{z-index:1;color:#57575b;text-align:center;max-width:440px;position:relative}.cpk-memory-locked-icon-wrap{justify-content:center;margin:0 auto 18px;display:flex}.cpk-memory-locked-icon{color:#57575b;background-color:#eee6fe;border:1px solid #dfd6fb;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 8px 18px #57575b24}.cpk-memory-locked-title{color:#010507;margin:0 0 8px;font-size:16px;font-weight:600;line-height:1.35}.cpk-memory-locked-copy{color:#57575b;max-width:380px;margin:0 auto 18px;font-size:13px;line-height:1.55}.cpk-memory-locked-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.cpk-memory-locked-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.cpk-memory-locked-action:hover{background-color:#4e238c;border-color:#4e238c}.cpk-memory-locked-action-secondary{color:#57575b;background-color:#fff;border-color:#dbdbe5}.cpk-memory-locked-action-secondary:hover{background-color:#f7f7f9;border-color:#afafb7}.inspector-home{background-color:#fff;min-height:100%;padding:30px 32px 40px;position:relative;overflow:auto}.inspector-home:before{display:none}.inspector-home>*{width:min(100%,960px);margin-left:auto;margin-right:auto}.inspector-settings{color:#010507;background-color:#fff;min-height:100%;padding:28px 28px 36px;overflow:auto}.inspector-settings-header{border-bottom:1px solid #d5d3e4;max-width:70ch;padding-bottom:22px}.inspector-settings-title{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-settings-subtitle{color:#57575b;max-width:60ch;margin:10px 0 0;font-size:14px;line-height:1.5}.inspector-settings-section{grid-template-columns:minmax(138px,168px) minmax(0,1fr);gap:30px;max-width:820px;margin-top:28px;display:grid}.inspector-settings-section-heading{align-items:flex-start;gap:10px;display:flex}.inspector-settings-section-icon{color:#3f176f;background-color:#eee6fe;border:1px solid #bec2ff;border-radius:5px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.inspector-settings-section-icon svg{width:16px;height:16px}.inspector-settings-section-heading h2,.inspector-settings-status-row h3{color:#010507;margin:0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-weight:600}.inspector-settings-section-heading h2{font-size:15px;line-height:1.3}.inspector-settings-section-heading p{color:#68686e;margin:5px 0 0;font-size:11px;line-height:1.45}.inspector-settings-privacy{border-top:1px solid #d5d3e4;border-bottom:1px solid #d5d3e4;padding:20px 0 22px}.inspector-settings-status-row{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.inspector-settings-status-row h3{font-size:16px;line-height:1.3}.inspector-settings-status-row p{color:#57575b;max-width:56ch;margin:8px 0 0;font-size:13px;line-height:1.55}.inspector-settings-status{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;min-height:24px;padding:3px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#7d4d0a;background-color:#fff5df;border-color:#dfc08f}.inspector-settings-private-content{border-top:1px solid #e4e4ec;margin-top:20px;padding-top:18px}.inspector-settings-private-content strong{color:#010507;font-size:13px;font-weight:700}.inspector-settings-private-content>p{color:#68686e;margin:4px 0 0;font-size:11px;line-height:1.45}.inspector-settings-private-content ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:12px 0 0;display:grid}.inspector-settings-private-content li{color:#3e3d48;align-items:center;gap:7px;min-width:0;font-size:12px;line-height:1.35;display:flex}.inspector-settings-private-content li span{color:#087653;flex:none;display:inline-flex}.inspector-settings-private-content li svg{width:14px;height:14px}.inspector-settings-policy-link{color:#3f176f;text-underline-offset:3px;outline-offset:2px;outline:2px solid #0000;align-items:center;gap:6px;min-height:32px;margin-top:20px;font-size:12px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.inspector-settings-policy-link:hover{color:#6430ab}.inspector-settings-policy-link:focus-visible{outline-color:#6430ab}.inspector-settings-policy-link svg{width:14px;height:14px}@media (max-width:720px){.inspector-settings{padding:24px 20px 32px}.inspector-settings-section{grid-template-columns:1fr;gap:18px}.inspector-settings-section-heading p{max-width:42ch}}@media (max-width:480px){.inspector-settings-status-row{flex-direction:column;gap:12px}.inspector-settings-private-content ul{grid-template-columns:1fr}}.inspector-home-card,.inspector-home-story{background-color:#ffffffd1;border:1px solid #deddea;border-radius:5px;padding:18px 18px 16px;position:relative}.inspector-home-eyebrow,.inspector-home-card-label,.inspector-home-meta{color:#57575b;margin:0;font-size:12px;font-weight:600}.inspector-home-title,.inspector-home-section-title,.inspector-home-card-title{color:#010507;margin:8px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:28px;font-weight:600;line-height:1.15}.inspector-home-section-title{letter-spacing:-.015em;margin:0 0 14px;font-size:17px}.inspector-home-card-title{font-size:16px}.inspector-home-body,.inspector-home-card-copy{color:#57575b;max-width:52ch;margin:10px 0 0;font-size:15px;line-height:1.5}.inspector-home-section{margin-top:24px;position:relative}.inspector-home>.inspector-home-section:first-child{margin-top:0}.inspector-whats-new-preview+.inspector-home-section{margin-top:20px}.inspector-home-section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.inspector-home-section-header .inspector-home-section-title{margin-bottom:0}.inspector-home-section-header>span{color:#68686e;font-size:11px;font-weight:600;line-height:1.35}.inspector-system-health-header>span[data-tone=success]{color:#087653}.inspector-system-health-header>span[data-tone=checking]{color:#8a5900}.inspector-system-health-header>span[data-tone=offline],.inspector-system-health-header>span[data-tone=error]{color:#b32d3b}.inspector-system-health-section{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-system-health-section .inspector-system-health-header{background-color:#f7f4fe;border-bottom:1px solid #d5d3e4;align-items:center;min-height:76px;margin:0;padding:18px}.inspector-system-health-heading{min-width:0}.inspector-system-health-heading .inspector-home-section-title{color:#010507;letter-spacing:-.025em;font-size:18px}.inspector-system-health-state,.inspector-intelligence-hud-state{color:#087653;background-color:#e5f7f1;border:1px solid #85d3bb;border-radius:999px;flex:none;align-items:center;gap:6px;min-height:24px;padding:4px 8px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.inspector-system-health-state>span,.inspector-intelligence-hud-state>span{background-color:currentColor;border-radius:999px;width:6px;height:6px}.inspector-system-health-state[data-tone=checking],.inspector-intelligence-hud-state[data-tone=checking]{background-color:#fff5df;border-color:#dfc08f;color:#7d4d0a!important}.inspector-system-health-state[data-tone=offline],.inspector-system-health-state[data-tone=error],.inspector-intelligence-hud-state[data-tone=offline],.inspector-intelligence-hud-state[data-tone=error]{background-color:#fff0f1;border-color:#e7a7ac;color:#b32d3b!important}.inspector-system-health-state[data-tone=unavailable],.inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#f0f0f4;border-color:#c8c8d2;color:#57575b!important}.inspector-system-health{background-color:#d5d3e4;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.inspector-system-health-signal{background-color:#fff;grid-template-columns:minmax(0,1fr);align-items:start;min-width:0;min-height:84px;padding:15px 16px 14px;display:grid}.inspector-system-health-copy{flex-direction:column;min-width:0;display:flex}.inspector-system-health-signal dt{color:#68686e;letter-spacing:.035em;text-transform:uppercase;font-size:10px;font-weight:700;line-height:1.3}.inspector-system-health-signal dd{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:15px;font-weight:700;overflow:hidden}.inspector-system-health-signal small{color:#68686e;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:4px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;line-height:1.4;overflow:hidden}small.inspector-system-health-detail{letter-spacing:0;font-family:inherit;font-size:11px;font-weight:500;line-height:1.4}.inspector-system-health-url{cursor:help;outline:none;position:relative;overflow:visible!important}.inspector-system-health-url>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-url:after{z-index:30;color:#f3f4f8;content:attr(data-full-value);opacity:0;overflow-wrap:anywhere;pointer-events:none;white-space:normal;background-color:#15171e;border:1px solid #3a3d49;border-radius:4px;width:max-content;max-width:min(360px,70vw);padding:7px 9px;font-size:10px;font-weight:500;line-height:1.45;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 7px);left:0;transform:translateY(3px);box-shadow:0 8px 20px #0105072e}.inspector-system-health-url:hover:after,.inspector-system-health-url:focus-visible:after{opacity:1;transform:translateY(0)}.inspector-system-health-url:focus-visible>span{outline-offset:2px;border-radius:3px;outline:2px solid #6430ab}.inspector-system-health-signal[data-tone=success] dd{color:#087653}.inspector-system-health-signal[data-tone=active] dd{color:#8a5900}.inspector-system-health-event-link{width:100%;min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0;display:block}.inspector-system-health-event-link>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inspector-system-health-event-link>.inspector-system-health-event-type{color:#57575b;letter-spacing:.025em;background-color:#f1f1f3;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:3px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;line-height:1.25;display:inline-flex}.inspector-system-health-event-link>small{color:#68686e;align-items:center;gap:6px;margin:5px 0 0;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:10px;font-weight:500;line-height:1.25;display:flex}.inspector-system-health-event-meta strong{color:#6430ab;text-underline-offset:3px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000}.inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#b32d3b;background-color:#fff0f1}.inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#087653;background-color:#e3f5ee}.inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#8a5900;background-color:#fff5df}.inspector-system-health-event-link:hover .inspector-system-health-event-meta strong{text-decoration-color:currentColor}.inspector-system-health-event-link:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #6430ab}.inspector-intelligence-hud{background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;overflow:hidden}.inspector-intelligence-hud-header{justify-content:space-between;align-items:center;gap:24px;padding:18px;display:flex}.inspector-intelligence-hud[data-state=disconnected]{border-color:#bba5df}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header{align-items:center;min-height:132px;padding:22px}.inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-header-actions{flex-direction:column;align-items:flex-end;gap:10px}.inspector-intelligence-hud-heading{min-width:0}.inspector-intelligence-hud-header-actions{flex:none;align-items:center;gap:8px;display:flex}.inspector-intelligence-hud-heading .inspector-home-section-title{margin:0;font-size:18px}.inspector-intelligence-hud-description{color:#4f4f55;max-width:64ch;margin:10px 0 0;font-size:12px;line-height:1.55}.inspector-intelligence-hud-action{color:#fff;background-color:#6430ab;border:1px solid #6430ab;border-radius:4px;flex:none;justify-content:center;align-items:center;gap:7px;min-height:34px;padding:8px 11px;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex}.inspector-intelligence-hud-action:hover{background-color:#4e238c;border-color:#4e238c}.inspector-intelligence-hud-action svg{width:13px;height:13px}.inspector-intelligence-hud-connect-action{min-height:38px;padding:10px 14px;font-size:12px}.inspector-intelligence-hud-details{background-color:#d5d3e4;border-top:1px solid #d5d3e4;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1px;display:grid}.inspector-intelligence-hud-details>section{background-color:#fff;min-width:0;padding:15px 18px 17px}.inspector-intelligence-hud-detail-label{color:#68686e;font-size:11px;font-weight:600;display:block}.inspector-intelligence-hud-detail-value{color:#010507;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:5px 0 0;font-size:14px;font-weight:700;display:block;overflow:hidden}.inspector-intelligence-hud-detail-subvalue{color:#68686e;text-transform:capitalize;margin-top:3px;font-size:10px;font-weight:500;display:block}.inspector-intelligence-hud-plan{grid-template-columns:minmax(0,1fr) minmax(120px,1fr);align-items:start;gap:24px;display:grid}.inspector-intelligence-hud-usage{min-width:0}.inspector-intelligence-hud-plan-action{color:#6430ab;text-underline-offset:3px;background-color:#0000;border:0;border-radius:0;gap:4px;min-height:auto;margin-top:9px;padding:0;font-size:10px;font-weight:700;line-height:1.2;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;text-decoration-thickness:1px}.inspector-intelligence-hud-plan-action:hover{color:#4e238c;background-color:#0000;border-color:#0000;text-decoration-color:currentColor}.inspector-intelligence-hud-plan-action svg{width:11px;height:11px}.inspector-home-usage-bar{background-color:#dbdbe5;border-radius:999px;width:min(160px,100%);height:5px;margin-top:8px;display:block;overflow:hidden}.inspector-home-usage-bar>span{background-color:#bec2ff;height:100%;display:block}.inspector-home-feature-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));align-items:start;gap:12px;display:grid}.inspector-home-feature-group{background-color:#fff;border:1px solid #d5d3e4;border-radius:5px;overflow:hidden}.inspector-home-feature-group-header{color:#57575b;background-color:#f7f7f9;border-bottom:1px solid #e4e4ec;justify-content:space-between;align-items:center;gap:12px;min-height:40px;padding:9px 12px;display:flex}.inspector-home-feature-group-header strong{font-size:12px;font-weight:700}.inspector-home-feature-group-header>span{background-color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:22px;min-height:20px;padding:2px 6px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#087653;background-color:#e5f7f1;border-color:#b9e3d6}.inspector-home-feature-list{background-color:#fff;flex-direction:column;margin:0;display:flex}.inspector-home-feature{color:#010507;background-color:#fff;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:8px;min-width:0;min-height:43px;padding:10px 12px;font-size:12px;font-weight:600;text-decoration:none;display:grid}.inspector-home-feature+.inspector-home-feature{border-top:1px solid #ececf1}.inspector-home-feature-group-empty{color:#68686e;margin:0;padding:15px 12px;font-size:11px}.inspector-home-feature:hover{background-color:#f7f7f9}.inspector-home-feature-arrow svg{width:12px;height:12px}.inspector-home-feature small{color:#087653;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700}.inspector-home-feature[data-state=off],.inspector-home-feature[data-state=off] small,.inspector-home-feature-arrow{color:#68686e}.inspector-home-features-empty{color:#57575b;border-top:1px solid #deddea;border-bottom:1px solid #deddea;margin:14px 0 0;padding:16px 0;font-size:12px}.inspector-home-news{gap:12px;display:grid}.inspector-whats-new-preview{color:#010507;background-color:#f7f4fe;border:1px solid #c8c6e6;border-radius:5px;align-items:stretch;width:100%;min-height:64px;display:flex;position:relative;overflow:hidden;container-type:inline-size}.inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background-color:#f1ebfc;border-color:#8f91d7}.inspector-whats-new-preview-body{min-width:0;color:inherit;text-align:left;cursor:pointer;background-color:#0000;border:0;flex:auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.inspector-whats-new-preview-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.inspector-whats-new-preview-title{align-items:center;gap:8px;min-width:0;display:flex}.inspector-whats-new-preview-copy strong{text-overflow:ellipsis;white-space:nowrap;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:13px;line-height:1.25;overflow:hidden}.inspector-whats-new-preview-copy>span:last-child{color:#4e4c63;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4;overflow:hidden}.inspector-whats-new-preview-action{color:#3f176f;white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.inspector-whats-new-preview-action svg{width:15px;height:15px}@container (max-width:640px){.inspector-whats-new-preview-body{grid-template-columns:minmax(0,1fr)}.inspector-whats-new-preview-action{display:none}}.inspector-whats-new-preview-dismiss{color:#68686e;cursor:pointer;background-color:#0000;border:0;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.inspector-whats-new-preview-dismiss:hover{color:#3f176f;background-color:#6430ab1a}.inspector-whats-new-preview-dismiss svg{width:14px;height:14px}@media (max-width:720px){.inspector-account-cta{width:32px;padding-inline:0}.inspector-account-cta-label{display:none}.inspector-home{padding:24px 22px 34px}.inspector-intelligence-hud-header{flex-wrap:wrap}.inspector-intelligence-hud-details{grid-template-columns:1fr}.inspector-intelligence-hud-plan{grid-template-columns:repeat(2,minmax(0,1fr))}.inspector-whats-new-preview-action{display:none}}@media (max-width:600px){.inspector-system-health{grid-template-columns:1fr}}@media (max-width:480px){.inspector-system-health-section .inspector-system-health-header{align-items:flex-start}.inspector-intelligence-hud-header{flex-direction:column;align-items:stretch}.inspector-intelligence-hud-header-actions{justify-content:space-between}.inspector-intelligence-hud-header-actions .inspector-intelligence-hud-action,.inspector-intelligence-hud-plan{width:100%}.inspector-intelligence-hud-plan{grid-template-columns:1fr;align-items:stretch}.inspector-intelligence-hud-plan-action{justify-self:start}.inspector-whats-new-header{align-items:center;gap:16px;width:calc(100% - 24px);padding:24px 22px}.inspector-whats-new-document,.inspector-whats-new-empty{padding:20px 22px 36px}.inspector-whats-new-document .announcement-content h1+p{font-size:16px}}.inspector-whats-new-header{background:#f8f7ff;border:1px solid #d8d8e8;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;width:calc(100% - 44px);max-width:calc(70ch - 44px);padding:30px 32px 28px;display:flex;box-shadow:0 12px 28px #26224e0f}.inspector-whats-new-header .inspector-home-title{letter-spacing:-.035em;margin:0;font-size:clamp(27px,3.6vw,36px)}.inspector-whats-new-updated{color:#6c687c;letter-spacing:.01em;white-space:nowrap;flex:none;margin:0;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:11px;font-weight:600}.inspector-whats-new .inspector-home-news{max-width:70ch;margin-top:0}.inspector-whats-new-document,.inspector-whats-new-empty{max-width:70ch;padding:22px 32px 52px}.inspector-whats-new-document .announcement-content{color:#2b2b39;font-size:15px;line-height:1.72}.inspector-whats-new-document .announcement-content h1{color:#15131d;letter-spacing:-.032em;max-width:24ch;margin:0 0 16px;font-size:clamp(26px,3.2vw,34px);line-height:1.1}.inspector-whats-new-document .announcement-content h1+p{color:#504d61;max-width:58ch;margin-top:0;font-size:18px;line-height:1.58}.inspector-whats-new-document .announcement-content>hr:first-child{display:none}.inspector-whats-new-document .announcement-content h2:first-of-type{border-top:0;margin-top:14px;padding-top:0}.inspector-whats-new-document .announcement-content h2{color:#1b1924;letter-spacing:-.024em;border-top:1px solid #dfdeea;margin:44px 0 14px;padding-top:24px;font-size:21px;line-height:1.2}.inspector-whats-new-document .announcement-content p{max-width:70ch;margin:.85rem 0}.inspector-whats-new-document .announcement-content ul,.inspector-whats-new-document .announcement-content ol{max-width:68ch;margin:1.25rem 0 1.5rem;padding-left:1.4rem}.inspector-whats-new-document .announcement-content li+li{margin-top:.7rem}.inspector-whats-new-document .announcement-content a{color:#4e46a5;text-underline-offset:4px;font-weight:600;text-decoration-color:#4e46a56b;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}.inspector-whats-new-document .announcement-content a:hover{color:#312879;text-decoration-color:currentColor}.inspector-whats-new-empty{color:#5e5b70}.inspector-whats-new-empty .inspector-home-card-title{color:#1b1924;margin:0}.inspector-whats-new-empty .inspector-home-card-copy{max-width:48ch;margin:8px 0 0}.inspector-home-story-featured{padding:22px}.inspector-home-story-link{color:inherit;cursor:pointer;text-decoration:none;display:block}.inspector-home-story-link:hover{background-color:#fff;border-color:#8f91d7}.inspector-home-story[data-unread=true]{border-color:#bec2ff;padding-right:64px;box-shadow:0 0 0 1px #6430ab}.inspector-home-story-unread{color:#fff;letter-spacing:.04em;text-transform:uppercase;background-color:#6430ab;border-radius:999px;align-items:center;min-height:18px;padding:0 7px;font-family:Spline Sans Mono,ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.inspector-nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;transition:opacity .18s,width .22s;overflow:hidden}.inspector-nav-control{color:#57575b;min-height:32px;font:inherit;text-align:left;outline-offset:-2px;cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:5px;outline:2px solid #0000;flex:none;justify-content:flex-start;align-items:center;gap:6px;padding:6px 9px;font-size:12px;font-weight:600;line-height:1.25;display:flex}.inspector-nav-control:hover{color:#010507;background-color:#f0f0f4}.inspector-nav-control-active{color:#3f176f;background-color:#eee6fe;border-color:#bec2ff}.inspector-nav-icon{flex:none;align-items:center;display:inline-flex}.inspector-nav-icon svg{width:15px;height:15px}.inspector-nav-control:focus-visible,.inspector-account-control:focus-visible,[data-inspector-thread-cta]:focus-visible,[data-inspector-sidebar-intelligence-action]:focus-visible,[data-inspector-whats-new-preview]:focus-visible,[data-inspector-whats-new-dismiss]:focus-visible,[data-inspector-home-intelligence-action]:focus-visible,.inspector-home-feature:focus-visible,[data-inspector-action-placement=threads-footer]:focus-visible{outline-offset:2px;outline:2px solid #6430ab!important}.inspector-sidebar .inspector-nav-control:focus-visible,.inspector-sidebar .inspector-sidebar-label:focus-visible,.inspector-sidebar [data-inspector-thread-cta]:focus-visible{outline-offset:-2px!important}.inspector-account-control{color:#57575b;font:inherit;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #0000;outline:2px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.inspector-account-control:hover,.inspector-account-control-active{color:#3f176f;background-color:#6430ab17}:host ::selection{color:#010507;background-color:#cfd2ff}:host *{scrollbar-color:#aaa9c1 transparent;scrollbar-width:thin}:host ::-webkit-scrollbar{width:8px;height:8px}:host ::-webkit-scrollbar-thumb{background:#aaa9c1 padding-box padding-box;border:2px solid #0000;border-radius:999px}.inspector-account-control-icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.inspector-account-control-icon svg{width:15px;height:15px}[data-inspector-thread-cta],[data-inspector-account-strip] button,[data-inspector-account-strip] a{cursor:pointer}@media (prefers-reduced-motion:reduce){.inspector-sidebar,.inspector-nav-label{transition:none}}[data-inspector-threads-setup-prompt],[data-inspector-threads-setup-link]{min-height:34px;font:inherit;outline-offset:2px;cursor:pointer;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-threads-setup-prompt]{color:#fff;background-color:#010507;border-color:#010507}[data-inspector-threads-setup-prompt]:hover{background-color:#2b2b2b;border-color:#2b2b2b}[data-inspector-threads-setup-link]{color:#57575b;background-color:#fff}[data-inspector-threads-setup-link]:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}[data-inspector-threads-setup-prompt]:focus-visible,[data-inspector-threads-setup-link]:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.inspector-threads-footer{color:#57575b;background-color:#f7f7f9;border-top:1px solid #dbdbe5;flex:none;gap:10px;padding:12px;font-size:11px;line-height:1.35;display:grid}.inspector-threads-usage{gap:6px;display:grid}[data-inspector-thread-count]{color:#010507;font-weight:600}[data-inspector-thread-expiry]{color:#57575b}.inspector-thread-progress{--inspector-thread-progress-color:#189370;width:100%;height:6px;accent-color:var(--inspector-thread-progress-color);border-radius:999px;overflow:hidden}.inspector-thread-progress[data-inspector-thread-capacity=warning]{--inspector-thread-progress-color:#b45309}.inspector-thread-progress[data-inspector-thread-capacity=critical]{--inspector-thread-progress-color:#be123c}.inspector-thread-progress::-webkit-progress-bar{background-color:#dbdbe5;border-radius:999px}.inspector-thread-progress::-webkit-progress-value{background-color:var(--inspector-thread-progress-color);border-radius:999px}.inspector-thread-progress::-moz-progress-bar{background-color:var(--inspector-thread-progress-color);border-radius:999px}[data-inspector-action-placement=threads-footer]{color:#57575b;outline-offset:2px;cursor:pointer;background-color:#0000;border:1px solid #d5d3e4;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;width:100%;min-height:32px;padding:6px 9px;font-size:11px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]{color:#fff;background-color:#6430ab;border-color:#6430ab}[data-inspector-action-placement=threads-footer][data-inspector-action-intent=upgrade]:hover{color:#fff;background-color:#3f176f;border-color:#3f176f}[data-inspector-action-placement=threads-footer]:hover{color:#010507;background-color:#f7f4fe;border-color:#c8c6e6}.cpk-threads-overview-video{opacity:0;transition:opacity .22s}.cpk-threads-overview{background-color:#f7f7f9;flex:1;justify-content:center;align-items:center;min-width:0;padding:32px;display:flex}.cpk-threads-overview-content{color:#57575b;width:100%;max-width:440px}.cpk-threads-overview-title{color:#010507;margin:0 0 10px;font-size:20px;font-weight:600;line-height:1.25}.cpk-threads-overview-copy{color:#57575b;margin:0 0 16px;font-size:13px;line-height:1.55}.cpk-threads-overview-actions{flex-wrap:wrap;gap:8px;display:flex}.cpk-threads-overview-action{outline-offset:2px;border:1px solid #0000;border-radius:7px;outline:2px solid #0000;justify-content:center;align-items:center;gap:6px;min-height:34px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.cpk-threads-overview-action-primary{color:#fff;background-color:#010507;border-color:#010507}.cpk-threads-overview-action-primary:hover{background-color:#2b2b2b;border-color:#2b2b2b}.cpk-threads-overview-action-secondary{color:#010507;background-color:#fff;border-color:#dbdbe5}.cpk-threads-overview-action-secondary:hover{background-color:#fff;border-color:#afafb7}.cpk-threads-overview-video[data-loaded=true]{opacity:1}.cpk-threads-overview-video-control{color:#3f176f;min-height:32px;font:inherit;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:5px;outline:2px solid #0000;justify-content:center;align-items:center;margin:0 0 14px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.25;display:inline-flex}.cpk-threads-overview-video-control:hover{color:#010507;background-color:#f7f7f9;border-color:#afafb7}.cpk-threads-overview-video-control:focus-visible{outline-offset:2px;outline:2px solid #6430ab}.cpk-threads-overview-video-fallback{color:#57575b;max-width:440px;margin:-4px 0 14px;font-size:12px;line-height:1.5}.cpk-threads-tour-launch{z-index:2;color:#57575b;outline-offset:2px;cursor:pointer;background-color:#fff;border:1px solid #dbdbe5;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600;position:absolute;bottom:16px;right:16px;box-shadow:0 8px 18px #01050714}.cpk-threads-tour{z-index:3;color:#57575b;background-color:#fff;border:1px solid #dbdbe5;border-radius:10px;width:min(340px,100% - 32px);padding:14px;position:absolute;bottom:16px;right:16px;box-shadow:0 16px 36px #01050724}.cpk-threads-tour-step{color:#087653;text-transform:uppercase;margin-bottom:8px;font-family:Spline Sans Mono,monospace;font-size:10px;font-weight:600}.cpk-threads-tour-title{color:#010507;margin-bottom:6px;font-size:14px;font-weight:600;line-height:1.35}.cpk-threads-tour-copy{color:#57575b;font-size:12px;line-height:1.5}.cpk-threads-tour-actions{justify-content:space-between;gap:8px;margin-top:14px;display:flex}.cpk-threads-tour-nav{gap:8px;display:flex}.cpk-threads-tour-skip,.cpk-threads-tour-button{font:inherit;outline-offset:2px;cursor:pointer;border-radius:7px;outline:2px solid #0000;padding:7px 10px;font-size:12px;font-weight:600}.cpk-threads-overview-action:focus-visible,.cpk-threads-tour-launch:focus-visible,.cpk-threads-tour-skip:focus-visible,.cpk-threads-tour-button:focus-visible{outline-color:#6430ab}.cpk-threads-tour-skip{color:#68686e;background-color:#0000;border:0;padding-inline:0}.cpk-threads-tour-button-secondary{color:#57575b;background-color:#fff;border:1px solid #dbdbe5}.cpk-threads-tour-button-primary{color:#fff;background-color:#010507;border:1px solid #010507}.cpk-threads-tour-button:disabled{cursor:not-allowed;opacity:.45}@media (max-width:720px){.cpk-threads-overview{padding:24px}}@media (prefers-reduced-motion:reduce){.cpk-threads-overview-video{transition:none}}.inspector-window[data-color-scheme=dark]{color-scheme:dark;color:#f3f4f8!important;background-color:#111319!important;border-color:#7b7d89!important}.inspector-window[data-color-scheme=dark]>div,.inspector-window[data-color-scheme=dark] .inspector-shell,.inspector-window[data-color-scheme=dark] .inspector-main,.inspector-window[data-color-scheme=dark] #cpk-main-scroll{color:#f3f4f8!important;background-color:#111319!important}.inspector-window[data-color-scheme=dark] .drag-handle,.inspector-window[data-color-scheme=dark] .inspector-account-strip{color:#f3f4f8!important;background:#171a22!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-logo{filter:brightness(0)invert();clip-path:inset(0 20% 0 0)}.inspector-window[data-color-scheme=dark] .inspector-account-logo-accent{filter:none;display:block}.inspector-window[data-color-scheme=dark] .inspector-agent-placeholder{color:#b8bbc7!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .inspector-account-control{color:#b8bbc7!important;border:0!important}.inspector-window[data-color-scheme=dark] .inspector-account-control:hover,.inspector-window[data-color-scheme=dark] .inspector-account-control-active{color:#d8d9ff!important;background-color:#292c38!important}.inspector-window[data-color-scheme=dark] .inspector-account-cta{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-account-cta:hover{color:#fff;background-color:#353854}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu{color:#f3f4f8;background-color:#191c24;border-color:#464957;box-shadow:0 12px 28px #00000052}.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:hover,.inspector-window[data-color-scheme=dark] .inspector-window-layout-menu button:focus-visible{color:#d8d9ff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button{color:#f3f4f8!important;background-color:#20232c!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button:hover{background-color:#292c38!important;border-color:#777aae!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar .inspector-agent-selector>[data-context-dropdown-root=true]>button>span:last-child{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div{color:#f3f4f8!important;box-shadow:none!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:hover,.inspector-window[data-color-scheme=dark] [data-context-dropdown-root=true]>div button:focus{color:#f3f4f8!important;background-color:#343746!important}.inspector-window[data-color-scheme=dark] .inspector-sidebar{color:#f3f4f8;background-color:#15171e;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-label{color:#8f93a1}.inspector-window[data-color-scheme=dark] .inspector-sidebar-rail-tooltip{color:#191c24;background-color:#e9e9f1;box-shadow:0 7px 18px #00000047}.inspector-window[data-color-scheme=dark] .inspector-nav-control,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle{color:#b8bbc7}.inspector-window[data-color-scheme=dark] .inspector-nav-control:hover,.inspector-window[data-color-scheme=dark] .inspector-sidebar-toggle:hover{color:#fff;background-color:#22252f}.inspector-window[data-color-scheme=dark] .inspector-nav-control-active{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-agent-scope{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-copy>span,.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-card[data-state=disconnected] .inspector-sidebar-status-copy>span{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-sidebar-status-action:hover{color:#fff;background-color:#292b43}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup:hover{background-color:#343653;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-sidebar-intelligence-setup .inspector-sidebar-status-copy strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-sidebar-setup-arrow{background-color:#caccff1f}@media (prefers-reduced-motion:reduce){.inspector-sidebar-intelligence-setup{animation:none}}.inspector-window[data-color-scheme=dark] .inspector-home{background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .inspector-settings-header,.inspector-window[data-color-scheme=dark] .inspector-settings-privacy,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-settings-title,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading h2,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row h3,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-settings-subtitle,.inspector-window[data-color-scheme=dark] .inspector-settings-section-heading p,.inspector-window[data-color-scheme=dark] .inspector-settings-status-row p,.inspector-window[data-color-scheme=dark] .inspector-settings-private-content>p{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-settings-section-icon{color:#d8d9ff;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-settings-private-content li span{color:#75d8b9}.inspector-window[data-color-scheme=dark] .inspector-settings-status{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-settings-privacy[data-state=disabled] .inspector-settings-status{color:#f2cf8f;background-color:#342916;border-color:#866932}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-settings-policy-link:hover{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-home-card,.inspector-window[data-color-scheme=dark] .inspector-home-story,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud,.inspector-window[data-color-scheme=dark] .inspector-home-feature-list,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview{color:#f3f4f8;background:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected]{background-color:#1d1e2b;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud[data-state=disconnected] .inspector-intelligence-hud-description{color:#c5c7d0}.inspector-window[data-color-scheme=dark] .inspector-system-health,.inspector-window[data-color-scheme=dark] .inspector-system-health-section{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-section{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-section .inspector-system-health-header{background-color:#191c24;border-bottom-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-system-health-event-link>small{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=success]{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=success],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=success]{background-color:#173b32;border-color:#347d69;color:#8ce1c5!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=checking],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=checking]{background-color:#342916;border-color:#866932;color:#f2cf8f!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=error],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=error]{background-color:#3b1c22;border-color:#87424a;color:#ff9aa0!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-state[data-tone=unavailable],.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-state[data-tone=unavailable]{background-color:#242731;border-color:#464957;color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=checking]{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=offline],.inspector-window[data-color-scheme=dark] .inspector-system-health-header>span[data-tone=error]{color:#ff9aa0}.inspector-window[data-color-scheme=dark] .inspector-home-story-link:hover,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:has(.inspector-whats-new-preview-body:hover){background:#242131;border-color:#777aae}.inspector-window[data-color-scheme=dark] .inspector-home-title,.inspector-window[data-color-scheme=dark] .inspector-home-section-title,.inspector-window[data-color-scheme=dark] .inspector-home-card-title,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dd,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-value,.inspector-window[data-color-scheme=dark] .inspector-home-feature{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-home-eyebrow,.inspector-window[data-color-scheme=dark] .inspector-home-card-label,.inspector-window[data-color-scheme=dark] .inspector-home-meta,.inspector-window[data-color-scheme=dark] .inspector-home-body,.inspector-window[data-color-scheme=dark] .inspector-home-card-copy,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal dt,.inspector-window[data-color-scheme=dark] .inspector-system-health-signal small,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-heading p,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-label,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details .inspector-intelligence-hud-detail-subvalue,.inspector-window[data-color-scheme=dark] .inspector-home-section-header>span,.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-copy>span:last-child{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details{background-color:#3a3d49;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section{background-color:#15171e}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-plan-action:hover{color:#fff;background-color:#0000;border-color:#0000}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal+.inspector-system-health-signal,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details>section+section,.inspector-window[data-color-scheme=dark] .inspector-intelligence-hud-details,.inspector-window[data-color-scheme=dark] .inspector-home-features-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] dd,.inspector-window[data-color-scheme=dark] .inspector-home-feature small{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] dd{color:#f2cf8f}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=error] .inspector-system-health-event-type{color:#ff9aa0;background-color:#3b1c22}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=success] .inspector-system-health-event-type{color:#8ce1c5;background-color:#173b32}.inspector-window[data-color-scheme=dark] .inspector-system-health-signal[data-tone=active] .inspector-system-health-event-type{color:#f2cf8f;background-color:#342916}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group{background-color:#191c24;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header{color:#c9ccd6;background-color:#20232d;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-header>span{color:#c9ccd6;background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group[data-feature-state-group=active] .inspector-home-feature-group-header{color:#8ce1c5;background-color:#173b32;border-color:#347d69}.inspector-window[data-color-scheme=dark] .inspector-home-feature{background-color:#191c24}.inspector-window[data-color-scheme=dark] .inspector-home-feature:hover{background-color:#20232d}.inspector-window[data-color-scheme=dark] .inspector-home-feature+.inspector-home-feature{border-color:#2f323d}.inspector-window[data-color-scheme=dark] .inspector-home-feature-group-empty{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-home-feature[data-state=off] small,.inspector-window[data-color-scheme=dark] .inspector-home-feature-arrow{color:#9da1af}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-dismiss:hover{color:#fff;background-color:#302a40}.inspector-window[data-color-scheme=dark] .inspector-home-usage-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-thread-progress::-webkit-progress-bar{background-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-header{box-shadow:none;background-color:#1d1e2b;border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-updated,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview-action{color:#d8d9ff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-preview:hover .inspector-whats-new-preview-action{color:#fff}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document,.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty{border-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-empty .inspector-home-card-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1+p{color:#c9ccd6}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2{border-top-color:#3a3d49}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h1,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h2,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content h3,.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content strong{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .inspector-whats-new-document .announcement-content a{color:#caccff}.inspector-window[data-color-scheme=dark] .inspector-threads-footer{color:#aeb1bd;background-color:#15171e;border-color:#343742}.inspector-window[data-color-scheme=dark] [data-inspector-thread-count]{color:#f3f4f8}.inspector-window[data-color-scheme=dark] [data-inspector-thread-expiry]{color:#aeb1bd}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] [data-inspector-action-placement=threads-footer]:hover{color:#fff;background-color:#20232d;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-content,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-copy,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-fallback,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-title,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-frame{background:linear-gradient(135deg,#666a9e3d,#347d6929),#191c24;border-color:#3a3d49;box-shadow:0 8px 20px #00000038}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-video-control:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-secondary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary{color:#171823;background-color:#caccff;border-color:#caccff}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action-primary:hover,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button-primary:hover{background-color:#d8d9ff;border-color:#d8d9ff}.inspector-window[data-color-scheme=dark] .cpk-threads-tour{color:#aeb1bd;background-color:#191c24;border-color:#464957;box-shadow:0 16px 36px #00000052}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-step{color:#8ce1c5}.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-threads-overview-action:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-launch:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-skip:focus-visible,.inspector-window[data-color-scheme=dark] .cpk-threads-tour-button:focus-visible{outline-color:#bec2ff}.inspector-window[data-color-scheme=dark] .cpk-memory-locked{color:#f3f4f8;background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-sidebar{background-color:#15171e;border-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-main{background-color:#111319}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true]{background-color:#292b43}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-bar{background-color:#333641}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row[data-accent=true] .cpk-locked-preview-row-title{background-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line{background-color:#2f323d}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-row-line:last-child,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-copy+.cpk-locked-preview-copy,.inspector-window[data-color-scheme=dark] .cpk-locked-preview-footer-line+.cpk-locked-preview-footer-line{background-color:#292c36}.inspector-window[data-color-scheme=dark] .cpk-locked-preview-card{background-color:#191c24;box-shadow:inset 0 0 0 1px #2f323d}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-scrim{background:radial-gradient(circle,#111319f0 0,#111319d6 24%,#11131975 48%,#111319ad 100%)}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-content,.inspector-window[data-color-scheme=dark] .cpk-memory-locked-copy{color:#aeb1bd}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-title{color:#f3f4f8}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-icon{color:#d8d9ff;box-shadow:none;background-color:#292b43;border-color:#666a9e}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary{color:#d8d9ff;background-color:#191c24;border-color:#464957}.inspector-window[data-color-scheme=dark] .cpk-memory-locked-action-secondary:hover{color:#fff;background-color:#242731;border-color:#777aae}.inspector-window[data-color-scheme=dark] .cpk-agent-overview,.inspector-window[data-color-scheme=dark] .cpk-section-card{background-color:#191c24!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header{background-color:#242731!important;border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-section-header h4{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] .cpk-agent-icon{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] .cpk-stat-card{background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] button.cpk-stat-card:hover{background-color:#20232d!important}.inspector-window[data-color-scheme=dark] .cpk-agent-view .divide-gray-200>:not([hidden])~:not([hidden]){border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] .cpk-json-block{color:#c9ccd6}.inspector-window[data-color-scheme=dark] [class*=bg-emerald-50],.inspector-window[data-color-scheme=dark] [class*=bg-green-100]{color:#8ce1c5!important;background-color:#173b32!important}.inspector-window[data-color-scheme=dark] [class*=bg-rose-50]{color:#ff9aa0!important;background-color:#3b1c22!important}.inspector-window[data-color-scheme=dark] [data-cpk-event-error] p,.inspector-window[data-color-scheme=dark] [data-playground-error] p{color:inherit!important}.inspector-window[data-color-scheme=dark] [class*=bg-amber-50],.inspector-window[data-color-scheme=dark] [class*=bg-amber-100]{color:#f2cf8f!important;background-color:#342916!important}.inspector-window[data-color-scheme=dark] [class*=bg-blue-50],.inspector-window[data-color-scheme=dark] [class*=bg-blue-100],.inspector-window[data-color-scheme=dark] [class*=bg-sky-50],.inspector-window[data-color-scheme=dark] [class*=bg-violet-50],.inspector-window[data-color-scheme=dark] [class*=bg-purple-50],.inspector-window[data-color-scheme=dark] [class*=bg-fuchsia-50]{color:#d8d9ff!important;background-color:#292b43!important}.inspector-window[data-color-scheme=dark] [class*=bg-white]{background-color:#191c24!important}.inspector-window[data-color-scheme=dark] [class*=bg-gray-50],.inspector-window[data-color-scheme=dark] [class*=bg-slate-50],.inspector-window[data-color-scheme=dark] [class*=bg-gray-100],.inspector-window[data-color-scheme=dark] [class*=bg-slate-100]{background-color:#171a22!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-900],.inspector-window[data-color-scheme=dark] [class*=text-slate-900],.inspector-window[data-color-scheme=dark] [class*=text-gray-800],.inspector-window[data-color-scheme=dark] [class*=text-slate-800],.inspector-window[data-color-scheme=dark] [class*=text-gray-700],.inspector-window[data-color-scheme=dark] [class*=text-slate-700]{color:#f3f4f8!important}.inspector-window[data-color-scheme=dark] [class*=text-gray-600],.inspector-window[data-color-scheme=dark] [class*=text-slate-600],.inspector-window[data-color-scheme=dark] [class*=text-gray-500],.inspector-window[data-color-scheme=dark] [class*=text-slate-500],.inspector-window[data-color-scheme=dark] [class*=text-gray-400],.inspector-window[data-color-scheme=dark] [class*=text-slate-400]{color:#aeb1bd!important}.inspector-window[data-color-scheme=dark] [class*=border-gray-100],.inspector-window[data-color-scheme=dark] [class*=border-slate-100],.inspector-window[data-color-scheme=dark] [class*=border-gray-200],.inspector-window[data-color-scheme=dark] [class*=border-slate-200],.inspector-window[data-color-scheme=dark] [class*=border-gray-300],.inspector-window[data-color-scheme=dark] [class*=border-slate-300]{border-color:#3a3d49!important}.inspector-window[data-color-scheme=dark] input,.inspector-window[data-color-scheme=dark] select,.inspector-window[data-color-scheme=dark] textarea{color:#f3f4f8!important;background-color:#191c24!important;border-color:#464957!important}.inspector-window[data-color-scheme=dark] input::placeholder,.inspector-window[data-color-scheme=dark] textarea::placeholder{color:#858996}.inspector-window[data-color-scheme=dark] ::selection{color:#fff;background-color:#5b5f92}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
10
10
 
11
11
  //#endregion
12
12
  //#region src/assets/inspector-logo.svg
@@ -537,6 +537,24 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
537
537
  ...eventDetails
538
538
  };
539
539
  }
540
+ /**
541
+ * Whether the runtime *connection* needs attention — the single condition
542
+ * shared by System Health and the launcher's error signal, so the two can
543
+ * never disagree about whether the wiring is broken.
544
+ *
545
+ * Exactly one state counts. `disconnected` is also the initial value, so
546
+ * counting it would raise the signal on every page load; `connecting` is a
547
+ * normal startup step; `unavailable` means no Core is attached, which is not
548
+ * a defect of the developer's wiring.
549
+ *
550
+ * Note the deliberate asymmetry with `health.state`: a failed *run* also
551
+ * drives System Health to "Needs attention" while the connection is fine.
552
+ * That is an event rather than a state, and it is excluded from the launcher
553
+ * on purpose — see the launcher-signal comments in index.ts.
554
+ */
555
+ function runtimeConnectionNeedsAttention(state) {
556
+ return state === "error";
557
+ }
540
558
  function runtimeHealthFromInput(input) {
541
559
  const lastEvent = runtimeEventSignal(input.lastRuntimeEvent);
542
560
  if (input.runtimeConnectionState === "connected") return {
@@ -578,15 +596,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
578
596
  },
579
597
  lastEvent
580
598
  };
599
+ const needsAttention = runtimeConnectionNeedsAttention(input.runtimeConnectionState);
581
600
  return {
582
- state: input.runtimeConnectionState === "error" ? "error" : "offline",
583
- label: input.runtimeConnectionState === "error" ? "Runtime error" : "Offline",
601
+ state: needsAttention ? "error" : "offline",
602
+ label: needsAttention ? "Runtime error" : "Offline",
584
603
  runtime: {
585
604
  label: "Offline",
586
605
  tone: "error"
587
606
  },
588
607
  liveUpdates: {
589
- label: input.runtimeConnectionState === "error" ? "Error" : "Disconnected",
608
+ label: needsAttention ? "Error" : "Disconnected",
590
609
  tone: "error"
591
610
  },
592
611
  lastEvent
@@ -770,7 +789,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
770
789
 
771
790
  //#endregion
772
791
  //#region package.json
773
- var version = "1.69.0";
792
+ var version = "1.69.2";
774
793
 
775
794
  //#endregion
776
795
  //#region src/lib/telemetry.ts
@@ -778,6 +797,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
778
797
  opened: "oss.inspector.opened",
779
798
  whatsNewViewed: "oss.inspector.whats_new_viewed",
780
799
  whatsNewSignalViewed: "oss.inspector.whats_new_signal_viewed",
800
+ errorSignalViewed: "oss.inspector.error_signal_viewed",
781
801
  whatsNewClicked: "oss.inspector.whats_new_clicked",
782
802
  threadsTabClicked: "oss.inspector.threads_tab_clicked",
783
803
  threadsLockedViewed: "oss.inspector.threads_locked_viewed",
@@ -860,6 +880,31 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
860
880
  track(TELEMETRY_EVENTS.whatsNewSignalViewed, props);
861
881
  }
862
882
  /**
883
+ * Fires when the launcher's error signal becomes *visible* — not when it arms.
884
+ * Arming can happen with the panel open or the tab hidden, where there is no
885
+ * launcher to look at, so counting arms would inflate the denominator this
886
+ * event exists to provide.
887
+ *
888
+ * Deliberately carries three fixed enum values and nothing else. This is the
889
+ * one place a later change could casually attach a free-text field, and the
890
+ * failure message must never be transmitted.
891
+ *
892
+ * `label` is deliberately not a new event: the catalogue's size is asserted
893
+ * and spelled out in a test title, and a property answers the one open
894
+ * question — how often the no-room fallback fires — without touching either.
895
+ *
896
+ * The pill's own marginal effect cannot be measured here and must not be
897
+ * reverse-engineered from this data: it ships together with the dot and the
898
+ * beat, so there is no period with one and not the other.
899
+ */
900
+ function trackErrorSignalViewed(props) {
901
+ track(TELEMETRY_EVENTS.errorSignalViewed, {
902
+ source: props.source,
903
+ presentation: props.presentation,
904
+ label: props.label
905
+ });
906
+ }
907
+ /**
863
908
  * Fires for links followed inside the announcement body. `body` is the only
864
909
  * call-to-action left: dismissal no longer exists, so there is nothing else a
865
910
  * click on this surface can mean.
@@ -1100,11 +1145,215 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1100
1145
  /** Menu key of the What's new leaf — the news signal's destination. */
1101
1146
  const WHATS_NEW_MENU_KEY = "whats-new";
1102
1147
  const NEWS_SIGNAL_ID = "whats-new";
1103
- const NEWS_SIGNAL_TONE = "news";
1104
- const NEWS_SIGNAL_COLOR = "#A78BFA";
1105
- const NEWS_SIGNAL_CADENCE_MS = 2100;
1106
- const NEWS_SIGNAL_DESTINATION = WHATS_NEW_MENU_KEY;
1148
+ const LAUNCHER_SIGNAL_COLORS = {
1149
+ news: "#A78BFA",
1150
+ error: "#F87171"
1151
+ };
1152
+ /**
1153
+ * The failure gesture, four phases in series:
1154
+ *
1155
+ * ```
1156
+ * beat 400ms → open 250ms → hold 2500ms → close 250ms (3400ms total)
1157
+ * ```
1158
+ *
1159
+ * Sequential rather than simultaneous, deliberately: the beat says *here*, the
1160
+ * pill says *this*. The beat is short so the words arrive quickly.
1161
+ *
1162
+ * **All four durations live here and nowhere else.** The stylesheet reads the
1163
+ * two animated phases as custom properties injected from these numbers rather
1164
+ * than restating them, because they are taste and will be tuned by eye after
1165
+ * the first live look — tuning the feel must be a number, not a refactor.
1166
+ */
1167
+ const ERROR_GESTURE_MS = {
1168
+ beat: 400,
1169
+ open: 250,
1170
+ hold: 2500,
1171
+ close: 250
1172
+ };
1173
+ /**
1174
+ * The words the pill carries, which are the words the panel already carries.
1175
+ *
1176
+ * `Runtime error` is the System Health runtime tile's own label, and
1177
+ * `Failed to load threads` is the Threads view's own heading. The outside and
1178
+ * the inside must agree, so these are shared rather than paraphrased.
1179
+ */
1180
+ const RUNTIME_ERROR_LABEL = "Runtime error";
1181
+ const THREADS_LOAD_ERROR_LABEL = "Failed to load threads";
1182
+ const AGENT_RUN_FAILED_LABEL = "Agent run failed";
1183
+ const TOOL_ERROR_LABEL = "Tool error";
1184
+ const MEMORY_LOAD_ERROR_LABEL = "Failed to load learning data";
1185
+ /**
1186
+ * Copy on the landing view. Titles match the pill.
1187
+ *
1188
+ * The two fields differ in what they can promise. `advice` is about the
1189
+ * reader's next move and is always true. `highlight` is a claim about *this
1190
+ * view* — that the failed item is visible below — and the error carries no
1191
+ * guarantee of that: a code mapped to `run` can arrive with no run in the
1192
+ * buffer at all, and a tool error can arrive without the call id the
1193
+ * highlight needs. So it is rendered only once the item is actually there.
1194
+ * A card pointing at something the reader cannot find is worse than a card
1195
+ * that stays quiet, because it sends them looking.
1196
+ */
1197
+ const EVENT_ERROR_GUIDANCE = {
1198
+ run: {
1199
+ title: AGENT_RUN_FAILED_LABEL,
1200
+ highlight: "The failed run event is highlighted below."
1201
+ },
1202
+ tool: {
1203
+ title: TOOL_ERROR_LABEL,
1204
+ highlight: "The failed tool call is highlighted below."
1205
+ },
1206
+ memory: {
1207
+ title: MEMORY_LOAD_ERROR_LABEL,
1208
+ advice: "Confirm CopilotKit Intelligence is connected, then retry Learning."
1209
+ }
1210
+ };
1211
+ /**
1212
+ * The pill's second line, shared by every subject that carries a pill.
1213
+ *
1214
+ * **This is the one string in the feature that exists nowhere else in the
1215
+ * product.** Every other word the launcher shows is word-identical to the
1216
+ * panel, which is the standing rule; this line is a deliberate, owner-approved
1217
+ * exception to it, because the pill became clickable and an invitation that
1218
+ * says nothing is not an invitation.
1219
+ *
1220
+ * It is shown, never spoken: the polite live region carries the failure class
1221
+ * alone. A screen-reader user cannot act on an instruction delivered through
1222
+ * an announcement, and it would double the spoken length.
1223
+ */
1224
+ const PILL_SUBLINE_LABEL = "Open Inspector for details";
1225
+ const HUD_OPEN_INSPECTOR_LABEL = "Open Inspector";
1226
+ const HUD_THREADS_OFF_LABEL = "Turn on Threads";
1227
+ const HUD_THREADS_ON_LABEL = "Threads on";
1228
+ const HUD_INTELLIGENCE_OFF_LABEL = "Turn on Intelligence";
1229
+ const HUD_INTELLIGENCE_ON_LABEL = "Intelligence connected";
1230
+ const HUD_THREADS_OFF_DETAIL = "Inspect conversations from this app.";
1231
+ const HUD_THREADS_ON_DETAIL = "Threads is on. Opens the Threads view.";
1232
+ const HUD_INTELLIGENCE_OFF_DETAIL = "Connect Intelligence to use Threads and Learning.";
1233
+ const HUD_INTELLIGENCE_ON_DETAIL = "Intelligence is connected. Opens Home.";
1234
+ const HUD_LEARNING_OFF_LABEL = "Turn on Learning";
1235
+ const HUD_LEARNING_ON_LABEL = "Learning on";
1236
+ const HUD_LEARNING_OFF_DETAIL = "Connect Intelligence to use Learning.";
1237
+ const HUD_LEARNING_ON_DETAIL = "Learning is on. Opens the Learning view.";
1238
+ const HUD_OPEN_INSPECTOR_DETAIL = "Same as clicking the circle. Opens the full Inspector.";
1239
+ const LAUNCHER_SIGNALS = {
1240
+ "whats-new": {
1241
+ tone: "news",
1242
+ markerTarget: WHATS_NEW_MENU_KEY,
1243
+ landingTarget: "home",
1244
+ cadence: 2100,
1245
+ priority: 0,
1246
+ accessibleLabel: "new content"
1247
+ },
1248
+ connection: {
1249
+ tone: "error",
1250
+ markerTarget: "home",
1251
+ landingTarget: "home",
1252
+ cadence: ERROR_GESTURE_MS.beat,
1253
+ priority: 5,
1254
+ accessibleLabel: "runtime error",
1255
+ pillLabel: RUNTIME_ERROR_LABEL
1256
+ },
1257
+ threads: {
1258
+ tone: "error",
1259
+ markerTarget: "threads",
1260
+ landingTarget: "threads",
1261
+ cadence: ERROR_GESTURE_MS.beat,
1262
+ priority: 4,
1263
+ accessibleLabel: "thread loading error",
1264
+ pillLabel: THREADS_LOAD_ERROR_LABEL
1265
+ },
1266
+ run: {
1267
+ tone: "error",
1268
+ markerTarget: "ag-ui-events",
1269
+ landingTarget: "ag-ui-events",
1270
+ cadence: ERROR_GESTURE_MS.beat,
1271
+ priority: 3,
1272
+ accessibleLabel: "agent run failed",
1273
+ pillLabel: AGENT_RUN_FAILED_LABEL
1274
+ },
1275
+ tool: {
1276
+ tone: "error",
1277
+ markerTarget: "agents",
1278
+ landingTarget: "agents",
1279
+ cadence: ERROR_GESTURE_MS.beat,
1280
+ priority: 2,
1281
+ accessibleLabel: "tool error",
1282
+ pillLabel: TOOL_ERROR_LABEL
1283
+ },
1284
+ memory: {
1285
+ tone: "error",
1286
+ markerTarget: "memories",
1287
+ landingTarget: "memories",
1288
+ cadence: ERROR_GESTURE_MS.beat,
1289
+ priority: 1,
1290
+ accessibleLabel: "learning error",
1291
+ pillLabel: MEMORY_LOAD_ERROR_LABEL
1292
+ }
1293
+ };
1294
+ /** Highest priority first, so the winner of the single dot is the head. */
1295
+ const LAUNCHER_SIGNAL_PRIORITY_ORDER = Object.keys(LAUNCHER_SIGNALS).sort((a, b) => LAUNCHER_SIGNALS[b].priority - LAUNCHER_SIGNALS[a].priority);
1296
+ /** Wiring *state* — red until the problem heals. */
1297
+ const WIRING_ERROR_KEYS = ["connection", "threads"];
1298
+ /** Unread *events* — red until the landing view is read. */
1299
+ const EVENT_ERROR_KEYS = [
1300
+ "run",
1301
+ "tool",
1302
+ "memory"
1303
+ ];
1304
+ function isWiringErrorKey(key) {
1305
+ return WIRING_ERROR_KEYS.includes(key);
1306
+ }
1307
+ /**
1308
+ * Takes a plain string rather than a `LauncherSignalKey`, because one caller
1309
+ * reads the subject back out of a `data-` attribute, where the DOM can only
1310
+ * offer `string | undefined`. Narrowing untrusted input is what a guard is
1311
+ * for; `LauncherSignalKey` still satisfies the parameter, so the callers that
1312
+ * already hold one are unaffected.
1313
+ */
1314
+ function isEventErrorKey(key) {
1315
+ return EVENT_ERROR_KEYS.includes(key);
1316
+ }
1317
+ /** Narrows a signal key to an error source, excluding the announcement. */
1318
+ function isErrorSignalKey(key) {
1319
+ return isWiringErrorKey(key) || isEventErrorKey(key);
1320
+ }
1321
+ /**
1322
+ * The control range is the point, not an oversight: an attribute selector has
1323
+ * to escape those characters too, and CSS.escape — which the fallback below
1324
+ * stands in for — escapes them as well. Hoisted so the suppression can sit on
1325
+ * the pattern rather than three lines above it.
1326
+ */
1327
+ const SELECTOR_ESCAPE_PATTERN = /[\0-\x1f\x7f!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;
1328
+ /** Attribute selector value. jsdom does not implement CSS.escape. */
1329
+ function escapeSelectorValue(value) {
1330
+ if (typeof CSS !== "undefined" && typeof CSS.escape === "function") return CSS.escape(value);
1331
+ return value.replace(SELECTOR_ESCAPE_PATTERN, "\\$&");
1332
+ }
1333
+ function eventErrorKeyForCode(code) {
1334
+ switch (code) {
1335
+ case _copilotkit_core.CopilotKitCoreErrorCode.TOOL_NOT_FOUND:
1336
+ case _copilotkit_core.CopilotKitCoreErrorCode.TOOL_HANDLER_FAILED:
1337
+ case _copilotkit_core.CopilotKitCoreErrorCode.TOOL_ARGUMENT_PARSE_FAILED:
1338
+ case _copilotkit_core.CopilotKitCoreErrorCode.AGENT_NOT_FOUND: return "tool";
1339
+ case _copilotkit_core.CopilotKitCoreErrorCode.AGENT_CONNECT_FAILED:
1340
+ case _copilotkit_core.CopilotKitCoreErrorCode.AGENT_RUN_FAILED:
1341
+ case _copilotkit_core.CopilotKitCoreErrorCode.AGENT_RUN_FAILED_EVENT:
1342
+ case _copilotkit_core.CopilotKitCoreErrorCode.AGENT_RUN_ERROR_EVENT: return "run";
1343
+ default: return null;
1344
+ }
1345
+ }
1346
+ /**
1347
+ * Coalesce inspector-owned GET /threads sends. The first refresh goes out
1348
+ * at once. Further calls in this window share one trailing request, so a
1349
+ * flaky network does not fire a burst of list fetches and error cards.
1350
+ */
1351
+ const THREAD_LIST_DEBOUNCE_MS = 300;
1352
+ /** The launcher's accessible name with nothing wrong. */
1353
+ const LAUNCHER_BASE_LABEL = "Web Inspector";
1107
1354
  const EDGE_MARGIN = 16;
1355
+ /** HUD card plus the hover bridge. Used to pick left vs right. */
1356
+ const LAUNCHER_HUD_WIDTH = 248;
1108
1357
  const DRAG_THRESHOLD = 6;
1109
1358
  const MIN_WINDOW_WIDTH = 880;
1110
1359
  const MIN_WINDOW_WIDTH_DOCKED_LEFT = 640;
@@ -1585,6 +1834,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
1585
1834
  super(..._args);
1586
1835
  this.threads = [];
1587
1836
  this.selectedThreadId = null;
1837
+ this.inAppThreadId = null;
1588
1838
  this.errorMessage = null;
1589
1839
  this.suppressEmptyState = false;
1590
1840
  this._query = "";
@@ -1658,6 +1908,9 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
1658
1908
  ${thread.isExample ? lit.html`
1659
1909
  <span class="cpk-tl__pill cpk-tl__pill--example">Example</span>
1660
1910
  ` : lit.nothing}
1911
+ ${this.inAppThreadId === thread.id ? lit.html`
1912
+ <span class="cpk-tl__pill cpk-tl__pill--in-app">In app</span>
1913
+ ` : lit.nothing}
1661
1914
  </span>
1662
1915
  </button>
1663
1916
  `;
@@ -1716,6 +1969,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
1716
1969
  CpkThreadList.properties = {
1717
1970
  threads: { attribute: false },
1718
1971
  selectedThreadId: { attribute: false },
1972
+ inAppThreadId: { attribute: false },
1719
1973
  errorMessage: { attribute: false },
1720
1974
  suppressEmptyState: { attribute: false },
1721
1975
  _query: { state: true }
@@ -1864,6 +2118,11 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
1864
2118
  color: #087653;
1865
2119
  }
1866
2120
 
2121
+ .cpk-tl__pill--in-app {
2122
+ background: #bec2ff;
2123
+ color: #010507;
2124
+ }
2125
+
1867
2126
  /* ── Empty state ── */
1868
2127
  .cpk-tl__empty {
1869
2128
  padding: 32px 16px;
@@ -1937,6 +2196,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
1937
2196
  this.agentStateInput = null;
1938
2197
  this.agentEventsInput = [];
1939
2198
  this.liveMessageVersion = 0;
2199
+ this.viewInAppMode = "hidden";
2200
+ this.viewInAppError = null;
1940
2201
  this.focusMessageId = null;
1941
2202
  this.focusRequestId = 0;
1942
2203
  this._tab = "timeline";
@@ -2937,8 +3198,32 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson(parsed))}</pre
2937
3198
  </span>
2938
3199
  `)}
2939
3200
  </div>
3201
+ ${this.renderViewInAppAction()}
2940
3202
  ${bulkControls}
2941
3203
  </div>
3204
+ `;
3205
+ }
3206
+ renderViewInAppAction() {
3207
+ if (this.viewInAppMode === "hidden") return lit.nothing;
3208
+ const isStop = this.viewInAppMode === "stop";
3209
+ return lit.html`
3210
+ <button
3211
+ type="button"
3212
+ class="cpk-td__view-in-app ${isStop ? "cpk-td__view-in-app--stop" : ""}"
3213
+ data-testid="cpk-inspector-view-in-app"
3214
+ aria-label=${isStop ? "Stop viewing this thread in the app" : "View this thread in your app"}
3215
+ @click=${() => {
3216
+ this.dispatchEvent(new CustomEvent(isStop ? "stopViewing" : "viewInApp", {
3217
+ bubbles: true,
3218
+ composed: true
3219
+ }));
3220
+ }}
3221
+ >
3222
+ ${isStop ? "Stop viewing" : "View in your app"}
3223
+ </button>
3224
+ ${this.viewInAppError ? lit.html`<span class="cpk-td__view-in-app-error" role="alert"
3225
+ >${this.viewInAppError}</span
3226
+ >` : lit.nothing}
2942
3227
  `;
2943
3228
  }
2944
3229
  renderActiveBulkControls() {
@@ -3523,6 +3808,8 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
3523
3808
  agentStateInput: { attribute: false },
3524
3809
  agentEventsInput: { attribute: false },
3525
3810
  liveMessageVersion: { attribute: false },
3811
+ viewInAppMode: { attribute: false },
3812
+ viewInAppError: { attribute: false },
3526
3813
  focusMessageId: { attribute: false },
3527
3814
  focusRequestId: { attribute: false },
3528
3815
  _tab: { state: true },
@@ -3754,6 +4041,37 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
3754
4041
  overflow-wrap: anywhere;
3755
4042
  }
3756
4043
 
4044
+ .cpk-td__view-in-app {
4045
+ appearance: none;
4046
+ flex-shrink: 0;
4047
+ margin: 0;
4048
+ border: 1px solid #5558b2;
4049
+ border-radius: 6px;
4050
+ background: #5558b2;
4051
+ color: #ffffff;
4052
+ font-family: "Plus Jakarta Sans", sans-serif;
4053
+ font-size: 11px;
4054
+ font-weight: 600;
4055
+ padding: 5px 10px;
4056
+ cursor: pointer;
4057
+ }
4058
+
4059
+ .cpk-td__view-in-app:focus-visible {
4060
+ outline: 2px solid #010507;
4061
+ outline-offset: 2px;
4062
+ }
4063
+
4064
+ .cpk-td__view-in-app--stop {
4065
+ background: #ffffff;
4066
+ color: #5558b2;
4067
+ }
4068
+
4069
+ .cpk-td__view-in-app-error {
4070
+ flex-basis: 100%;
4071
+ color: #c0333a;
4072
+ font-size: 11px;
4073
+ }
4074
+
3757
4075
  /*
3758
4076
  * Each tab's content is wrapped in this panel so the keep-mounted
3759
4077
  * inactive panels can be hidden via display:none without disturbing
@@ -5231,6 +5549,12 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5231
5549
  };
5232
5550
  this.lastScrolledAgentNavigationLayout = null;
5233
5551
  this.selectedThreadId = null;
5552
+ this.inAppThreadId = null;
5553
+ this.inAppAgentId = null;
5554
+ this.inAppSource = null;
5555
+ this.activeViewInAppRequestId = null;
5556
+ this.viewInAppError = null;
5557
+ this.inspectorBridgeUnsubscribers = [];
5234
5558
  this.selectedRealThreadIsExplicit = false;
5235
5559
  this.selectedLocalExampleThreadId = null;
5236
5560
  this.requestedThreadId = null;
@@ -5294,9 +5618,39 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5294
5618
  this.announcementLoaded = false;
5295
5619
  this.announcementPromise = null;
5296
5620
  this.newsSignalArmed = false;
5297
- this.newsSignalPulsing = false;
5298
- this.newsSignalPulsePending = false;
5621
+ this.pulsingSignal = null;
5622
+ this.pendingPulseSignal = null;
5299
5623
  this.pulseTimeoutId = null;
5624
+ this.errorSignalArmed = {
5625
+ connection: false,
5626
+ threads: false
5627
+ };
5628
+ this.eventErrorArmed = {
5629
+ run: false,
5630
+ tool: false,
5631
+ memory: false
5632
+ };
5633
+ this.eventErrorDetails = {
5634
+ run: null,
5635
+ tool: null,
5636
+ memory: null
5637
+ };
5638
+ this.pendingScrollToEventId = null;
5639
+ this.pendingScrollToToolCallId = null;
5640
+ this.threadRefreshLastSentAt = /* @__PURE__ */ new Map();
5641
+ this.threadRefreshTrailingTimers = /* @__PURE__ */ new Map();
5642
+ this.errorBeatSpent = false;
5643
+ this.errorSignalViewedSources = /* @__PURE__ */ new Set();
5644
+ this.gestureSignal = null;
5645
+ this.pillPhase = null;
5646
+ this.pillDirection = null;
5647
+ this.pillTimeoutId = null;
5648
+ this.launcherHudOpen = false;
5649
+ this.launcherHudSide = "left";
5650
+ this.launcherHudHelp = null;
5651
+ this.launcherHudCloseTimer = null;
5652
+ this.hudLandingMenu = null;
5653
+ this.pillOutcome = null;
5300
5654
  this.viewedNewsSignalIds = /* @__PURE__ */ new Set();
5301
5655
  this.pendingNewsSignalViewed = null;
5302
5656
  this.viewedBannerSurfaces = /* @__PURE__ */ new Set();
@@ -5370,9 +5724,60 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5370
5724
  this.customTabIcons = { threads: `<svg class="h-3.5 w-3.5" width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.04167 15C8.29167 15 7.65972 14.7431 7.14583 14.2292C6.63194 13.7153 6.375 13.0972 6.375 12.375C6.375 11.3194 6.80208 10.3646 7.65625 9.51042C8.51042 8.65625 9.57639 8.125 10.8542 7.91667C10.8125 7.41667 10.6875 7.03819 10.4792 6.78125C10.2708 6.52431 9.98611 6.39583 9.625 6.39583C9.20833 6.39583 8.75694 6.56944 8.27083 6.91667C7.78472 7.26389 7.20833 7.83333 6.54167 8.625C5.45833 9.91667 4.66319 10.7569 4.15625 11.1458C3.64931 11.5347 3.10417 11.7292 2.52083 11.7292C1.8125 11.7292 1.21528 11.4653 0.729167 10.9375C0.243056 10.4097 0 9.77083 0 9.02083C0 8.27083 0.163194 7.50347 0.489583 6.71875C0.815972 5.93403 1.36806 4.99306 2.14583 3.89583C2.40972 3.53472 2.60417 3.22917 2.72917 2.97917C2.85417 2.72917 2.91667 2.52778 2.91667 2.375C2.91667 2.27778 2.89931 2.20486 2.86458 2.15625C2.82986 2.10764 2.77778 2.08333 2.70833 2.08333C2.56944 2.08333 2.39583 2.17014 2.1875 2.34375C1.97917 2.51736 1.73611 2.78472 1.45833 3.14583L0 1.66667C0.444444 1.125 0.895833 0.711806 1.35417 0.427083C1.8125 0.142361 2.26389 0 2.70833 0C3.34722 0 3.88889 0.222222 4.33333 0.666667C4.77778 1.11111 5 1.66667 5 2.33333C5 2.73611 4.89583 3.18056 4.6875 3.66667C4.47917 4.15278 4.13194 4.73611 3.64583 5.41667C3.11806 6.16667 2.72569 6.82639 2.46875 7.39583C2.21181 7.96528 2.08333 8.46528 2.08333 8.89583C2.08333 9.13194 2.12153 9.31597 2.19792 9.44792C2.27431 9.57986 2.38194 9.64583 2.52083 9.64583C2.65972 9.64583 2.78125 9.60764 2.88542 9.53125C2.98958 9.45486 3.18056 9.27083 3.45833 8.97917C3.63889 8.78472 3.85417 8.54514 4.10417 8.26042C4.35417 7.97569 4.65972 7.625 5.02083 7.20833C5.89583 6.16667 6.6875 5.42361 7.39583 4.97917C8.10417 4.53472 8.84722 4.3125 9.625 4.3125C10.5556 4.3125 11.3194 4.625 11.9167 5.25C12.5139 5.875 12.8542 6.72917 12.9375 7.8125H15V9.89583H12.9375C12.8264 11.4514 12.4201 12.691 11.7188 13.6146C11.0174 14.5382 10.125 15 9.04167 15ZM9.08333 12.9167C9.52778 12.9167 9.90278 12.6632 10.2083 12.1562C10.5139 11.6493 10.7222 10.9444 10.8333 10.0417C10.1944 10.1944 9.63889 10.4965 9.16667 10.9479C8.69444 11.3993 8.45833 11.8472 8.45833 12.2917C8.45833 12.4861 8.51389 12.6389 8.625 12.75C8.73611 12.8611 8.88889 12.9167 9.08333 12.9167Z" fill="currentColor"/></svg>` };
5371
5725
  this.handleDocumentVisibilityChange = () => {
5372
5726
  this.accountCtaMotionPaused = document.visibilityState !== "visible";
5373
- if (document.visibilityState === "visible" && this.newsSignalPulsePending && !this.isOpen) this.startNewsSignalPulse();
5727
+ if (document.visibilityState === "visible" && !this.isOpen) this.flushPendingSignalPulse();
5728
+ this.requestUpdate();
5729
+ };
5730
+ this.handlePillClick = (event) => {
5731
+ event.preventDefault();
5732
+ event.stopPropagation();
5733
+ this.openInspector("floating_button");
5734
+ };
5735
+ this.handleLauncherHudEnter = () => {
5736
+ this.openLauncherHud();
5737
+ };
5738
+ this.handleLauncherHudLeave = () => {
5739
+ if (this.launcherHudCloseTimer !== null) clearTimeout(this.launcherHudCloseTimer);
5740
+ this.launcherHudCloseTimer = setTimeout(() => {
5741
+ this.launcherHudCloseTimer = null;
5742
+ this.closeLauncherHud();
5743
+ }, 160);
5744
+ };
5745
+ this.handleLauncherHudFocusIn = () => {
5746
+ this.openLauncherHud();
5747
+ };
5748
+ this.handleLauncherHudFocusOut = (event) => {
5749
+ const next = event.relatedTarget;
5750
+ const wrapper = event.currentTarget;
5751
+ if (next instanceof Node && wrapper instanceof Node && wrapper.contains(next)) return;
5752
+ this.closeLauncherHud();
5753
+ };
5754
+ this.handleLauncherHudKeydown = (event) => {
5755
+ var _this$activeRoot$quer;
5756
+ if (event.key !== "Escape") return;
5757
+ if (!this.launcherHudOpen) return;
5758
+ event.preventDefault();
5759
+ event.stopPropagation();
5760
+ this.closeLauncherHud();
5761
+ (_this$activeRoot$quer = this.activeRoot.querySelector(".console-button")) === null || _this$activeRoot$quer === void 0 || _this$activeRoot$quer.focus();
5762
+ };
5763
+ this.handleHudActionClick = (event, row) => {
5764
+ event.preventDefault();
5765
+ event.stopPropagation();
5766
+ this.hudLandingMenu = row === "inspector" ? null : row === "threads" ? "threads" : row === "learning" ? "memories" : "home";
5767
+ this.closeLauncherHud();
5768
+ this.openInspector("floating_button");
5769
+ };
5770
+ this.handleHudHelpClick = (event, row) => {
5771
+ event.preventDefault();
5772
+ event.stopPropagation();
5773
+ this.launcherHudHelp = this.launcherHudHelp === row ? null : row;
5374
5774
  this.requestUpdate();
5375
5775
  };
5776
+ this.handleHudRowClick = (event, row) => {
5777
+ const target = event.target;
5778
+ if (target instanceof Element && target.closest(".cpk-launcher-hud__help, [data-cpk-hud-action]")) return;
5779
+ this.handleHudActionClick(event, row);
5780
+ };
5376
5781
  this.handleSidebarToggle = () => {
5377
5782
  this.sidebarRailTooltip = null;
5378
5783
  this.sidebarCollapsed = !this.sidebarCollapsed;
@@ -5404,6 +5809,18 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5404
5809
  this.persistState();
5405
5810
  this.requestUpdate();
5406
5811
  };
5812
+ this.handleEventErrorBannerKeydown = (event) => {
5813
+ if (event.key !== "Enter" && event.key !== " ") return;
5814
+ event.preventDefault();
5815
+ this.refocusEventErrorLanding(event);
5816
+ };
5817
+ this.refocusEventErrorLanding = (event) => {
5818
+ var _event$currentTarget;
5819
+ const key = (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : _event$currentTarget.dataset.cpkEventError;
5820
+ if (!key || !isEventErrorKey(key)) return;
5821
+ this.applyEventErrorLanding(key);
5822
+ this.requestUpdate();
5823
+ };
5407
5824
  this.handleSystemColorSchemeChange = (event) => {
5408
5825
  if (this.hasExplicitColorScheme) return;
5409
5826
  this.colorScheme = event.matches ? "dark" : "light";
@@ -5540,7 +5957,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5540
5957
  this.closePopOut();
5541
5958
  };
5542
5959
  this.handleResizePointerDown = (event) => {
5543
- var _event$currentTarget, _target$setPointerCap2;
5960
+ var _event$currentTarget2, _target$setPointerCap2;
5544
5961
  event.stopPropagation();
5545
5962
  event.preventDefault();
5546
5963
  this.hasCustomPosition.window = true;
@@ -5552,7 +5969,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5552
5969
  };
5553
5970
  this.resizeInitialSize = { ...this.contextState.window.size };
5554
5971
  this.resizeInitialPosition = { ...this.contextState.window.position };
5555
- const edge = (_event$currentTarget = event.currentTarget) === null || _event$currentTarget === void 0 ? void 0 : _event$currentTarget.dataset.resizeEdge;
5972
+ const edge = (_event$currentTarget2 = event.currentTarget) === null || _event$currentTarget2 === void 0 ? void 0 : _event$currentTarget2.dataset.resizeEdge;
5556
5973
  this.resizeEdge = edge === "w" || edge === "e" || edge === "s" || edge === "se" || edge === "sw" ? edge : "se";
5557
5974
  if (document.body && this.dockMode !== "floating") document.body.style.transition = "";
5558
5975
  const target = event.currentTarget;
@@ -5795,6 +6212,40 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
5795
6212
  if (target.hasPointerCapture(this.threadDividerPointerId)) target.releasePointerCapture(this.threadDividerPointerId);
5796
6213
  this.threadDividerResizing = false;
5797
6214
  };
6215
+ this.handleViewInApp = () => {
6216
+ const thread = this.getSelectedRealThread();
6217
+ if (!thread) return;
6218
+ if (this.activeViewInAppRequestId && this.inAppAgentId) (0, _copilotkit_core.emitInspectorStopViewing)({
6219
+ requestId: this.activeViewInAppRequestId,
6220
+ agentId: this.inAppAgentId
6221
+ });
6222
+ this.viewInAppError = null;
6223
+ const requestId = (0, _copilotkit_core.createInspectorThreadRequestId)();
6224
+ this.activeViewInAppRequestId = requestId;
6225
+ if (!(0, _copilotkit_core.emitInspectorViewThread)({
6226
+ requestId,
6227
+ threadId: thread.id,
6228
+ agentId: thread.agentId
6229
+ })) {
6230
+ this.activeViewInAppRequestId = null;
6231
+ this.inAppThreadId = null;
6232
+ this.inAppAgentId = null;
6233
+ this.inAppSource = null;
6234
+ this.viewInAppError = "No official chat for this agent is on the page.";
6235
+ }
6236
+ this.requestUpdate();
6237
+ };
6238
+ this.handleStopViewing = () => {
6239
+ const requestId = this.activeViewInAppRequestId;
6240
+ const agentId = this.inAppAgentId;
6241
+ if (!requestId || !agentId) return;
6242
+ this.viewInAppError = null;
6243
+ (0, _copilotkit_core.emitInspectorStopViewing)({
6244
+ requestId,
6245
+ agentId
6246
+ });
6247
+ this.requestUpdate();
6248
+ };
5798
6249
  this.handleThreadsExampleOverviewVideoControl = () => {
5799
6250
  const video = this.threadsExampleOverviewVideoElement;
5800
6251
  if (!video) return;
@@ -6224,7 +6675,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6224
6675
  const statusSub = store.select(createThreadStoreStatusSelector()).subscribe(({ error, isLoading }) => {
6225
6676
  if (capabilityGeneration !== this.threadCapabilityGeneration || !this.areThreadEndpointsAvailable()) return;
6226
6677
  if (error) this._threadsErrorByAgent.set(agentId, error);
6227
- else this._threadsErrorByAgent.delete(agentId);
6678
+ else if (!isLoading) this._threadsErrorByAgent.delete(agentId);
6228
6679
  this._threadsLoadingByAgent.set(agentId, isLoading);
6229
6680
  this.requestUpdate();
6230
6681
  });
@@ -6238,7 +6689,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6238
6689
  this._threadsLoadingByAgent.set(agentId, (0, _copilotkit_core.ɵselectThreadsIsLoading)(initialState));
6239
6690
  const initialError = (0, _copilotkit_core.ɵselectThreadsError)(initialState);
6240
6691
  if (initialError) this._threadsErrorByAgent.set(agentId, initialError);
6241
- else this._threadsErrorByAgent.delete(agentId);
6692
+ else if (!(0, _copilotkit_core.ɵselectThreadsIsLoading)(initialState)) this._threadsErrorByAgent.delete(agentId);
6242
6693
  this.rebuildFlattenedThreads();
6243
6694
  this.autoSelectLatestThread();
6244
6695
  }
@@ -6317,11 +6768,32 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6317
6768
  core.registerThreadStore(agentId, store);
6318
6769
  }
6319
6770
  refreshOwnedThreadStore(agentId) {
6771
+ var _this$threadRefreshLa;
6320
6772
  if (!this.areThreadEndpointsAvailable()) return;
6321
6773
  const store = this._ownedThreadStores.get(agentId);
6322
6774
  if (!store) return;
6775
+ const now = Date.now();
6776
+ const waitMs = THREAD_LIST_DEBOUNCE_MS - (now - ((_this$threadRefreshLa = this.threadRefreshLastSentAt.get(agentId)) !== null && _this$threadRefreshLa !== void 0 ? _this$threadRefreshLa : 0));
6777
+ if (waitMs <= 0) {
6778
+ this.sendOwnedThreadRefresh(agentId, store, now);
6779
+ return;
6780
+ }
6781
+ if (this.threadRefreshTrailingTimers.has(agentId)) return;
6782
+ this.threadRefreshTrailingTimers.set(agentId, setTimeout(() => {
6783
+ this.threadRefreshTrailingTimers.delete(agentId);
6784
+ const current = this._ownedThreadStores.get(agentId);
6785
+ if (!current) return;
6786
+ this.sendOwnedThreadRefresh(agentId, current, Date.now());
6787
+ }, waitMs));
6788
+ }
6789
+ sendOwnedThreadRefresh(agentId, store, sentAt) {
6790
+ this.threadRefreshLastSentAt.set(agentId, sentAt);
6323
6791
  store.refresh();
6324
6792
  }
6793
+ cancelThreadRefreshDebounce() {
6794
+ for (const timer of this.threadRefreshTrailingTimers.values()) clearTimeout(timer);
6795
+ this.threadRefreshTrailingTimers.clear();
6796
+ }
6325
6797
  updateOwnedThreadStoreHeaders(headers) {
6326
6798
  if (!this.areThreadEndpointsAvailable()) return;
6327
6799
  const core = this.core;
@@ -6383,6 +6855,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6383
6855
  this.runtimeStatus = core.runtimeConnectionStatus;
6384
6856
  this.coreProperties = core.properties;
6385
6857
  this.lastCoreError = null;
6858
+ this.clearAllEventErrors();
6386
6859
  const supportsInspectorMetadata = this.coreSupportsInspectorMetadata(core);
6387
6860
  this.updateInspectorMetadataProjection(this.readCoreInspectorMetadata(core));
6388
6861
  this.coreSubscriber = {
@@ -6418,11 +6891,12 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6418
6891
  this.updateInspectorMetadataProjection(inspectorMetadata);
6419
6892
  this.requestUpdate();
6420
6893
  } } : {},
6421
- onError: ({ code, error }) => {
6894
+ onError: ({ code, error, context }) => {
6422
6895
  this.lastCoreError = {
6423
6896
  code,
6424
6897
  message: error.message
6425
6898
  };
6899
+ this.armEventErrorFromCode(code, error.message, context);
6426
6900
  this.requestUpdate();
6427
6901
  },
6428
6902
  onAgentsChanged: ({ agents }) => {
@@ -6515,6 +6989,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6515
6989
  }),
6516
6990
  memoryStore.select(_copilotkit_core.ɵselectMemoriesError).subscribe((v) => {
6517
6991
  this._memoriesError = v;
6992
+ if (v) this.armEventError("memory", v.message);
6518
6993
  this.requestUpdate();
6519
6994
  }),
6520
6995
  memoryStore.select(_copilotkit_core.ɵselectMemoriesAvailable).subscribe((v) => {
@@ -6603,10 +7078,12 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6603
7078
  this._recallQuery = "";
6604
7079
  this.coreSubscriber = null;
6605
7080
  this.runtimeStatus = null;
7081
+ this.cancelThreadRefreshDebounce();
6606
7082
  this.inspectorMetadataValue = void 0;
6607
7083
  this.inspectorMetadataProjection = projectInspectorMetadata(void 0, void 0);
6608
7084
  this.metadataTelemetryFingerprints.clear();
6609
7085
  this.lastCoreError = null;
7086
+ this.clearAllEventErrors();
6610
7087
  this.coreProperties = {};
6611
7088
  this.cachedTools = [];
6612
7089
  this.toolSignature = "";
@@ -6985,6 +7462,7 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6985
7462
  }
6986
7463
  renderToolCallDetails(toolCalls) {
6987
7464
  if (!Array.isArray(toolCalls) || toolCalls.length === 0) return lit.nothing;
7465
+ const toolError = this.eventErrorDetails.tool;
6988
7466
  return lit.html`
6989
7467
  <div class="mt-2 space-y-2">
6990
7468
  ${toolCalls.map((call, index) => {
@@ -6992,16 +7470,21 @@ ${(0, lit_directives_unsafe_html_js.unsafeHTML)(highlightedJson((_event$rawEvent
6992
7470
  const functionName = (_ref9 = (_call$function$name = (_call$function = call.function) === null || _call$function === void 0 ? void 0 : _call$function.name) !== null && _call$function$name !== void 0 ? _call$function$name : call.toolName) !== null && _ref9 !== void 0 ? _ref9 : "Unknown function";
6993
7471
  const callId = typeof (call === null || call === void 0 ? void 0 : call.id) === "string" ? call.id : `tool-call-${index + 1}`;
6994
7472
  const argsString = this.formatToolCallArguments((_call$function2 = call.function) === null || _call$function2 === void 0 ? void 0 : _call$function2.arguments);
7473
+ const isFailedCall = (toolError === null || toolError === void 0 ? void 0 : toolError.toolCallId) !== void 0 && toolError.toolCallId === callId;
6995
7474
  return lit.html`
6996
7475
  <div
6997
- class="rounded-md border border-gray-200 bg-gray-50 p-3 text-xs text-gray-700"
7476
+ class=${isFailedCall ? "rounded-md border border-rose-300 bg-rose-50 p-3 text-xs text-gray-900" : "rounded-md border border-gray-200 bg-gray-50 p-3 text-xs text-gray-700"}
7477
+ data-cpk-failed-tool-call=${isFailedCall ? callId : void 0}
6998
7478
  >
6999
7479
  <div
7000
7480
  class="flex flex-wrap items-center justify-between gap-1 font-medium text-gray-900"
7001
7481
  >
7002
- <span>${functionName}</span>
7003
- <span class="text-[10px] text-gray-500">ID: ${callId}</span>
7482
+ <span>${functionName}${isFailedCall ? " failed" : ""}</span>
7483
+ <span class="text-[10px] text-gray-600">ID: ${callId}</span>
7004
7484
  </div>
7485
+ ${isFailedCall && (toolError === null || toolError === void 0 ? void 0 : toolError.message) ? lit.html`<p class="mt-2 break-words leading-relaxed text-gray-800">
7486
+ ${toolError.message}
7487
+ </p>` : lit.nothing}
7005
7488
  ${argsString ? lit.html`<pre
7006
7489
  class="mt-2 overflow-auto rounded bg-white p-2 text-[11px] leading-relaxed text-gray-800"
7007
7490
  >
@@ -7132,6 +7615,7 @@ ${argsString}</pre
7132
7615
  clearLegacyAnnouncementReadState();
7133
7616
  this.tryAutoAttachCore();
7134
7617
  this.ensureAnnouncementLoading();
7618
+ this.subscribeToInspectorThreadBridge();
7135
7619
  }
7136
7620
  this.requestUpdate();
7137
7621
  }
@@ -7154,13 +7638,16 @@ ${argsString}</pre
7154
7638
  clearTimeout(this.transitionTimeoutId);
7155
7639
  this.transitionTimeoutId = null;
7156
7640
  }
7641
+ this.unsubscribeFromInspectorThreadBridge();
7157
7642
  this.threadsSetupPromptCopyGeneration += 1;
7158
7643
  if (this.threadsSetupPromptCopyResetTimeoutId !== null) {
7159
7644
  window.clearTimeout(this.threadsSetupPromptCopyResetTimeoutId);
7160
7645
  this.threadsSetupPromptCopyResetTimeoutId = null;
7161
7646
  }
7162
7647
  this.threadsSetupPromptCopyState = "idle";
7163
- this.stopNewsSignalPulse();
7648
+ this.stopSignalPulse();
7649
+ this.cancelGestureTail();
7650
+ this.cancelThreadRefreshDebounce();
7164
7651
  this.clearInspectorUsageRefresh();
7165
7652
  this.cleanupThreadsExampleOverviewVideo();
7166
7653
  this.removeDockStyles(true);
@@ -7203,6 +7690,7 @@ ${argsString}</pre
7203
7690
  ` : this.renderButton();
7204
7691
  }
7205
7692
  willUpdate() {
7693
+ this.evaluateErrorSignals();
7206
7694
  this.reconcileSelectedMenuVisibility();
7207
7695
  if (this.isOpen && this.dockMode === "docked-left") this.setAttribute("data-docked", "true");
7208
7696
  else this.removeAttribute("data-docked");
@@ -7212,7 +7700,11 @@ ${argsString}</pre
7212
7700
  this.syncThreadsExampleOverviewVideo();
7213
7701
  this.maybeTrackInspectorMetadataViews();
7214
7702
  this.maybeTrackNewsSignalViewed();
7703
+ this.resolvePillDirection();
7704
+ this.maybeTrackErrorSignalViewed();
7215
7705
  this.maybeCompleteWhatsNewView();
7706
+ this.maybeCompleteEventErrorView();
7707
+ this.flushErrorLandingScroll();
7216
7708
  this.maybeTrackHomeViewed();
7217
7709
  if (!this.isOpen) {
7218
7710
  this.lastScrolledAgentNavigationLayout = null;
@@ -7238,6 +7730,7 @@ ${argsString}</pre
7238
7730
  this.lastScrolledAgentNavigationLayout = layoutKey;
7239
7731
  }
7240
7732
  renderButton() {
7733
+ var _this$getGestureLabel;
7241
7734
  const buttonClasses = [
7242
7735
  "console-button",
7243
7736
  "group",
@@ -7250,17 +7743,10 @@ ${argsString}</pre
7250
7743
  "justify-center",
7251
7744
  "rounded-full",
7252
7745
  "border",
7253
- "border-white/20",
7254
- "bg-slate-950/95",
7255
7746
  "text-xs",
7256
7747
  "font-medium",
7257
7748
  "text-white",
7258
- "ring-1",
7259
- "ring-white/10",
7260
- "backdrop-blur-md",
7261
7749
  "transition",
7262
- "hover:border-white/30",
7263
- "hover:bg-slate-900/95",
7264
7750
  "hover:scale-105",
7265
7751
  "focus-visible:outline",
7266
7752
  "focus-visible:outline-2",
@@ -7270,20 +7756,33 @@ ${argsString}</pre
7270
7756
  "select-none",
7271
7757
  this.isDragging ? "cursor-grabbing" : "cursor-pointer"
7272
7758
  ].join(" ");
7273
- const signalStyles = this.newsSignalArmed ? {
7274
- "--cpk-launcher-signal": NEWS_SIGNAL_COLOR,
7275
- "--cpk-launcher-cadence": `${NEWS_SIGNAL_CADENCE_MS}ms`
7759
+ const activeSignal = this.getActiveLauncherSignal();
7760
+ const signal = activeSignal ? LAUNCHER_SIGNALS[activeSignal] : null;
7761
+ const signalStyles = signal ? {
7762
+ "--cpk-launcher-signal": LAUNCHER_SIGNAL_COLORS[signal.tone],
7763
+ "--cpk-launcher-cadence": `${signal.cadence}ms`
7276
7764
  } : {};
7277
7765
  return lit.html`
7278
- <div class="console-button-wrapper">
7766
+ <div
7767
+ class="console-button-wrapper"
7768
+ data-cpk-hud=${this.launcherHudOpen ? "open" : "closed"}
7769
+ @pointerenter=${this.handleLauncherHudEnter}
7770
+ @pointerleave=${this.handleLauncherHudLeave}
7771
+ @focusin=${this.handleLauncherHudFocusIn}
7772
+ @focusout=${this.handleLauncherHudFocusOut}
7773
+ @keydown=${this.handleLauncherHudKeydown}
7774
+ >
7775
+ ${this.renderLauncherPill()}
7279
7776
  <button
7280
7777
  class=${buttonClasses}
7281
7778
  type="button"
7282
- aria-label="Web Inspector"
7283
- title=${this.newsSignalArmed ? `${WHATS_NEW_VIEW_LABEL} — unread` : lit.nothing}
7779
+ aria-expanded=${this.launcherHudOpen ? "true" : "false"}
7780
+ aria-controls=${this.launcherHudOpen ? "cpk-launcher-hud" : lit.nothing}
7781
+ aria-label=${signal && signal.tone === "error" ? `${LAUNCHER_BASE_LABEL}, ${signal.accessibleLabel}` : LAUNCHER_BASE_LABEL}
7782
+ title=${activeSignal === NEWS_SIGNAL_ID ? `${WHATS_NEW_VIEW_LABEL} — unread` : lit.nothing}
7284
7783
  data-drag-context="button"
7285
- data-cpk-signal=${this.newsSignalArmed ? NEWS_SIGNAL_TONE : lit.nothing}
7286
- data-cpk-signal-pulsing=${this.newsSignalArmed && this.newsSignalPulsing ? "true" : lit.nothing}
7784
+ data-cpk-signal=${signal ? signal.tone : lit.nothing}
7785
+ data-cpk-signal-pulsing=${activeSignal !== null && this.pulsingSignal === activeSignal ? "true" : lit.nothing}
7287
7786
  style=${(0, lit_directives_style_map_js.styleMap)(signalStyles)}
7288
7787
  data-dragging=${this.isDragging && this.pointerContext === "button" ? "true" : "false"}
7289
7788
  @pointerdown=${this.handlePointerDown}
@@ -7298,16 +7797,213 @@ ${argsString}</pre
7298
7797
  class="cpk-launcher-mark h-6 w-auto"
7299
7798
  loading="lazy"
7300
7799
  />
7301
- ${this.newsSignalArmed ? lit.html`<span
7800
+ ${activeSignal !== null ? lit.html`<span
7302
7801
  class="cpk-launcher-signal-wash"
7303
7802
  aria-hidden="true"
7304
7803
  ></span>
7305
7804
  <span
7306
7805
  class="cpk-launcher-signal-dot"
7307
- data-cpk-signal-dot=${NEWS_SIGNAL_ID}
7806
+ data-cpk-signal-dot=${activeSignal}
7308
7807
  aria-hidden="true"
7309
7808
  ></span>` : lit.nothing}
7310
7809
  </button>
7810
+ ${lit.html`<span
7811
+ class="sr-only"
7812
+ data-cpk-launcher-announcement
7813
+ role="status"
7814
+ aria-live="polite"
7815
+ >${(_this$getGestureLabel = this.getGestureLabel()) !== null && _this$getGestureLabel !== void 0 ? _this$getGestureLabel : ""}</span
7816
+ >`}
7817
+ ${this.renderLauncherHud()}
7818
+ </div>
7819
+ `;
7820
+ }
7821
+ /**
7822
+ * The words the running gesture carries, or null when the launcher is quiet.
7823
+ *
7824
+ * Read from the signal's own description rather than from a condition on the
7825
+ * tone, so a third signal can carry a pill by declaring a label.
7826
+ */
7827
+ getGestureLabel() {
7828
+ var _LAUNCHER_SIGNALS$thi;
7829
+ if (this.gestureSignal === null) return null;
7830
+ return (_LAUNCHER_SIGNALS$thi = LAUNCHER_SIGNALS[this.gestureSignal].pillLabel) !== null && _LAUNCHER_SIGNALS$thi !== void 0 ? _LAUNCHER_SIGNALS$thi : null;
7831
+ }
7832
+ /**
7833
+ * The pill, laid out at its full width and clipped, for the whole gesture.
7834
+ *
7835
+ * It renders from the first frame of the beat — clipped to nothing, so it
7836
+ * shows nothing — because the room it needs cannot be measured until it has
7837
+ * been laid out, and the direction is decided at gesture start.
7838
+ */
7839
+ renderLauncherPill() {
7840
+ var _this$pillDirection;
7841
+ const key = this.gestureSignal;
7842
+ if (key === null || this.pillPhase === null) return lit.nothing;
7843
+ const signal = LAUNCHER_SIGNALS[key];
7844
+ const label = signal.pillLabel;
7845
+ if (label === void 0) return lit.nothing;
7846
+ return lit.html`
7847
+ <span
7848
+ class="cpk-launcher-pill"
7849
+ data-cpk-launcher-pill=${key}
7850
+ data-cpk-pill-phase=${this.pillPhase}
7851
+ data-cpk-pill-direction=${(_this$pillDirection = this.pillDirection) !== null && _this$pillDirection !== void 0 ? _this$pillDirection : "left"}
7852
+ style=${(0, lit_directives_style_map_js.styleMap)({
7853
+ "--cpk-launcher-signal": LAUNCHER_SIGNAL_COLORS[signal.tone],
7854
+ "--cpk-launcher-pill-open": `${ERROR_GESTURE_MS.open}ms`,
7855
+ "--cpk-launcher-pill-close": `${ERROR_GESTURE_MS.close}ms`
7856
+ })}
7857
+ aria-hidden="true"
7858
+ @click=${this.handlePillClick}
7859
+ >
7860
+ <span class="cpk-launcher-pill__heading" data-cpk-pill-heading
7861
+ >${label}</span
7862
+ >
7863
+ <span class="cpk-launcher-pill__subline" data-cpk-pill-subline
7864
+ >${PILL_SUBLINE_LABEL}</span
7865
+ >
7866
+ </span>
7867
+ `;
7868
+ }
7869
+ isLauncherHudBlocked() {
7870
+ return this.gestureSignal !== null;
7871
+ }
7872
+ resolveLauncherHudSide() {
7873
+ if (typeof window === "undefined") {
7874
+ this.launcherHudSide = "left";
7875
+ return;
7876
+ }
7877
+ const button = this.activeRoot.querySelector(".console-button");
7878
+ if (!button) {
7879
+ this.launcherHudSide = "left";
7880
+ return;
7881
+ }
7882
+ if (button.getBoundingClientRect().left - LAUNCHER_HUD_WIDTH >= EDGE_MARGIN) {
7883
+ this.launcherHudSide = "left";
7884
+ return;
7885
+ }
7886
+ this.launcherHudSide = "right";
7887
+ }
7888
+ openLauncherHud() {
7889
+ if (this.isLauncherHudBlocked() || this.isOpen) return;
7890
+ this.resolveLauncherHudSide();
7891
+ if (this.launcherHudCloseTimer !== null) {
7892
+ clearTimeout(this.launcherHudCloseTimer);
7893
+ this.launcherHudCloseTimer = null;
7894
+ }
7895
+ if (this.launcherHudOpen) return;
7896
+ this.launcherHudOpen = true;
7897
+ this.requestUpdate();
7898
+ }
7899
+ closeLauncherHud() {
7900
+ if (this.launcherHudCloseTimer !== null) {
7901
+ clearTimeout(this.launcherHudCloseTimer);
7902
+ this.launcherHudCloseTimer = null;
7903
+ }
7904
+ if (!this.launcherHudOpen && this.launcherHudHelp === null) return;
7905
+ this.launcherHudOpen = false;
7906
+ this.launcherHudHelp = null;
7907
+ this.requestUpdate();
7908
+ }
7909
+ renderHudCheck() {
7910
+ return lit.html`
7911
+ <svg
7912
+ class="cpk-launcher-hud__check"
7913
+ viewBox="0 0 16 16"
7914
+ aria-hidden="true"
7915
+ focusable="false"
7916
+ data-cpk-hud-check
7917
+ >
7918
+ <path
7919
+ fill="none"
7920
+ stroke="currentColor"
7921
+ stroke-width="2"
7922
+ stroke-linecap="round"
7923
+ stroke-linejoin="round"
7924
+ d="M3 8.5 6.5 12 13 4.5"
7925
+ />
7926
+ </svg>
7927
+ `;
7928
+ }
7929
+ renderHudRow(args) {
7930
+ const helpOpen = this.launcherHudHelp === args.id;
7931
+ const detailId = `cpk-hud-detail-${args.id}`;
7932
+ return lit.html`
7933
+ <li
7934
+ class="cpk-launcher-hud__row"
7935
+ data-cpk-hud-row=${args.id}
7936
+ data-cpk-hud-help=${helpOpen ? "open" : lit.nothing}
7937
+ @click=${(event) => this.handleHudRowClick(event, args.id)}
7938
+ >
7939
+ <button
7940
+ type="button"
7941
+ class="cpk-launcher-hud__action"
7942
+ data-cpk-hud-action
7943
+ aria-describedby=${detailId}
7944
+ @click=${(event) => this.handleHudActionClick(event, args.id)}
7945
+ @pointerdown=${(event) => event.stopPropagation()}
7946
+ >
7947
+ ${args.connected ? this.renderHudCheck() : lit.nothing}${args.label}
7948
+ </button>
7949
+ <button
7950
+ type="button"
7951
+ class="cpk-launcher-hud__help"
7952
+ aria-expanded=${helpOpen ? "true" : "false"}
7953
+ aria-controls=${detailId}
7954
+ aria-label=${`About ${args.label}`}
7955
+ @click=${(event) => this.handleHudHelpClick(event, args.id)}
7956
+ @pointerdown=${(event) => event.stopPropagation()}
7957
+ >
7958
+ <span aria-hidden="true">?</span>
7959
+ </button>
7960
+ <p class="cpk-launcher-hud__detail" id=${detailId}>${args.detail}</p>
7961
+ </li>
7962
+ `;
7963
+ }
7964
+ renderLauncherHud() {
7965
+ var _this$_core6;
7966
+ if (!this.launcherHudOpen) return lit.nothing;
7967
+ const threadsOn = this.areThreadEndpointsAvailable();
7968
+ const intelligenceOn = Boolean((_this$_core6 = this._core) === null || _this$_core6 === void 0 ? void 0 : _this$_core6.intelligence);
7969
+ const learningOn = intelligenceOn && this._memoriesAvailable;
7970
+ return lit.html`
7971
+ <div
7972
+ class="cpk-launcher-hud"
7973
+ id="cpk-launcher-hud"
7974
+ data-cpk-launcher-hud
7975
+ data-cpk-hud-side=${this.launcherHudSide}
7976
+ >
7977
+ <div class="cpk-launcher-hud__card">
7978
+ <span class="cpk-launcher-hud__arrow" aria-hidden="true"></span>
7979
+ <ul class="cpk-launcher-hud__list" role="list">
7980
+ ${this.renderHudRow({
7981
+ id: "inspector",
7982
+ label: HUD_OPEN_INSPECTOR_LABEL,
7983
+ detail: HUD_OPEN_INSPECTOR_DETAIL
7984
+ })}
7985
+ </ul>
7986
+ <ul class="cpk-launcher-hud__list" role="list">
7987
+ ${this.renderHudRow({
7988
+ id: "threads",
7989
+ label: threadsOn ? HUD_THREADS_ON_LABEL : HUD_THREADS_OFF_LABEL,
7990
+ detail: threadsOn ? HUD_THREADS_ON_DETAIL : HUD_THREADS_OFF_DETAIL,
7991
+ connected: threadsOn
7992
+ })}
7993
+ ${this.renderHudRow({
7994
+ id: "intelligence",
7995
+ label: intelligenceOn ? HUD_INTELLIGENCE_ON_LABEL : HUD_INTELLIGENCE_OFF_LABEL,
7996
+ detail: intelligenceOn ? HUD_INTELLIGENCE_ON_DETAIL : HUD_INTELLIGENCE_OFF_DETAIL,
7997
+ connected: intelligenceOn
7998
+ })}
7999
+ ${this.renderHudRow({
8000
+ id: "learning",
8001
+ label: learningOn ? HUD_LEARNING_ON_LABEL : HUD_LEARNING_OFF_LABEL,
8002
+ detail: learningOn ? HUD_LEARNING_ON_DETAIL : HUD_LEARNING_OFF_DETAIL,
8003
+ connected: learningOn
8004
+ })}
8005
+ </ul>
8006
+ </div>
7311
8007
  </div>
7312
8008
  `;
7313
8009
  }
@@ -7330,7 +8026,6 @@ ${argsString}</pre
7330
8026
  `;
7331
8027
  }
7332
8028
  renderInspectorSidebar(iconRail, automaticallyCollapsed, agentSelector) {
7333
- const unread = this.newsSignalArmed && this.announcementLoaded;
7334
8029
  const homeModel = this.getHomeModel();
7335
8030
  return lit.html`
7336
8031
  <aside
@@ -7372,7 +8067,7 @@ ${argsString}</pre
7372
8067
  </button>` : lit.nothing}
7373
8068
  ${items.map((item) => {
7374
8069
  const isSelected = this.selectedMenu === item.key;
7375
- const showBadge = item.key === NEWS_SIGNAL_DESTINATION && unread;
8070
+ const marker = this.getNavigationSignalFor(item.key);
7376
8071
  return lit.html`
7377
8072
  <button
7378
8073
  type="button"
@@ -7380,7 +8075,7 @@ ${argsString}</pre
7380
8075
  data-inspector-group=${group}
7381
8076
  data-inspector-menu-key=${item.key}
7382
8077
  aria-current=${isSelected ? "page" : lit.nothing}
7383
- aria-label=${showBadge ? `${item.label}, new content` : item.label}
8078
+ aria-label=${marker ? `${item.label}, ${marker.accessibleLabel}` : item.label}
7384
8079
  data-inspector-tooltip=${item.label}
7385
8080
  title=${iconRail ? lit.nothing : item.label}
7386
8081
  style=${INTERACTIVE_FOCUS_BASE_STYLE}
@@ -7394,8 +8089,12 @@ ${argsString}</pre
7394
8089
  ${item.key === "threads" ? (0, lit_directives_unsafe_html_js.unsafeHTML)(this.customTabIcons.threads) : this.renderIcon(item.icon)}
7395
8090
  </span>
7396
8091
  <span class="inspector-nav-label">${item.label}</span>
7397
- ${showBadge ? lit.html`
7398
- <span class="inspector-nav-signal-dot" aria-hidden="true"></span>
8092
+ ${marker ? lit.html`
8093
+ <span
8094
+ class="inspector-nav-signal-dot"
8095
+ data-cpk-signal-tone=${marker.tone}
8096
+ aria-hidden="true"
8097
+ ></span>
7399
8098
  ` : lit.nothing}
7400
8099
  </button>
7401
8100
  `;
@@ -7513,13 +8212,13 @@ ${argsString}</pre
7513
8212
  `;
7514
8213
  }
7515
8214
  getHomeModel() {
7516
- var _this$_core6, _this$_core7, _this$_core8, _this$_core9, _this$_core10, _this$_core11, _this$_core12, _this$announcementPre, _this$announcementMar, _this$announcementHtm;
8215
+ var _this$_core7, _this$_core8, _this$_core9, _this$_core10, _this$_core11, _this$_core12, _this$_core13, _this$announcementPre, _this$announcementMar, _this$announcementHtm;
7517
8216
  const lastRuntimeEvent = this.flattenedEvents[0];
7518
8217
  return buildHomeModel({
7519
- intelligenceConnected: Boolean((_this$_core6 = this._core) === null || _this$_core6 === void 0 ? void 0 : _this$_core6.intelligence),
8218
+ intelligenceConnected: Boolean((_this$_core7 = this._core) === null || _this$_core7 === void 0 ? void 0 : _this$_core7.intelligence),
7520
8219
  threadsAvailable: this.areThreadEndpointsAvailable(),
7521
8220
  metadata: this.inspectorMetadataProjection,
7522
- runtimeUrl: (_this$_core7 = this._core) === null || _this$_core7 === void 0 ? void 0 : _this$_core7.runtimeUrl,
8221
+ runtimeUrl: (_this$_core8 = this._core) === null || _this$_core8 === void 0 ? void 0 : _this$_core8.runtimeUrl,
7523
8222
  runtimeConnectionState: this.getCoreStatusSummary().state,
7524
8223
  lastRuntimeEvent: lastRuntimeEvent ? {
7525
8224
  id: lastRuntimeEvent.id,
@@ -7528,11 +8227,11 @@ ${argsString}</pre
7528
8227
  timestamp: lastRuntimeEvent.timestamp
7529
8228
  } : void 0,
7530
8229
  memoriesOn: this._memoriesAvailable,
7531
- a2uiOn: ((_this$_core8 = this._core) === null || _this$_core8 === void 0 ? void 0 : _this$_core8.a2uiEnabled) === true,
7532
- openGenUiOn: ((_this$_core9 = this._core) === null || _this$_core9 === void 0 ? void 0 : _this$_core9.openGenerativeUIEnabled) === true,
7533
- suggestionsOn: ((_this$_core10 = this._core) === null || _this$_core10 === void 0 ? void 0 : _this$_core10.suggestions) === true,
7534
- audioOn: ((_this$_core11 = this._core) === null || _this$_core11 === void 0 ? void 0 : _this$_core11.audioFileTranscriptionEnabled) === true,
7535
- websocketUrl: (_this$_core12 = this._core) === null || _this$_core12 === void 0 || (_this$_core12 = _this$_core12.intelligence) === null || _this$_core12 === void 0 ? void 0 : _this$_core12.wsUrl,
8230
+ a2uiOn: ((_this$_core9 = this._core) === null || _this$_core9 === void 0 ? void 0 : _this$_core9.a2uiEnabled) === true,
8231
+ openGenUiOn: ((_this$_core10 = this._core) === null || _this$_core10 === void 0 ? void 0 : _this$_core10.openGenerativeUIEnabled) === true,
8232
+ suggestionsOn: ((_this$_core11 = this._core) === null || _this$_core11 === void 0 ? void 0 : _this$_core11.suggestions) === true,
8233
+ audioOn: ((_this$_core12 = this._core) === null || _this$_core12 === void 0 ? void 0 : _this$_core12.audioFileTranscriptionEnabled) === true,
8234
+ websocketUrl: (_this$_core13 = this._core) === null || _this$_core13 === void 0 || (_this$_core13 = _this$_core13.intelligence) === null || _this$_core13 === void 0 ? void 0 : _this$_core13.wsUrl,
7536
8235
  announcementPreviewText: (_this$announcementPre = this.announcementPreviewText) !== null && _this$announcementPre !== void 0 ? _this$announcementPre : void 0,
7537
8236
  announcementMarkdown: (_this$announcementMar = this.announcementMarkdown) !== null && _this$announcementMar !== void 0 ? _this$announcementMar : void 0,
7538
8237
  announcementHtml: (_this$announcementHtm = this.announcementHtml) !== null && _this$announcementHtm !== void 0 ? _this$announcementHtm : void 0,
@@ -7876,6 +8575,31 @@ ${argsString}</pre
7876
8575
  })}
7877
8576
  </dl>
7878
8577
  </section>
8578
+ `;
8579
+ }
8580
+ renderEventErrorBanner(key) {
8581
+ const error = this.eventErrorDetails[key];
8582
+ if (!error) return lit.nothing;
8583
+ const guide = EVENT_ERROR_GUIDANCE[key];
8584
+ return lit.html`
8585
+ <div
8586
+ class="mx-3 mt-3 flex cursor-pointer items-start gap-2 rounded-lg border border-rose-200 bg-rose-50 px-3 py-2 text-left text-[11px] text-rose-950"
8587
+ role="alert"
8588
+ tabindex="0"
8589
+ data-cpk-event-error=${key}
8590
+ @click=${this.refocusEventErrorLanding}
8591
+ @keydown=${this.handleEventErrorBannerKeydown}
8592
+ >
8593
+ <span class="mt-0.5 shrink-0">${this.renderIcon("TriangleAlert")}</span>
8594
+ <div class="min-w-0 flex-1 space-y-1">
8595
+ <p class="font-semibold">${guide.title}</p>
8596
+ ${error.agentId ? lit.html`<p>Agent: ${error.agentId}</p>` : lit.nothing}
8597
+ ${error.toolName ? lit.html`<p>Tool: ${error.toolName}</p>` : lit.nothing}
8598
+ <p class="break-words leading-relaxed">${error.message}</p>
8599
+ ${guide.advice ? lit.html`<p class="leading-relaxed">${guide.advice}</p>` : lit.nothing}
8600
+ ${guide.highlight && this.hasEventErrorHighlight(key) ? lit.html`<p class="leading-relaxed">${guide.highlight}</p>` : lit.nothing}
8601
+ </div>
8602
+ </div>
7879
8603
  `;
7880
8604
  }
7881
8605
  handleHomeLastEventSelect(eventId, agentId) {
@@ -8612,17 +9336,29 @@ ${argsString}</pre
8612
9336
  if (this.isPoppedOut) return;
8613
9337
  if (this.isOpen) return;
8614
9338
  const hadUnseenAnnouncement = this.newsSignalArmed;
9339
+ const activeSignalAtOpen = this.getActiveLauncherSignal();
8615
9340
  const firstOpen = !this.hasOpenedInspector;
8616
9341
  this.hasOpenedInspector = true;
8617
9342
  this.homeViewedThisOpen = false;
8618
- if (this.newsSignalArmed && source === "floating_button") {
8619
- this.selectedMenu = "home";
8620
- this.lastSelectedMenuByGroup.home = "home";
9343
+ this.closeLauncherHud();
9344
+ const hudMenu = this.hudLandingMenu;
9345
+ this.hudLandingMenu = null;
9346
+ if (hudMenu) {
9347
+ this.selectedMenu = hudMenu;
9348
+ this.lastSelectedMenuByGroup[getGroupForMenu(hudMenu)] = hudMenu;
9349
+ } else if (activeSignalAtOpen !== null && source === "floating_button") {
9350
+ const landing = LAUNCHER_SIGNALS[activeSignalAtOpen].landingTarget;
9351
+ this.selectedMenu = landing;
9352
+ this.lastSelectedMenuByGroup[getGroupForMenu(landing)] = landing;
9353
+ if (landing === "agents" || landing === "ag-ui-events") {
9354
+ if (isEventErrorKey(activeSignalAtOpen)) this.applyEventErrorLanding(activeSignalAtOpen);
9355
+ }
8621
9356
  }
8622
9357
  this.ensureAnnouncementLoading();
8623
9358
  this.isOpen = true;
9359
+ this.cancelGestureTail();
8624
9360
  this.persistState();
8625
- this.trackOpened(source, hadUnseenAnnouncement, firstOpen);
9361
+ this.trackOpened(source, hadUnseenAnnouncement, firstOpen, activeSignalAtOpen);
8626
9362
  if (this.dockMode !== "floating") this.applyDockStyles();
8627
9363
  this.ensureWindowPlacement();
8628
9364
  this.requestUpdate();
@@ -8637,7 +9373,6 @@ ${argsString}</pre
8637
9373
  if (this.isPoppedOut) return;
8638
9374
  if (!this.isOpen) return;
8639
9375
  this.isOpen = false;
8640
- if (this.newsSignalPulsePending) this.startNewsSignalPulse();
8641
9376
  if (this.dockMode !== "floating") this.removeDockStyles();
8642
9377
  this.persistState();
8643
9378
  this.updateHostTransform("button");
@@ -8645,6 +9380,7 @@ ${argsString}</pre
8645
9380
  this.updateComplete.then(() => {
8646
9381
  this.measureContext("button");
8647
9382
  this.applyAnchorPosition("button");
9383
+ this.flushPendingSignalPulse();
8648
9384
  });
8649
9385
  }
8650
9386
  renderIcon(name) {
@@ -8825,6 +9561,7 @@ ${argsString}</pre
8825
9561
  contentText,
8826
9562
  contentRaw: raw.content !== void 0 ? this.sanitizeForLogging(raw.content) : void 0,
8827
9563
  toolCalls,
9564
+ toolCallId: typeof raw.toolCallId === "string" ? raw.toolCallId : void 0,
8828
9565
  activityType: typeof raw.activityType === "string" ? raw.activityType : void 0
8829
9566
  };
8830
9567
  }
@@ -8897,8 +9634,8 @@ ${argsString}</pre
8897
9634
  };
8898
9635
  }
8899
9636
  resolvePlaygroundAgentId(preferredAgentId) {
8900
- var _this$_core$agents, _this$_core13, _Object$keys$;
8901
- const agents = (_this$_core$agents = (_this$_core13 = this._core) === null || _this$_core13 === void 0 ? void 0 : _this$_core13.agents) !== null && _this$_core$agents !== void 0 ? _this$_core$agents : {};
9637
+ var _this$_core$agents, _this$_core14, _Object$keys$;
9638
+ const agents = (_this$_core$agents = (_this$_core14 = this._core) === null || _this$_core14 === void 0 ? void 0 : _this$_core14.agents) !== null && _this$_core$agents !== void 0 ? _this$_core$agents : {};
8902
9639
  if (preferredAgentId && preferredAgentId !== "all-agents" && agents[preferredAgentId]) return preferredAgentId;
8903
9640
  return (_Object$keys$ = Object.keys(agents)[0]) !== null && _Object$keys$ !== void 0 ? _Object$keys$ : null;
8904
9641
  }
@@ -8927,13 +9664,13 @@ ${argsString}</pre
8927
9664
  });
8928
9665
  }
8929
9666
  startPlaygroundSession(showEphemeralNotice, seedMessages = [], seedState = {}, preferredAgentId) {
8930
- var _this$_core14, _this$_core15, _this$_core16;
9667
+ var _this$_core15, _this$_core16, _this$_core17;
8931
9668
  const agentId = this.resolvePlaygroundAgentId(preferredAgentId !== null && preferredAgentId !== void 0 ? preferredAgentId : this.selectedContext);
8932
- const sourceAgent = agentId ? typeof ((_this$_core14 = this._core) === null || _this$_core14 === void 0 ? void 0 : _this$_core14.getAgent) === "function" ? this._core.getAgent(agentId) : (_this$_core15 = this._core) === null || _this$_core15 === void 0 ? void 0 : _this$_core15.agents[agentId] : void 0;
9669
+ const sourceAgent = agentId ? typeof ((_this$_core15 = this._core) === null || _this$_core15 === void 0 ? void 0 : _this$_core15.getAgent) === "function" ? this._core.getAgent(agentId) : (_this$_core16 = this._core) === null || _this$_core16 === void 0 ? void 0 : _this$_core16.agents[agentId] : void 0;
8933
9670
  this.teardownPlaygroundAgent();
8934
9671
  this.playgroundError = null;
8935
9672
  this.playgroundSourceThreadId = null;
8936
- this.playgroundShowEphemeralNotice = showEphemeralNotice && ((_this$_core16 = this._core) === null || _this$_core16 === void 0 ? void 0 : _this$_core16.runtimeMode) !== "intelligence";
9673
+ this.playgroundShowEphemeralNotice = showEphemeralNotice && ((_this$_core17 = this._core) === null || _this$_core17 === void 0 ? void 0 : _this$_core17.runtimeMode) !== "intelligence";
8937
9674
  if (!agentId || !sourceAgent) {
8938
9675
  this.requestUpdate();
8939
9676
  return;
@@ -9019,16 +9756,16 @@ ${argsString}</pre
9019
9756
  @submit=${this.handlePlaygroundSubmit}
9020
9757
  >
9021
9758
  ${this.playgroundError ? lit.html`<div
9022
- class="mx-auto mb-2 flex max-w-3xl items-start gap-2 rounded-lg border border-rose-200 bg-rose-50 px-2.5 py-2 text-[10px] text-rose-800"
9759
+ class="mx-auto mb-2 flex max-w-3xl items-start gap-2 rounded-lg border border-rose-200 bg-rose-50 px-2.5 py-2 text-[10px] text-rose-950"
9023
9760
  role="alert"
9024
9761
  data-playground-error
9025
9762
  >
9026
- <span class="mt-0.5 shrink-0 text-rose-600"
9763
+ <span class="mt-0.5 shrink-0"
9027
9764
  >${this.renderIcon("TriangleAlert")}</span
9028
9765
  >
9029
9766
  <div class="min-w-0 flex-1">
9030
9767
  <p class="font-semibold">Agent run failed</p>
9031
- <p class="mt-0.5 break-words leading-relaxed text-rose-700">
9768
+ <p class="mt-0.5 break-words leading-relaxed">
9032
9769
  ${this.playgroundError}
9033
9770
  </p>
9034
9771
  </div>
@@ -9078,7 +9815,14 @@ ${argsString}</pre
9078
9815
  if (this.settingsOpen) return this.renderSettingsPanel();
9079
9816
  if (this.selectedMenu === "home") return this.renderHomeView();
9080
9817
  if (this.selectedMenu === WHATS_NEW_MENU_KEY) return this.renderWhatsNewView();
9081
- if (this.selectedMenu === "ag-ui-events") return this.renderEventsTable();
9818
+ if (this.selectedMenu === "ag-ui-events") return lit.html`
9819
+ <div class="flex h-full min-h-0 flex-col">
9820
+ ${this.renderEventErrorBanner("run")}
9821
+ <div class="min-h-0 flex-1 overflow-hidden">
9822
+ ${this.renderEventsTable()}
9823
+ </div>
9824
+ </div>
9825
+ `;
9082
9826
  if (this.selectedMenu === "playground") return this.renderPlaygroundView();
9083
9827
  if (this.selectedMenu === "agents") return this.renderAgentsView();
9084
9828
  if (this.selectedMenu === "frontend-tools") return this.renderToolsView();
@@ -9089,13 +9833,13 @@ ${argsString}</pre
9089
9833
  return lit.nothing;
9090
9834
  }
9091
9835
  renderPlaygroundView() {
9092
- var _this$playgroundAgent4, _this$playgroundAgent5, _this$_core$runtimeMo, _this$_core17, _this$_core$runtimeUr, _this$_core18, _this$playgroundSourc;
9836
+ var _this$playgroundAgent4, _this$playgroundAgent5, _this$_core$runtimeMo, _this$_core18, _this$_core$runtimeUr, _this$_core19, _this$playgroundSourc;
9093
9837
  const agentId = this.resolvePlaygroundAgentId(this.selectedContext);
9094
9838
  const sourceThreads = this._threads.filter((thread) => !agentId || thread.agentId === agentId);
9095
9839
  const visibleMessages = this.playgroundMessages.filter((message) => message.role === "user" || message.role === "assistant" || message.role === "reasoning" || message.role === "activity");
9096
9840
  const hasRetry = (_this$playgroundAgent4 = (_this$playgroundAgent5 = this.playgroundAgent) === null || _this$playgroundAgent5 === void 0 ? void 0 : _this$playgroundAgent5.messages.some((message) => message.role === "user")) !== null && _this$playgroundAgent4 !== void 0 ? _this$playgroundAgent4 : false;
9097
- const runtimeMode = (_this$_core$runtimeMo = (_this$_core17 = this._core) === null || _this$_core17 === void 0 ? void 0 : _this$_core17.runtimeMode) !== null && _this$_core$runtimeMo !== void 0 ? _this$_core$runtimeMo : "sse";
9098
- const runtimeLabel = (_this$_core$runtimeUr = (_this$_core18 = this._core) === null || _this$_core18 === void 0 ? void 0 : _this$_core18.runtimeUrl) !== null && _this$_core$runtimeUr !== void 0 ? _this$_core$runtimeUr : "Self-managed agent";
9841
+ const runtimeMode = (_this$_core$runtimeMo = (_this$_core18 = this._core) === null || _this$_core18 === void 0 ? void 0 : _this$_core18.runtimeMode) !== null && _this$_core$runtimeMo !== void 0 ? _this$_core$runtimeMo : "sse";
9842
+ const runtimeLabel = (_this$_core$runtimeUr = (_this$_core19 = this._core) === null || _this$_core19 === void 0 ? void 0 : _this$_core19.runtimeUrl) !== null && _this$_core$runtimeUr !== void 0 ? _this$_core$runtimeUr : "Self-managed agent";
9099
9843
  const busy = this.playgroundIsRunning || this.playgroundIsLoadingThread;
9100
9844
  const suggestions = agentId && this._core ? this._core.getSuggestions(agentId).suggestions : [];
9101
9845
  const lastAssistantIndex = visibleMessages.reduce((last, message, index) => message.role === "assistant" ? index : last, -1);
@@ -9469,9 +10213,10 @@ ${argsString}</pre
9469
10213
  </div>
9470
10214
  `;
9471
10215
  }
9472
- trackOpened(source, hadUnseenAnnouncement, firstOpen = false) {
10216
+ trackOpened(source, hadUnseenAnnouncement, firstOpen = false, activeSignal = null) {
9473
10217
  var _this$core15, _this$core$licenseSta2, _this$core16, _this$core$runtimeMod2, _this$core17, _this$core18;
9474
10218
  if ((_this$core15 = this.core) === null || _this$core15 === void 0 ? void 0 : _this$core15.telemetryDisabled) return;
10219
+ const errorSignal = activeSignal !== null && isErrorSignalKey(activeSignal) ? activeSignal : null;
9475
10220
  trackInspectorOpened({
9476
10221
  open_source: source,
9477
10222
  ...this.runtimeStatus === "connected" ? {
@@ -9480,6 +10225,8 @@ ${argsString}</pre
9480
10225
  } : {},
9481
10226
  runtime_url_type: getRuntimeUrlType((_this$core18 = this.core) === null || _this$core18 === void 0 ? void 0 : _this$core18.runtimeUrl),
9482
10227
  has_unseen_announcement: hadUnseenAnnouncement,
10228
+ has_error_signal: errorSignal !== null,
10229
+ ...errorSignal === null ? {} : { error_signal_source: errorSignal },
9483
10230
  first_open: firstOpen
9484
10231
  });
9485
10232
  }
@@ -9657,6 +10404,52 @@ ${argsString}</pre
9657
10404
  example_kind: exampleKind
9658
10405
  });
9659
10406
  }
10407
+ subscribeToInspectorThreadBridge() {
10408
+ this.unsubscribeFromInspectorThreadBridge();
10409
+ if (!(0, _copilotkit_core.isInspectorThreadBridgeEnabled)()) return;
10410
+ this.inspectorBridgeUnsubscribers.push((0, _copilotkit_core.onInspectorActiveThread)((payload) => {
10411
+ if (payload.requestId !== this.activeViewInAppRequestId) return;
10412
+ this.inAppThreadId = payload.threadId;
10413
+ this.inAppAgentId = payload.agentId;
10414
+ this.inAppSource = payload.source;
10415
+ if (payload.source === "app") {
10416
+ this.activeViewInAppRequestId = null;
10417
+ this.viewInAppError = null;
10418
+ }
10419
+ this.requestUpdate();
10420
+ }), (0, _copilotkit_core.onInspectorViewThreadResult)((payload) => {
10421
+ if (payload.requestId !== this.activeViewInAppRequestId) return;
10422
+ if (payload.ok) {
10423
+ this.viewInAppError = null;
10424
+ this.inAppThreadId = payload.threadId;
10425
+ this.inAppAgentId = payload.agentId;
10426
+ this.inAppSource = "override";
10427
+ } else {
10428
+ this.activeViewInAppRequestId = null;
10429
+ this.inAppThreadId = null;
10430
+ this.inAppAgentId = null;
10431
+ this.inAppSource = null;
10432
+ this.viewInAppError = "The app could not load that thread. The previous chat is back.";
10433
+ }
10434
+ this.requestUpdate();
10435
+ }));
10436
+ }
10437
+ unsubscribeFromInspectorThreadBridge() {
10438
+ for (const unsubscribe of this.inspectorBridgeUnsubscribers) unsubscribe();
10439
+ this.inspectorBridgeUnsubscribers = [];
10440
+ }
10441
+ getViewInAppMode(thread, isExample) {
10442
+ if (!(0, _copilotkit_core.isInspectorThreadBridgeEnabled)()) return "hidden";
10443
+ if (!thread || isExample) return "hidden";
10444
+ if (this.activeViewInAppRequestId && this.inAppSource === "override" && this.inAppThreadId === thread.id) return "stop";
10445
+ return "view";
10446
+ }
10447
+ getSelectedRealThread() {
10448
+ var _this$getActiveThread;
10449
+ if (!this.selectedThreadId) return null;
10450
+ if (this.selectedThreadId === this.selectedLocalExampleThreadId) return null;
10451
+ return (_this$getActiveThread = this.getActiveThreadsState().displayThreads.find((thread) => thread.id === this.selectedThreadId)) !== null && _this$getActiveThread !== void 0 ? _this$getActiveThread : null;
10452
+ }
9660
10453
  getCurrentExampleTourProps() {
9661
10454
  const exampleKind = this.selectedThreadId ? getExampleKind(this.selectedThreadId) : void 0;
9662
10455
  const tourPair = getExampleTourTelemetryPair(this.exampleTourStep);
@@ -10286,7 +11079,7 @@ ${argsString}</pre
10286
11079
  <line x1="12" y1="16" x2="12.01" y2="16" />
10287
11080
  </svg>
10288
11081
  <span style="font-size: 13px; color: #c0333a;">
10289
- Failed to load learning data
11082
+ ${MEMORY_LOAD_ERROR_LABEL}
10290
11083
  </span>
10291
11084
  <span
10292
11085
  style="
@@ -10299,6 +11092,17 @@ ${argsString}</pre
10299
11092
  >
10300
11093
  ${this._memoriesError.message}
10301
11094
  </span>
11095
+ <span
11096
+ style="
11097
+ max-width: 320px;
11098
+ text-align: center;
11099
+ font-size: 11px;
11100
+ line-height: 1.5;
11101
+ color: #c0333a;
11102
+ "
11103
+ >
11104
+ ${EVENT_ERROR_GUIDANCE.memory.advice}
11105
+ </span>
10302
11106
  </div>
10303
11107
  `;
10304
11108
  if (this._memoriesLoading && this._memories.length === 0) return lit.html`
@@ -10458,7 +11262,7 @@ ${argsString}</pre
10458
11262
  `;
10459
11263
  }
10460
11264
  renderThreadsView() {
10461
- var _visibleThreads$find, _this$_core$runtimeUr2, _this$_core19, _this$_core$headers, _this$_core20, _this$_core21, _this$liveMessageVers2, _this$agentEvents$get6;
11265
+ var _visibleThreads$find, _this$_core$runtimeUr2, _this$_core20, _this$_core$headers, _this$_core21, _this$_core22, _this$liveMessageVers2, _this$agentEvents$get6;
10462
11266
  const locked = !this.areThreadEndpointsAvailable();
10463
11267
  const { displayThreads, threadsErrorMessage, threadsLoading } = this.getActiveThreadsState();
10464
11268
  const loadingWithoutRows = !locked && threadsLoading && !threadsErrorMessage && displayThreads.length === 0;
@@ -10483,6 +11287,7 @@ ${argsString}</pre
10483
11287
  data-color-scheme=${this.colorScheme}
10484
11288
  .threads=${visibleThreads}
10485
11289
  .selectedThreadId=${this.selectedThreadId}
11290
+ .inAppThreadId=${this.inAppThreadId}
10486
11291
  .errorMessage=${threadsErrorMessage}
10487
11292
  .suppressEmptyState=${loadingWithoutRows}
10488
11293
  @threadSelected=${(e) => {
@@ -10548,10 +11353,14 @@ ${argsString}</pre
10548
11353
  .threadId=${selectedThread.id}
10549
11354
  .thread=${selectedThread}
10550
11355
  .provider=${selectedThreadIsLocalExample ? this.getExampleThreadProvider(selectedThread.id) : null}
10551
- .runtimeUrl=${selectedThreadIsLocalExample ? "" : (_this$_core$runtimeUr2 = (_this$_core19 = this._core) === null || _this$_core19 === void 0 ? void 0 : _this$_core19.runtimeUrl) !== null && _this$_core$runtimeUr2 !== void 0 ? _this$_core$runtimeUr2 : ""}
10552
- .headers=${(_this$_core$headers = (_this$_core20 = this._core) === null || _this$_core20 === void 0 ? void 0 : _this$_core20.headers) !== null && _this$_core$headers !== void 0 ? _this$_core$headers : {}}
10553
- .threadInspectionAvailable=${selectedThreadIsLocalExample || this.areThreadEndpointsAvailable() && ((_this$_core21 = this._core) === null || _this$_core21 === void 0 || (_this$_core21 = _this$_core21.threadEndpoints) === null || _this$_core21 === void 0 ? void 0 : _this$_core21.inspect) !== false}
11356
+ .runtimeUrl=${selectedThreadIsLocalExample ? "" : (_this$_core$runtimeUr2 = (_this$_core20 = this._core) === null || _this$_core20 === void 0 ? void 0 : _this$_core20.runtimeUrl) !== null && _this$_core$runtimeUr2 !== void 0 ? _this$_core$runtimeUr2 : ""}
11357
+ .headers=${(_this$_core$headers = (_this$_core21 = this._core) === null || _this$_core21 === void 0 ? void 0 : _this$_core21.headers) !== null && _this$_core$headers !== void 0 ? _this$_core$headers : {}}
11358
+ .threadInspectionAvailable=${selectedThreadIsLocalExample || this.areThreadEndpointsAvailable() && ((_this$_core22 = this._core) === null || _this$_core22 === void 0 || (_this$_core22 = _this$_core22.threadEndpoints) === null || _this$_core22 === void 0 ? void 0 : _this$_core22.inspect) !== false}
10554
11359
  .liveMessageVersion=${(_this$liveMessageVers2 = this.liveMessageVersion.get(selectedThread.id)) !== null && _this$liveMessageVers2 !== void 0 ? _this$liveMessageVers2 : 0}
11360
+ .viewInAppMode=${this.getViewInAppMode(selectedThread, selectedThreadIsLocalExample)}
11361
+ .viewInAppError=${this.viewInAppError}
11362
+ @viewInApp=${this.handleViewInApp}
11363
+ @stopViewing=${this.handleStopViewing}
10555
11364
  .focusMessageId=${this.focusedThreadMessageId}
10556
11365
  .focusRequestId=${this.threadFocusRequestId}
10557
11366
  .agentStateInput=${this.getLatestStateForAgent(selectedThread.agentId)}
@@ -10720,7 +11529,11 @@ ${argsString}</pre
10720
11529
  </div>
10721
11530
  </div>
10722
11531
  `;
10723
- else body = lit.html`
11532
+ else {
11533
+ var _this$findLatestRunEr;
11534
+ const runError = this.eventErrorDetails.run;
11535
+ const failedRunEventId = runError ? (_this$findLatestRunEr = this.findLatestRunErrorEvent(runError.agentId)) === null || _this$findLatestRunEr === void 0 ? void 0 : _this$findLatestRunEr.id : void 0;
11536
+ body = lit.html`
10724
11537
  <div class="relative h-full w-full overflow-y-auto overflow-x-hidden">
10725
11538
  <table class="w-full table-fixed border-collapse text-xs box-border">
10726
11539
  <colgroup>
@@ -10732,10 +11545,10 @@ ${argsString}</pre
10732
11545
  <thead class="sticky top-0 z-10">
10733
11546
  <tr class="bg-white">
10734
11547
  ${[
10735
- "Agent",
10736
- "Time",
10737
- "Event Type"
10738
- ].map((label, col) => lit.html` <th
11548
+ "Agent",
11549
+ "Time",
11550
+ "Event Type"
11551
+ ].map((label, col) => lit.html` <th
10739
11552
  class="border-b border-gray-200 bg-white px-3 py-2 text-left font-medium text-gray-900"
10740
11553
  style="position:relative;overflow:hidden;"
10741
11554
  >
@@ -10757,16 +11570,18 @@ ${argsString}</pre
10757
11570
  </thead>
10758
11571
  <tbody>
10759
11572
  ${filteredEvents.map((event, index) => {
10760
- const rowBg = index % 2 === 0 ? "bg-white" : "bg-gray-50/50";
10761
- const badgeClasses = this.getEventBadgeClasses(event.type);
10762
- const extractedEvent = this.extractEventFromPayload(event.payload);
10763
- const inlineEvent = this.stringifyPayload(extractedEvent, false) || "—";
10764
- const prettyEvent = this.stringifyPayload(extractedEvent, true) || inlineEvent;
10765
- const isExpanded = this.expandedRows.has(event.id);
10766
- return lit.html`
11573
+ const isFailedRunEvent = failedRunEventId !== void 0 && event.id === failedRunEventId;
11574
+ const rowBg = isFailedRunEvent ? "bg-rose-50" : index % 2 === 0 ? "bg-white" : "bg-gray-50/50";
11575
+ const badgeClasses = this.getEventBadgeClasses(event.type);
11576
+ const extractedEvent = this.extractEventFromPayload(event.payload);
11577
+ const inlineEvent = this.stringifyPayload(extractedEvent, false) || "—";
11578
+ const prettyEvent = this.stringifyPayload(extractedEvent, true) || inlineEvent;
11579
+ const isExpanded = this.expandedRows.has(event.id);
11580
+ return lit.html`
10767
11581
  <tr
10768
11582
  class="${rowBg} cursor-pointer transition hover:bg-blue-50/50"
10769
11583
  data-inspector-event-id=${event.id}
11584
+ data-cpk-failed-run-event=${isFailedRunEvent ? event.id : void 0}
10770
11585
  @click=${(clickEvent) => this.toggleRowExpansion(event.id, clickEvent)}
10771
11586
  >
10772
11587
  <td
@@ -10799,9 +11614,9 @@ ${prettyEvent}</pre
10799
11614
  <button
10800
11615
  class="absolute right-0 top-0 cursor-pointer rounded px-2 py-1 text-[10px] opacity-0 transition group-hover:opacity-100 ${this.copiedEvents.has(event.id) ? "bg-green-100 text-green-700" : "bg-gray-100 text-gray-600 hover:bg-gray-200 hover:text-gray-900"}"
10801
11616
  @click=${(e) => {
10802
- e.stopPropagation();
10803
- this.copyToClipboard(prettyEvent, event.id, e);
10804
- }}
11617
+ e.stopPropagation();
11618
+ this.copyToClipboard(prettyEvent, event.id, e);
11619
+ }}
10805
11620
  >
10806
11621
  ${this.copiedEvents.has(event.id) ? lit.html`
10807
11622
  <span>✓ Copied</span>
@@ -10814,11 +11629,12 @@ ${prettyEvent}</pre
10814
11629
  </td>
10815
11630
  </tr>
10816
11631
  `;
10817
- })}
11632
+ })}
10818
11633
  </tbody>
10819
11634
  </table>
10820
11635
  </div>
10821
11636
  `;
11637
+ }
10822
11638
  return lit.html`
10823
11639
  <div
10824
11640
  class="${embedded ? "flex h-[28rem] min-h-[20rem] flex-col" : "flex h-full flex-col"}"
@@ -10888,6 +11704,7 @@ ${prettyEvent}</pre
10888
11704
  }
10889
11705
  renderAgentsView() {
10890
11706
  if (this.selectedContext === "all-agents") return lit.html`
11707
+ ${this.renderEventErrorBanner("tool")}
10891
11708
  <div
10892
11709
  class="flex h-full items-center justify-center px-4 py-8 text-center"
10893
11710
  >
@@ -10911,6 +11728,7 @@ ${prettyEvent}</pre
10911
11728
  const messages = this.getLatestMessagesForAgent(agentId);
10912
11729
  return lit.html`
10913
11730
  <div class="cpk-agent-view flex flex-col gap-4 p-4 overflow-auto">
11731
+ ${this.renderEventErrorBanner("tool")}
10914
11732
  <!-- Agent Overview Card -->
10915
11733
  <div
10916
11734
  class="cpk-agent-overview rounded-lg border border-gray-200 bg-white p-4"
@@ -11044,8 +11862,13 @@ ${prettyEvent}</pre
11044
11862
  const toolCalls = (_msg$toolCalls2 = msg.toolCalls) !== null && _msg$toolCalls2 !== void 0 ? _msg$toolCalls2 : [];
11045
11863
  const hasContent = rawContent.trim().length > 0;
11046
11864
  const contentFallback = toolCalls.length > 0 ? "Invoked tool call" : "—";
11865
+ const toolError = this.eventErrorDetails.tool;
11866
+ const isFailedResult = role === "tool" && (toolError === null || toolError === void 0 ? void 0 : toolError.toolCallId) !== void 0 && toolError.toolCallId === msg.toolCallId;
11047
11867
  return lit.html`
11048
- <div class="flex items-start">
11868
+ <div
11869
+ class=${isFailedResult ? "flex items-start bg-rose-50" : "flex items-start"}
11870
+ data-cpk-failed-tool-result=${isFailedResult ? msg.toolCallId : lit.nothing}
11871
+ >
11049
11872
  <div class="w-40 shrink-0 px-4 py-2">
11050
11873
  <span
11051
11874
  class="inline-flex rounded px-2 py-0.5 text-[10px] font-medium ${roleColors[role] || roleColors.unknown}"
@@ -11152,30 +11975,97 @@ ${prettyEvent}</pre
11152
11975
  </div>
11153
11976
  `;
11154
11977
  }
11155
- handleMenuSelect(key) {
11156
- if (!this.menuItems.some((item) => item.key === key)) return;
11157
- const previousMenu = this.selectedMenu;
11158
- this.pendingPersistedMenu = null;
11159
- this.briefingRestoreMenu = null;
11160
- this.selectedMenu = key;
11161
- this.settingsOpen = false;
11162
- this.lastSelectedMenuByGroup[getGroupForMenu(key)] = key;
11163
- if (key === "agents" && this.selectedContext === "all-agents") {
11164
- const agentOptions = this.contextOptions.filter((opt) => opt.key !== "all-agents");
11165
- if (agentOptions.length > 0) {
11166
- const mostRecent = agentOptions.reduce((best, opt) => {
11167
- var _this$getAgentStats$l;
11168
- const ts = (_this$getAgentStats$l = this.getAgentStats(opt.key).lastActivity) !== null && _this$getAgentStats$l !== void 0 ? _this$getAgentStats$l : -1;
11169
- return best === null || ts > best.ts ? {
11170
- key: opt.key,
11171
- ts
11172
- } : best;
11173
- }, null);
11174
- this.selectedContext = mostRecent ? mostRecent.key : agentOptions[0].key;
11175
- }
11978
+ /**
11979
+ * The Agent view is empty on "All Agents". Pick the agent that just failed
11980
+ * a tool, or the one with the most recent activity.
11981
+ */
11982
+ applyEventErrorLanding(key) {
11983
+ const error = this.eventErrorDetails[key];
11984
+ if (!error) {
11985
+ if (this.selectedMenu === "agents") this.focusAgentForView();
11986
+ return;
11176
11987
  }
11177
- if (previousMenu === "agents" && key !== "agents") {
11178
- if (this.contextOptions.filter((opt) => opt.key !== "all-agents").length > 1) this.selectedContext = "all-agents";
11988
+ if (error.agentId && this.contextOptions.some((option) => option.key === error.agentId)) this.selectedContext = error.agentId;
11989
+ else if (this.selectedMenu === "agents") this.focusAgentForView(error);
11990
+ if (key === "tool" && error.toolCallId) {
11991
+ this.pendingScrollToToolCallId = error.toolCallId;
11992
+ return;
11993
+ }
11994
+ if (key === "run") {
11995
+ this.eventFilterText = "";
11996
+ this.eventTypeFilter = "all";
11997
+ const event = this.findLatestRunErrorEvent(error.agentId);
11998
+ if (!event) return;
11999
+ this.expandedRows.clear();
12000
+ this.expandedRows.add(event.id);
12001
+ this.pendingScrollToEventId = event.id;
12002
+ }
12003
+ }
12004
+ /**
12005
+ * Whether the landing view really carries the item the card points at.
12006
+ * Mirrors the two branches of `applyEventErrorLanding` that can bail out.
12007
+ */
12008
+ hasEventErrorHighlight(key) {
12009
+ const error = this.eventErrorDetails[key];
12010
+ if (!error) return false;
12011
+ if (key === "tool") return error.toolCallId !== void 0;
12012
+ if (key === "run") return this.findLatestRunErrorEvent(error.agentId) !== void 0;
12013
+ return false;
12014
+ }
12015
+ findLatestRunErrorEvent(agentId) {
12016
+ var _this$agentEvents$get7;
12017
+ return (agentId && agentId !== "all-agents" ? (_this$agentEvents$get7 = this.agentEvents.get(agentId)) !== null && _this$agentEvents$get7 !== void 0 ? _this$agentEvents$get7 : [] : this.flattenedEvents).find((event) => event.type === "RUN_ERROR");
12018
+ }
12019
+ flushErrorLandingScroll() {
12020
+ const eventId = this.pendingScrollToEventId;
12021
+ if (eventId) {
12022
+ var _row$scrollIntoView2;
12023
+ this.pendingScrollToEventId = null;
12024
+ const row = Array.from(this.activeRoot.querySelectorAll("[data-inspector-event-id]")).find((candidate) => candidate.dataset.inspectorEventId === eventId);
12025
+ row === null || row === void 0 || (_row$scrollIntoView2 = row.scrollIntoView) === null || _row$scrollIntoView2 === void 0 || _row$scrollIntoView2.call(row, { block: "center" });
12026
+ }
12027
+ const toolCallId = this.pendingScrollToToolCallId;
12028
+ if (toolCallId) {
12029
+ var _this$activeRoot$quer2, _card$scrollIntoView;
12030
+ this.pendingScrollToToolCallId = null;
12031
+ const escaped = escapeSelectorValue(toolCallId);
12032
+ const card = (_this$activeRoot$quer2 = this.activeRoot.querySelector(`[data-cpk-failed-tool-call="${escaped}"]`)) !== null && _this$activeRoot$quer2 !== void 0 ? _this$activeRoot$quer2 : this.activeRoot.querySelector(`[data-cpk-failed-tool-result="${escaped}"]`);
12033
+ card === null || card === void 0 || (_card$scrollIntoView = card.scrollIntoView) === null || _card$scrollIntoView === void 0 || _card$scrollIntoView.call(card, { block: "center" });
12034
+ }
12035
+ }
12036
+ /**
12037
+ * The Agent view is empty on "All Agents". Pick the agent that just failed
12038
+ * a tool, or the one with the most recent activity.
12039
+ */
12040
+ focusAgentForView(error) {
12041
+ const agentOptions = this.contextOptions.filter((opt) => opt.key !== "all-agents");
12042
+ if (agentOptions.length === 0) return;
12043
+ const errorAgentId = error === null || error === void 0 ? void 0 : error.agentId;
12044
+ if (errorAgentId && agentOptions.some((option) => option.key === errorAgentId)) {
12045
+ this.selectedContext = errorAgentId;
12046
+ return;
12047
+ }
12048
+ if (this.selectedContext !== "all-agents") return;
12049
+ const mostRecent = agentOptions.reduce((best, opt) => {
12050
+ var _this$getAgentStats$l;
12051
+ const ts = (_this$getAgentStats$l = this.getAgentStats(opt.key).lastActivity) !== null && _this$getAgentStats$l !== void 0 ? _this$getAgentStats$l : -1;
12052
+ return best === null || ts > best.ts ? {
12053
+ key: opt.key,
12054
+ ts
12055
+ } : best;
12056
+ }, null);
12057
+ this.selectedContext = mostRecent ? mostRecent.key : agentOptions[0].key;
12058
+ }
12059
+ handleMenuSelect(key) {
12060
+ if (!this.menuItems.some((item) => item.key === key)) return;
12061
+ const previousMenu = this.selectedMenu;
12062
+ this.pendingPersistedMenu = null;
12063
+ this.briefingRestoreMenu = null;
12064
+ this.selectedMenu = key;
12065
+ this.settingsOpen = false;
12066
+ this.lastSelectedMenuByGroup[getGroupForMenu(key)] = key;
12067
+ if (previousMenu === "agents" && key !== "agents") {
12068
+ if (this.contextOptions.filter((opt) => opt.key !== "all-agents").length > 1) this.selectedContext = "all-agents";
11179
12069
  }
11180
12070
  if (key === "threads") {
11181
12071
  var _this$core29;
@@ -11189,10 +12079,12 @@ ${prettyEvent}</pre
11189
12079
  if (previousMenu !== "memories" && !((_this$core30 = this.core) === null || _this$core30 === void 0 ? void 0 : _this$core30.telemetryDisabled)) trackMemoriesTabClicked(this.getMemoriesTelemetryProps());
11190
12080
  }
11191
12081
  if (key === "home" && previousMenu !== "home") this.homeViewedThisOpen = false;
11192
- if (key === "ag-ui-events" || key === "agents") requestAnimationFrame(() => {
11193
- const scroller = this.activeRoot.querySelector("#cpk-main-scroll");
11194
- if (scroller) scroller.scrollTop = 0;
11195
- });
12082
+ if (key === "ag-ui-events" || key === "agents") {
12083
+ if (!(this.pendingScrollToEventId !== null || this.pendingScrollToToolCallId !== null)) requestAnimationFrame(() => {
12084
+ const scroller = this.activeRoot.querySelector("#cpk-main-scroll");
12085
+ if (scroller) scroller.scrollTop = 0;
12086
+ });
12087
+ }
11196
12088
  this.contextMenuOpen = false;
11197
12089
  this.layoutMenuOpen = false;
11198
12090
  this.persistState();
@@ -11838,58 +12730,454 @@ ${prettyEvent}</pre
11838
12730
  else this.expandedRows.add(eventId);
11839
12731
  this.requestUpdate();
11840
12732
  }
12733
+ /** Whether a given subject currently has something to say. */
12734
+ isSignalArmed(key) {
12735
+ if (isWiringErrorKey(key)) return this.errorSignalArmed[key];
12736
+ if (isEventErrorKey(key)) return this.eventErrorArmed[key];
12737
+ return this.newsSignalArmed;
12738
+ }
12739
+ /**
12740
+ * The signal that owns the single launcher dot, or null when the launcher is
12741
+ * quiet. Precedence rather than replacement: a suppressed signal stays armed
12742
+ * and takes the dot as soon as the higher-priority one clears, and its own
12743
+ * navigation marker is visible the whole time.
12744
+ */
12745
+ getActiveLauncherSignal() {
12746
+ for (const key of LAUNCHER_SIGNAL_PRIORITY_ORDER) if (this.isSignalArmed(key)) return key;
12747
+ return null;
12748
+ }
12749
+ /**
12750
+ * The marker a navigation entry carries, or null for an unmarked entry.
12751
+ *
12752
+ * Markers are independent of the launcher's single dot, so a suppressed
12753
+ * signal is never actually hidden once the panel is open. They also render
12754
+ * on the entry that is *currently selected*: for the news signal that never
12755
+ * mattered, because its marker clears as soon as the view renders, but a
12756
+ * state mirror stays true while it is being read and suppressing it on the
12757
+ * active entry would make it reappear on navigating away.
12758
+ */
12759
+ getNavigationSignalFor(key) {
12760
+ for (const signalKey of LAUNCHER_SIGNAL_PRIORITY_ORDER) {
12761
+ const signal = LAUNCHER_SIGNALS[signalKey];
12762
+ if (signal.markerTarget !== key) continue;
12763
+ if (!this.isSignalArmed(signalKey)) continue;
12764
+ if (signalKey === NEWS_SIGNAL_ID && !this.announcementLoaded) continue;
12765
+ return signal;
12766
+ }
12767
+ return null;
12768
+ }
12769
+ /** Whether a wiring error source is currently red. */
12770
+ hasArmedErrorSignal() {
12771
+ return WIRING_ERROR_KEYS.some((source) => this.errorSignalArmed[source]);
12772
+ }
12773
+ armEventErrorFromCode(code, message, context) {
12774
+ const key = eventErrorKeyForCode(code);
12775
+ if (key === null) return;
12776
+ const agentId = typeof (context === null || context === void 0 ? void 0 : context.agentId) === "string" && context.agentId.length > 0 ? context.agentId : void 0;
12777
+ const toolName = typeof (context === null || context === void 0 ? void 0 : context.toolName) === "string" && context.toolName.length > 0 ? context.toolName : void 0;
12778
+ const toolCallId = typeof (context === null || context === void 0 ? void 0 : context.toolCallId) === "string" && context.toolCallId.length > 0 ? context.toolCallId : void 0;
12779
+ this.armEventError(key, message, {
12780
+ agentId,
12781
+ toolName,
12782
+ toolCallId
12783
+ });
12784
+ }
12785
+ armEventError(key, message, extras = {}) {
12786
+ this.eventErrorDetails[key] = {
12787
+ message,
12788
+ ...extras
12789
+ };
12790
+ const wasArmed = this.eventErrorArmed[key];
12791
+ this.eventErrorArmed[key] = true;
12792
+ if (!wasArmed) this.startSignalPulse(key);
12793
+ if (this.isOpen && !this.settingsOpen && this.selectedMenu === LAUNCHER_SIGNALS[key].landingTarget) this.applyEventErrorLanding(key);
12794
+ this.requestUpdate();
12795
+ }
12796
+ clearEventError(key) {
12797
+ if (!this.eventErrorArmed[key]) return;
12798
+ this.eventErrorArmed[key] = false;
12799
+ this.errorSignalViewedSources.delete(key);
12800
+ this.retireSignal(key);
12801
+ this.requestUpdate();
12802
+ }
12803
+ clearAllEventErrors() {
12804
+ for (const key of EVENT_ERROR_KEYS) {
12805
+ this.eventErrorDetails[key] = null;
12806
+ if (!this.eventErrorArmed[key]) continue;
12807
+ this.eventErrorArmed[key] = false;
12808
+ this.retireSignal(key);
12809
+ }
12810
+ }
12811
+ /**
12812
+ * An event error is unread until its landing view is actually on screen.
12813
+ * Opening the Inspector for a different leaf must not burn it.
12814
+ */
12815
+ maybeCompleteEventErrorView() {
12816
+ if (!this.isOpen || this.settingsOpen) return;
12817
+ for (const key of EVENT_ERROR_KEYS) {
12818
+ if (!this.eventErrorArmed[key]) continue;
12819
+ if (this.selectedMenu !== LAUNCHER_SIGNALS[key].landingTarget) continue;
12820
+ this.clearEventError(key);
12821
+ }
12822
+ }
12823
+ isReducedMotionPreferred() {
12824
+ var _window$matchMedia4, _window4;
12825
+ return typeof window !== "undefined" && ((_window$matchMedia4 = (_window4 = window).matchMedia) === null || _window$matchMedia4 === void 0 ? void 0 : _window$matchMedia4.call(_window4, "(prefers-reduced-motion: reduce)").matches) === true;
12826
+ }
11841
12827
  armNewsSignal(options) {
11842
12828
  const wasArmed = this.newsSignalArmed;
11843
12829
  this.newsSignalArmed = true;
11844
- if (options.pulse && this.isOpen) {
11845
- this.newsSignalPulsePending = true;
11846
- if (!wasArmed) this.requestUpdate();
11847
- } else if (options.pulse) this.startNewsSignalPulse();
12830
+ if (options.pulse) this.startSignalPulse(NEWS_SIGNAL_ID);
11848
12831
  else if (!wasArmed) this.requestUpdate();
11849
12832
  }
11850
12833
  clearNewsSignal() {
11851
12834
  if (!this.newsSignalArmed) return;
11852
12835
  this.newsSignalArmed = false;
11853
- this.newsSignalPulsePending = false;
11854
12836
  if (this.announcementTimestamp) saveAnnouncementReadTimestamp(this.announcementTimestamp);
11855
- if (this.newsSignalPulsing) this.stopNewsSignalPulse();
12837
+ this.retireSignal(NEWS_SIGNAL_ID);
11856
12838
  this.requestUpdate();
11857
12839
  }
11858
- startNewsSignalPulse() {
11859
- this.stopNewsSignalPulse();
11860
- if (typeof document !== "undefined" && document.visibilityState !== "visible") {
11861
- this.newsSignalPulsePending = true;
12840
+ /**
12841
+ * Requests one beat for a signal, running it now or deferring it.
12842
+ *
12843
+ * There is a single pending slot and four reasons a beat cannot land. All
12844
+ * four are the same situation — "cannot land now, run later" — and treating
12845
+ * them alike is the point: three separate behaviours for one situation would
12846
+ * not survive a third signal.
12847
+ *
12848
+ * Reason 3 is not cosmetic. Starting a beat while one runs does not restart
12849
+ * the animation, because the attribute it binds to does not change value and
12850
+ * the pseudo-element selectors match on attribute *presence*; the running
12851
+ * beat would merely change colour mid-flight. A failure that arms during an
12852
+ * announcement beat must wait for that beat to end, or it would run only as
12853
+ * its final fraction.
12854
+ *
12855
+ * A failure's beat is followed by a pill, and the whole 3.4-second gesture
12856
+ * holds this one slot for its full duration. That is not a second scheduling
12857
+ * concept: reason 3 already says "another beat is running", and a gesture is
12858
+ * simply a longer beat.
12859
+ */
12860
+ startSignalPulse(key) {
12861
+ if (this.isOpen || typeof document !== "undefined" && document.visibilityState !== "visible" || this.gestureSlotSignal !== null && this.gestureSlotSignal !== key || this.getActiveLauncherSignal() !== key) {
12862
+ const pending = this.pendingPulseSignal;
12863
+ if (pending === null || LAUNCHER_SIGNALS[key].priority >= LAUNCHER_SIGNALS[pending].priority) this.pendingPulseSignal = key;
11862
12864
  this.requestUpdate();
11863
12865
  return;
11864
12866
  }
11865
- this.newsSignalPulsePending = false;
11866
- this.newsSignalPulsing = true;
11867
- if (this.announcementTimestamp) saveAnnouncementPulsedTimestamp(this.announcementTimestamp);
12867
+ this.stopSignalPulse();
12868
+ this.pendingPulseSignal = null;
12869
+ this.pulsingSignal = key;
12870
+ if (isWiringErrorKey(key)) this.errorBeatSpent = true;
12871
+ else if (this.announcementTimestamp && key === NEWS_SIGNAL_ID) saveAnnouncementPulsedTimestamp(this.announcementTimestamp);
12872
+ this.beginGestureTail(key);
11868
12873
  this.requestUpdate();
11869
12874
  if (typeof window === "undefined") return;
11870
12875
  this.pulseTimeoutId = setTimeout(() => {
11871
12876
  this.pulseTimeoutId = null;
11872
- this.newsSignalPulsing = false;
12877
+ this.pulsingSignal = null;
11873
12878
  this.requestUpdate();
11874
- }, NEWS_SIGNAL_CADENCE_MS);
12879
+ if (this.gestureSignal === key && this.pillPhase === "closed") {
12880
+ this.openPill();
12881
+ return;
12882
+ }
12883
+ if (this.gestureSignal === key) {
12884
+ this.endGesture();
12885
+ return;
12886
+ }
12887
+ this.flushPendingSignalPulse();
12888
+ }, LAUNCHER_SIGNALS[key].cadence);
11875
12889
  }
11876
- stopNewsSignalPulse() {
12890
+ stopSignalPulse() {
11877
12891
  if (this.pulseTimeoutId !== null) {
11878
12892
  clearTimeout(this.pulseTimeoutId);
11879
12893
  this.pulseTimeoutId = null;
11880
12894
  }
11881
- this.newsSignalPulsing = false;
12895
+ this.pulsingSignal = null;
12896
+ }
12897
+ /**
12898
+ * Runs a deferred beat if it can land now, and drops it if its reason to
12899
+ * exist has gone: a nudge about a problem that no longer exists is worse
12900
+ * than no nudge at all.
12901
+ */
12902
+ flushPendingSignalPulse() {
12903
+ const key = this.pendingPulseSignal;
12904
+ if (key === null) return;
12905
+ if (!this.isSignalArmed(key)) {
12906
+ this.pendingPulseSignal = null;
12907
+ this.requestUpdate();
12908
+ return;
12909
+ }
12910
+ this.startSignalPulse(key);
12911
+ }
12912
+ /**
12913
+ * Drops a signal's gesture, pending or running, when the signal goes quiet.
12914
+ *
12915
+ * The pill closes early: it states a condition, and the condition has
12916
+ * stopped being true. The beat is left to finish, because a beat asserts
12917
+ * nothing — it says *here*, and "here" is still true.
12918
+ */
12919
+ retireSignal(key) {
12920
+ if (this.pendingPulseSignal === key) this.pendingPulseSignal = null;
12921
+ if (this.gestureSignal === key) this.closePillEarly();
12922
+ this.flushPendingSignalPulse();
12923
+ }
12924
+ /**
12925
+ * The signal holding the single gesture slot: a beat in flight, or the pill
12926
+ * and spoken sentence that follow it. One slot, not two — see reason 3 in
12927
+ * `startSignalPulse`.
12928
+ */
12929
+ get gestureSlotSignal() {
12930
+ var _this$pulsingSignal;
12931
+ return (_this$pulsingSignal = this.pulsingSignal) !== null && _this$pulsingSignal !== void 0 ? _this$pulsingSignal : this.gestureSignal;
12932
+ }
12933
+ /**
12934
+ * Opens the gesture's tail alongside the beat, for a signal that carries a
12935
+ * pill. The pill is rendered immediately — clipped to nothing, so it shows
12936
+ * nothing — because its full width has to be on the page before the room
12937
+ * either side of the launcher can be measured.
12938
+ *
12939
+ * A signal with no pill label gets no tail at all, so the announcement's
12940
+ * gesture is exactly the beat it has always been.
12941
+ */
12942
+ beginGestureTail(key) {
12943
+ this.cancelPillTimeout();
12944
+ if (LAUNCHER_SIGNALS[key].pillLabel === void 0) {
12945
+ this.gestureSignal = null;
12946
+ this.pillPhase = null;
12947
+ this.pillDirection = null;
12948
+ return;
12949
+ }
12950
+ this.gestureSignal = key;
12951
+ this.pillPhase = "closed";
12952
+ this.pillDirection = null;
12953
+ this.closeLauncherHud();
12954
+ }
12955
+ /**
12956
+ * Chooses the side, or suppresses the pill, from the room actually available
12957
+ * at gesture start. Measured once, from the DOM, because the launcher is
12958
+ * draggable and its position persists: a reader who parked it near the left
12959
+ * edge would otherwise get a permanently truncated pill.
12960
+ *
12961
+ * Where neither side has room there is no pill at all rather than a cut-off
12962
+ * one — the dot and the beat still fire, so the signal is intact and only
12963
+ * the label is lost. Constraining where the reader may drag the control to
12964
+ * protect this animation was considered and rejected: the page is theirs.
12965
+ */
12966
+ resolvePillDirection() {
12967
+ if (this.pillDirection !== null || this.pillPhase === null) return;
12968
+ const wrapper = this.activeRoot.querySelector(".console-button-wrapper");
12969
+ const button = wrapper === null || wrapper === void 0 ? void 0 : wrapper.querySelector(".console-button");
12970
+ const pill = wrapper === null || wrapper === void 0 ? void 0 : wrapper.querySelector(".cpk-launcher-pill");
12971
+ if (!button || !pill || typeof window === "undefined") return;
12972
+ const mark = button.getBoundingClientRect();
12973
+ const overhang = Math.max(0, pill.getBoundingClientRect().width - mark.width);
12974
+ const viewportWidth = window.innerWidth;
12975
+ if (overhang === 0) {
12976
+ this.setPillOutcome("left");
12977
+ return;
12978
+ }
12979
+ if (mark.left - overhang >= EDGE_MARGIN) {
12980
+ this.setPillOutcome("left");
12981
+ return;
12982
+ }
12983
+ if (mark.right + overhang <= viewportWidth - EDGE_MARGIN) {
12984
+ this.setPillOutcome("right");
12985
+ return;
12986
+ }
12987
+ this.setPillOutcome(null);
12988
+ }
12989
+ /** Records the measurement's verdict, and drops the pill when it is null. */
12990
+ setPillOutcome(direction) {
12991
+ if (direction === null) {
12992
+ this.pillPhase = null;
12993
+ this.pillDirection = null;
12994
+ this.pillOutcome = "suppressed";
12995
+ this.requestUpdate();
12996
+ return;
12997
+ }
12998
+ this.pillDirection = direction;
12999
+ this.pillOutcome = "shown";
13000
+ this.requestUpdate();
13001
+ }
13002
+ /** Runs the pill's three phases in series once the beat has finished. */
13003
+ openPill() {
13004
+ this.resolvePillDirection();
13005
+ if (this.pillPhase === null) {
13006
+ this.endGesture();
13007
+ return;
13008
+ }
13009
+ this.advancePill("opening", ERROR_GESTURE_MS.open, () => {
13010
+ this.advancePill("holding", ERROR_GESTURE_MS.hold, () => {
13011
+ this.advancePill("closing", ERROR_GESTURE_MS.close, () => {
13012
+ this.endGesture();
13013
+ });
13014
+ });
13015
+ });
13016
+ }
13017
+ advancePill(phase, duration, next) {
13018
+ this.cancelPillTimeout();
13019
+ this.pillPhase = phase;
13020
+ this.requestUpdate();
13021
+ if (typeof window === "undefined") return;
13022
+ this.pillTimeoutId = setTimeout(() => {
13023
+ this.pillTimeoutId = null;
13024
+ next();
13025
+ }, duration);
13026
+ }
13027
+ /**
13028
+ * Closes the pill before its hold is out, because the failure it names has
13029
+ * been fixed. A pill that has not opened yet is simply dropped; the beat is
13030
+ * never cut short.
13031
+ */
13032
+ closePillEarly() {
13033
+ if (this.pillPhase === null) {
13034
+ this.endGesture();
13035
+ return;
13036
+ }
13037
+ if (this.pillPhase === "closing") return;
13038
+ if (this.pillPhase === "closed") {
13039
+ this.pillPhase = null;
13040
+ this.requestUpdate();
13041
+ return;
13042
+ }
13043
+ this.advancePill("closing", ERROR_GESTURE_MS.close, () => {
13044
+ this.endGesture();
13045
+ });
13046
+ }
13047
+ /** Releases the slot and leaves the plain mark with its dot behind. */
13048
+ endGesture() {
13049
+ this.cancelGestureTail();
13050
+ this.requestUpdate();
13051
+ this.flushPendingSignalPulse();
13052
+ }
13053
+ /**
13054
+ * Drops the gesture's tail outright, with no closing animation, for the
13055
+ * cases where the launcher itself has gone: the panel opened over it, or the
13056
+ * element was removed from the page.
13057
+ */
13058
+ cancelGestureTail() {
13059
+ this.cancelPillTimeout();
13060
+ this.gestureSignal = null;
13061
+ this.pillPhase = null;
13062
+ this.pillDirection = null;
13063
+ }
13064
+ cancelPillTimeout() {
13065
+ if (this.pillTimeoutId !== null) {
13066
+ clearTimeout(this.pillTimeoutId);
13067
+ this.pillTimeoutId = null;
13068
+ }
13069
+ }
13070
+ /**
13071
+ * Whether each error source is currently broken.
13072
+ *
13073
+ * Only two *wiring* conditions qualify. App errors (runs, tools, memory)
13074
+ * are unread events on a different latch — they name themselves on the pill
13075
+ * and clear when their landing view is read. Notably absent from *this*
13076
+ * latch:
13077
+ *
13078
+ * - **A failed agent run.** A run is an event. It arms `run`, not this
13079
+ * state. The resting wiring dot must not stay red for the rest of a debug
13080
+ * hour.
13081
+ * - **The core error channel as a wiring source.** Handshake failure already
13082
+ * sets the connection state. Other codes arm `run` or `tool`.
13083
+ * - **Memory failures before Learning is live.** The memory store is lazy
13084
+ * because creating it opens a realtime connection. Once it exists, a load
13085
+ * failure arms `memory`.
13086
+ * - **Product states.** An unconfigured Intelligence and an unentitled
13087
+ * Memory plan are not defects. The signal fires only where wiring is
13088
+ * present and the call still fails — which for threads is guaranteed by
13089
+ * `_threadsErrorByAgent` only ever being written while the thread
13090
+ * endpoints are available.
13091
+ *
13092
+ * Known limitation: the runtime handshake runs once, on connect. A server
13093
+ * that dies *after* the page loaded leaves the connection state at connected
13094
+ * and raises nothing; the next page load re-runs the handshake and the
13095
+ * signal appears then. The signal reports the wiring state as last
13096
+ * established. Closing that gap means a re-probe in the core, which is a
13097
+ * runtime concern.
13098
+ */
13099
+ isErrorSourceBroken(source) {
13100
+ if (source === "connection") {
13101
+ const state = this.getCoreStatusSummary().state;
13102
+ if (runtimeConnectionNeedsAttention(state)) return true;
13103
+ return this.errorSignalArmed.connection && state === "connecting";
13104
+ }
13105
+ return this._threadsErrorByAgent.size > 0;
13106
+ }
13107
+ /**
13108
+ * Mirrors both error latches onto the live state. Called from `willUpdate`,
13109
+ * because every mutation of the underlying state already requests an update,
13110
+ * so the resting dot follows the state within the same render.
13111
+ */
13112
+ evaluateErrorSignals() {
13113
+ const wasArmed = this.hasArmedErrorSignal();
13114
+ for (const source of WIRING_ERROR_KEYS) {
13115
+ if (this.isErrorSourceBroken(source)) {
13116
+ if (this.errorSignalArmed[source]) continue;
13117
+ this.errorSignalArmed[source] = true;
13118
+ continue;
13119
+ }
13120
+ if (!this.errorSignalArmed[source]) continue;
13121
+ this.errorSignalArmed[source] = false;
13122
+ this.errorSignalViewedSources.delete(source);
13123
+ this.retireSignal(source);
13124
+ }
13125
+ this.onErrorSignalsChanged(wasArmed);
13126
+ }
13127
+ /**
13128
+ * Applies the rising-edge rule after a latch changed.
13129
+ *
13130
+ * The beat fires on the transition from "no failure" to "at least one
13131
+ * failure", evaluated globally across the sources and never again while
13132
+ * anything is red — one root cause, one nudge.
13133
+ */
13134
+ onErrorSignalsChanged(wasArmed) {
13135
+ if (!this.hasArmedErrorSignal()) {
13136
+ this.errorBeatSpent = false;
13137
+ this.pillOutcome = null;
13138
+ return;
13139
+ }
13140
+ if (wasArmed || this.errorBeatSpent) return;
13141
+ const active = this.getActiveLauncherSignal();
13142
+ if (active !== null && isErrorSignalKey(active)) this.startSignalPulse(active);
13143
+ }
13144
+ /**
13145
+ * Records `oss.inspector.error_signal_viewed` once per source per outage,
13146
+ * when the dot is actually on screen.
13147
+ *
13148
+ * Unlike the announcement's launcher event this fires immediately rather
13149
+ * than waiting for the runtime handshake to report `telemetryDisabled`.
13150
+ * The held-queue would never drain for the connection source — a connection
13151
+ * failure means the handshake did not complete — so queuing would guarantee
13152
+ * zero data for the case this event exists to measure. `trackOpened` already
13153
+ * sends on the same terms. Both opt-out layers still gate it: the local
13154
+ * opt-out inside `track`, and the runtime's flag once it is known.
13155
+ */
13156
+ maybeTrackErrorSignalViewed() {
13157
+ var _this$core31, _this$pillOutcome;
13158
+ if (this.isOpen || typeof document === "undefined" || document.visibilityState !== "visible") return;
13159
+ const active = this.getActiveLauncherSignal();
13160
+ if (active === null || !isErrorSignalKey(active)) return;
13161
+ if (this.errorSignalViewedSources.has(active)) return;
13162
+ if (this.pillOutcome === null && LAUNCHER_SIGNALS[active].pillLabel !== void 0) return;
13163
+ if ((_this$core31 = this.core) === null || _this$core31 === void 0 ? void 0 : _this$core31.telemetryDisabled) return;
13164
+ this.errorSignalViewedSources.add(active);
13165
+ trackErrorSignalViewed({
13166
+ source: active,
13167
+ presentation: this.isReducedMotionPreferred() ? "reduced_motion" : "animated",
13168
+ label: (_this$pillOutcome = this.pillOutcome) !== null && _this$pillOutcome !== void 0 ? _this$pillOutcome : "suppressed"
13169
+ });
11882
13170
  }
11883
13171
  maybeTrackNewsSignalViewed() {
11884
- var _window$matchMedia4, _window4, _this$announcementCta2;
11885
- if (!this.newsSignalArmed || !this.newsSignalPulsing || this.isOpen || typeof document === "undefined" || document.visibilityState !== "visible") return;
13172
+ var _window$matchMedia5, _window5, _this$announcementCta2;
13173
+ if (!this.newsSignalArmed || this.pulsingSignal !== NEWS_SIGNAL_ID || this.isOpen || typeof document === "undefined" || document.visibilityState !== "visible") return;
11886
13174
  const id = this.announcementTimestamp;
11887
13175
  if (!id || this.viewedNewsSignalIds.has(id)) return;
11888
13176
  this.viewedNewsSignalIds.add(id);
11889
13177
  this.pendingNewsSignalViewed = {
11890
13178
  banner_id: id,
11891
13179
  surface: "launcher",
11892
- presentation: typeof window !== "undefined" && ((_window$matchMedia4 = (_window4 = window).matchMedia) === null || _window$matchMedia4 === void 0 ? void 0 : _window$matchMedia4.call(_window4, "(prefers-reduced-motion: reduce)").matches) ? "reduced_motion" : "animated",
13180
+ presentation: typeof window !== "undefined" && ((_window$matchMedia5 = (_window5 = window).matchMedia) === null || _window$matchMedia5 === void 0 ? void 0 : _window$matchMedia5.call(_window5, "(prefers-reduced-motion: reduce)").matches) ? "reduced_motion" : "animated",
11893
13181
  cta_label: (_this$announcementCta2 = this.announcementCtaLabel) !== null && _this$announcementCta2 !== void 0 ? _this$announcementCta2 : void 0
11894
13182
  };
11895
13183
  this.flushPendingWhatsNewTelemetry();
@@ -11951,9 +13239,9 @@ ${prettyEvent}</pre
11951
13239
  this.flushPendingWhatsNewTelemetry();
11952
13240
  }
11953
13241
  flushPendingWhatsNewTelemetry() {
11954
- var _this$core31;
13242
+ var _this$core32;
11955
13243
  if (this.pendingBannerViewed.length === 0 && !this.pendingNewsSignalViewed) return;
11956
- if ((_this$core31 = this.core) === null || _this$core31 === void 0 ? void 0 : _this$core31.telemetryDisabled) {
13244
+ if ((_this$core32 = this.core) === null || _this$core32 === void 0 ? void 0 : _this$core32.telemetryDisabled) {
11957
13245
  this.pendingBannerViewed = [];
11958
13246
  this.pendingNewsSignalViewed = null;
11959
13247
  return;
@@ -12035,11 +13323,11 @@ ${prettyEvent}</pre
12035
13323
  }
12036
13324
  appendRefParam(href, ref = "cpk-inspector") {
12037
13325
  try {
12038
- var _this$core32;
13326
+ var _this$core33;
12039
13327
  const isRootRelative = href.startsWith("/") && !href.startsWith("//");
12040
13328
  const url = new URL(href, typeof window !== "undefined" ? window.location.href : "https://copilotkit.ai");
12041
13329
  if (!url.searchParams.has("ref")) url.searchParams.append("ref", ref);
12042
- if (!url.searchParams.has("posthog_distinct_id") && this.runtimeStatus === _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected && !((_this$core32 = this.core) === null || _this$core32 === void 0 ? void 0 : _this$core32.telemetryDisabled) && this.isCopilotKitDestination(url)) {
13330
+ if (!url.searchParams.has("posthog_distinct_id") && this.runtimeStatus === _copilotkit_core.CopilotKitCoreRuntimeConnectionStatus.Connected && !((_this$core33 = this.core) === null || _this$core33 === void 0 ? void 0 : _this$core33.telemetryDisabled) && this.isCopilotKitDestination(url)) {
12043
13331
  const distinctId = getTelemetryDistinctIdForUrl();
12044
13332
  if (distinctId) url.searchParams.append("posthog_distinct_id", distinctId);
12045
13333
  }
@@ -12107,18 +13395,28 @@ ${prettyEvent}</pre
12107
13395
  .console-button-wrapper {
12108
13396
  position: relative;
12109
13397
  display: inline-flex;
12110
- }
12111
-
12112
- .console-button {
13398
+ /* The launcher's surface and edge, shared by the button and the pill so
13399
+ the two cannot drift apart. A dark grey rather than near-black: the
13400
+ launcher sits on a customer's page, and 1,5,7 against white is a
13401
+ harder edge than this surface needs. */
13402
+ --cpk-launcher-face: rgba(24, 28, 31, 0.95);
13403
+ --cpk-launcher-face-solid: rgb(24, 28, 31);
13404
+ --cpk-launcher-edge: rgba(190, 194, 255, 0.25);
12113
13405
  /* The launcher's own size, exposed so the signal dot can be placed
12114
13406
  against the OUTER rim with a length rather than a percentage.
12115
13407
  Percentages resolve against the padding box, which the 1px border
12116
- insets, and the dot would land inside the rim. */
13408
+ insets, and the dot would land inside the rim.
13409
+
13410
+ Declared on the wrapper rather than on the button so the pill, which
13411
+ is the button's sibling, can clear the mark by the same length. */
12117
13412
  --cpk-launcher-size: clamp(
12118
13413
  ${LAUNCHER_MIN_SIZE}px,
12119
13414
  7vw,
12120
13415
  ${LAUNCHER_MAX_SIZE}px
12121
13416
  );
13417
+ }
13418
+
13419
+ .console-button {
12122
13420
  width: var(--cpk-launcher-size);
12123
13421
  height: var(--cpk-launcher-size);
12124
13422
  /* Keep the 1px border inside the declared outer size. */
@@ -12520,14 +13818,29 @@ ${prettyEvent}</pre
12520
13818
 
12521
13819
  /* ── Floating button ─────────────────────────────────────────── */
12522
13820
  .console-button {
12523
- background-color: rgba(1, 5, 7, 0.95) !important;
12524
- border-color: rgba(190, 194, 255, 0.25) !important;
13821
+ background-color: var(--cpk-launcher-face) !important;
13822
+ border-color: var(--cpk-launcher-edge) !important;
13823
+ /* One hairline, not two. The border above is it; a second ring used to
13824
+ sit 1px outside as a box-shadow and hardcoded the lilac instead of
13825
+ reading the --cpk-launcher-edge token, so it could not follow it.
13826
+ What replaces it is a one-pixel light edge along the top, which is
13827
+ what keeps the face from reading flat without drawing a frame.
13828
+
13829
+ The border is not decoration: the face is #181C1F, which against a
13830
+ dark host page (GitHub dark 1.10:1, Tailwind slate-900 1.04:1) is
13831
+ indistinguishable from the page. It is the only thing that gives the
13832
+ launcher an outline there, so it stays. */
12525
13833
  box-shadow:
12526
- 0 0 0 1px rgba(190, 194, 255, 0.15),
13834
+ inset 0 1px 0 rgba(255, 255, 255, 0.07),
12527
13835
  0 4px 14px rgba(1, 5, 7, 0.28) !important;
13836
+ /* Promotes the launcher to its own compositing layer, which the
13837
+ backdrop-filter this replaces used to do as a side effect. Without
13838
+ a layer the hover scale re-rasterises the mark every frame and it
13839
+ visibly jitters; with one, the compositor scales it as a texture. */
13840
+ will-change: transform;
12528
13841
  }
12529
13842
  .console-button:hover {
12530
- background-color: rgba(1, 5, 7, 1) !important;
13843
+ background-color: var(--cpk-launcher-face-solid) !important;
12531
13844
  border-color: rgba(190, 194, 255, 0.45) !important;
12532
13845
  }
12533
13846
  .console-button:focus-visible {
@@ -12545,7 +13858,6 @@ ${prettyEvent}</pre
12545
13858
  * that forces a repaint every frame is not acceptable.
12546
13859
  */
12547
13860
  .console-button[data-cpk-signal] {
12548
- --cpk-launcher-face: rgba(1, 5, 7, 0.95);
12549
13861
  isolation: isolate;
12550
13862
  }
12551
13863
 
@@ -12651,8 +13963,197 @@ ${prettyEvent}</pre
12651
13963
  width: 19%;
12652
13964
  height: 19%;
12653
13965
  border-radius: 50%;
12654
- background: var(--cpk-launcher-signal);
12655
- box-shadow: 0 0 0 1.5px var(--cpk-launcher-face);
13966
+ /* Lit from the upper left and shaded at the lower right, so the dot
13967
+ reads as a lens rather than a flat disc. Both stops are derived from
13968
+ the signal colour, so a new tone needs no new values. */
13969
+ background: radial-gradient(
13970
+ circle at 32% 28%,
13971
+ color-mix(in srgb, var(--cpk-launcher-signal), white 40%) 0%,
13972
+ var(--cpk-launcher-signal) 60%,
13973
+ color-mix(in srgb, var(--cpk-launcher-signal), black 20%) 100%
13974
+ );
13975
+ /* Replaces an opaque 1.5px collar in the launcher's own face. That
13976
+ collar was 21% of the dot's footprint, and because the dot's centre
13977
+ sits *on* the rim, its outer half painted a hard dark crescent onto
13978
+ the host page rather than onto the launcher. A hairline plus a soft
13979
+ drop does the same separating job without the hard edge. */
13980
+ box-shadow:
13981
+ 0 0 0 0.5px rgba(1, 5, 7, 0.4),
13982
+ 0 1px 2.5px rgba(1, 5, 7, 0.5);
13983
+ }
13984
+
13985
+ /* ── Launcher pill: the launcher opens sideways and says what ─── */
13986
+ /*
13987
+ * The pill is laid out at its FULL width from the first frame and
13988
+ * revealed by animating a rectangular clip. Nothing is scaled and
13989
+ * nothing is resized.
13990
+ *
13991
+ * That is not a stylistic choice. This component is permanently mounted
13992
+ * on top of a customer's application, so no property that forces a
13993
+ * layout on every frame is acceptable — and animating "width" does
13994
+ * exactly that, sixty times a second, on someone else's page. A clip
13995
+ * leaves the element's geometry constant and changes only the visible
13996
+ * region, which the compositor handles. Animating a horizontal scale
13997
+ * was the other candidate and squashes the mark itself, not merely the
13998
+ * rounded end, so the logo would need counter-scaling and the dot and
13999
+ * halo would become ellipses.
14000
+ *
14001
+ * The launcher's own face and border are repeated here so the two form
14002
+ * one capsule: the button paints last and therefore on top, with no
14003
+ * z-index needed. The mark's own ring and shadow are deliberately left
14004
+ * alone for the whole gesture — the circle's outline staying visible
14005
+ * inside the open pill was looked at against the alternative and kept.
14006
+ *
14007
+ * A column, not a row: the pill carries a heading and a subline stacked,
14008
+ * centred against a height that does not change. "justify-content"
14009
+ * centres the pair vertically and "align-items" keeps both lines flush
14010
+ * left, so the pill never grows taller than the launcher it opens from.
14011
+ */
14012
+ .cpk-launcher-pill {
14013
+ position: absolute;
14014
+ top: 50%;
14015
+ margin-top: calc(var(--cpk-launcher-size) / -2);
14016
+ height: var(--cpk-launcher-size);
14017
+ display: inline-flex;
14018
+ flex-direction: column;
14019
+ justify-content: center;
14020
+ align-items: flex-start;
14021
+ gap: 1px;
14022
+ box-sizing: border-box;
14023
+ border-radius: 999px;
14024
+ border: 1px solid var(--cpk-launcher-edge);
14025
+ background: var(--cpk-launcher-face);
14026
+ color: #ffffff;
14027
+ white-space: nowrap;
14028
+ pointer-events: none;
14029
+ opacity: 0;
14030
+ }
14031
+
14032
+ /* The failure class, word-identical to the panel's own wording. */
14033
+ .cpk-launcher-pill__heading {
14034
+ font-size: 12px;
14035
+ font-weight: 600;
14036
+ line-height: 1.2;
14037
+ }
14038
+
14039
+ /*
14040
+ * The one line of copy in this feature that exists nowhere else in the
14041
+ * product. The heading above is word-identical to the panel, which is
14042
+ * the standing rule; this line is a deliberate, owner-approved exception
14043
+ * to it, because the pill is now clickable and has to say so.
14044
+ *
14045
+ * It is NOT spoken. A screen-reader user cannot act on an instruction
14046
+ * delivered through an announcement, and it would double the spoken
14047
+ * length — so the live region carries the failure class alone.
14048
+ */
14049
+ .cpk-launcher-pill__subline {
14050
+ font-size: 10.5px;
14051
+ font-weight: 500;
14052
+ line-height: 1.2;
14053
+ opacity: 0.72;
14054
+ }
14055
+
14056
+ /*
14057
+ * Two directions, one animation with the inset on the other side. The
14058
+ * padding on the launcher's side clears the mark, so the words never sit
14059
+ * under it. The text-side padding is derived from the capsule's radius
14060
+ * (half the launcher size), NOT a bare literal: padding is measured from
14061
+ * the bounding box, but the first half-height of that side is the rounded
14062
+ * cap. Half the size lands the text exactly where the cap ends and the
14063
+ * straight edge begins. A literal 14px put it 16px inside the curve at the
14064
+ * production launcher size, which is itself a clamp on the viewport.
14065
+ */
14066
+ .cpk-launcher-pill[data-cpk-pill-direction="left"] {
14067
+ right: 0;
14068
+ padding: 0 calc(var(--cpk-launcher-size) + 12px) 0
14069
+ calc(var(--cpk-launcher-size) / 2);
14070
+ clip-path: inset(0 0 0 calc(100% - var(--cpk-launcher-size)));
14071
+ }
14072
+ .cpk-launcher-pill[data-cpk-pill-direction="right"] {
14073
+ left: 0;
14074
+ padding: 0 calc(var(--cpk-launcher-size) / 2) 0
14075
+ calc(var(--cpk-launcher-size) + 12px);
14076
+ clip-path: inset(0 calc(100% - var(--cpk-launcher-size)) 0 0);
14077
+ }
14078
+
14079
+ /*
14080
+ * "round" on both stops, so the revealing edge is the capsule's own
14081
+ * rounded end travelling sideways rather than a straight vertical line
14082
+ * wiping across it. An unrounded inset reads as a wipe; this reads as an
14083
+ * opening. It adds no animated property: the clip is still the clip.
14084
+ */
14085
+ @keyframes cpk-launcher-pill-left {
14086
+ 0% {
14087
+ opacity: 0;
14088
+ clip-path: inset(
14089
+ 0 0 0 calc(100% - var(--cpk-launcher-size)) round 999px
14090
+ );
14091
+ }
14092
+ 100% {
14093
+ opacity: 1;
14094
+ clip-path: inset(0 0 0 0 round 999px);
14095
+ }
14096
+ }
14097
+
14098
+ @keyframes cpk-launcher-pill-right {
14099
+ 0% {
14100
+ opacity: 0;
14101
+ clip-path: inset(
14102
+ 0 calc(100% - var(--cpk-launcher-size)) 0 0 round 999px
14103
+ );
14104
+ }
14105
+ 100% {
14106
+ opacity: 1;
14107
+ clip-path: inset(0 0 0 0 round 999px);
14108
+ }
14109
+ }
14110
+
14111
+ /*
14112
+ * The pill takes the pointer exactly while it is on screen, so the
14113
+ * instruction it now carries is honest: a click on it opens the
14114
+ * Inspector, the same action as pressing the mark. During the beat the
14115
+ * clip covers only the mark itself, and a click target nobody can see
14116
+ * over someone else's page is not something to ship — so the base rule
14117
+ * keeps "pointer-events: none" and only the three visible phases take it
14118
+ * back.
14119
+ * The button paints last and therefore wins the pointer where the two
14120
+ * overlap, so dragging the launcher is unaffected throughout.
14121
+ */
14122
+ .cpk-launcher-pill[data-cpk-pill-phase="opening"],
14123
+ .cpk-launcher-pill[data-cpk-pill-phase="holding"],
14124
+ .cpk-launcher-pill[data-cpk-pill-phase="closing"] {
14125
+ pointer-events: auto;
14126
+ cursor: pointer;
14127
+ }
14128
+
14129
+ /* Closing is the same animation played backwards, so the two phases can
14130
+ never drift apart. */
14131
+ .cpk-launcher-pill[data-cpk-pill-phase="opening"],
14132
+ .cpk-launcher-pill[data-cpk-pill-phase="closing"] {
14133
+ animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
14134
+ animation-iteration-count: 1;
14135
+ animation-fill-mode: forwards;
14136
+ }
14137
+ .cpk-launcher-pill[data-cpk-pill-phase="opening"] {
14138
+ animation-duration: var(--cpk-launcher-pill-open);
14139
+ }
14140
+ .cpk-launcher-pill[data-cpk-pill-phase="closing"] {
14141
+ animation-duration: var(--cpk-launcher-pill-close);
14142
+ animation-direction: reverse;
14143
+ }
14144
+ .cpk-launcher-pill[data-cpk-pill-phase="opening"][data-cpk-pill-direction="left"],
14145
+ .cpk-launcher-pill[data-cpk-pill-phase="closing"][data-cpk-pill-direction="left"] {
14146
+ animation-name: cpk-launcher-pill-left;
14147
+ }
14148
+ .cpk-launcher-pill[data-cpk-pill-phase="opening"][data-cpk-pill-direction="right"],
14149
+ .cpk-launcher-pill[data-cpk-pill-phase="closing"][data-cpk-pill-direction="right"] {
14150
+ animation-name: cpk-launcher-pill-right;
14151
+ }
14152
+
14153
+ /* The hold is the end state of the reveal, held. */
14154
+ .cpk-launcher-pill[data-cpk-pill-phase="holding"] {
14155
+ opacity: 1;
14156
+ clip-path: inset(0 0 0 0);
12656
14157
  }
12657
14158
 
12658
14159
  /*
@@ -12660,6 +14161,18 @@ ${prettyEvent}</pre
12660
14161
  * the information arrives without the movement.
12661
14162
  */
12662
14163
  @media (prefers-reduced-motion: reduce) {
14164
+ /*
14165
+ * The pill is shown by opacity alone, with no clip animation and the
14166
+ * same hold. The instruction is to reduce motion, not to withhold
14167
+ * information, and this reader needs the label as much as anyone.
14168
+ */
14169
+ .cpk-launcher-pill[data-cpk-pill-phase="opening"],
14170
+ .cpk-launcher-pill[data-cpk-pill-phase="holding"],
14171
+ .cpk-launcher-pill[data-cpk-pill-phase="closing"] {
14172
+ animation: none !important;
14173
+ opacity: 1;
14174
+ clip-path: inset(0 0 0 0);
14175
+ }
12663
14176
  .cpk-launcher-signal-wash {
12664
14177
  opacity: 0.85;
12665
14178
  }
@@ -12679,11 +14192,225 @@ ${prettyEvent}</pre
12679
14192
  }
12680
14193
  }
12681
14194
 
14195
+ /* ── Launcher HUD: hover menu, quieter than the error island ── */
14196
+ .console-button-wrapper[data-cpk-hud="open"] .cpk-launcher-hud {
14197
+ pointer-events: auto;
14198
+ opacity: 1;
14199
+ transform: none;
14200
+ visibility: visible;
14201
+ }
14202
+
14203
+ .cpk-launcher-hud {
14204
+ position: absolute;
14205
+ top: 0;
14206
+ z-index: 4;
14207
+ padding-right: 14px;
14208
+ pointer-events: none;
14209
+ opacity: 0;
14210
+ visibility: hidden;
14211
+ transform: translateX(8px);
14212
+ transition:
14213
+ opacity 160ms ease,
14214
+ transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
14215
+ }
14216
+
14217
+ .cpk-launcher-hud[data-cpk-hud-side="left"] {
14218
+ right: 100%;
14219
+ padding-right: 14px;
14220
+ padding-left: 0;
14221
+ }
14222
+
14223
+ .cpk-launcher-hud[data-cpk-hud-side="right"] {
14224
+ left: 100%;
14225
+ right: auto;
14226
+ padding-right: 0;
14227
+ padding-left: 14px;
14228
+ transform: translateX(-8px);
14229
+ }
14230
+
14231
+ .console-button-wrapper[data-cpk-hud="open"]
14232
+ .cpk-launcher-hud[data-cpk-hud-side="right"] {
14233
+ transform: none;
14234
+ }
14235
+
14236
+ .cpk-launcher-hud__card {
14237
+ --hud-fill: rgb(28 31 36 / 0.88);
14238
+ --hud-line: rgb(190 194 255 / 0.5);
14239
+ position: relative;
14240
+ width: 228px;
14241
+ padding: 4px;
14242
+ border: 1px dotted var(--hud-line);
14243
+ border-radius: 10px;
14244
+ background: var(--hud-fill);
14245
+ color: #fff;
14246
+ backdrop-filter: blur(12px) saturate(1.2);
14247
+ box-shadow: 0 8px 20px rgb(1 5 7 / 0.18);
14248
+ }
14249
+
14250
+ .cpk-launcher-hud__arrow {
14251
+ position: absolute;
14252
+ top: calc(var(--cpk-launcher-size) / 2);
14253
+ width: 10px;
14254
+ height: 10px;
14255
+ background: var(--hud-fill);
14256
+ transform: translateY(-50%) rotate(45deg);
14257
+ }
14258
+
14259
+ .cpk-launcher-hud[data-cpk-hud-side="left"] .cpk-launcher-hud__arrow {
14260
+ right: -5px;
14261
+ border-top: 1px solid var(--hud-line);
14262
+ border-right: 1px solid var(--hud-line);
14263
+ }
14264
+
14265
+ .cpk-launcher-hud[data-cpk-hud-side="right"] .cpk-launcher-hud__arrow {
14266
+ left: -5px;
14267
+ border-bottom: 1px solid var(--hud-line);
14268
+ border-left: 1px solid var(--hud-line);
14269
+ }
14270
+
14271
+ .cpk-launcher-hud__list {
14272
+ margin: 0;
14273
+ padding: 0;
14274
+ list-style: none;
14275
+ }
14276
+
14277
+ .cpk-launcher-hud__list + .cpk-launcher-hud__list {
14278
+ margin-top: 4px;
14279
+ padding-top: 4px;
14280
+ border-top: 1px dotted var(--hud-line);
14281
+ }
14282
+
14283
+ .cpk-launcher-hud__row {
14284
+ position: relative;
14285
+ display: grid;
14286
+ grid-template-columns: 1fr 28px;
14287
+ align-items: start;
14288
+ border-radius: 7px;
14289
+ cursor: pointer;
14290
+ }
14291
+
14292
+ .cpk-launcher-hud__row + .cpk-launcher-hud__row {
14293
+ margin-top: 1px;
14294
+ }
14295
+
14296
+ .cpk-launcher-hud__row:hover,
14297
+ .cpk-launcher-hud__row:focus-within,
14298
+ .cpk-launcher-hud__row[data-cpk-hud-help="open"] {
14299
+ background: rgb(255 255 255 / 0.06);
14300
+ }
14301
+
14302
+ .cpk-launcher-hud__action {
14303
+ display: flex;
14304
+ gap: 8px;
14305
+ min-height: 32px;
14306
+ align-items: center;
14307
+ padding: 6px 8px;
14308
+ border: 0;
14309
+ border-radius: 7px;
14310
+ background: transparent;
14311
+ color: #fff;
14312
+ font-family: inherit;
14313
+ font-size: 12px;
14314
+ font-weight: 600;
14315
+ text-align: start;
14316
+ cursor: pointer;
14317
+ }
14318
+
14319
+ /* Stretch the row action over the whole tab, including the detail
14320
+ copy. The help mark sits above this layer. */
14321
+ .cpk-launcher-hud__action::after {
14322
+ content: "";
14323
+ position: absolute;
14324
+ inset: 0;
14325
+ }
14326
+
14327
+ .cpk-launcher-hud__check {
14328
+ flex: none;
14329
+ width: 14px;
14330
+ height: 14px;
14331
+ color: #34d399;
14332
+ }
14333
+
14334
+ .cpk-launcher-hud__help {
14335
+ position: relative;
14336
+ z-index: 1;
14337
+ display: inline-flex;
14338
+ width: 28px;
14339
+ height: 32px;
14340
+ align-items: center;
14341
+ justify-content: center;
14342
+ padding: 0;
14343
+ border: 0;
14344
+ background: transparent;
14345
+ color: rgb(255 255 255 / 0.78);
14346
+ font-size: 12px;
14347
+ font-weight: 600;
14348
+ cursor: pointer;
14349
+ }
14350
+
14351
+ .cpk-launcher-hud__help span {
14352
+ display: inline-flex;
14353
+ width: 16px;
14354
+ height: 16px;
14355
+ align-items: center;
14356
+ justify-content: center;
14357
+ border: 1px dotted rgb(190 194 255 / 0.55);
14358
+ border-radius: 50%;
14359
+ line-height: 1;
14360
+ }
14361
+
14362
+ .cpk-launcher-hud__help:focus-visible,
14363
+ .cpk-launcher-hud__action:focus-visible {
14364
+ outline: 2px solid #bec2ff;
14365
+ outline-offset: 1px;
14366
+ }
14367
+
14368
+ .cpk-launcher-hud__detail {
14369
+ grid-column: 1 / -1;
14370
+ max-height: 0;
14371
+ margin: 0;
14372
+ padding: 0 8px;
14373
+ overflow: hidden;
14374
+ color: rgb(255 255 255 / 0.78);
14375
+ font-size: 11px;
14376
+ font-weight: 400;
14377
+ line-height: 1.4;
14378
+ opacity: 0;
14379
+ pointer-events: none;
14380
+ transform: translateY(-6px);
14381
+ transition:
14382
+ max-height 200ms cubic-bezier(0.16, 1, 0.3, 1),
14383
+ opacity 150ms ease-out,
14384
+ transform 200ms cubic-bezier(0.16, 1, 0.3, 1),
14385
+ padding-bottom 200ms cubic-bezier(0.16, 1, 0.3, 1);
14386
+ }
14387
+
14388
+ .cpk-launcher-hud__row:hover .cpk-launcher-hud__detail,
14389
+ .cpk-launcher-hud__row:focus-within .cpk-launcher-hud__detail,
14390
+ .cpk-launcher-hud__row[data-cpk-hud-help="open"] .cpk-launcher-hud__detail {
14391
+ max-height: 72px;
14392
+ padding: 0 8px 7px;
14393
+ opacity: 1;
14394
+ transform: none;
14395
+ }
14396
+
14397
+ @media (prefers-reduced-motion: reduce) {
14398
+ .cpk-launcher-hud,
14399
+ .cpk-launcher-hud__detail {
14400
+ transition: none;
14401
+ }
14402
+ }
14403
+
12682
14404
  /*
12683
- * Unread marker on the navigation entry, which is what keeps the signal
12684
- * alive once the panel is open and the launcher is hidden. Static by
12685
- * design: the pulse belongs to the launcher, and movement here would
12686
- * compete with the live event stream a developer is actually watching.
14405
+ * Marker on the navigation entry, which is what keeps a signal alive
14406
+ * once the panel is open and the launcher is hidden. Static by design:
14407
+ * the beat belongs to the launcher, and movement here would compete with
14408
+ * the live event stream a developer is actually watching.
14409
+ *
14410
+ * Tone-selected rather than tone-agnostic, because the marker has to
14411
+ * agree with the dot that sent the reader here. Same shape, same
14412
+ * placement, one declaration different — as on the launcher, where the
14413
+ * treatment is shared and only the injected colour changes.
12687
14414
  */
12688
14415
  .inspector-nav-signal-dot {
12689
14416
  display: inline-block;
@@ -12691,7 +14418,10 @@ ${prettyEvent}</pre
12691
14418
  width: 6px;
12692
14419
  height: 6px;
12693
14420
  border-radius: 50%;
12694
- background: ${(0, lit.unsafeCSS)(NEWS_SIGNAL_COLOR)};
14421
+ background: ${(0, lit.unsafeCSS)(LAUNCHER_SIGNAL_COLORS.news)};
14422
+ }
14423
+ .inspector-nav-signal-dot[data-cpk-signal-tone="error"] {
14424
+ background: ${(0, lit.unsafeCSS)(LAUNCHER_SIGNAL_COLORS.error)};
12695
14425
  }
12696
14426
 
12697
14427
  /* ── Inspector window ────────────────────────────────────────── */