@sigmashake/ssg 0.29.58 → 0.29.60

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigmashake/ssg",
3
- "version": "0.29.58",
3
+ "version": "0.29.60",
4
4
  "description": "AI Agent Governance CLI — evaluate tool calls against rules, block dangerous operations, and surface blocked commands",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "type": "module",
@@ -14,8 +14,8 @@
14
14
  "README.md"
15
15
  ],
16
16
  "optionalDependencies": {
17
- "@sigmashake/ssg-linux-x64": "0.29.58",
18
- "@sigmashake/ssg-linux-arm64": "0.29.58",
17
+ "@sigmashake/ssg-linux-x64": "0.29.60",
18
+ "@sigmashake/ssg-linux-arm64": "0.29.60",
19
19
  "@sigmashake/ssg-darwin-arm64": "0.29.40",
20
20
  "@sigmashake/ssg-darwin-x64": "0.29.40",
21
21
  "@sigmashake/ssg-win32-x64": "0.29.58"
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-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}}}@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-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--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-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--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);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--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);--color-brand:#f59e0b;--color-brand-hover:#fbbf24;--color-accent:#f59e0b;--color-surface-0:#080808;--color-surface-1:#0d0d0d;--color-surface-2:#121212;--color-surface-3:#181818;--color-line-0:#1a1a1a;--color-line-1:#242424;--color-line-2:#2e2e2e;--color-fg-0:#f5f5f5;--color-fg-1:#d0d0d0;--color-fg-2:#9aa0a6;--color-fg-3:#6e7076;--color-fg-4:#4a4d52;--color-decision-allow:#34d399;--color-decision-block:#ef4444;--color-decision-ask:#f59e0b;--color-decision-force:#38bdf8;--color-decision-log:#a78bfa;--color-decision-shadow:#6e7076}}@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;-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}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-7{top:calc(var(--spacing) * 7)}.top-20{top:calc(var(--spacing) * 20)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-px{bottom:-1px}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-5{bottom:calc(var(--spacing) * 5)}.-left-\[9px\]{left:-9px}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-\[7px\]{left:7px}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-12{grid-column:span 12/span 12}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.-my-px{margin-block:-1px}.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-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.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{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-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-40{height:calc(var(--spacing) * 40)}.h-56{height:calc(var(--spacing) * 56)}.h-\[6px\]{height:6px}.h-\[64px\]{height:64px}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[60\%\]{max-height:60%}.max-h-\[60vh\]{max-height:60vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[70vh\]{min-height:70vh}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[2px\]{width:2px}.w-\[6px\]{width:6px}.w-full{width:100%}.w-px{width:1px}.max-w-\[60\%\]{max-width:60%}.max-w-\[65\%\]{max-width:65%}.max-w-\[120px\]{max-width:120px}.max-w-\[180px\]{max-width:180px}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[420px\]{max-width:420px}.max-w-\[460px\]{max-width:460px}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.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-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[72px_minmax\(0\,1fr\)_92px\]{grid-template-columns:72px minmax(0,1fr) 92px}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(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-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}: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-\[var\(--color-line-0\)\]>:not(:last-child)){border-color:var(--color-line-0)}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[1px\]{border-radius:1px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#2a2a2a\]{border-color:#2a2a2a}.border-\[var\(--color-border-1\,\#1c1f26\)\]{border-color:var(--color-border-1,#1c1f26)}.border-\[var\(--color-brand\)\]{border-color:var(--color-brand)}.border-\[var\(--color-brand\)\]\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-brand\)\]\/30{border-color:color-mix(in oklab, var(--color-brand) 30%, transparent)}}.border-\[var\(--color-brand\)\]\/40{border-color:#f59e0b66}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-brand\)\]\/40{border-color:color-mix(in oklab, var(--color-brand) 40%, transparent)}}.border-\[var\(--color-line-0\)\]{border-color:var(--color-line-0)}.border-\[var\(--color-line-1\)\]{border-color:var(--color-line-1)}.border-\[var\(--color-line-1\,\#242424\)\]{border-color:var(--color-line-1,#242424)}.border-\[var\(--color-line-2\)\]{border-color:var(--color-line-2)}.border-\[var\(--color-surface-1\)\]{border-color:var(--color-surface-1)}.border-amber-400\/20{border-color:#fcbb0033}@supports (color:color-mix(in lab, red, red)){.border-amber-400\/20{border-color:color-mix(in oklab, var(--color-amber-400) 20%, transparent)}}.border-amber-400\/60{border-color:#fcbb0099}@supports (color:color-mix(in lab, red, red)){.border-amber-400\/60{border-color:color-mix(in oklab, var(--color-amber-400) 60%, transparent)}}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/25{border-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/50{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/60{border-color:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.border-current\/40{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/40{border-color:color-mix(in oklab, currentcolor 40%, transparent)}}.border-cyan-500\/25{border-color:#00b7d740}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/25{border-color:color-mix(in oklab, var(--color-cyan-500) 25%, transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/25{border-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-emerald-500\/50{border-color:#00bb7f80}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/50{border-color:color-mix(in oklab, var(--color-emerald-500) 50%, transparent)}}.border-orange-500\/25{border-color:#fe6e0040}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/25{border-color:color-mix(in oklab, var(--color-orange-500) 25%, transparent)}}.border-red-400\/20{border-color:#ff656833}@supports (color:color-mix(in lab, red, red)){.border-red-400\/20{border-color:color-mix(in oklab, var(--color-red-400) 20%, transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab, red, red)){.border-red-500\/25{border-color:color-mix(in oklab, var(--color-red-500) 25%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-rose-500\/40{border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/40{border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.border-rose-500\/60{border-color:#ff235799}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/60{border-color:color-mix(in oklab, var(--color-rose-500) 60%, transparent)}}.border-sky-500\/25{border-color:#00a5ef40}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/25{border-color:color-mix(in oklab, var(--color-sky-500) 25%, transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/30{border-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.border-sky-500\/40{border-color:#00a5ef66}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/40{border-color:color-mix(in oklab, var(--color-sky-500) 40%, transparent)}}.border-sky-500\/50{border-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/50{border-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/25{border-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/25{border-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/30{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.border-violet-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/40{border-color:color-mix(in oklab, var(--color-violet-500) 40%, transparent)}}.border-l-\[var\(--color-line-1\)\]{border-left-color:var(--color-line-1)}.border-l-\[var\(--color-line-2\)\]{border-left-color:var(--color-line-2)}.border-l-amber-400\/60{border-left-color:#fcbb0099}@supports (color:color-mix(in lab, red, red)){.border-l-amber-400\/60{border-left-color:color-mix(in oklab, var(--color-amber-400) 60%, transparent)}}.border-l-amber-500\/70{border-left-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.border-l-amber-500\/70{border-left-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.border-l-emerald-500\/60{border-left-color:#00bb7f99}@supports (color:color-mix(in lab, red, red)){.border-l-emerald-500\/60{border-left-color:color-mix(in oklab, var(--color-emerald-500) 60%, transparent)}}.border-l-emerald-500\/70{border-left-color:#00bb7fb3}@supports (color:color-mix(in lab, red, red)){.border-l-emerald-500\/70{border-left-color:color-mix(in oklab, var(--color-emerald-500) 70%, transparent)}}.border-l-red-500\/50{border-left-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/50{border-left-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-l-red-500\/60{border-left-color:#fb2c3699}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/60{border-left-color:color-mix(in oklab, var(--color-red-500) 60%, transparent)}}.border-l-red-500\/70{border-left-color:#fb2c36b3}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/70{border-left-color:color-mix(in oklab, var(--color-red-500) 70%, transparent)}}.border-l-sky-400\/50{border-left-color:#00bcfe80}@supports (color:color-mix(in lab, red, red)){.border-l-sky-400\/50{border-left-color:color-mix(in oklab, var(--color-sky-400) 50%, transparent)}}.border-l-sky-500\/50{border-left-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.border-l-sky-500\/50{border-left-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.border-l-sky-500\/60{border-left-color:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.border-l-sky-500\/60{border-left-color:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.border-l-sky-500\/70{border-left-color:#00a5efb3}@supports (color:color-mix(in lab, red, red)){.border-l-sky-500\/70{border-left-color:color-mix(in oklab, var(--color-sky-500) 70%, transparent)}}.bg-\[\#0a0a0f\]\/95{background-color:oklab(14.7335% .00277905 -.0103663/.95)}.bg-\[\#0a0a0f\]\/96{background-color:oklab(14.7335% .00277905 -.0103663/.96)}.bg-\[\#111\]{background-color:#111}.bg-\[var\(--color-bg-2\)\]{background-color:var(--color-bg-2)}.bg-\[var\(--color-bg-2\,\#0c0d12\)\]\/95{background-color:var(--color-bg-2,#0c0d12)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-bg-2\,\#0c0d12\)\]\/95{background-color:color-mix(in oklab, var(--color-bg-2,#0c0d12) 95%, transparent)}}.bg-\[var\(--color-brand\)\]{background-color:var(--color-brand)}.bg-\[var\(--color-brand\)\]\/8{background-color:#f59e0b14}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-brand\)\]\/8{background-color:color-mix(in oklab, var(--color-brand) 8%, transparent)}}.bg-\[var\(--color-brand\)\]\/10{background-color:#f59e0b1a}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-brand\)\]\/10{background-color:color-mix(in oklab, var(--color-brand) 10%, transparent)}}.bg-\[var\(--color-brand\)\]\/70{background-color:#f59e0bb3}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-brand\)\]\/70{background-color:color-mix(in oklab, var(--color-brand) 70%, transparent)}}.bg-\[var\(--color-fg-3\)\]{background-color:var(--color-fg-3)}.bg-\[var\(--color-fg-4\)\]{background-color:var(--color-fg-4)}.bg-\[var\(--color-fg-4\)\]\/10{background-color:#4a4d521a}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-fg-4\)\]\/10{background-color:color-mix(in oklab, var(--color-fg-4) 10%, transparent)}}.bg-\[var\(--color-fg-4\)\]\/40{background-color:#4a4d5266}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-fg-4\)\]\/40{background-color:color-mix(in oklab, var(--color-fg-4) 40%, transparent)}}.bg-\[var\(--color-line-2\)\]{background-color:var(--color-line-2)}.bg-\[var\(--color-surface-0\)\]{background-color:var(--color-surface-0)}.bg-\[var\(--color-surface-0\)\]\/98{background-color:#080808fa}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface-0\)\]\/98{background-color:color-mix(in oklab, var(--color-surface-0) 98%, transparent)}}.bg-\[var\(--color-surface-1\)\]{background-color:var(--color-surface-1)}.bg-\[var\(--color-surface-1\)\]\/50{background-color:#0d0d0d80}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface-1\)\]\/50{background-color:color-mix(in oklab, var(--color-surface-1) 50%, transparent)}}.bg-\[var\(--color-surface-1\)\]\/60{background-color:#0d0d0d99}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface-1\)\]\/60{background-color:color-mix(in oklab, var(--color-surface-1) 60%, transparent)}}.bg-\[var\(--color-surface-2\)\]{background-color:var(--color-surface-2)}.bg-\[var\(--color-surface-2\,\#121212\)\]{background-color:var(--color-surface-2,#121212)}.bg-\[var\(--color-surface-3\)\]{background-color:var(--color-surface-3)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/8{background-color:#fcbb0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/8{background-color:color-mix(in oklab, var(--color-amber-400) 8%, transparent)}}.bg-amber-400\/\[0\.04\]{background-color:#fcbb000a}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-amber-400) 4%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/5{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.bg-amber-500\/8{background-color:#f99c0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/8{background-color:color-mix(in oklab, var(--color-amber-500) 8%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-black\/95{background-color:#000000f2}@supports (color:color-mix(in lab, red, red)){.bg-black\/95{background-color:color-mix(in oklab, var(--color-black) 95%, transparent)}}.bg-cyan-500\/8{background-color:#00b7d714}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/8{background-color:color-mix(in oklab, var(--color-cyan-500) 8%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/5{background-color:color-mix(in oklab, var(--color-emerald-500) 5%, transparent)}}.bg-emerald-500\/8{background-color:#00bb7f14}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/8{background-color:color-mix(in oklab, var(--color-emerald-500) 8%, transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-500\/\[0\.06\]{background-color:#00bb7f0f}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-emerald-500) 6%, transparent)}}.bg-orange-500\/8{background-color:#fe6e0014}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/8{background-color:color-mix(in oklab, var(--color-orange-500) 8%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/5{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.bg-red-500\/8{background-color:#fb2c3614}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/8{background-color:color-mix(in oklab, var(--color-red-500) 8%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/\[0\.06\]{background-color:#fb2c360f}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-red-500) 6%, transparent)}}.bg-sky-300{background-color:var(--color-sky-300)}.bg-sky-400{background-color:var(--color-sky-400)}.bg-sky-400\/60{background-color:#00bcfe99}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/60{background-color:color-mix(in oklab, var(--color-sky-400) 60%, transparent)}}.bg-sky-500{background-color:var(--color-sky-500)}.bg-sky-500\/5{background-color:#00a5ef0d}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/5{background-color:color-mix(in oklab, var(--color-sky-500) 5%, transparent)}}.bg-sky-500\/8{background-color:#00a5ef14}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/8{background-color:color-mix(in oklab, var(--color-sky-500) 8%, transparent)}}.bg-sky-500\/10{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/10{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.bg-sky-500\/15{background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/15{background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-400{background-color:var(--color-violet-400)}.bg-violet-400\/60{background-color:#a685ff99}@supports (color:color-mix(in lab, red, red)){.bg-violet-400\/60{background-color:color-mix(in oklab, var(--color-violet-400) 60%, transparent)}}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/8{background-color:#8d54ff14}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/8{background-color:color-mix(in oklab, var(--color-violet-500) 8%, transparent)}}.object-contain{object-fit:contain}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.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)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.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-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-px{padding-block:1px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-48{padding-left:calc(var(--spacing) * 48)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[1\.9rem\]{font-size:1.9rem}.text-\[2\.4rem\]{font-size:2.4rem}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#555\]{color:#555}.text-\[\#666\]{color:#666}.text-\[\#aaa\]{color:#aaa}.text-\[var\(--color-brand\)\]{color:var(--color-brand)}.text-\[var\(--color-brand\)\]\/70{color:#f59e0bb3}@supports (color:color-mix(in lab, red, red)){.text-\[var\(--color-brand\)\]\/70{color:color-mix(in oklab, var(--color-brand) 70%, transparent)}}.text-\[var\(--color-brand\)\]\/80{color:#f59e0bcc}@supports (color:color-mix(in lab, red, red)){.text-\[var\(--color-brand\)\]\/80{color:color-mix(in oklab, var(--color-brand) 80%, transparent)}}.text-\[var\(--color-brand\)\]\/90{color:#f59e0be6}@supports (color:color-mix(in lab, red, red)){.text-\[var\(--color-brand\)\]\/90{color:color-mix(in oklab, var(--color-brand) 90%, transparent)}}.text-\[var\(--color-fg-0\)\]{color:var(--color-fg-0)}.text-\[var\(--color-fg-0\,\#e6e8ed\)\]{color:var(--color-fg-0,#e6e8ed)}.text-\[var\(--color-fg-0\,\#f5f5f5\)\]{color:var(--color-fg-0,#f5f5f5)}.text-\[var\(--color-fg-1\)\]{color:var(--color-fg-1)}.text-\[var\(--color-fg-2\)\]{color:var(--color-fg-2)}.text-\[var\(--color-fg-2\,\#9aa1ad\)\]{color:var(--color-fg-2,#9aa1ad)}.text-\[var\(--color-fg-3\)\]{color:var(--color-fg-3)}.text-\[var\(--color-fg-4\)\]{color:var(--color-fg-4)}.text-\[var\(--color-fg-4\,\#5a6071\)\]{color:var(--color-fg-4,#5a6071)}.text-\[var\(--color-line-2\)\]{color:var(--color-line-2)}.text-amber-100{color:var(--color-amber-100)}.text-amber-200{color:var(--color-amber-200)}.text-amber-200\/80{color:#fee685cc}@supports (color:color-mix(in lab, red, red)){.text-amber-200\/80{color:color-mix(in oklab, var(--color-amber-200) 80%, transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab, red, red)){.text-amber-300\/80{color:color-mix(in oklab, var(--color-amber-300) 80%, transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/70{color:#fcbb00b3}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/70{color:color-mix(in oklab, var(--color-amber-400) 70%, transparent)}}.text-amber-500\/50{color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.text-amber-500\/50{color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.text-black{color:var(--color-black)}.text-cyan-300{color:var(--color-cyan-300)}.text-emerald-200{color:var(--color-emerald-200)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-orange-300{color:var(--color-orange-300)}.text-red-100{color:var(--color-red-100)}.text-red-200{color:var(--color-red-200)}.text-red-200\/80{color:#ffcacacc}@supports (color:color-mix(in lab, red, red)){.text-red-200\/80{color:color-mix(in oklab, var(--color-red-200) 80%, transparent)}}.text-red-300{color:var(--color-red-300)}.text-red-300\/80{color:#ffa3a3cc}@supports (color:color-mix(in lab, red, red)){.text-red-300\/80{color:color-mix(in oklab, var(--color-red-300) 80%, transparent)}}.text-red-400{color:var(--color-red-400)}.text-rose-200{color:var(--color-rose-200)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-sky-200{color:var(--color-sky-200)}.text-sky-300{color:var(--color-sky-300)}.text-sky-400{color:var(--color-sky-400)}.text-violet-300{color:var(--color-violet-300)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.placeholder-\[var\(--color-fg-4\)\]::placeholder{color:var(--color-fg-4)}.accent-\[var\(--color-brand\)\]{accent-color:var(--color-brand)}.accent-emerald-500{accent-color:var(--color-emerald-500)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.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)}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-emerald-500\/40{--tw-ring-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.ring-emerald-500\/40{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 40%, 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,)}.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-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:text-\[var\(--color-fg-2\)\]:is(:where(.group):hover *){color:var(--color-fg-2)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.marker\:text-\[var\(--color-fg-4\)\] ::marker{color:var(--color-fg-4)}.marker\:text-\[var\(--color-fg-4\)\]::marker{color:var(--color-fg-4)}.marker\:text-\[var\(--color-fg-4\)\] ::-webkit-details-marker{color:var(--color-fg-4)}.marker\:text-\[var\(--color-fg-4\)\]::-webkit-details-marker{color:var(--color-fg-4)}.placeholder\:text-\[var\(--color-fg-4\)\]::placeholder{color:var(--color-fg-4)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-l-2:hover{border-left-style:var(--tw-border-style);border-left-width:2px}.hover\:border-\[var\(--color-brand\)\]\/40:hover{border-color:#f59e0b66}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--color-brand\)\]\/40:hover{border-color:color-mix(in oklab, var(--color-brand) 40%, transparent)}}.hover\:border-\[var\(--color-brand\)\]\/50:hover{border-color:#f59e0b80}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--color-brand\)\]\/50:hover{border-color:color-mix(in oklab, var(--color-brand) 50%, transparent)}}.hover\:border-\[var\(--color-line-2\)\]:hover{border-color:var(--color-line-2)}.hover\:border-amber-400:hover{border-color:var(--color-amber-400)}.hover\:border-amber-500\/40:hover{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-500\/40:hover{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.hover\:border-emerald-500\/40:hover{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/40:hover{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.hover\:border-red-500\/40:hover{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/40:hover{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.hover\:border-red-500\/60:hover{border-color:#fb2c3699}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/60:hover{border-color:color-mix(in oklab, var(--color-red-500) 60%, transparent)}}.hover\:border-rose-500\/40:hover{border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.hover\:border-rose-500\/40:hover{border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.hover\:border-sky-500\/40:hover{border-color:#00a5ef66}@supports (color:color-mix(in lab, red, red)){.hover\:border-sky-500\/40:hover{border-color:color-mix(in oklab, var(--color-sky-500) 40%, transparent)}}.hover\:border-sky-500\/50:hover{border-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.hover\:border-sky-500\/50:hover{border-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.hover\:bg-\[var\(--color-brand\)\]\/15:hover{background-color:#f59e0b26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--color-brand\)\]\/15:hover{background-color:color-mix(in oklab, var(--color-brand) 15%, transparent)}}.hover\:bg-\[var\(--color-brand-hover\)\]:hover{background-color:var(--color-brand-hover)}.hover\:bg-\[var\(--color-surface-1\)\]:hover{background-color:var(--color-surface-1)}.hover\:bg-\[var\(--color-surface-2\)\]:hover{background-color:var(--color-surface-2)}.hover\:bg-\[var\(--color-surface-2\)\]\/60:hover{background-color:#12121299}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--color-surface-2\)\]\/60:hover{background-color:color-mix(in oklab, var(--color-surface-2) 60%, transparent)}}.hover\:bg-\[var\(--color-surface-2\)\]\/70:hover{background-color:#121212b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--color-surface-2\)\]\/70:hover{background-color:color-mix(in oklab, var(--color-surface-2) 70%, transparent)}}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/15:hover{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.hover\:bg-sky-400\/5:hover{background-color:#00bcfe0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-400\/5:hover{background-color:color-mix(in oklab, var(--color-sky-400) 5%, transparent)}}.hover\:bg-sky-500\/10:hover{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/10:hover{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.hover\:bg-sky-500\/15:hover{background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/15:hover{background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.hover\:bg-violet-500\/10:hover{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-violet-500\/10:hover{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.hover\:bg-white\/3:hover{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/3:hover{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-\[var\(--color-brand\)\]:hover{color:var(--color-brand)}.hover\:text-\[var\(--color-fg-0\)\]:hover{color:var(--color-fg-0)}.hover\:text-\[var\(--color-fg-1\)\]:hover{color:var(--color-fg-1)}.hover\:text-\[var\(--color-fg-2\)\]:hover{color:var(--color-fg-2)}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-red-200:hover{color:var(--color-red-200)}.hover\:text-rose-300:hover{color:var(--color-rose-300)}.hover\:text-sky-200:hover{color:var(--color-sky-200)}.hover\:text-sky-300:hover{color:var(--color-sky-300)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-\[var\(--color-brand\)\]:focus{border-color:var(--color-brand)}.focus\:border-\[var\(--color-brand\)\]\/50:focus{border-color:#f59e0b80}@supports (color:color-mix(in lab, red, red)){.focus\:border-\[var\(--color-brand\)\]\/50:focus{border-color:color-mix(in oklab, var(--color-brand) 50%, transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[var\(--color-brand\)\]:focus{--tw-ring-color:var(--color-brand)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--color-brand\)\]:focus-visible{--tw-ring-color:var(--color-brand)}.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-\[var\(--color-surface-0\)\]:focus-visible{--tw-ring-offset-color:var(--color-surface-0)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}}@media (width>=48rem){.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-7{grid-column:span 7/span 7}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:h-\[calc\(100dvh-4\.5rem\)\]{height:calc(100dvh - 4.5rem)}.md\:min-h-\[560px\]{min-height:560px}.md\:overflow-hidden{overflow:hidden}}@media (width>=64rem){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[1fr_240px\]{grid-template-columns:1fr 240px}.lg\:grid-cols-\[1fr_300px\]{grid-template-columns:1fr 300px}}@media (width>=80rem){.xl\:grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.xl\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}}}:root[data-theme=light]{--color-brand:#d97706;--color-brand-hover:#b45309;--color-accent:#d97706;--color-surface-0:#f8f8f8;--color-surface-1:#f0f0f0;--color-surface-2:#e8e8e8;--color-surface-3:#dcdcdc;--color-surface-4:#d0d0d0;--color-line-0:#e0e0e0;--color-line-1:#d0d0d0;--color-line-2:silver;--color-fg-0:#111;--color-fg-1:#2c2c2c;--color-fg-2:#525252;--color-fg-3:#737373;--color-fg-4:#a3a3a3;--color-fg-5:#d4d4d4;--color-decision-allow:#059669;--color-decision-block:#dc2626;--color-decision-ask:#d97706;--color-decision-force:#0284c7;--color-decision-log:#7c3aed;--color-decision-shadow:#737373;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dracula]{--color-brand:#ff79c6;--color-brand-hover:#ff92d0;--color-accent:#ff79c6;--color-surface-0:#1e2029;--color-surface-1:#282a36;--color-surface-2:#2f3240;--color-surface-3:#343746;--color-surface-4:#3a3e4d;--color-line-0:#3a3e4d;--color-line-1:#44475a;--color-line-2:#525669;--color-fg-0:#f8f8f2;--color-fg-1:#e2dfe8;--color-fg-2:#b0adb8;--color-fg-3:#6272a4;--color-fg-4:#454862;--color-fg-5:#353750;--color-decision-allow:#50fa7b;--color-decision-block:#f55;--color-decision-ask:#ffb86c;--color-decision-force:#8be9fd;--color-decision-log:#bd93f9;--color-decision-shadow:#6272a4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=gruvbox-dark]{--color-brand:#fabd2f;--color-brand-hover:#d79921;--color-accent:#fabd2f;--color-surface-0:#1d2021;--color-surface-1:#282828;--color-surface-2:#32302f;--color-surface-3:#3c3836;--color-surface-4:#504945;--color-line-0:#3c3836;--color-line-1:#504945;--color-line-2:#665c54;--color-fg-0:#fbf1c7;--color-fg-1:#ebdbb2;--color-fg-2:#d5c4a1;--color-fg-3:#bdae93;--color-fg-4:#928374;--color-fg-5:#7c6f64;--color-decision-allow:#b8bb26;--color-decision-block:#fb4934;--color-decision-ask:#fabd2f;--color-decision-force:#83a598;--color-decision-log:#d3869b;--color-decision-shadow:#928374;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=gruvbox-light]{--color-brand:#d65d0e;--color-brand-hover:#af3a03;--color-accent:#d65d0e;--color-surface-0:#f9f5d7;--color-surface-1:#fbf1c7;--color-surface-2:#f2e5bc;--color-surface-3:#ebdbb2;--color-surface-4:#d5c4a1;--color-line-0:#d5c4a1;--color-line-1:#bdae93;--color-line-2:#a89984;--color-fg-0:#282828;--color-fg-1:#3c3836;--color-fg-2:#504945;--color-fg-3:#665c54;--color-fg-4:#7c6f64;--color-fg-5:#928374;--color-decision-allow:#79740e;--color-decision-block:#9d0006;--color-decision-ask:#d65d0e;--color-decision-force:#076678;--color-decision-log:#8f3f71;--color-decision-shadow:#928374;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=tokyo-night]{--color-brand:#7aa2f7;--color-brand-hover:#89b4fa;--color-accent:#7aa2f7;--color-surface-0:#13141f;--color-surface-1:#1a1b26;--color-surface-2:#1f2033;--color-surface-3:#24283b;--color-surface-4:#2a2e42;--color-line-0:#292e42;--color-line-1:#313552;--color-line-2:#3d4166;--color-fg-0:#c0caf5;--color-fg-1:#a9b1d6;--color-fg-2:#9aa5ce;--color-fg-3:#565f89;--color-fg-4:#414868;--color-fg-5:#2f334d;--color-decision-allow:#9ece6a;--color-decision-block:#f7768e;--color-decision-ask:#e0af68;--color-decision-force:#7aa2f7;--color-decision-log:#bb9af7;--color-decision-shadow:#565f89;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=catppuccin-mocha]{--color-brand:#cba6f7;--color-brand-hover:#d8b4fe;--color-accent:#cba6f7;--color-surface-0:#11111b;--color-surface-1:#1e1e2e;--color-surface-2:#181825;--color-surface-3:#1e2030;--color-surface-4:#242538;--color-line-0:#313244;--color-line-1:#45475a;--color-line-2:#585b70;--color-fg-0:#cdd6f4;--color-fg-1:#bac2de;--color-fg-2:#a6adc8;--color-fg-3:#7f849c;--color-fg-4:#6c7086;--color-fg-5:#585b70;--color-decision-allow:#a6e3a1;--color-decision-block:#f38ba8;--color-decision-ask:#fab387;--color-decision-force:#89b4fa;--color-decision-log:#cba6f7;--color-decision-shadow:#7f849c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=nord]{--color-brand:#88c0d0;--color-brand-hover:#81b2c6;--color-accent:#88c0d0;--color-surface-0:#242831;--color-surface-1:#2e3440;--color-surface-2:#3b4252;--color-surface-3:#434c5e;--color-surface-4:#4c566a;--color-line-0:#3b4252;--color-line-1:#434c5e;--color-line-2:#4c566a;--color-fg-0:#eceff4;--color-fg-1:#e5e9f0;--color-fg-2:#d8dee9;--color-fg-3:#aab0be;--color-fg-4:#7b8394;--color-fg-5:#616b7e;--color-decision-allow:#a3be8c;--color-decision-block:#bf616a;--color-decision-ask:#d08770;--color-decision-force:#88c0d0;--color-decision-log:#b48ead;--color-decision-shadow:#7b8394;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=one-dark-pro]{--color-brand:#61afef;--color-brand-hover:#73bbf5;--color-accent:#61afef;--color-surface-0:#1e2127;--color-surface-1:#282c34;--color-surface-2:#2c313a;--color-surface-3:#333841;--color-surface-4:#3e4451;--color-line-0:#3e4451;--color-line-1:#4b5263;--color-line-2:#5c6370;--color-fg-0:#abb2bf;--color-fg-1:#9da5b4;--color-fg-2:#8b939f;--color-fg-3:#5c6370;--color-fg-4:#4b5263;--color-fg-5:#3e4451;--color-decision-allow:#98c379;--color-decision-block:#e06c75;--color-decision-ask:#e5c07b;--color-decision-force:#61afef;--color-decision-log:#c678dd;--color-decision-shadow:#5c6370;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#app-root{height:100%;margin:0;padding:0}body{background:var(--color-surface-0);color:var(--color-fg-1);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11";font-family:ui-sans-serif,-apple-system,Inter,system-ui,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-line-2);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--color-fg-4)}code,pre,kbd,samp,.font-mono{font-feature-settings:"zero", "cv01";font-family:JetBrains Mono,SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace}.overline{text-transform:uppercase;letter-spacing:.1em;color:var(--color-fg-3);font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:13px;font-weight:500;line-height:1}.rule-hairline{background:linear-gradient(to right, transparent, var(--color-line-1) 12%, var(--color-line-1) 88%, transparent);width:100%;height:1px}.status-dot{border-radius:2px;flex-shrink:0;width:6px;height:6px;display:inline-block}.bg-grid{background-image:linear-gradient(var(--color-line-0) 1px, transparent 1px), linear-gradient(to right, var(--color-line-0) 1px, transparent 1px);background-position:-1px -1px;background-size:24px 24px}.chip{border:1px solid var(--color-line-1);background:var(--color-surface-2);color:var(--color-fg-2);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:2px;align-items:center;gap:4px;padding:2px 6px;font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;line-height:1;display:inline-flex}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}.pulse-soft{animation:1.8s ease-in-out infinite pulse-soft}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg, var(--color-surface-1) 0%, var(--color-surface-2) 50%, var(--color-surface-1) 100%);background-size:200% 100%;animation:1.6s linear infinite shimmer}.hero-metric{isolation:isolate;contain:layout style;border-color:var(--tick-accent,#f59e0b)}@supports (color:color-mix(in lab, red, red)){.hero-metric{border-color:color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(var(--tick,0) * 80%), var(--color-line-1))}}.hero-metric{box-shadow:0 0 0 4px var(--tick-accent,#f59e0b), 0 10px 22px var(--tick-accent,#f59e0b)}@supports (color:color-mix(in lab, red, red)){.hero-metric{box-shadow:0 0 0 4px color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(var(--tick,0) * 18%), transparent), 0 10px 22px color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(var(--tick,0) * 10%), transparent)}}.hero-metric:before{content:"";background:radial-gradient(160% 80% at 0% 100%, var(--tick-accent,#f59e0b) 0%, transparent 60%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.hero-metric:before{background:radial-gradient(160% 80% at 0% 100%, color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(14% + var(--tick,0) * 22%), transparent) 0%, transparent 60%)}}.hero-metric:before{pointer-events:none;z-index:0}.hero-metric>*{z-index:1;position:relative}.hero-metric--neutral{--tick-accent:var(--color-brand)}.hero-metric--amber{--tick-accent:var(--color-decision-ask)}.hero-metric--green{--tick-accent:var(--color-decision-allow)}.hero-metric--red{--tick-accent:var(--color-decision-block)}.hero-metric--blue{--tick-accent:var(--color-decision-force)}.hero-metric--purple{--tick-accent:var(--color-decision-log)}.hero-metric--gray{--tick-accent:var(--color-fg-3)}.telemetry-row{font-variant-numeric:tabular-nums;contain:layout style paint;transition:background 80ms linear}.grid-bleed{isolation:isolate;position:relative}.grid-bleed:before{content:"";background:radial-gradient(120% 60% at 0 0,#f59e0b0f 0%,#0000 55%),radial-gradient(120% 60% at 100% 100%,#f59e0b0a 0%,#0000 60%);position:absolute;inset:-1px}@supports (color:color-mix(in lab, red, red)){.grid-bleed:before{background:radial-gradient(120% 60% at 0% 0%, color-mix(in srgb, var(--color-accent) 6%, transparent) 0%, transparent 55%), radial-gradient(120% 60% at 100% 100%, color-mix(in srgb, var(--color-accent) 4%, transparent) 0%, transparent 60%)}}.grid-bleed:before{pointer-events:none;z-index:0;border-radius:inherit}.grid-bleed>*{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.hero-metric{box-shadow:none;border-color:var(--color-line-1)}}.system-pulse__tile{--breach:0;contain:layout style;box-shadow:0 0 0 4px #ef4444}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-decision-block) calc(var(--breach) * 55%), transparent)}}.system-pulse__tile{border-color:#ef4444}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile{border-color:color-mix(in srgb, var(--color-decision-block) calc(var(--breach) * 45%), var(--color-line-1))}}@media (prefers-reduced-motion:reduce){.system-pulse__tile[data-breach=true]{box-shadow:0 0 0 3px #ef444466}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile[data-breach=true]{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-decision-block) 40%, transparent)}}.system-pulse__tile[data-breach=true]{border-color:#753131}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile[data-breach=true]{border-color:color-mix(in srgb, var(--color-decision-block) 40%, var(--color-line-1))}}}[data-reveal]{will-change:auto}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important}}.grid-layout{isolation:isolate;grid-template-columns:repeat(12,1fr);grid-auto-rows:72px;gap:20px;display:grid;position:relative}@media (width<=767px){.grid-layout{grid-template-columns:1fr;grid-auto-rows:auto;gap:12px}.grid-panel{min-height:200px;overflow-x:hidden;grid-column:1/-1!important}}.grid-layout--editing:before{content:"";pointer-events:none;background-image:radial-gradient(circle,#f59e0b38 1px,#0000 1.5px);position:absolute;inset:-10px}@supports (color:color-mix(in lab, red, red)){.grid-layout--editing:before{background-image:radial-gradient(circle at center, color-mix(in srgb, var(--color-accent) 22%, transparent) 1px, transparent 1.5px)}}.grid-layout--editing:before{opacity:.18;z-index:-1;background-position:50%;background-size:8.33333% 24px;border:1px dashed #f59e0b3d}@supports (color:color-mix(in lab, red, red)){.grid-layout--editing:before{border:1px dashed color-mix(in srgb, var(--color-accent) 24%, transparent)}}.grid-layout--editing:before{border-radius:3px}.grid-panel{contain:layout style;flex-direction:column;min-width:0;min-height:0;transition:box-shadow .16s ease-out,outline-color .16s ease-out;display:flex;position:relative}.grid-panel__content{contain:layout style;flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.grid-panel__content>*{flex:auto;min-width:0;min-height:0}.grid-panel--edit{outline-offset:2px;border-radius:3px;outline:1px solid #0000}.grid-panel--edit:hover{outline-color:#f59e0b73}@supports (color:color-mix(in lab, red, red)){.grid-panel--edit:hover{outline-color:color-mix(in srgb, var(--color-accent) 45%, transparent)}}.grid-panel--edit:focus-visible{outline-color:var(--color-accent);outline-width:1.5px}.grid-panel__drag-handle{z-index:3;border:1px solid var(--color-line-2);background:#181818eb;border-top:none;border-radius:0 0 6px 6px;justify-content:center;align-items:center;width:44px;height:14px;padding:0;display:inline-flex;position:absolute;top:2px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.grid-panel__drag-handle{background:color-mix(in srgb, var(--color-surface-3) 92%, transparent)}}.grid-panel__drag-handle{color:var(--color-fg-3);cursor:grab;touch-action:none;opacity:.85;transition:opacity .12s ease-out,border-color .12s ease-out,color .12s ease-out}.grid-panel__drag-handle:hover{opacity:1;color:var(--color-fg-0);border-color:var(--color-accent)}.grid-panel__drag-handle:active{cursor:grabbing}.grid-panel__resize-handle{z-index:3;width:20px;height:20px;color:var(--color-fg-3);cursor:nwse-resize;touch-action:none;opacity:.8;background:0 0;border:none;justify-content:flex-end;align-items:flex-end;padding:0;transition:opacity .12s ease-out,color .12s ease-out;display:inline-flex;position:absolute;bottom:2px;right:2px}.grid-panel__resize-handle:hover{color:var(--color-accent);opacity:1}.grid-panel--dragging,.grid-panel--resizing{box-shadow:0 12px 28px #0000008c, 0 0 0 1px var(--color-accent);opacity:.95;cursor:grabbing;will-change:transform}@media (prefers-reduced-motion:reduce){.grid-panel{transition:none}}@keyframes milestone-flash{0%{box-shadow:0 0 #22c55ecc,0 0 #22c55e4d}30%{box-shadow:0 0 0 3px #22c55ea6,0 0 0 8px #22c55e2e}to{box-shadow:0 0 #22c55e00,0 0 #22c55e00}}.milestone-ring{animation:.7s ease-out forwards milestone-flash}@keyframes record-pulse{0%{color:#e6e8ed}25%{color:#fbbf24;text-shadow:0 0 8px #fbbf24cc}75%{color:#fbbf24;text-shadow:0 0 4px #fbbf2466}to{color:#e6e8ed;text-shadow:none}}.record-beat{animation:.45s ease-out forwards record-pulse}@media (prefers-reduced-motion:reduce){.milestone-ring,.record-beat{animation:none}}[class*="text-[10px]"]{font-size:14px!important;line-height:1.25!important}[class*="text-[11px]"]{font-size:16px!important;line-height:1.3!important}[class*="text-[12px]"]{font-size:17px!important;line-height:1.3!important}[class*="text-[13px]"]{font-size:18px!important;line-height:1.3!important}[class*="text-[14px]"]{font-size:19px!important}.text-xs{font-size:16px!important;line-height:1.3!important}.text-sm{font-size:18px!important;line-height:1.4!important}.text-base{font-size:20px!important}.chip{padding:3px 7px!important;font-size:13px!important}@keyframes achievement-toast-enter{0%{opacity:0;transform:translate(-40px)scale(.92)}60%{opacity:1;transform:translate(4px)scale(1.02)}to{opacity:1;transform:translate(0)scale(1)}}.achievement-toast-enter{will-change:transform, opacity;animation:.38s cubic-bezier(.18,.89,.32,1.28) achievement-toast-enter}@media (prefers-reduced-motion:reduce){.achievement-toast-enter{animation:none}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-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}}}@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-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-300:oklch(86.5% .127 207.078);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--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-rose-200:oklch(89.2% .058 10.001);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--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);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--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);--color-brand:#f59e0b;--color-brand-hover:#fbbf24;--color-accent:#f59e0b;--color-surface-0:#080808;--color-surface-1:#0d0d0d;--color-surface-2:#121212;--color-surface-3:#181818;--color-line-0:#1a1a1a;--color-line-1:#242424;--color-line-2:#2e2e2e;--color-fg-0:#f5f5f5;--color-fg-1:#d0d0d0;--color-fg-2:#9aa0a6;--color-fg-3:#6e7076;--color-fg-4:#4a4d52;--color-decision-allow:#34d399;--color-decision-block:#ef4444;--color-decision-ask:#f59e0b;--color-decision-force:#38bdf8;--color-decision-log:#a78bfa;--color-decision-shadow:#6e7076}}@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;-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}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-7{top:calc(var(--spacing) * 7)}.top-20{top:calc(var(--spacing) * 20)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-px{bottom:-1px}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-5{bottom:calc(var(--spacing) * 5)}.-left-\[9px\]{left:-9px}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-3{left:calc(var(--spacing) * 3)}.left-\[7px\]{left:7px}.z-10{z-index:10}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-12{grid-column:span 12/span 12}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-3{margin-inline:calc(var(--spacing) * -3)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.-my-px{margin-block:-1px}.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-auto{margin-top:auto}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.block{display:block}.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{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-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-40{height:calc(var(--spacing) * 40)}.h-56{height:calc(var(--spacing) * 56)}.h-\[6px\]{height:6px}.h-\[64px\]{height:64px}.h-full{height:100%}.h-px{height:1px}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[60\%\]{max-height:60%}.max-h-\[60vh\]{max-height:60vh}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[70vh\]{min-height:70vh}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[2px\]{width:2px}.w-\[6px\]{width:6px}.w-full{width:100%}.w-px{width:1px}.max-w-\[60\%\]{max-width:60%}.max-w-\[65\%\]{max-width:65%}.max-w-\[120px\]{max-width:120px}.max-w-\[180px\]{max-width:180px}.max-w-\[260px\]{max-width:260px}.max-w-\[280px\]{max-width:280px}.max-w-\[420px\]{max-width:420px}.max-w-\[460px\]{max-width:460px}.max-w-\[calc\(100\%-1rem\)\]{max-width:calc(100% - 1rem)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.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-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[280px\]{min-width:280px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[72px_minmax\(0\,1fr\)_92px\]{grid-template-columns:72px minmax(0,1fr) 92px}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 0) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 0) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(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-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}: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-\[var\(--color-line-0\)\]>:not(:last-child)){border-color:var(--color-line-0)}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[1px\]{border-radius:1px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-x-0{border-inline-style:var(--tw-border-style);border-inline-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.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-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#2a2a2a\]{border-color:#2a2a2a}.border-\[var\(--color-border-1\,\#1c1f26\)\]{border-color:var(--color-border-1,#1c1f26)}.border-\[var\(--color-brand\)\]{border-color:var(--color-brand)}.border-\[var\(--color-brand\)\]\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-brand\)\]\/30{border-color:color-mix(in oklab, var(--color-brand) 30%, transparent)}}.border-\[var\(--color-brand\)\]\/40{border-color:#f59e0b66}@supports (color:color-mix(in lab, red, red)){.border-\[var\(--color-brand\)\]\/40{border-color:color-mix(in oklab, var(--color-brand) 40%, transparent)}}.border-\[var\(--color-line-0\)\]{border-color:var(--color-line-0)}.border-\[var\(--color-line-1\)\]{border-color:var(--color-line-1)}.border-\[var\(--color-line-1\,\#242424\)\]{border-color:var(--color-line-1,#242424)}.border-\[var\(--color-line-2\)\]{border-color:var(--color-line-2)}.border-\[var\(--color-surface-1\)\]{border-color:var(--color-surface-1)}.border-amber-400\/20{border-color:#fcbb0033}@supports (color:color-mix(in lab, red, red)){.border-amber-400\/20{border-color:color-mix(in oklab, var(--color-amber-400) 20%, transparent)}}.border-amber-500\/25{border-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/25{border-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/50{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/60{border-color:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.border-current\/40{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/40{border-color:color-mix(in oklab, currentcolor 40%, transparent)}}.border-cyan-500\/25{border-color:#00b7d740}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/25{border-color:color-mix(in oklab, var(--color-cyan-500) 25%, transparent)}}.border-emerald-500\/20{border-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/20{border-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.border-emerald-500\/25{border-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/25{border-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-orange-500\/25{border-color:#fe6e0040}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/25{border-color:color-mix(in oklab, var(--color-orange-500) 25%, transparent)}}.border-red-400\/20{border-color:#ff656833}@supports (color:color-mix(in lab, red, red)){.border-red-400\/20{border-color:color-mix(in oklab, var(--color-red-400) 20%, transparent)}}.border-red-500\/25{border-color:#fb2c3640}@supports (color:color-mix(in lab, red, red)){.border-red-500\/25{border-color:color-mix(in oklab, var(--color-red-500) 25%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-rose-500\/40{border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/40{border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.border-rose-500\/60{border-color:#ff235799}@supports (color:color-mix(in lab, red, red)){.border-rose-500\/60{border-color:color-mix(in oklab, var(--color-rose-500) 60%, transparent)}}.border-sky-500\/25{border-color:#00a5ef40}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/25{border-color:color-mix(in oklab, var(--color-sky-500) 25%, transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/30{border-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.border-sky-500\/40{border-color:#00a5ef66}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/40{border-color:color-mix(in oklab, var(--color-sky-500) 40%, transparent)}}.border-sky-500\/50{border-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/50{border-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.border-transparent{border-color:#0000}.border-violet-500\/25{border-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/25{border-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/30{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.border-violet-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/40{border-color:color-mix(in oklab, var(--color-violet-500) 40%, transparent)}}.border-l-\[var\(--color-line-1\)\]{border-left-color:var(--color-line-1)}.border-l-\[var\(--color-line-2\)\]{border-left-color:var(--color-line-2)}.border-l-amber-400\/60{border-left-color:#fcbb0099}@supports (color:color-mix(in lab, red, red)){.border-l-amber-400\/60{border-left-color:color-mix(in oklab, var(--color-amber-400) 60%, transparent)}}.border-l-amber-500\/70{border-left-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.border-l-amber-500\/70{border-left-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.border-l-emerald-500\/60{border-left-color:#00bb7f99}@supports (color:color-mix(in lab, red, red)){.border-l-emerald-500\/60{border-left-color:color-mix(in oklab, var(--color-emerald-500) 60%, transparent)}}.border-l-emerald-500\/70{border-left-color:#00bb7fb3}@supports (color:color-mix(in lab, red, red)){.border-l-emerald-500\/70{border-left-color:color-mix(in oklab, var(--color-emerald-500) 70%, transparent)}}.border-l-red-500\/50{border-left-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/50{border-left-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-l-red-500\/60{border-left-color:#fb2c3699}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/60{border-left-color:color-mix(in oklab, var(--color-red-500) 60%, transparent)}}.border-l-red-500\/70{border-left-color:#fb2c36b3}@supports (color:color-mix(in lab, red, red)){.border-l-red-500\/70{border-left-color:color-mix(in oklab, var(--color-red-500) 70%, transparent)}}.border-l-sky-400\/50{border-left-color:#00bcfe80}@supports (color:color-mix(in lab, red, red)){.border-l-sky-400\/50{border-left-color:color-mix(in oklab, var(--color-sky-400) 50%, transparent)}}.border-l-sky-500\/50{border-left-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.border-l-sky-500\/50{border-left-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.border-l-sky-500\/60{border-left-color:#00a5ef99}@supports (color:color-mix(in lab, red, red)){.border-l-sky-500\/60{border-left-color:color-mix(in oklab, var(--color-sky-500) 60%, transparent)}}.border-l-sky-500\/70{border-left-color:#00a5efb3}@supports (color:color-mix(in lab, red, red)){.border-l-sky-500\/70{border-left-color:color-mix(in oklab, var(--color-sky-500) 70%, transparent)}}.bg-\[\#0a0a0f\]\/95{background-color:oklab(14.7335% .00277905 -.0103663/.95)}.bg-\[\#0a0a0f\]\/96{background-color:oklab(14.7335% .00277905 -.0103663/.96)}.bg-\[\#111\]{background-color:#111}.bg-\[var\(--color-bg-2\)\]{background-color:var(--color-bg-2)}.bg-\[var\(--color-bg-2\,\#0c0d12\)\]\/95{background-color:var(--color-bg-2,#0c0d12)}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-bg-2\,\#0c0d12\)\]\/95{background-color:color-mix(in oklab, var(--color-bg-2,#0c0d12) 95%, transparent)}}.bg-\[var\(--color-brand\)\]{background-color:var(--color-brand)}.bg-\[var\(--color-brand\)\]\/8{background-color:#f59e0b14}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-brand\)\]\/8{background-color:color-mix(in oklab, var(--color-brand) 8%, transparent)}}.bg-\[var\(--color-brand\)\]\/10{background-color:#f59e0b1a}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-brand\)\]\/10{background-color:color-mix(in oklab, var(--color-brand) 10%, transparent)}}.bg-\[var\(--color-brand\)\]\/70{background-color:#f59e0bb3}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-brand\)\]\/70{background-color:color-mix(in oklab, var(--color-brand) 70%, transparent)}}.bg-\[var\(--color-fg-3\)\]{background-color:var(--color-fg-3)}.bg-\[var\(--color-fg-4\)\]{background-color:var(--color-fg-4)}.bg-\[var\(--color-fg-4\)\]\/10{background-color:#4a4d521a}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-fg-4\)\]\/10{background-color:color-mix(in oklab, var(--color-fg-4) 10%, transparent)}}.bg-\[var\(--color-fg-4\)\]\/40{background-color:#4a4d5266}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-fg-4\)\]\/40{background-color:color-mix(in oklab, var(--color-fg-4) 40%, transparent)}}.bg-\[var\(--color-line-2\)\]{background-color:var(--color-line-2)}.bg-\[var\(--color-surface-0\)\]{background-color:var(--color-surface-0)}.bg-\[var\(--color-surface-0\)\]\/98{background-color:#080808fa}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface-0\)\]\/98{background-color:color-mix(in oklab, var(--color-surface-0) 98%, transparent)}}.bg-\[var\(--color-surface-1\)\]{background-color:var(--color-surface-1)}.bg-\[var\(--color-surface-1\)\]\/50{background-color:#0d0d0d80}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface-1\)\]\/50{background-color:color-mix(in oklab, var(--color-surface-1) 50%, transparent)}}.bg-\[var\(--color-surface-1\)\]\/60{background-color:#0d0d0d99}@supports (color:color-mix(in lab, red, red)){.bg-\[var\(--color-surface-1\)\]\/60{background-color:color-mix(in oklab, var(--color-surface-1) 60%, transparent)}}.bg-\[var\(--color-surface-2\)\]{background-color:var(--color-surface-2)}.bg-\[var\(--color-surface-2\,\#121212\)\]{background-color:var(--color-surface-2,#121212)}.bg-\[var\(--color-surface-3\)\]{background-color:var(--color-surface-3)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/8{background-color:#fcbb0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/8{background-color:color-mix(in oklab, var(--color-amber-400) 8%, transparent)}}.bg-amber-400\/\[0\.04\]{background-color:#fcbb000a}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-amber-400) 4%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/5{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.bg-amber-500\/8{background-color:#f99c0014}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/8{background-color:color-mix(in oklab, var(--color-amber-500) 8%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-black\/95{background-color:#000000f2}@supports (color:color-mix(in lab, red, red)){.bg-black\/95{background-color:color-mix(in oklab, var(--color-black) 95%, transparent)}}.bg-cyan-500\/8{background-color:#00b7d714}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/8{background-color:color-mix(in oklab, var(--color-cyan-500) 8%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/5{background-color:color-mix(in oklab, var(--color-emerald-500) 5%, transparent)}}.bg-emerald-500\/8{background-color:#00bb7f14}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/8{background-color:color-mix(in oklab, var(--color-emerald-500) 8%, transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-500\/\[0\.06\]{background-color:#00bb7f0f}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-emerald-500) 6%, transparent)}}.bg-orange-500\/8{background-color:#fe6e0014}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/8{background-color:color-mix(in oklab, var(--color-orange-500) 8%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/5{background-color:color-mix(in oklab, var(--color-red-500) 5%, transparent)}}.bg-red-500\/8{background-color:#fb2c3614}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/8{background-color:color-mix(in oklab, var(--color-red-500) 8%, transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/\[0\.06\]{background-color:#fb2c360f}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/\[0\.06\]{background-color:color-mix(in oklab, var(--color-red-500) 6%, transparent)}}.bg-sky-300{background-color:var(--color-sky-300)}.bg-sky-400{background-color:var(--color-sky-400)}.bg-sky-400\/60{background-color:#00bcfe99}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/60{background-color:color-mix(in oklab, var(--color-sky-400) 60%, transparent)}}.bg-sky-500{background-color:var(--color-sky-500)}.bg-sky-500\/5{background-color:#00a5ef0d}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/5{background-color:color-mix(in oklab, var(--color-sky-500) 5%, transparent)}}.bg-sky-500\/8{background-color:#00a5ef14}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/8{background-color:color-mix(in oklab, var(--color-sky-500) 8%, transparent)}}.bg-sky-500\/15{background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/15{background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-400{background-color:var(--color-violet-400)}.bg-violet-400\/60{background-color:#a685ff99}@supports (color:color-mix(in lab, red, red)){.bg-violet-400\/60{background-color:color-mix(in oklab, var(--color-violet-400) 60%, transparent)}}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/8{background-color:#8d54ff14}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/8{background-color:color-mix(in oklab, var(--color-violet-500) 8%, transparent)}}.object-contain{object-fit:contain}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.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)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:calc(var(--spacing) * 0)}.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-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-px{padding-block:1px}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pb-1{padding-bottom:calc(var(--spacing) * 1)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-48{padding-left:calc(var(--spacing) * 48)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.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-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[1\.9rem\]{font-size:1.9rem}.text-\[2\.4rem\]{font-size:2.4rem}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#555\]{color:#555}.text-\[\#666\]{color:#666}.text-\[\#aaa\]{color:#aaa}.text-\[var\(--color-brand\)\]{color:var(--color-brand)}.text-\[var\(--color-brand\)\]\/70{color:#f59e0bb3}@supports (color:color-mix(in lab, red, red)){.text-\[var\(--color-brand\)\]\/70{color:color-mix(in oklab, var(--color-brand) 70%, transparent)}}.text-\[var\(--color-brand\)\]\/80{color:#f59e0bcc}@supports (color:color-mix(in lab, red, red)){.text-\[var\(--color-brand\)\]\/80{color:color-mix(in oklab, var(--color-brand) 80%, transparent)}}.text-\[var\(--color-brand\)\]\/90{color:#f59e0be6}@supports (color:color-mix(in lab, red, red)){.text-\[var\(--color-brand\)\]\/90{color:color-mix(in oklab, var(--color-brand) 90%, transparent)}}.text-\[var\(--color-fg-0\)\]{color:var(--color-fg-0)}.text-\[var\(--color-fg-0\,\#e6e8ed\)\]{color:var(--color-fg-0,#e6e8ed)}.text-\[var\(--color-fg-0\,\#f5f5f5\)\]{color:var(--color-fg-0,#f5f5f5)}.text-\[var\(--color-fg-1\)\]{color:var(--color-fg-1)}.text-\[var\(--color-fg-2\)\]{color:var(--color-fg-2)}.text-\[var\(--color-fg-2\,\#9aa1ad\)\]{color:var(--color-fg-2,#9aa1ad)}.text-\[var\(--color-fg-3\)\]{color:var(--color-fg-3)}.text-\[var\(--color-fg-4\)\]{color:var(--color-fg-4)}.text-\[var\(--color-fg-4\,\#5a6071\)\]{color:var(--color-fg-4,#5a6071)}.text-\[var\(--color-line-2\)\]{color:var(--color-line-2)}.text-amber-100{color:var(--color-amber-100)}.text-amber-200{color:var(--color-amber-200)}.text-amber-200\/80{color:#fee685cc}@supports (color:color-mix(in lab, red, red)){.text-amber-200\/80{color:color-mix(in oklab, var(--color-amber-200) 80%, transparent)}}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/80{color:#ffd236cc}@supports (color:color-mix(in lab, red, red)){.text-amber-300\/80{color:color-mix(in oklab, var(--color-amber-300) 80%, transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/70{color:#fcbb00b3}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/70{color:color-mix(in oklab, var(--color-amber-400) 70%, transparent)}}.text-amber-500\/50{color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.text-amber-500\/50{color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.text-black{color:var(--color-black)}.text-cyan-300{color:var(--color-cyan-300)}.text-emerald-200{color:var(--color-emerald-200)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-orange-300{color:var(--color-orange-300)}.text-red-100{color:var(--color-red-100)}.text-red-200{color:var(--color-red-200)}.text-red-200\/80{color:#ffcacacc}@supports (color:color-mix(in lab, red, red)){.text-red-200\/80{color:color-mix(in oklab, var(--color-red-200) 80%, transparent)}}.text-red-300{color:var(--color-red-300)}.text-red-300\/80{color:#ffa3a3cc}@supports (color:color-mix(in lab, red, red)){.text-red-300\/80{color:color-mix(in oklab, var(--color-red-300) 80%, transparent)}}.text-red-400{color:var(--color-red-400)}.text-rose-200{color:var(--color-rose-200)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-sky-300{color:var(--color-sky-300)}.text-sky-400{color:var(--color-sky-400)}.text-violet-300{color:var(--color-violet-300)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.placeholder-\[var\(--color-fg-4\)\]::placeholder{color:var(--color-fg-4)}.accent-\[var\(--color-brand\)\]{accent-color:var(--color-brand)}.accent-emerald-500{accent-color:var(--color-emerald-500)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.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)}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-emerald-500\/40{--tw-ring-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.ring-emerald-500\/40{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 40%, 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,)}.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-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:text-\[var\(--color-fg-2\)\]:is(:where(.group):hover *){color:var(--color-fg-2)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.marker\:text-\[var\(--color-fg-4\)\] ::marker{color:var(--color-fg-4)}.marker\:text-\[var\(--color-fg-4\)\]::marker{color:var(--color-fg-4)}.marker\:text-\[var\(--color-fg-4\)\] ::-webkit-details-marker{color:var(--color-fg-4)}.marker\:text-\[var\(--color-fg-4\)\]::-webkit-details-marker{color:var(--color-fg-4)}.placeholder\:text-\[var\(--color-fg-4\)\]::placeholder{color:var(--color-fg-4)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}@media (hover:hover){.hover\:border-l-2:hover{border-left-style:var(--tw-border-style);border-left-width:2px}.hover\:border-\[var\(--color-brand\)\]\/40:hover{border-color:#f59e0b66}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--color-brand\)\]\/40:hover{border-color:color-mix(in oklab, var(--color-brand) 40%, transparent)}}.hover\:border-\[var\(--color-brand\)\]\/50:hover{border-color:#f59e0b80}@supports (color:color-mix(in lab, red, red)){.hover\:border-\[var\(--color-brand\)\]\/50:hover{border-color:color-mix(in oklab, var(--color-brand) 50%, transparent)}}.hover\:border-\[var\(--color-line-2\)\]:hover{border-color:var(--color-line-2)}.hover\:border-amber-400:hover{border-color:var(--color-amber-400)}.hover\:border-amber-500\/40:hover{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber-500\/40:hover{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.hover\:border-emerald-500\/40:hover{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.hover\:border-emerald-500\/40:hover{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.hover\:border-red-500\/40:hover{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/40:hover{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.hover\:border-red-500\/60:hover{border-color:#fb2c3699}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/60:hover{border-color:color-mix(in oklab, var(--color-red-500) 60%, transparent)}}.hover\:border-rose-500\/40:hover{border-color:#ff235766}@supports (color:color-mix(in lab, red, red)){.hover\:border-rose-500\/40:hover{border-color:color-mix(in oklab, var(--color-rose-500) 40%, transparent)}}.hover\:border-sky-500\/40:hover{border-color:#00a5ef66}@supports (color:color-mix(in lab, red, red)){.hover\:border-sky-500\/40:hover{border-color:color-mix(in oklab, var(--color-sky-500) 40%, transparent)}}.hover\:border-sky-500\/50:hover{border-color:#00a5ef80}@supports (color:color-mix(in lab, red, red)){.hover\:border-sky-500\/50:hover{border-color:color-mix(in oklab, var(--color-sky-500) 50%, transparent)}}.hover\:bg-\[var\(--color-brand\)\]\/15:hover{background-color:#f59e0b26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--color-brand\)\]\/15:hover{background-color:color-mix(in oklab, var(--color-brand) 15%, transparent)}}.hover\:bg-\[var\(--color-brand-hover\)\]:hover{background-color:var(--color-brand-hover)}.hover\:bg-\[var\(--color-surface-1\)\]:hover{background-color:var(--color-surface-1)}.hover\:bg-\[var\(--color-surface-2\)\]:hover{background-color:var(--color-surface-2)}.hover\:bg-\[var\(--color-surface-2\)\]\/60:hover{background-color:#12121299}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--color-surface-2\)\]\/60:hover{background-color:color-mix(in oklab, var(--color-surface-2) 60%, transparent)}}.hover\:bg-\[var\(--color-surface-2\)\]\/70:hover{background-color:#121212b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[var\(--color-surface-2\)\]\/70:hover{background-color:color-mix(in oklab, var(--color-surface-2) 70%, transparent)}}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.hover\:bg-emerald-500\/10:hover{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/10:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/15:hover{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.hover\:bg-sky-400\/5:hover{background-color:#00bcfe0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-400\/5:hover{background-color:color-mix(in oklab, var(--color-sky-400) 5%, transparent)}}.hover\:bg-sky-500\/10:hover{background-color:#00a5ef1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/10:hover{background-color:color-mix(in oklab, var(--color-sky-500) 10%, transparent)}}.hover\:bg-sky-500\/15:hover{background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-sky-500\/15:hover{background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.hover\:bg-violet-500\/10:hover{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-violet-500\/10:hover{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.hover\:bg-white\/3:hover{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/3:hover{background-color:color-mix(in oklab, var(--color-white) 3%, transparent)}}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-\[var\(--color-brand\)\]:hover{color:var(--color-brand)}.hover\:text-\[var\(--color-fg-0\)\]:hover{color:var(--color-fg-0)}.hover\:text-\[var\(--color-fg-1\)\]:hover{color:var(--color-fg-1)}.hover\:text-\[var\(--color-fg-2\)\]:hover{color:var(--color-fg-2)}.hover\:text-amber-200:hover{color:var(--color-amber-200)}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-red-200:hover{color:var(--color-red-200)}.hover\:text-rose-300:hover{color:var(--color-rose-300)}.hover\:text-sky-200:hover{color:var(--color-sky-200)}.hover\:text-sky-300:hover{color:var(--color-sky-300)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:border-\[var\(--color-brand\)\]:focus{border-color:var(--color-brand)}.focus\:border-\[var\(--color-brand\)\]\/50:focus{border-color:#f59e0b80}@supports (color:color-mix(in lab, red, red)){.focus\:border-\[var\(--color-brand\)\]\/50:focus{border-color:color-mix(in oklab, var(--color-brand) 50%, transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[var\(--color-brand\)\]:focus{--tw-ring-color:var(--color-brand)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[var\(--color-brand\)\]:focus-visible{--tw-ring-color:var(--color-brand)}.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-\[var\(--color-surface-0\)\]:focus-visible{--tw-ring-offset-color:var(--color-surface-0)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (width>=40rem){.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}}@media (width>=48rem){.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-7{grid-column:span 7/span 7}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:inline{display:inline}.md\:h-\[calc\(100dvh-4\.5rem\)\]{height:calc(100dvh - 4.5rem)}.md\:min-h-\[560px\]{min-height:560px}.md\:overflow-hidden{overflow:hidden}}@media (width>=64rem){.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-\[1fr_240px\]{grid-template-columns:1fr 240px}.lg\:grid-cols-\[1fr_300px\]{grid-template-columns:1fr 300px}}@media (width>=80rem){.xl\:grid-cols-\[1fr_320px\]{grid-template-columns:1fr 320px}.xl\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}}}:root[data-theme=light]{--color-brand:#d97706;--color-brand-hover:#b45309;--color-accent:#d97706;--color-surface-0:#f8f8f8;--color-surface-1:#f0f0f0;--color-surface-2:#e8e8e8;--color-surface-3:#dcdcdc;--color-surface-4:#d0d0d0;--color-line-0:#e0e0e0;--color-line-1:#d0d0d0;--color-line-2:silver;--color-fg-0:#111;--color-fg-1:#2c2c2c;--color-fg-2:#525252;--color-fg-3:#737373;--color-fg-4:#a3a3a3;--color-fg-5:#d4d4d4;--color-decision-allow:#059669;--color-decision-block:#dc2626;--color-decision-ask:#d97706;--color-decision-force:#0284c7;--color-decision-log:#7c3aed;--color-decision-shadow:#737373;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dracula]{--color-brand:#ff79c6;--color-brand-hover:#ff92d0;--color-accent:#ff79c6;--color-surface-0:#1e2029;--color-surface-1:#282a36;--color-surface-2:#2f3240;--color-surface-3:#343746;--color-surface-4:#3a3e4d;--color-line-0:#3a3e4d;--color-line-1:#44475a;--color-line-2:#525669;--color-fg-0:#f8f8f2;--color-fg-1:#e2dfe8;--color-fg-2:#b0adb8;--color-fg-3:#6272a4;--color-fg-4:#454862;--color-fg-5:#353750;--color-decision-allow:#50fa7b;--color-decision-block:#f55;--color-decision-ask:#ffb86c;--color-decision-force:#8be9fd;--color-decision-log:#bd93f9;--color-decision-shadow:#6272a4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=gruvbox-dark]{--color-brand:#fabd2f;--color-brand-hover:#d79921;--color-accent:#fabd2f;--color-surface-0:#1d2021;--color-surface-1:#282828;--color-surface-2:#32302f;--color-surface-3:#3c3836;--color-surface-4:#504945;--color-line-0:#3c3836;--color-line-1:#504945;--color-line-2:#665c54;--color-fg-0:#fbf1c7;--color-fg-1:#ebdbb2;--color-fg-2:#d5c4a1;--color-fg-3:#bdae93;--color-fg-4:#928374;--color-fg-5:#7c6f64;--color-decision-allow:#b8bb26;--color-decision-block:#fb4934;--color-decision-ask:#fabd2f;--color-decision-force:#83a598;--color-decision-log:#d3869b;--color-decision-shadow:#928374;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=gruvbox-light]{--color-brand:#d65d0e;--color-brand-hover:#af3a03;--color-accent:#d65d0e;--color-surface-0:#f9f5d7;--color-surface-1:#fbf1c7;--color-surface-2:#f2e5bc;--color-surface-3:#ebdbb2;--color-surface-4:#d5c4a1;--color-line-0:#d5c4a1;--color-line-1:#bdae93;--color-line-2:#a89984;--color-fg-0:#282828;--color-fg-1:#3c3836;--color-fg-2:#504945;--color-fg-3:#665c54;--color-fg-4:#7c6f64;--color-fg-5:#928374;--color-decision-allow:#79740e;--color-decision-block:#9d0006;--color-decision-ask:#d65d0e;--color-decision-force:#076678;--color-decision-log:#8f3f71;--color-decision-shadow:#928374;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=tokyo-night]{--color-brand:#7aa2f7;--color-brand-hover:#89b4fa;--color-accent:#7aa2f7;--color-surface-0:#13141f;--color-surface-1:#1a1b26;--color-surface-2:#1f2033;--color-surface-3:#24283b;--color-surface-4:#2a2e42;--color-line-0:#292e42;--color-line-1:#313552;--color-line-2:#3d4166;--color-fg-0:#c0caf5;--color-fg-1:#a9b1d6;--color-fg-2:#9aa5ce;--color-fg-3:#565f89;--color-fg-4:#414868;--color-fg-5:#2f334d;--color-decision-allow:#9ece6a;--color-decision-block:#f7768e;--color-decision-ask:#e0af68;--color-decision-force:#7aa2f7;--color-decision-log:#bb9af7;--color-decision-shadow:#565f89;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=catppuccin-mocha]{--color-brand:#cba6f7;--color-brand-hover:#d8b4fe;--color-accent:#cba6f7;--color-surface-0:#11111b;--color-surface-1:#1e1e2e;--color-surface-2:#181825;--color-surface-3:#1e2030;--color-surface-4:#242538;--color-line-0:#313244;--color-line-1:#45475a;--color-line-2:#585b70;--color-fg-0:#cdd6f4;--color-fg-1:#bac2de;--color-fg-2:#a6adc8;--color-fg-3:#7f849c;--color-fg-4:#6c7086;--color-fg-5:#585b70;--color-decision-allow:#a6e3a1;--color-decision-block:#f38ba8;--color-decision-ask:#fab387;--color-decision-force:#89b4fa;--color-decision-log:#cba6f7;--color-decision-shadow:#7f849c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=nord]{--color-brand:#88c0d0;--color-brand-hover:#81b2c6;--color-accent:#88c0d0;--color-surface-0:#242831;--color-surface-1:#2e3440;--color-surface-2:#3b4252;--color-surface-3:#434c5e;--color-surface-4:#4c566a;--color-line-0:#3b4252;--color-line-1:#434c5e;--color-line-2:#4c566a;--color-fg-0:#eceff4;--color-fg-1:#e5e9f0;--color-fg-2:#d8dee9;--color-fg-3:#aab0be;--color-fg-4:#7b8394;--color-fg-5:#616b7e;--color-decision-allow:#a3be8c;--color-decision-block:#bf616a;--color-decision-ask:#d08770;--color-decision-force:#88c0d0;--color-decision-log:#b48ead;--color-decision-shadow:#7b8394;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=one-dark-pro]{--color-brand:#61afef;--color-brand-hover:#73bbf5;--color-accent:#61afef;--color-surface-0:#1e2127;--color-surface-1:#282c34;--color-surface-2:#2c313a;--color-surface-3:#333841;--color-surface-4:#3e4451;--color-line-0:#3e4451;--color-line-1:#4b5263;--color-line-2:#5c6370;--color-fg-0:#abb2bf;--color-fg-1:#9da5b4;--color-fg-2:#8b939f;--color-fg-3:#5c6370;--color-fg-4:#4b5263;--color-fg-5:#3e4451;--color-decision-allow:#98c379;--color-decision-block:#e06c75;--color-decision-ask:#e5c07b;--color-decision-force:#61afef;--color-decision-log:#c678dd;--color-decision-shadow:#5c6370;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#app-root{height:100%;margin:0;padding:0}body{background:var(--color-surface-0);color:var(--color-fg-1);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11";font-family:ui-sans-serif,-apple-system,Inter,system-ui,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-line-2);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--color-fg-4)}code,pre,kbd,samp,.font-mono{font-feature-settings:"zero", "cv01";font-family:JetBrains Mono,SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace}.overline{text-transform:uppercase;letter-spacing:.1em;color:var(--color-fg-3);font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:13px;font-weight:500;line-height:1}.rule-hairline{background:linear-gradient(to right, transparent, var(--color-line-1) 12%, var(--color-line-1) 88%, transparent);width:100%;height:1px}.status-dot{border-radius:2px;flex-shrink:0;width:6px;height:6px;display:inline-block}.bg-grid{background-image:linear-gradient(var(--color-line-0) 1px, transparent 1px), linear-gradient(to right, var(--color-line-0) 1px, transparent 1px);background-position:-1px -1px;background-size:24px 24px}.chip{border:1px solid var(--color-line-1);background:var(--color-surface-2);color:var(--color-fg-2);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:2px;align-items:center;gap:4px;padding:2px 6px;font-family:JetBrains Mono,SF Mono,ui-monospace,monospace;font-size:10px;line-height:1;display:inline-flex}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}.pulse-soft{animation:1.8s ease-in-out infinite pulse-soft}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg, var(--color-surface-1) 0%, var(--color-surface-2) 50%, var(--color-surface-1) 100%);background-size:200% 100%;animation:1.6s linear infinite shimmer}.hero-metric{isolation:isolate;contain:layout style;border-color:var(--tick-accent,#f59e0b)}@supports (color:color-mix(in lab, red, red)){.hero-metric{border-color:color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(var(--tick,0) * 80%), var(--color-line-1))}}.hero-metric{box-shadow:0 0 0 4px var(--tick-accent,#f59e0b), 0 10px 22px var(--tick-accent,#f59e0b)}@supports (color:color-mix(in lab, red, red)){.hero-metric{box-shadow:0 0 0 4px color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(var(--tick,0) * 18%), transparent), 0 10px 22px color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(var(--tick,0) * 10%), transparent)}}.hero-metric:before{content:"";background:radial-gradient(160% 80% at 0% 100%, var(--tick-accent,#f59e0b) 0%, transparent 60%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.hero-metric:before{background:radial-gradient(160% 80% at 0% 100%, color-mix(in srgb, var(--tick-accent,var(--color-brand)) calc(14% + var(--tick,0) * 22%), transparent) 0%, transparent 60%)}}.hero-metric:before{pointer-events:none;z-index:0}.hero-metric>*{z-index:1;position:relative}.hero-metric--neutral{--tick-accent:var(--color-brand)}.hero-metric--amber{--tick-accent:var(--color-decision-ask)}.hero-metric--green{--tick-accent:var(--color-decision-allow)}.hero-metric--red{--tick-accent:var(--color-decision-block)}.hero-metric--blue{--tick-accent:var(--color-decision-force)}.hero-metric--purple{--tick-accent:var(--color-decision-log)}.hero-metric--gray{--tick-accent:var(--color-fg-3)}.telemetry-row{font-variant-numeric:tabular-nums;contain:layout style paint;transition:background 80ms linear}.grid-bleed{isolation:isolate;position:relative}.grid-bleed:before{content:"";background:radial-gradient(120% 60% at 0 0,#f59e0b0f 0%,#0000 55%),radial-gradient(120% 60% at 100% 100%,#f59e0b0a 0%,#0000 60%);position:absolute;inset:-1px}@supports (color:color-mix(in lab, red, red)){.grid-bleed:before{background:radial-gradient(120% 60% at 0% 0%, color-mix(in srgb, var(--color-accent) 6%, transparent) 0%, transparent 55%), radial-gradient(120% 60% at 100% 100%, color-mix(in srgb, var(--color-accent) 4%, transparent) 0%, transparent 60%)}}.grid-bleed:before{pointer-events:none;z-index:0;border-radius:inherit}.grid-bleed>*{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.hero-metric{box-shadow:none;border-color:var(--color-line-1)}}.system-pulse__tile{--breach:0;contain:layout style;box-shadow:0 0 0 4px #ef4444}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-decision-block) calc(var(--breach) * 55%), transparent)}}.system-pulse__tile{border-color:#ef4444}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile{border-color:color-mix(in srgb, var(--color-decision-block) calc(var(--breach) * 45%), var(--color-line-1))}}@media (prefers-reduced-motion:reduce){.system-pulse__tile[data-breach=true]{box-shadow:0 0 0 3px #ef444466}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile[data-breach=true]{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-decision-block) 40%, transparent)}}.system-pulse__tile[data-breach=true]{border-color:#753131}@supports (color:color-mix(in lab, red, red)){.system-pulse__tile[data-breach=true]{border-color:color-mix(in srgb, var(--color-decision-block) 40%, var(--color-line-1))}}}[data-reveal]{will-change:auto}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;transform:none!important}}.grid-layout{isolation:isolate;grid-template-columns:repeat(12,1fr);grid-auto-rows:72px;gap:20px;display:grid;position:relative}@media (width<=767px){.grid-layout{grid-template-columns:1fr;grid-auto-rows:auto;gap:12px}.grid-panel{min-height:200px;overflow-x:hidden;grid-column:1/-1!important}}.grid-layout--editing:before{content:"";pointer-events:none;background-image:radial-gradient(circle,#f59e0b38 1px,#0000 1.5px);position:absolute;inset:-10px}@supports (color:color-mix(in lab, red, red)){.grid-layout--editing:before{background-image:radial-gradient(circle at center, color-mix(in srgb, var(--color-accent) 22%, transparent) 1px, transparent 1.5px)}}.grid-layout--editing:before{opacity:.18;z-index:-1;background-position:50%;background-size:8.33333% 24px;border:1px dashed #f59e0b3d}@supports (color:color-mix(in lab, red, red)){.grid-layout--editing:before{border:1px dashed color-mix(in srgb, var(--color-accent) 24%, transparent)}}.grid-layout--editing:before{border-radius:3px}.grid-panel{contain:layout style;flex-direction:column;min-width:0;min-height:0;transition:box-shadow .16s ease-out,outline-color .16s ease-out;display:flex;position:relative}.grid-panel__content{contain:layout style;flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.grid-panel__content>*{flex:auto;min-width:0;min-height:0}.grid-panel--edit{outline-offset:2px;border-radius:3px;outline:1px solid #0000}.grid-panel--edit:hover{outline-color:#f59e0b73}@supports (color:color-mix(in lab, red, red)){.grid-panel--edit:hover{outline-color:color-mix(in srgb, var(--color-accent) 45%, transparent)}}.grid-panel--edit:focus-visible{outline-color:var(--color-accent);outline-width:1.5px}.grid-panel__drag-handle{z-index:3;border:1px solid var(--color-line-2);background:#181818eb;border-top:none;border-radius:0 0 6px 6px;justify-content:center;align-items:center;width:44px;height:14px;padding:0;display:inline-flex;position:absolute;top:2px;left:50%;transform:translate(-50%)}@supports (color:color-mix(in lab, red, red)){.grid-panel__drag-handle{background:color-mix(in srgb, var(--color-surface-3) 92%, transparent)}}.grid-panel__drag-handle{color:var(--color-fg-3);cursor:grab;touch-action:none;opacity:.85;transition:opacity .12s ease-out,border-color .12s ease-out,color .12s ease-out}.grid-panel__drag-handle:hover{opacity:1;color:var(--color-fg-0);border-color:var(--color-accent)}.grid-panel__drag-handle:active{cursor:grabbing}.grid-panel__resize-handle{z-index:3;width:20px;height:20px;color:var(--color-fg-3);cursor:nwse-resize;touch-action:none;opacity:.8;background:0 0;border:none;justify-content:flex-end;align-items:flex-end;padding:0;transition:opacity .12s ease-out,color .12s ease-out;display:inline-flex;position:absolute;bottom:2px;right:2px}.grid-panel__resize-handle:hover{color:var(--color-accent);opacity:1}.grid-panel--dragging,.grid-panel--resizing{box-shadow:0 12px 28px #0000008c, 0 0 0 1px var(--color-accent);opacity:.95;cursor:grabbing;will-change:transform}@media (prefers-reduced-motion:reduce){.grid-panel{transition:none}}@keyframes milestone-flash{0%{box-shadow:0 0 #22c55ecc,0 0 #22c55e4d}30%{box-shadow:0 0 0 3px #22c55ea6,0 0 0 8px #22c55e2e}to{box-shadow:0 0 #22c55e00,0 0 #22c55e00}}.milestone-ring{animation:.7s ease-out forwards milestone-flash}@keyframes record-pulse{0%{color:#e6e8ed}25%{color:#fbbf24;text-shadow:0 0 8px #fbbf24cc}75%{color:#fbbf24;text-shadow:0 0 4px #fbbf2466}to{color:#e6e8ed;text-shadow:none}}.record-beat{animation:.45s ease-out forwards record-pulse}@media (prefers-reduced-motion:reduce){.milestone-ring,.record-beat{animation:none}}[class*="text-[10px]"]{font-size:14px!important;line-height:1.25!important}[class*="text-[11px]"]{font-size:16px!important;line-height:1.3!important}[class*="text-[12px]"]{font-size:17px!important;line-height:1.3!important}[class*="text-[13px]"]{font-size:18px!important;line-height:1.3!important}[class*="text-[14px]"]{font-size:19px!important}.text-xs{font-size:16px!important;line-height:1.3!important}.text-sm{font-size:18px!important;line-height:1.4!important}.text-base{font-size:20px!important}.chip{padding:3px 7px!important;font-size:13px!important}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -19,5 +19,5 @@ Error generating stack: `+e.message+`
19
19
  `),(0,W.jsx)(`div`,{ref:r})]})]})]})}function uu(){let e=je([`runtime-tick`,`rules-changed`]),{data:t,refetch:n}=z(`/api/json/observability`,[e[`runtime-tick`],e[`rules-changed`]]),[r,i]=(0,_.useState)(!1),[a,o]=(0,_.useState)(!1),[s,c]=(0,_.useState)(Date.now()),[l,u]=(0,_.useState)(`idle`),[d,f]=(0,_.useState)(``),[p,m]=(0,_.useState)(`idle`);(0,_.useEffect)(()=>{t&&c(Date.now())},[t]);let h=(0,_.useCallback)(async()=>{u(`loading`);try{let e=await(await fetch(`/api/rules/sync-to-db`,{method:`POST`,headers:Ae()})).json();if(e.ok){u(`done`);let t=(e.pruned_count??0)>0?` (${e.pruned_count} orphan(s) pruned)`:``;f((e.message??`synced ${e.synced} rules`)+t),n()}else u(`error`),f(e.error??`sync failed`)}catch(e){u(`error`),f(String(e))}},[n]),g=(0,_.useCallback)(async()=>{m(`loading`);try{await fetch(`/api/rules/force-reload`,{method:`POST`,headers:Ae()}),m(`done`),n(),setTimeout(()=>m(`idle`),3e3)}catch{m(`idle`)}},[n]),v=t?.db,y=t?.rules,b=t?.audit,x=t?.process,S=t?.flight_recorder,C=y?.drift_detected??!1;return(0,W.jsxs)(`div`,{className:`space-y-5`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`h1`,{className:`text-xl font-medium tracking-tight text-[var(--color-fg-0)]`,children:`Observability`}),(0,W.jsx)(`p`,{className:`text-[12px] font-mono text-[var(--color-fg-3)] mt-0.5`,children:`sqlite health · rule drift · runtime profiler · diagnostics`})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,W.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)] tabular-nums`,children:[`refreshed `,tu(s)]}),(0,W.jsx)(J,{variant:`ghost`,size:`sm`,onClick:n,children:`refresh`})]})]}),(0,W.jsx)(du,{db:v,audit:b,proc:x,flight:S,driftDetected:C}),(0,W.jsxs)(G,{className:C?`border-red-500/30 border-l-2 border-l-red-500/70`:`border-emerald-500/20 border-l-2 border-l-emerald-500/60`,children:[(0,W.jsxs)(K,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`overline`,children:`rule drift detector`}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:`— .rules files vs sqlite`}),(0,W.jsx)(`button`,{onClick:()=>o(e=>!e),"aria-expanded":a,"aria-label":`Explain these counts`,title:`Why do these numbers differ?`,className:`text-[10px] font-mono text-[var(--color-fg-4)] hover:text-[var(--color-fg-2)] border border-[var(--color-line-1)] rounded-sm px-1.5 py-0.5 transition-colors cursor-pointer`,children:a?`× close`:`? why these numbers`})]}),y&&(C?(0,W.jsx)(lr,{variant:`red`,children:`⚠ drift detected`}):(0,W.jsx)(lr,{variant:`green`,children:`✓ in sync`}))]}),(0,W.jsxs)(q,{children:[a&&(0,W.jsxs)(`div`,{className:`mb-4 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-0)] px-3 py-2.5 space-y-2 text-[11px] font-mono leading-relaxed text-[var(--color-fg-3)]`,children:[(0,W.jsxs)(`div`,{className:`text-[var(--color-fg-2)]`,children:[(0,W.jsx)(`code`,{children:`.rules files`}),` and `,(0,W.jsx)(`code`,{children:`db rules`}),` are`,` `,(0,W.jsx)(`span`,{className:`text-amber-300`,children:`not auto-synced`}),`. A mismatch is usually expected:`]}),(0,W.jsxs)(`ul`,{className:`space-y-1 pl-3 list-disc marker:text-[var(--color-fg-4)]`,children:[(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:`one file can hold many rules`}),` `,`— compare `,(0,W.jsx)(`code`,{children:`db rules`}),` against`,` `,(0,W.jsx)(`code`,{children:`file_rule_count`}),`, not `,(0,W.jsx)(`code`,{children:`file_count`}),`.`]}),(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:`only in files`}),` `,`means unsynced edits — run`,` `,(0,W.jsx)(`code`,{className:`text-amber-300`,children:`ssg sync`}),` or click`,` `,(0,W.jsx)(`code`,{children:`↑ sync files → db`}),`.`]}),(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:`only in db`}),` `,`with `,(0,W.jsx)(`code`,{children:`source_file IS NULL`}),` is healthy — hub, fleet, or cloud-synced rules legitimately live only in the db.`]}),(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:`only in db`}),` `,`with `,(0,W.jsx)(`code`,{children:`source_file`}),` set means an orphan from a deleted file — `,(0,W.jsx)(`code`,{className:`text-amber-300`,children:`ssg sync`}),` `,`prunes it.`]}),(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:`db rules`}),` `,`includes disabled rows; `,(0,W.jsx)(`code`,{children:`db_enabled_count`}),` `,`excludes them.`]})]}),(0,W.jsxs)(`div`,{className:`pt-1.5 border-t border-[var(--color-line-0)]`,children:[`full reference:`,` `,(0,W.jsx)(`a`,{href:`https://docs.sigmashake.com/rule-storage`,target:`_blank`,rel:`noopener noreferrer`,className:`text-[var(--color-fg-2)] underline decoration-dotted underline-offset-2 hover:text-amber-300 transition-colors`,children:`docs.sigmashake.com/rule-storage ↗`})]})]}),y?(0,W.jsxs)(`div`,{className:`space-y-4`,children:[(0,W.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-2`,children:[{label:`.rules files`,value:y.file_count,sub:`${y.file_rule_count} rules total`,tone:`neutral`},{label:`db rules`,value:y.db_rule_count,sub:`${y.db_enabled_count} enabled`,tone:`neutral`},{label:`only in files`,value:y.drift_details.only_in_files.length,tone:y.drift_details.only_in_files.length>0?`amber`:`gray`},{label:`only in db`,value:y.drift_details.only_in_db.length,tone:y.drift_details.only_in_db.length>0?`red`:`gray`}].map(({label:e,value:t,sub:n,tone:r})=>(0,W.jsx)(oc,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-0)]`,label:e,value:t,sub:n,tone:r,labelPlacement:`above`,subClassName:`text-[var(--color-fg-4)]`,valueClassName:`text-xl font-medium tabular-nums`},e))}),C&&(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`button`,{onClick:()=>i(e=>!e),className:`text-[10px] font-mono uppercase tracking-wider text-amber-300 hover:text-amber-200 flex items-center gap-1 transition-colors cursor-pointer`,children:[r?`▾`:`▸`,` view drift details`]}),r&&(0,W.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[y.drift_details.only_in_files.length>0&&(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`text-[10px] font-mono uppercase tracking-wider text-amber-300/80 mb-1.5`,children:[`in .rules files but not in db — run`,` `,(0,W.jsx)(`code`,{className:`text-amber-300`,children:`ssg sync`})]}),(0,W.jsx)(`div`,{className:`bg-[var(--color-surface-0)] border border-amber-400/20 rounded-sm p-2 space-y-0.5 max-h-40 overflow-y-auto`,children:y.drift_details.only_in_files.map(e=>(0,W.jsxs)(`div`,{className:`font-mono text-[11px] text-amber-200/80`,children:[`+ `,e]},e))})]}),y.drift_details.only_in_db.length>0&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`text-[10px] font-mono uppercase tracking-wider text-red-300/80 mb-1.5`,children:`in db but not in any .rules file — orphaned rules`}),(0,W.jsx)(`div`,{className:`bg-[var(--color-surface-0)] border border-red-400/20 rounded-sm p-2 space-y-0.5 max-h-40 overflow-y-auto`,children:y.drift_details.only_in_db.map(e=>(0,W.jsxs)(`div`,{className:`font-mono text-[11px] text-red-200/80`,children:[`− `,e]},e))})]})]})]}),(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 pt-3 border-t border-[var(--color-line-0)]`,children:[(0,W.jsx)(J,{variant:`primary`,size:`sm`,onClick:h,disabled:l===`loading`,children:l===`loading`?`syncing…`:`↑ sync files → db`}),(0,W.jsx)(J,{variant:`ghost`,size:`sm`,onClick:g,disabled:p===`loading`,children:p===`loading`?`…`:p===`done`?`✓ reloaded`:`↻ force reload`}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)] ml-auto`,children:y.db_rule_count===0?`⚠ db empty — daemon falls back to file-based loading`:`db has ${y.db_rule_count} rules — indexed queries`})]}),l===`done`&&(0,W.jsxs)(`div`,{className:`flex items-center justify-between rounded-sm border border-emerald-500/25 bg-emerald-500/[0.06] px-3 py-2 text-xs font-mono text-emerald-200`,children:[(0,W.jsxs)(`span`,{children:[`✓ `,d]}),(0,W.jsx)(`button`,{onClick:()=>u(`idle`),className:`ml-3 shrink-0 px-2 py-0.5 rounded-sm border border-emerald-500/30 hover:bg-emerald-500/10 transition-colors cursor-pointer uppercase tracking-wider text-[10px]`,children:`dismiss`})]}),l===`error`&&(0,W.jsxs)(`div`,{className:`flex items-center justify-between rounded-sm border border-red-500/25 bg-red-500/[0.06] px-3 py-2 text-xs font-mono text-red-200`,children:[(0,W.jsxs)(`span`,{children:[`✗ `,d]}),(0,W.jsx)(`button`,{onClick:()=>u(`idle`),className:`ml-3 shrink-0 px-2 py-0.5 rounded-sm border border-red-500/30 hover:bg-red-500/10 transition-colors cursor-pointer uppercase tracking-wider text-[10px]`,children:`dismiss`})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-4 text-[11px] font-mono text-[var(--color-fg-4)] pt-2 border-t border-[var(--color-line-0)]`,children:[(0,W.jsxs)(`span`,{children:[`rules dir:`,` `,(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:y.rules_dir})]}),(0,W.jsxs)(`span`,{className:`ml-auto`,children:[`last reload:`,` `,(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:tu(y.last_reload_at)})]})]})]}):(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:`loading…`})]})]}),(0,W.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-5`,children:[(0,W.jsxs)(G,{children:[(0,W.jsxs)(K,{className:`flex items-center justify-between`,children:[(0,W.jsx)(`span`,{className:`overline`,children:`sqlite database`}),v&&!v.error&&(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(ru,{ok:v.journal_mode===`wal`,label:`wal`,badLabel:`no wal`}),(0,W.jsx)(ru,{ok:v.synchronous===`NORMAL`,label:`normal`,badLabel:v.synchronous})]})]}),(0,W.jsx)(q,{children:v?v.error?(0,W.jsx)(`div`,{className:`text-xs text-red-300 font-mono bg-red-500/[0.06] border border-red-500/25 rounded-sm p-2`,children:v.error}):(0,W.jsxs)(`div`,{children:[(0,W.jsx)(nu,{children:`storage`}),(0,W.jsx)(Q,{label:`file path`,value:v.path}),(0,W.jsx)(Q,{label:`file size`,value:Zl(v.file_size_bytes)}),(0,W.jsx)(Q,{label:`allocated`,value:`${Zl(v.allocated_bytes)} (${v.page_count.toLocaleString()} pages × ${v.page_size}B)`}),(0,W.jsx)(nu,{className:`mt-4`,children:`pragma configuration`}),(0,W.jsx)(Q,{label:`journal_mode`,value:v.journal_mode,accent:v.journal_mode===`wal`?`text-emerald-300`:`text-amber-300`}),(0,W.jsx)(Q,{label:`synchronous`,value:v.synchronous,accent:v.synchronous===`NORMAL`?`text-emerald-300`:`text-amber-300`}),(0,W.jsx)(Q,{label:`cache_size`,value:`${v.cache_size_kb.toLocaleString()} KB (${Math.round(v.cache_size_kb/1024)} MB)`}),(0,W.jsx)(Q,{label:`page_size`,value:`${v.page_size.toLocaleString()} B`}),v.wal_checkpoint&&(0,W.jsx)(Q,{label:`wal checkpoint`,value:`log ${v.wal_checkpoint.log}, checkpointed ${v.wal_checkpoint.checkpointed}, busy ${v.wal_checkpoint.busy}`}),(0,W.jsx)(nu,{className:`mt-4`,children:`table row counts`}),v.tables.map(e=>(0,W.jsx)(Q,{label:e.name,value:e.row_count>=0?e.row_count.toLocaleString():`error`,accent:e.row_count<0?`text-red-300`:`text-[var(--color-fg-1)]`},e.name))]}):(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:`loading…`})})]}),(0,W.jsxs)(`div`,{className:`space-y-5`,children:[(0,W.jsxs)(G,{children:[(0,W.jsx)(K,{children:(0,W.jsx)(`span`,{className:`overline`,children:`audit log capacity`})}),(0,W.jsx)(q,{children:b?(0,W.jsxs)(`div`,{className:`space-y-4`,children:[(0,W.jsx)(iu,{pct:b.utilization_pct,total:b.total_rows,max:b.max_rows}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Q,{label:`total rows`,value:b.total_rows.toLocaleString()}),(0,W.jsx)(Q,{label:`rotation limit`,value:b.max_rows.toLocaleString()}),(0,W.jsx)(Q,{label:`utilization`,value:`${b.utilization_pct}%`,accent:b.utilization_pct>=85?`text-red-300`:b.utilization_pct>=60?`text-amber-300`:`text-emerald-300`}),(0,W.jsx)(Q,{label:`oldest entry`,value:eu(b.oldest_timestamp)}),(0,W.jsx)(Q,{label:`newest entry`,value:eu(b.newest_timestamp)})]}),b.utilization_pct>=85&&(0,W.jsx)(`div`,{className:`rounded-sm border border-red-500/25 bg-red-500/[0.06] px-3 py-2 text-[11px] font-mono text-red-200`,children:`⚠ audit log nearing rotation limit. oldest entries will be purged automatically.`})]}):(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:`loading…`})})]}),(0,W.jsxs)(G,{children:[(0,W.jsx)(K,{children:(0,W.jsx)(`span`,{className:`overline`,children:`process & runtime`})}),(0,W.jsx)(q,{children:x?(0,W.jsxs)(`div`,{children:[(0,W.jsx)(Q,{label:`pid`,value:x.pid}),(0,W.jsx)(Q,{label:`uptime`,value:$l(x.uptime_ms)}),(0,W.jsx)(Q,{label:`memory (rss)`,value:`${x.memory_rss_mb} MB`}),(0,W.jsx)(Q,{label:`bun version`,value:x.bun_version}),(0,W.jsx)(Q,{label:`node compat`,value:x.node_version}),(0,W.jsx)(Q,{label:`platform`,value:`${x.platform} / ${x.arch}`})]}):(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:`loading…`})})]})]})]}),(0,W.jsxs)(G,{children:[(0,W.jsx)(K,{children:(0,W.jsx)(`span`,{className:`overline`,children:`flight recorder`})}),(0,W.jsx)(q,{children:S?(0,W.jsxs)(`div`,{className:`grid grid-cols-3 gap-4`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`overline mb-1.5`,children:`log file`}),(0,W.jsx)(`div`,{className:`text-xs font-mono text-[var(--color-fg-1)] truncate`,children:`…${S.path.slice(-50)}`})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`overline mb-1.5`,children:`file size`}),(0,W.jsx)(`div`,{className:`text-xs font-mono tabular-nums ${S.file_size_bytes===0?`text-[var(--color-fg-4)]`:`text-[var(--color-fg-1)]`}`,children:Zl(S.file_size_bytes)})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`overline mb-1.5`,children:`approx. entries`}),(0,W.jsx)(`div`,{className:`text-xs font-mono tabular-nums ${S.approx_entries===0?`text-[var(--color-fg-4)]`:`text-[var(--color-fg-1)]`}`,children:S.approx_entries===0?`—`:S.approx_entries.toLocaleString()})]})]}):(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:`loading…`})})]}),(0,W.jsx)(cu,{}),(0,W.jsx)(lu,{}),(0,W.jsxs)(G,{children:[(0,W.jsx)(K,{children:(0,W.jsx)(`span`,{className:`overline`,children:`observability api`})}),(0,W.jsxs)(q,{children:[(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-3)] mb-2.5`,children:`machine-readable endpoints for automated monitoring and ai agent triage:`}),(0,W.jsx)(`div`,{className:`space-y-1 font-mono text-[11px]`,children:[[`/api/json/observability`,`sqlite health, rule drift, process info`],[`/api/state/runtime`,`eval latency, decision counters, memory`],[`/api/state/activity-tail?after=0&limit=20`,`recent eval events (live feed)`],[`/api/json/daemon-status`,`daemon pid, status, log tail`],[`/api/json/evald-log`,`last 200 lines of evald.log (daemon stderr)`],[`/healthz`,`process liveness`],[`/readyz`,`sqlite liveness`]].map(([e,t])=>(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`GET`}),(0,W.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`text-[var(--color-brand)]/80 hover:text-[var(--color-brand)] transition-colors`,children:e}),(0,W.jsxs)(`span`,{className:`text-[var(--color-fg-4)] hidden sm:inline`,children:[`— `,t]})]},e))})]})]})]})}function du({db:e,audit:t,proc:n,flight:r,driftDetected:i}){let a=e?e.error?`error`:e.journal_mode===`wal`&&e.synchronous===`NORMAL`?`ok`:`warn`:`unknown`,o=t?t.utilization_pct>=85?`error`:t.utilization_pct>=60?`warn`:`ok`:`unknown`,s=n?n.memory_rss_mb>600?`warn`:`ok`:`unknown`;return(0,W.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`,children:[(0,W.jsxs)(Yl,{title:`sqlite`,status:a,statusLabel:e?.journal_mode?.toUpperCase()??`idle`,children:[(0,W.jsx)(Xl,{label:`size`,value:e?(0,W.jsx)(mr,{value:e.file_size_bytes,format:e=>Ql(e)}):`—`,mono:!0}),(0,W.jsx)(Xl,{label:`journal`,value:e?.journal_mode??`—`,mono:!0}),(0,W.jsx)(Xl,{label:`sync`,value:e?.synchronous??`—`,mono:!0}),(0,W.jsx)(Xl,{label:`tables`,value:e?.tables.length??0,tone:i?`warn`:`neutral`})]}),(0,W.jsxs)(Yl,{title:`audit log`,status:o,statusLabel:t?`${t.utilization_pct}%`:`idle`,children:[(0,W.jsx)(Xl,{label:`rows`,value:t?(0,W.jsx)(mr,{value:t.total_rows}):`—`}),(0,W.jsx)(Xl,{label:`capacity`,value:t?`${(t.total_rows/Math.max(1,t.max_rows)*100).toFixed(1)}%`:`—`,tone:t&&t.utilization_pct>=85?`bad`:t&&t.utilization_pct>=60?`warn`:`good`}),(0,W.jsx)(Xl,{label:`oldest`,value:eu(t?.oldest_timestamp??null),mono:!0}),(0,W.jsx)(Xl,{label:`newest`,value:eu(t?.newest_timestamp??null),mono:!0})]}),(0,W.jsxs)(Yl,{title:`process`,status:s,statusLabel:n?`pid ${n.pid}`:`idle`,children:[(0,W.jsx)(Xl,{label:`uptime`,value:n?$l(n.uptime_ms):`—`,mono:!0}),(0,W.jsx)(Xl,{label:`rss`,value:n?(0,W.jsxs)(`span`,{children:[(0,W.jsx)(mr,{value:n.memory_rss_mb,format:e=>e.toFixed(0)}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-3)] ml-1`,children:`MB`})]}):`—`}),(0,W.jsx)(Xl,{label:`bun`,value:n?.bun_version??`—`,mono:!0}),(0,W.jsx)(Xl,{label:`platform`,value:n?`${n.platform}/${n.arch}`:`—`,mono:!0})]}),(0,W.jsxs)(Yl,{title:`flight recorder`,status:r&&r.file_size_bytes>0?`ok`:`unknown`,statusLabel:r?`${r.approx_entries.toLocaleString()} entries`:`idle`,children:[(0,W.jsx)(Xl,{label:`size`,value:r?(0,W.jsx)(mr,{value:r.file_size_bytes,format:e=>Ql(e)}):`—`,mono:!0}),(0,W.jsx)(Xl,{label:`entries`,value:r?(0,W.jsx)(mr,{value:r.approx_entries}):`—`})]})]})}var fu=900,pu=180,mu=320,hu=800,gu=4;function _u({sessionKey:e}={}){let t=De(),n=ke(),[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(`idle`),s=(0,_.useRef)([]),c=(0,_.useRef)(-1),l=(0,_.useRef)(0),u=(0,_.useRef)(null);if((0,_.useEffect)(()=>{if(!t||n===c.current||(c.current=n,t.decision!==`block`&&t.decision!==`force`)||e&&za(t)!==e)return;let u=Date.now(),d=s.current,f=d[0];if(f&&u-l.current<hu){f.extra+=1,f.burst=t,f.seq=n,l.current=u;return}if(d.length>=gu&&d.shift(),d.push({seq:n,burst:t,extra:0}),l.current=u,a===`idle`&&!r){let e=d.shift()??null;e&&(i(e),o(`in`))}},[n]),(0,_.useEffect)(()=>{if(a===`idle`)return;let e=null;return a===`in`?e=setTimeout(()=>o(`visible`),pu):a===`visible`?e=setTimeout(()=>o(`out`),fu):a===`out`&&(e=setTimeout(()=>{let e=s.current.shift()??null;e?(i(e),o(`in`)):(i(null),o(`idle`))},mu)),u.current=e,()=>{e&&clearTimeout(e)}},[a]),!r)return null;let{burst:d,extra:f}=r,p=Ba[d.decision]??`#ef4444`,m=ct(),h=a===`in`||a===`visible`?1:0,g=m||a===`in`||a===`visible`?0:-8,v=d.rule_id??`rule`,y=d.decision===`block`?`BLOCKED`:`FORCED`,b=f>0?`${d.tool} · +${f} more in this burst`:`${d.tool} · ${d.client}${d.agent_id?`:${d.agent_id}`:``}`;return(0,W.jsx)(`div`,{className:e?`pointer-events-none absolute top-2 left-1/2 z-30 select-none`:`pointer-events-none fixed top-20 left-1/2 z-40 select-none`,style:{transform:`translateX(-50%) translateY(${g}px) scale(1)`,opacity:h,transition:m?`opacity ${pu}ms ease-out`:`opacity ${pu}ms ease-out, transform ${pu}ms cubic-bezier(0.34, 1.56, 0.64, 1)`},"aria-live":`polite`,"aria-atomic":`true`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-3 px-5 py-3 rounded-md border bg-black/95 shadow-2xl`,style:{borderColor:p},children:[(0,W.jsx)(`div`,{className:`w-2.5 h-2.5 rounded-full shrink-0`,style:{background:p,boxShadow:m?`none`:`0 0 16px ${p}`}}),(0,W.jsxs)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[(0,W.jsxs)(`div`,{className:`text-[11px] font-mono uppercase tracking-[0.18em]`,style:{color:p},children:[y,` BY SSG`]}),(0,W.jsx)(`div`,{className:`text-[14px] font-mono text-[var(--color-fg-1)] truncate max-w-[420px]`,children:v}),(0,W.jsx)(`div`,{className:`text-[11px] font-mono text-[var(--color-fg-3)] truncate max-w-[420px]`,children:b})]})]})})}var vu=(0,_.memo)(function(e){let{sessionKey:t,bursts:n,paused:r,selectedId:i,onSelect:a,burstSeq:o,isStale:s,isFadingOut:c,minHeight:l,pinned:u,minimized:d,isFullscreen:f,viewMode:p=`full`,thumbnail:m=!1,onPromote:h,activePanelCount:g=1,onTogglePin:v,onToggleMinimize:y,onToggleFullscreen:b,onClose:x,onFrameTime:S}=e,C=p===`broadcast`,w=!m&&(p===`stream`||p===`broadcast`||f)?`large`:`normal`,T=t.indexOf(`:`),E=T>=0?t.slice(0,T):t,D=T>=0?t.slice(T+1):``,O=(0,_.useRef)(null),[ee,te]=(0,_.useState)(!0),[k,A]=(0,_.useState)(null),ne=()=>{let e=O.current;if(!e)return;let t=e.querySelector(`canvas`);t instanceof HTMLCanvasElement&&A(t.toDataURL(`image/png`))},re=()=>{if(!k)return;let e=document.createElement(`a`),n=t.replace(/[^a-z0-9._-]+/gi,`-`);e.href=k,e.download=`ssg-graph-${n}-${Date.now()}.png`,document.body.appendChild(e),e.click(),e.remove()},ie=()=>{!k||!navigator.clipboard?.write||fetch(k).then(e=>e.blob()).then(e=>{let t=new ClipboardItem({"image/png":e});return navigator.clipboard.write([t])}).catch(()=>{})},j=typeof navigator<`u`&&typeof navigator.clipboard?.write==`function`&&typeof ClipboardItem<`u`;(0,_.useEffect)(()=>{if(f){te(!0);return}let e=O.current;if(!e)return;let t=new IntersectionObserver(e=>{for(let t of e)te(t.isIntersecting)},{threshold:.01});return t.observe(e),()=>t.disconnect()},[f]);let M=n.length>0?n[n.length-1]:null,ae=M?Ba[M.decision]??`#6b7280`:`#6b7280`,oe=M?.decision??null,se=M?.tool??null,N=r||!ee||d,P=(0,_.useMemo)(()=>n.length>24?n.slice(n.length-24):n,[n]);return(0,W.jsxs)(`div`,{ref:O,className:`relative flex flex-col shrink-0 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] overflow-hidden transition-opacity duration-1000${f?` flex-1 min-h-0`:``}`,style:{minHeight:d||f?void 0:l,opacity:c?0:1},children:[!C&&(0,W.jsxs)(`header`,{className:`group flex items-center justify-between px-3 py-1.5 border-b border-[var(--color-line-1)] bg-black/30 shrink-0 gap-3`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-mono min-w-0`,children:[u&&(0,W.jsx)(`span`,{className:`text-amber-300`,title:`Pinned`,children:`▲`}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)] uppercase tracking-wider`,children:E}),D&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`·`}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-3)] truncate`,children:D})]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-mono text-[var(--color-fg-4)]`,children:[se&&(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5 max-w-[180px]`,title:oe?`latest: ${se} → ${oe}`:`latest: ${se}`,children:[(0,W.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0`,style:{background:ae}}),(0,W.jsx)(`span`,{className:`truncate text-[var(--color-fg-2)]`,children:se})]}),(0,W.jsxs)(`span`,{className:`hidden md:inline opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity`,children:[n.length,`n`]}),s?(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5 text-amber-300`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-amber-400`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:`idle`})]}):(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5 text-emerald-300`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-emerald-400 pulse-soft`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:`live`})]}),!m&&(0,W.jsxs)(`div`,{className:`flex items-center gap-1 ml-1 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 transition-opacity duration-150`,children:[(0,W.jsx)(`button`,{type:`button`,onClick:v,className:`px-1.5 py-0.5 rounded border text-[10px] uppercase tracking-wider transition-colors ${u?`border-amber-500/60 text-amber-300`:`border-[var(--color-line-1)] text-[var(--color-fg-3)] hover:text-amber-300 hover:border-amber-500/40`}`,title:u?`Unpin`:`Pin to top`,children:`pin`}),(0,W.jsx)(`button`,{type:`button`,onClick:y,className:`px-1.5 py-0.5 rounded border border-[var(--color-line-1)] text-[10px] text-[var(--color-fg-3)] hover:text-sky-300 hover:border-sky-500/40 transition-colors`,title:d?`Expand`:`Minimize`,children:d?`+`:`–`}),(0,W.jsx)(`button`,{type:`button`,onClick:ne,className:`px-1.5 py-0.5 rounded border border-[var(--color-line-1)] text-[10px] text-[var(--color-fg-3)] hover:text-sky-300 hover:border-sky-500/40 transition-colors`,title:`Preview PNG snapshot of this panel`,children:`▣`}),(0,W.jsx)(`button`,{type:`button`,onClick:b,className:`px-1.5 py-0.5 rounded border border-[var(--color-line-1)] text-[10px] text-[var(--color-fg-3)] hover:text-sky-300 hover:border-sky-500/40 transition-colors`,title:f?`Exit fullscreen`:`Fullscreen`,children:f?`×`:`⛶`}),x&&(0,W.jsx)(`button`,{type:`button`,onClick:x,"aria-label":`Close session ${t}`,className:`px-1.5 py-0.5 rounded border border-[var(--color-line-1)] text-[10px] text-[var(--color-fg-3)] hover:text-rose-300 hover:border-rose-500/40 transition-colors`,title:`End this session on the graph`,children:`╳`})]})]})]}),!d&&!m&&!C&&(0,W.jsx)(Es,{sessionKey:t,className:`rounded-none border-x-0 border-t-0 border-b border-[var(--color-line-1)] shrink-0`}),k&&(0,W.jsxs)(`div`,{className:`absolute inset-0 z-40 flex flex-col items-center justify-center gap-3 bg-black/80 backdrop-blur-sm p-4`,children:[(0,W.jsx)(`img`,{src:k,alt:`Panel snapshot`,className:`max-w-full max-h-[60%] rounded-sm border border-[var(--color-line-1)] object-contain`}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[j&&(0,W.jsx)(`button`,{type:`button`,onClick:ie,className:`px-3 py-1.5 rounded border border-[var(--color-line-1)] text-[11px] font-mono text-[var(--color-fg-2)] hover:text-sky-300 hover:border-sky-500/40 transition-colors`,children:`copy`}),(0,W.jsx)(`button`,{type:`button`,onClick:re,className:`px-3 py-1.5 rounded border border-[var(--color-line-1)] text-[11px] font-mono text-[var(--color-fg-2)] hover:text-sky-300 hover:border-sky-500/40 transition-colors`,children:`download`}),(0,W.jsx)(`button`,{type:`button`,onClick:()=>A(null),className:`px-3 py-1.5 rounded border border-[var(--color-line-1)] text-[11px] font-mono text-[var(--color-fg-3)] hover:text-rose-300 hover:border-rose-500/40 transition-colors`,children:`close`})]})]}),!d&&(0,W.jsxs)(`div`,{className:`flex-1 min-h-0 relative`,children:[(0,W.jsx)(_u,{sessionKey:t}),(0,W.jsx)(ys,{bursts:P,paused:N,selectedId:i,onSelect:a,burstSeq:o,compact:!0,activePanelCount:g,labelDensity:w,onFrameTime:S}),m&&(0,W.jsx)(`button`,{type:`button`,onClick:h,"aria-label":`Promote ${E} to spotlight`,title:`Spotlight ${E}${D?` · ${D}`:``}`,className:`absolute inset-0 cursor-pointer bg-transparent hover:bg-sky-400/5 transition-colors`})]})]})}),yu=200;function bu(e){let t=Date.now()-e;return t<2e3?`now`:t<6e4?`${Math.floor(t/1e3)}s ago`:t<36e5?`${Math.floor(t/6e4)}m ago`:`${Math.floor(t/36e5)}h ago`}function xu(e){let t=e/1e6;return t<1e3?`${Math.round(t)}ms`:t<6e4?`${(t/1e3).toFixed(1)}s`:`${Math.floor(t/6e4)}m${Math.floor(t%6e4/1e3)}s`}function Su(e){let{bursts:t,selectedId:n,onSelect:r}=e,i=(0,_.useMemo)(()=>{let e=new Map;for(let n of t){let t=za(n),r=e.get(t);r||(r=[],e.set(t,r)),r.push(n)}let n=Array.from(e.entries());return n.sort((e,t)=>{let n=e[1][e[1].length-1]?.ts_ms??0;return(t[1][t[1].length-1]?.ts_ms??0)-n}),n},[t]);return t.length===0?(0,W.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center text-center px-4`,children:[(0,W.jsx)(`p`,{className:`overline mb-2 text-[var(--color-fg-3)]`,children:`feed · idle`}),(0,W.jsxs)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)] max-w-[260px]`,children:[`Each entry is one tool call your AI agent made.`,(0,W.jsx)(`br`,{}),`Color = the ssg rule decision.`]})]}):(0,W.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto px-3 py-3 space-y-5`,children:i.map(([e,t])=>{let i=e.indexOf(`:`),a=i>=0?e.slice(0,i):e,o=i>=0?e.slice(i+1):``,s=t[t.length-1],c=s?Ba[s.decision]??`#6b7280`:`#6b7280`,l=t.slice(-yu).reverse();return(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 mb-2 pb-1 border-b border-[var(--color-line-1)] text-[10px] font-mono uppercase tracking-wider`,children:[(0,W.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0`,style:{background:c}}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)]`,children:a}),o&&o!==`solo`&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`·`}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-3)] truncate max-w-[120px]`,children:o})]}),(0,W.jsxs)(`span`,{className:`ml-auto text-[var(--color-fg-4)]`,children:[t.length,` calls`]})]}),(0,W.jsxs)(`div`,{className:`relative pl-4`,children:[(0,W.jsx)(`div`,{className:`absolute left-[7px] top-0 bottom-0 w-px`,style:{background:`${c}33`}}),(0,W.jsx)(`div`,{className:`space-y-1.5`,children:l.map(e=>{let t=e.audit_id??`${e.ts_ms}:${e.tool}`,i=t===n,a=Ba[e.decision]??`#6b7280`,o=e.input_tokens??0,s=e.output_tokens??0,c=o>0||s>0;return(0,W.jsxs)(`div`,{className:`relative`,children:[(0,W.jsx)(`span`,{className:`absolute -left-[9px] top-1/2 -translate-y-1/2 w-[6px] h-[6px] rounded-full border border-[var(--color-surface-1)]`,style:{background:a}}),(0,W.jsxs)(`button`,{type:`button`,onClick:()=>r(i?null:t),className:`w-full text-left flex items-center gap-2 px-2.5 py-1.5 rounded-sm border text-[11px] font-mono transition-colors ${i?`border-sky-500/50 bg-sky-500/5 text-[var(--color-fg-1)]`:`border-[var(--color-line-1)] bg-[var(--color-surface-1)] text-[var(--color-fg-2)] hover:bg-white/3 hover:border-[var(--color-line-2)]`}`,children:[(0,W.jsx)(`span`,{className:`flex-1 font-semibold truncate text-[var(--color-fg-1)]`,children:e.tool}),(0,W.jsxs)(`span`,{className:`shrink-0 flex items-center gap-2 text-[9px] text-[var(--color-fg-4)]`,children:[c&&(0,W.jsxs)(`span`,{className:`font-mono`,title:`Input: ${o} tokens · Output: ${s} tokens`,children:[`↓`,qa(o),` `,`↑`,qa(s)]}),e.duration_ns>0&&(0,W.jsx)(`span`,{children:xu(e.duration_ns)}),(0,W.jsx)(`span`,{className:`px-1 py-px rounded text-[8px] uppercase font-bold tracking-wide`,style:{color:a,background:`${a}22`},children:e.decision}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:bu(e.ts_ms)})]})]})]},t)})})]})]},e)})})}function Cu(e){let{playback:t,bursts:n,rangeStart:r,rangeEnd:i,loading:a,onPlayhead:o,onLive:s,onPause:c,onResume:l,on24h:u}=e,d=(0,_.useRef)(null),f=(0,_.useRef)(!1),p=Math.max(1,i-r),m=(t.playhead_ms-r)/p*100,h=Math.max(0,Math.min(100,m)),g=(0,_.useMemo)(()=>{let e=[];for(let t=0;t<200;t++)e.push({allow:0,block:0,ask:0,other:0});for(let t of n){let n=t.ts_ms;if(n<r||n>i)continue;let a=e[Math.floor((n-r)/p*199)];t.decision===`allow`?a.allow++:t.decision===`block`||t.decision===`force`?a.block++:t.decision===`ask`?a.ask++:a.other++}return e},[n,r,i,p]),v=(0,_.useCallback)(e=>{let t=d.current;if(!t)return;let n=t.getBoundingClientRect(),i=Math.max(0,Math.min(1,(e-n.left)/n.width));if(i>=.98){s();return}o(r+i*p)},[r,p,o,s]);(0,_.useEffect)(()=>{let e=e=>{f.current&&v(e.clientX)},t=()=>{f.current=!1};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[v]);let y=t.mode===`live`;return(0,W.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-mono uppercase tracking-wider`,children:[(0,W.jsx)(`button`,{onClick:()=>y?c():l(),className:`px-2.5 py-1 rounded-sm border transition-colors cursor-pointer ${y?`border-emerald-500/40 text-emerald-300 hover:bg-emerald-500/10`:`border-amber-500/40 text-amber-300 hover:bg-amber-500/10`}`,title:y?`Pause the live stream`:`Resume updates at this playhead`,children:y?`⏸ pause`:`▶ resume`}),(0,W.jsx)(`button`,{onClick:s,disabled:y,className:`px-2.5 py-1 rounded-sm border transition-colors cursor-pointer ${y?`border-[var(--color-line-1)] text-[var(--color-fg-4)] opacity-50`:`border-sky-500/40 text-sky-300 hover:bg-sky-500/10`}`,title:`Jump to live (now)`,children:`⏭ live`}),(0,W.jsx)(`button`,{onClick:u,className:`px-2.5 py-1 rounded-sm border border-violet-500/40 text-violet-300 hover:bg-violet-500/10 transition-colors cursor-pointer`,title:`Expand to last 24h — window covers now−24h through now. Backfills audit_log so the scrubber shows all recent evals.`,children:`◉ 24h`}),(0,W.jsx)(`div`,{className:`flex-1`}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`mode`}),(0,W.jsx)(`span`,{className:y?`text-emerald-300`:t.mode===`paused`?`text-amber-300`:`text-violet-300`,children:t.mode}),a&&(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)] animate-pulse`,children:`· backfilling`}),(0,W.jsxs)(`span`,{className:`text-[var(--color-fg-4)]`,children:[`· t=`,wu(t.playhead_ms)]})]}),(0,W.jsxs)(`div`,{ref:d,className:`relative h-10 w-full rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] cursor-pointer overflow-hidden select-none`,onPointerDown:e=>{f.current=!0,e.target.setPointerCapture?.(e.pointerId),v(e.clientX)},children:[(0,W.jsx)(`svg`,{viewBox:`0 0 200 40`,preserveAspectRatio:`none`,className:`absolute inset-0 w-full h-full`,"aria-hidden":!0,children:g.map((e,t)=>{let n=e.allow+e.block+e.ask+e.other;if(n===0)return null;let r=Math.min(32,n*3),i=e.block>0?Ba.block:e.ask>0?Ba.ask:Ba.allow;return(0,W.jsx)(`rect`,{x:t,y:40-r,width:.9,height:r,fill:i,opacity:.7},t)})}),(0,W.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-sky-300 pointer-events-none`,style:{left:`${h}%`},children:(0,W.jsx)(`div`,{className:`absolute -top-0.5 -translate-x-1/2 w-2 h-2 rotate-45 bg-sky-300`})}),y&&(0,W.jsx)(`div`,{className:`absolute top-0 right-0 bottom-0 w-[2px] bg-emerald-400 animate-pulse pointer-events-none`})]}),(0,W.jsxs)(`div`,{className:`flex items-center justify-between text-[10px] font-mono text-[var(--color-fg-4)]`,children:[(0,W.jsx)(`span`,{children:Tu(r)}),(0,W.jsxs)(`span`,{className:`uppercase tracking-wider`,children:[Eu(t.window_ms),` window`]}),(0,W.jsx)(`span`,{children:Tu(i)})]})]})}function wu(e){let t=Date.now()-e;if(Math.abs(t)<1500)return`live`;let n=Math.round(t/1e3);if(n<60)return`−${n}s`;let r=Math.floor(n/60);return r<60?`−${r}m${n%60}s`:`−${Math.floor(r/60)}h${r%60}m`}function Tu(e){return new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function Eu(e){return e<6e4?`${Math.round(e/1e3)}s`:e<36e5?`${Math.round(e/6e4)}m`:`${Math.round(e/36e5)}h`}var Du=320,Ou=8,ku=12;function Au(e){let{burst:t,anchor:n,onClose:r}=e,i=(0,_.useRef)(null),[a,o]=(0,_.useState)({left:-9999,top:-9999});if((0,_.useEffect)(()=>{if(!t)return;let e=e=>{e.key===`Escape`&&r()},n=e=>{i.current&&!i.current.contains(e.target)&&r()};return document.addEventListener(`keydown`,e),document.addEventListener(`mousedown`,n),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`mousedown`,n)}},[t,r]),(0,_.useLayoutEffect)(()=>{if(!t||!n||!i.current)return;let e=i.current.getBoundingClientRect(),r=window.innerWidth,a=window.innerHeight,s=e.height>0?e.height:280,c=n.x+ku+Du>r?n.x-ku-Du:n.x+ku,l=n.y+ku+s>a?n.y-ku-s:n.y+ku;c=Math.min(Math.max(Ou,c),r-Du-Ou),l=Math.min(Math.max(Ou,l),a-s-Ou),o({left:c,top:l})},[t,n]),(0,_.useEffect)(()=>{o({left:-9999,top:-9999})},[t]),!t||!n)return null;let s=Ba[t.decision]??`#6b7280`,c=t.duration_ns/1e6,l=Date.now()-t.ts_ms;return(0,W.jsxs)(`div`,{ref:i,className:`fixed z-50 flex flex-col gap-3 text-[12px] font-mono rounded-md border border-[var(--color-line-1)] bg-[var(--color-surface-1)] shadow-2xl p-4`,style:{left:a.left,top:a.top,width:Du,maxHeight:`80vh`,overflowY:`auto`},children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsx)(`span`,{className:`overline text-[var(--color-fg-3)]`,children:`node · inspect`}),(0,W.jsx)(`button`,{onClick:r,className:`text-[var(--color-fg-4)] hover:text-[var(--color-fg-1)] cursor-pointer`,title:`Close inspector`,children:`✕`})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`span`,{className:`w-2 h-2 rounded-full`,style:{background:s},"aria-hidden":!0}),(0,W.jsx)(`span`,{className:`uppercase tracking-wider`,style:{color:s},children:t.decision}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`·`}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-1)]`,children:t.tool})]}),(0,W.jsxs)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-[11px]`,children:[(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`rule`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)] break-all`,children:t.rule_id??`—`}),(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`client`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:t.client}),(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`agent`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:t.agent_id?(0,W.jsx)(`span`,{className:`chip text-violet-300 border-violet-500/30`,children:t.agent_id}):(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`—`})}),(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`eval duration`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:c<1?`${(c*1e3).toFixed(0)}µs`:`${c.toFixed(2)}ms`}),t.complete_duration_ms!=null&&t.complete_duration_ms>0&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`tool duration`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:t.complete_duration_ms>=1e3?`${(t.complete_duration_ms/1e3).toFixed(2)}s`:`${t.complete_duration_ms.toFixed(0)}ms`})]}),t.message&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`reason`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)] break-words`,children:t.message})]}),(t.input_tokens!=null||t.output_tokens!=null)&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`tokens`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:Nu(t.input_tokens,t.output_tokens)})]}),(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`age`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:ju(l)}),(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)]`,children:`timestamp`}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)]`,children:new Date(t.ts_ms).toLocaleString()})]}),t.input_preview&&(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`overline text-[var(--color-fg-3)] mb-1`,children:`input`}),(0,W.jsx)(`pre`,{className:`bg-[var(--color-surface-0)] border border-[var(--color-line-0)] rounded-sm p-2 text-[10px] text-[var(--color-fg-2)] whitespace-pre-wrap break-all max-h-48 overflow-y-auto`,children:t.input_preview})]}),(0,W.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[t.audit_id&&(0,W.jsx)(`a`,{href:`/audit?id=${encodeURIComponent(t.audit_id)}`,className:`chip text-[var(--color-fg-3)] border-[var(--color-line-1)] hover:text-[var(--color-fg-1)]`,title:`Open full audit record`,children:`audit ↗`}),t.rule_id&&(0,W.jsx)(`a`,{href:`/rules#${encodeURIComponent(t.rule_id)}`,className:`chip text-[var(--color-fg-3)] border-[var(--color-line-1)] hover:text-[var(--color-fg-1)]`,title:`Jump to rule`,children:`rule ↗`})]})]})}function ju(e){if(e<1500)return`just now`;let t=Math.floor(e/1e3);if(t<60)return`${t}s ago`;let n=Math.floor(t/60);return n<60?`${n}m${t%60}s ago`:`${Math.floor(n/60)}h${n%60}m ago`}function Mu(e){return e<1e3?String(e):e<1e4?`${(e/1e3).toFixed(1)}K`:e<1e6?`${Math.round(e/1e3)}K`:`${(e/1e6).toFixed(1)}M`}function Nu(e,t){let n=[];return e!=null&&n.push(`${Mu(e)} in`),t!=null&&n.push(`${Mu(t)} out`),n.length>0?n.join(` · `):`—`}function Pu(e){let t=new Map;for(let n of e){let e=`${n.client}:${n.agent_id??`solo`}`,r=t.get(e);r?(r.count+=1,n.ts_ms>r.newest_ts_ms&&(r.newest_ts_ms=n.ts_ms)):t.set(e,{client:n.client,agent_id:n.agent_id??`solo`,count:1,newest_ts_ms:n.ts_ms})}return Array.from(t.values()).sort((e,t)=>t.newest_ts_ms===e.newest_ts_ms?t.count-e.count:t.newest_ts_ms-e.newest_ts_ms)}function Fu(e){let{bursts:t,allBursts:n}=e,r=n??t,{toolCounts:i,decisionCounts:a,ruleCounts:o,unmatchedCount:s}=(0,_.useMemo)(()=>{let e=new Map,n=new Map,r=new Map,i=0;for(let a of t)if(e.set(a.tool,(e.get(a.tool)??0)+1),n.set(a.decision,(n.get(a.decision)??0)+1),a.rule_id){let e=r.get(a.rule_id);e?(e.count+=1,e.decisions.add(a.decision)):r.set(a.rule_id,{count:1,decisions:new Set([a.decision])})}else i+=1;return{toolCounts:Array.from(e.entries()).sort((e,t)=>t[1]-e[1]),decisionCounts:Array.from(n.entries()),ruleCounts:Array.from(r.entries()).map(([e,t])=>({id:e,count:t.count,decisions:t.decisions})).sort((e,t)=>t.count-e.count),unmatchedCount:i}},[t]),c=(0,_.useMemo)(()=>Pu(r),[r]),l=i[0]?.[1]??0,u=c[0]?.count??0,d=o[0]?.count??0,f=e=>{for(let t of[`block`,`ask`,`force`,`log`,`allow`,`shadow`])if(e.has(t))return Ba[t];return`#6b7280`};return(0,W.jsxs)(`div`,{className:`flex flex-col gap-3 text-[11px] font-mono`,children:[(0,W.jsx)(`div`,{className:`rounded-sm border border-[var(--color-line-0)] bg-[var(--color-surface-0)] p-2 text-[10px] text-[var(--color-fg-3)] leading-relaxed`,children:`Each dot is one tool call by an AI agent. Color encodes the ssg rule decision; lines link calls from the same agent in time order.`}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`overline text-[var(--color-fg-3)] mb-1`,children:[`rules · `,o.length,` matched`,s>0&&(0,W.jsxs)(`span`,{className:`ml-2 text-[var(--color-fg-4)] normal-case tracking-normal`,children:[s,` unmatched`]})]}),o.length===0?(0,W.jsx)(`p`,{className:`text-[var(--color-fg-4)]`,children:`no rules matched in window`}):(0,W.jsx)(`ul`,{className:`space-y-0.5`,children:o.slice(0,6).map(e=>{let t=d>0?e.count/d*100:0,n=f(e.decisions);return(0,W.jsxs)(`li`,{className:`grid grid-cols-[1fr_auto] items-center gap-2`,title:`${e.id} — decisions: ${Array.from(e.decisions).join(`, `)}`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,W.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0`,style:{background:n},"aria-hidden":!0}),(0,W.jsx)(`a`,{href:`/rules#${encodeURIComponent(e.id)}`,className:`truncate text-[var(--color-fg-2)] hover:text-[var(--color-fg-1)]`,children:e.id}),(0,W.jsx)(`div`,{className:`flex-1 h-1 bg-[var(--color-surface-1)] rounded-sm overflow-hidden`,children:(0,W.jsx)(`div`,{className:`h-full`,style:{background:n,width:`${t}%`,opacity:.6}})})]}),(0,W.jsx)(`span`,{className:`tabular-nums text-[var(--color-fg-4)]`,children:e.count})]},e.id)})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`div`,{className:`overline text-[var(--color-fg-3)] mb-1`,children:`decisions`}),(0,W.jsx)(`div`,{className:`flex flex-wrap gap-x-3 gap-y-1`,children:[`allow`,`block`,`ask`,`log`,`force`,`shadow`].map(e=>{let t=a.find(([t])=>t===e)?.[1]??0;return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0`,style:{background:Ba[e]},"aria-hidden":!0}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-2)] uppercase tracking-wider`,children:e}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)] tabular-nums`,children:t})]},e)})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`overline text-[var(--color-fg-3)] mb-1`,children:[`agents · `,c.length,` active`,n&&n!==t&&(0,W.jsx)(`span`,{className:`ml-2 text-[var(--color-fg-4)] normal-case tracking-normal`,children:`roster: today`})]}),c.length===0?(0,W.jsx)(`p`,{className:`text-[var(--color-fg-4)]`,children:`no agents in window`}):(0,W.jsx)(`ul`,{className:`space-y-0.5`,children:c.slice(0,8).map(e=>{let t=u>0?e.count/u*100:0,n=`${e.client}:${e.agent_id}`,r=Date.now()-e.newest_ts_ms,i=r<5e3;return(0,W.jsxs)(`li`,{className:`grid grid-cols-[1fr_auto] items-center gap-2`,title:`${n} — last eval ${Math.max(0,Math.round(r/1e3))}s ago`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[i?(0,W.jsx)(`span`,{className:`status-dot bg-emerald-400 pulse-soft shrink-0`,"aria-hidden":!0}):(0,W.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0 bg-[var(--color-fg-4)]/40`,"aria-hidden":!0}),(0,W.jsxs)(`span`,{className:`truncate text-[var(--color-fg-2)]`,children:[e.client,(0,W.jsxs)(`span`,{className:`text-[var(--color-fg-4)]`,children:[`:`,e.agent_id]})]}),(0,W.jsx)(`div`,{className:`flex-1 h-1 bg-[var(--color-surface-1)] rounded-sm overflow-hidden`,children:(0,W.jsx)(`div`,{className:`h-full bg-violet-400/60`,style:{width:`${t}%`}})})]}),(0,W.jsx)(`span`,{className:`tabular-nums text-[var(--color-fg-4)]`,children:e.count})]},n)})})]}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`div`,{className:`overline text-[var(--color-fg-3)] mb-1`,children:[`tools · `,t.length,` in window`]}),i.length===0?(0,W.jsx)(`p`,{className:`text-[var(--color-fg-4)]`,children:`no tool activity`}):(0,W.jsx)(`ul`,{className:`space-y-0.5`,children:i.slice(0,8).map(([e,t])=>{let n=l>0?t/l*100:0;return(0,W.jsxs)(`li`,{className:`grid grid-cols-[1fr_auto] items-center gap-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,W.jsx)(`span`,{className:`truncate text-[var(--color-fg-2)]`,children:e}),(0,W.jsx)(`div`,{className:`flex-1 h-1 bg-[var(--color-surface-1)] rounded-sm overflow-hidden`,children:(0,W.jsx)(`div`,{className:`h-full bg-sky-400/60`,style:{width:`${n}%`}})})]}),(0,W.jsx)(`span`,{className:`tabular-nums text-[var(--color-fg-4)]`,children:t})]},e)})})]})]})}var Iu=[100,500,1e3,5e3,1e4,1e5];function Lu(e){return e>=1e5||e>=1e3?`${e/1e3|0}k`:String(e)}function Ru(e){let t=Math.floor(e/100),n=Math.floor(t/600),r=Math.floor(t%600/10),i=t%10;return`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}.${i}`}function zu(e){let t=Math.floor(e/100);return`${Math.floor(t/10)}.${t%10}s`}function Bu({className:e,onMilestone:t,onRecord:n}){let r=(0,_.useRef)(null),i=(0,_.useRef)(null),[a,o]=(0,_.useState)(0),[s,c]=(0,_.useState)(0),[l,u]=(0,_.useState)(0),[d,f]=(0,_.useState)(0),[p,m]=(0,_.useState)(0),[h,g]=(0,_.useState)(``),[v,y]=(0,_.useState)(!1),[b,x]=(0,_.useState)(!1),S=De(),C=ke(),w=Oe(),T=(0,_.useRef)(null),E=(0,_.useRef)(0),D=(0,_.useRef)(0),O=(0,_.useRef)(0),ee=(0,_.useRef)(0),te=(0,_.useRef)(new Set),k=(0,_.useRef)(performance.now());(0,_.useEffect)(()=>{let e=performance.now();if(ct()){let t=setInterval(()=>{let t=performance.now();r.current&&(r.current.textContent=Ru(t-e)),i.current&&(i.current.textContent=zu(t-k.current))},1e3);return()=>clearInterval(t)}let[t]=br(()=>{let t=performance.now();r.current&&(r.current.textContent=Ru(t-e)),i.current&&(i.current.textContent=zu(t-k.current))});return t},[]);let A=(0,_.useRef)(0);return(0,_.useEffect)(()=>{if(T.current===null){T.current=C,E.current=C;return}if(C<=E.current)return;let e=C-E.current;E.current=C,u(n=>{let r=n+e,i=Iu.find(e=>e>ee.current&&r>=e);return i&&(ee.current=i,g(Lu(i)),x(!0),t?.(),setTimeout(()=>{g(``),x(!1)},700)),r});let r=Date.now();if(r-A.current>=1e3){A.current=r;let e=w.filter(e=>r-e.ts_ms<=6e4);f(new Set(e.map(e=>`${e.client}:${e.agent_id??`solo`}`)).size)}S?.rule_id&&te.current.add(S.rule_id),m(te.current.size),S&&(S.decision===`block`?(D.current=0,o(0),k.current=performance.now()):(D.current+=e,D.current>O.current&&(O.current=D.current,c(O.current),y(!0),n?.(),setTimeout(()=>y(!1),450)),o(D.current)))},[C,S,w,t,n]),(0,W.jsxs)(`div`,{className:U(`pointer-events-none select-none`,`flex flex-col gap-2 p-3 rounded-md`,`bg-[var(--color-bg-2,#0c0d12)]/95`,`border border-[var(--color-border-1,#1c1f26)]`,`shadow-lg shadow-black/40`,`min-w-[180px] font-mono text-[11px]`,`text-[var(--color-fg-2,#9aa1ad)]`,b&&`milestone-ring`,e),"aria-label":`Live engagement counters`,children:[(0,W.jsx)(Vu,{label:`uptime`,children:(0,W.jsx)(`span`,{ref:r,className:`tabular-nums text-[var(--color-fg-0,#e6e8ed)] text-[15px] tracking-tight`,children:`00:00.0`})}),(0,W.jsx)(Vu,{label:`evals`,children:(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,W.jsx)(mr,{value:l,className:`text-[var(--color-fg-0,#e6e8ed)] text-[15px]`}),h&&(0,W.jsxs)(`span`,{className:`text-[10px] text-emerald-400 uppercase tracking-wide`,children:[`+`,h]})]})}),(0,W.jsx)(Vu,{label:`since block`,children:(0,W.jsx)(`span`,{ref:i,className:`tabular-nums text-emerald-300 text-[15px]`,children:`0.0s`})}),(0,W.jsx)(Vu,{label:`streak / best`,children:(0,W.jsxs)(`span`,{className:U(`tabular-nums text-[15px]`,v?`record-beat`:`text-[var(--color-fg-0,#e6e8ed)]`),children:[(0,W.jsx)(mr,{value:a,curve:`spring`}),(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4,#5a6071)] mx-1`,children:`/`}),(0,W.jsx)(mr,{value:s})]})}),(0,W.jsx)(Vu,{label:`agents`,children:(0,W.jsx)(mr,{value:d,className:`text-[var(--color-fg-0,#e6e8ed)] text-[15px]`})}),(0,W.jsx)(Vu,{label:`rules`,children:(0,W.jsx)(mr,{value:p,className:`text-[var(--color-fg-0,#e6e8ed)] text-[15px]`})})]})}function Vu({label:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,W.jsx)(`span`,{className:`uppercase tracking-wider text-[10px] text-[var(--color-fg-4,#5a6071)]`,children:e}),t]})}var Hu=1200,Uu=3e4,Wu=3e3,Gu=6,Ku=3,qu=`graph.panelState.v1`,Ju=14400*1e3;function Yu(e,t){let n=new Map;for(let t of e){let e=za(t),r=n.get(e);r?r.push(t):n.set(e,[t])}for(let[e,r]of n){let i=t.get(e);i&&i.length===r.length&&i[i.length-1]===r[r.length-1]&&n.set(e,i)}return n}function Xu(){if(typeof window>`u`)return new Map;try{let e=window.localStorage.getItem(qu);if(!e)return new Map;let t=JSON.parse(e);return new Map(Object.entries(t))}catch{return new Map}}function Zu(e){if(!(typeof window>`u`))try{let t={};for(let[n,r]of e)t[n]=r;window.localStorage.setItem(qu,JSON.stringify(t))}catch{}}function Qu(){let e=no(),t=ke(),n=De(),[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)(null),s=(0,_.useCallback)((e,t)=>{i(e),o(t??null)},[]),c=Ps();(0,_.useEffect)(()=>{n&&(n.decision===`block`?c.play(`block`):n.decision===`force`&&c.play(`force`))},[t]);let l=(0,_.useCallback)(()=>c.play(`milestone`),[c]),u=(0,_.useCallback)(()=>c.play(`record`),[c]),[d,f]=(0,_.useState)(()=>{if(typeof window>`u`)return`full`;try{let e=window.localStorage.getItem(`graph.viewMode.v1`);if(e===`full`||e===`feed`||e===`stream`||e===`broadcast`)return e}catch{}return`full`});(0,_.useEffect)(()=>{if(!(typeof window>`u`))try{window.localStorage.setItem(`graph.viewMode.v1`,d)}catch{}},[d]),(0,_.useEffect)(()=>{let e=e=>e===`full`?`feed`:e===`feed`?`stream`:e===`stream`?`broadcast`:`full`,t=t=>{if(t.key===`Escape`&&d!==`full`){f(`full`);return}if(t.key===`b`||t.key===`B`){let n=t.target?.tagName;if(n===`INPUT`||n===`TEXTAREA`)return;f(e)}};return window.addEventListener(`keydown`,t),()=>window.removeEventListener(`keydown`,t)},[d]);let p=d===`broadcast`,m=d===`stream`,h=d===`feed`,g=m||p,v=p,y=m,[b,x]=(0,_.useState)(()=>{if(typeof window>`u`)return!1;try{return window.localStorage.getItem(`ssg.sfx.enabled`)===null}catch{return!1}}),S=(0,_.useCallback)(()=>{c.toggle(),x(!1)},[c]),[C,w]=(0,_.useState)(()=>typeof window<`u`&&window.matchMedia(`(max-width: 767px)`).matches);(0,_.useEffect)(()=>{let e=window.matchMedia(`(max-width: 767px)`),t=e=>w(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[T,E]=(0,_.useState)(!1),D=(0,_.useRef)(null),O=(0,_.useCallback)(async e=>{try{await fetch(`/api/json/graph/close-sessions`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`same-origin`,body:JSON.stringify(e.length>0?{session_keys:e}:{})})}catch{}E(!1),D.current&&clearTimeout(D.current)},[]),ee=(0,_.useCallback)(e=>{if(!T){E(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>E(!1),3e3);return}O(e)},[T,O]);(0,_.useEffect)(()=>()=>{D.current&&clearTimeout(D.current)},[]);let te=(0,_.useRef)(new Map),k=(0,_.useRef)(0),[A,ne]=(0,_.useState)({fps:0,active:0,hitches:0}),re=(0,_.useCallback)((e,t)=>{te.current.set(e,t),t>33&&(k.current+=1)},[]);(0,_.useEffect)(()=>{let e=setInterval(()=>{let e=te.current,t=k.current;if(k.current=0,e.size===0){ne(e=>e.active===0?e:{fps:0,active:0,hitches:0});return}let n=0;for(let t of e.values())n+=t;let r=n/e.size,i=r>0?Math.max(1,Math.round(1e3/r)):0;ne(n=>n.fps===i&&n.active===e.size&&n.hitches===t?n:{fps:i,active:e.size,hitches:t})},1e3);return()=>clearInterval(e)},[]);let{bursts:ie,playback:j,oldest_known_ms:M,newest_known_ms:ae,loading_backfill:oe}=e.snapshot,se=(0,_.useRef)(new Map),N=(0,_.useMemo)(()=>{let e=Yu(ie,se.current);return se.current=e,e},[ie]),[P,F]=(0,_.useState)(()=>Xu()),[ce,I]=(0,_.useState)(null);(0,_.useEffect)(()=>{Zu(P)},[P]),(0,_.useEffect)(()=>{let e=Date.now(),t=!1,n=new Map(P);for(let r of N.keys())n.has(r)||(n.set(r,{pinned:!1,pinnedAt:0,minimized:!1,firstSeenAt:e}),t=!0);for(let[r,i]of n)N.has(r)||i.pinned||e-i.firstSeenAt<Ju||(n.delete(r),t=!0);t&&F(n)},[N,P]);let le=(0,_.useRef)(new Map),ue=(0,_.useRef)(new Set),de=(0,_.useRef)(new Map),[,fe]=(0,_.useState)(0);(0,_.useEffect)(()=>{let e=performance.now(),t=le.current,n=ue.current,r=de.current,i=new Set;for(let[e,n]of N)i.add(e),r.set(e,n.slice()),t.delete(e);for(let a of n)if(!i.has(a)&&!t.has(a)){let n=r.get(a)??[],i=n[n.length-1]?.ts_ms??0;t.set(a,{bursts:n,diedAt:e,newestTs:i})}for(let[n,i]of t)e-i.diedAt>=Hu&&(t.delete(n),r.delete(n));if(ue.current=i,t.size>0){let n=1/0;for(let e of t.values())n=Math.min(n,e.diedAt+Hu);let r=Math.max(16,n-e+16),i=setTimeout(()=>fe(e=>e+1),r);return()=>clearTimeout(i)}},[N]);let pe=(0,_.useCallback)(e=>{F(t=>{let n=new Map(t),r=n.get(e)??{pinned:!1,pinnedAt:0,minimized:!1,firstSeenAt:Date.now()};return n.set(e,{...r,pinned:!r.pinned,pinnedAt:r.pinned?0:Date.now()}),n})},[]),me=(0,_.useCallback)(e=>{F(t=>{let n=new Map(t),r=n.get(e)??{pinned:!1,pinnedAt:0,minimized:!1,firstSeenAt:Date.now()};return n.set(e,{...r,minimized:!r.minimized}),n})},[]),he=(0,_.useCallback)(e=>{I(t=>t===e?null:e)},[]);(0,_.useEffect)(()=>{if(!ce)return;let e=e=>{e.key===`Escape`&&I(null)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[ce]);let L=(0,_.useMemo)(()=>{let e={pinned:!1,pinnedAt:0,minimized:!1,firstSeenAt:Date.now()},t=[];for(let[n,r]of N){let i=r[r.length-1]?.ts_ms??0;t.push({key:n,bursts:r,newestTs:i,fadingOutAt:null,state:P.get(n)??e})}for(let[n,r]of le.current)N.has(n)||t.push({key:n,bursts:r.bursts,newestTs:r.newestTs,fadingOutAt:r.diedAt,state:P.get(n)??e});return t.sort((e,t)=>e.state.pinned===t.state.pinned?e.state.pinned&&t.state.pinned?e.state.pinnedAt-t.state.pinnedAt:e.state.firstSeenAt-t.state.firstSeenAt:e.state.pinned?-1:1),t},[N,P]),ge=(0,_.useMemo)(()=>{if(!r)return null;for(let e of ie)if((e.audit_id??`${e.ts_ms}:${e.tool}`)===r||r.startsWith(`${e.ts_ms}:${e.tool}`))return e;return null},[ie,r]),[_e,ve]=(0,_.useState)(null),ye=(0,_.useRef)(null),be=(0,_.useMemo)(()=>{if(L.length===0)return ye.current=null,null;if(_e!=null&&L.some(e=>e.key===_e))return ye.current=_e,_e;let e=L.filter(e=>e.state.pinned);if(e.length>0)return e.sort((e,t)=>t.state.pinnedAt-e.state.pinnedAt),ye.current=e[0].key,e[0].key;let t=L[0];for(let e of L)e.newestTs>t.newestTs&&(t=e);let n=ye.current;if(n!=null&&n!==t.key){let e=L.find(e=>e.key===n);if(e&&Date.now()-e.newestTs<Wu)return n}return ye.current=t.key,t.key},[L,_e]);(0,_.useEffect)(()=>{_e!=null&&(L.some(e=>e.key===_e)||ve(null))},[_e,L]),(0,_.useEffect)(()=>{ve(null)},[d]);let R=(0,_.useMemo)(()=>{if(L.length===0)return{hero:null,grid:[],rail:[],overflow:[]};if(d===`full`||d===`feed`)return{hero:null,grid:L.slice(0,Gu),rail:L.slice(Gu),overflow:[]};let e=L.find(e=>e.key===be)??L[L.length-1],t=L.filter(t=>t.key!==e.key);return d===`broadcast`?{hero:e,grid:[],rail:[],overflow:t}:{hero:e,grid:[],rail:t.slice(0,Ku),overflow:t.slice(Ku)}},[L,d,be]),xe=(0,_.useCallback)(e=>{ve(e)},[]),Se=(0,_.useCallback)(()=>{ve(null)},[]),Ce=(0,_.useMemo)(()=>{let e=new Map,t=new Map,n=new Map,r=new Map,i=new Map,a=new Map;for(let o of L){let s=o.key;e.set(s,()=>pe(s)),t.set(s,()=>me(s)),n.set(s,()=>he(s)),r.set(s,()=>void O([s])),i.set(s,e=>re(s,e)),a.set(s,()=>xe(s))}return{onTogglePin:e,onToggleMinimize:t,onToggleFullscreen:n,onClose:r,onFrameTime:i,onPromote:a}},[L.map(e=>e.key).join(`,`),pe,me,he,O,re,xe]);(0,_.useEffect)(()=>{let e=new Set(L.map(e=>e.key)),t=te.current;for(let n of Array.from(t.keys()))e.has(n)||t.delete(n)},[L]);let we=(0,_.useMemo)(()=>{let e=n?.counters,t=e?.total??0,r=(e?.block??0)+(e?.force??0),i=0;if(ie.length>0){let e=0,t=ie.slice(-100);for(let n of t)e+=n.duration_ns;i=e/t.length/1e6}return{evals:t,blocks:r,avgMs:i,agents:L.length}},[n,ie,L.length]),Te=Math.min(M,j.playhead_ms-j.window_ms),Ee=Math.max(ae,j.playhead_ms),Oe=R.grid.length,Ae=C||Oe<=1?1:Oe<=4?2:3,je=Math.max(1,Math.ceil(Math.max(1,Oe)/Ae)),z=Oe<=1||C?360:180,Me=ce?L.find(e=>e.key===ce):null,Ne=e=>e>=1e4?`${Math.round(e/1e3)}k`:e.toLocaleString();return(0,W.jsxs)(`div`,{className:`grid gap-3 md:h-[calc(100dvh-4.5rem)] md:min-h-[560px] ${g?`grid-rows-[auto_minmax(0,1fr)]`:`grid-rows-[auto_minmax(0,1fr)_auto]`} ${p?`bg-black`:``}`,children:[(0,W.jsxs)(`header`,{className:`flex items-center justify-between flex-wrap gap-y-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,W.jsx)(`h1`,{className:`text-sm font-mono uppercase tracking-wider text-[var(--color-fg-1)]`,children:`graph intelligence`}),!p&&(0,W.jsx)(`span`,{className:`chip text-sky-300 border-sky-500/30`,children:`real-time tool-use`}),j.mode===`live`?(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-emerald-300`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-emerald-400 pulse-soft`}),`streaming`]}):(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-amber-300`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-amber-400`}),j.mode]}),(0,W.jsxs)(`span`,{className:`flex items-center gap-x-3 gap-y-1 flex-wrap text-[11px] font-mono text-[var(--color-fg-3)] pl-3 border-l border-[var(--color-line-1)]`,children:[(0,W.jsxs)(`span`,{title:`Total evaluations since daemon start`,children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`↑`}),` `,(0,W.jsx)(`span`,{className:`text-[var(--color-fg-1)]`,children:Ne(we.evals)}),` `,(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:`evals`})]}),(0,W.jsxs)(`span`,{title:`Block + force decisions — dangerous tool calls intercepted by SSG rules`,children:[(0,W.jsx)(`span`,{className:`text-rose-400`,children:`⛔`}),` `,(0,W.jsx)(`span`,{className:`text-[var(--color-fg-1)]`,children:Ne(we.blocks)}),` `,(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:`blocks`})]}),(0,W.jsxs)(`span`,{className:`hidden md:inline`,title:`Mean eval latency over the last 100 bursts`,children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`⏱`}),` `,(0,W.jsx)(`span`,{className:`text-[var(--color-fg-1)]`,children:we.avgMs<1?`${(we.avgMs*1e3).toFixed(0)}µs`:`${we.avgMs.toFixed(1)}ms`})]}),(0,W.jsxs)(`span`,{title:`Concurrent agent sessions in this window`,children:[(0,W.jsx)(`span`,{className:`text-[var(--color-fg-4)]`,children:`⌥`}),` `,(0,W.jsx)(`span`,{className:`text-[var(--color-fg-1)]`,children:we.agents}),` `,(0,W.jsxs)(`span`,{className:`hidden sm:inline`,children:[`agent`,we.agents===1?``:`s`]})]})]})]}),(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!p&&(0,W.jsxs)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:[ie.length,`n · window `,Math.round(j.window_ms/1e3),`s`]}),(0,W.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)] tabular-nums`,title:`Average RAF interval across ${A.active} canvas${A.active===1?``:`es`}${A.hitches>0?` · ${A.hitches} hitch${A.hitches===1?``:`es`} (>33ms frames)`:``}`,children:[A.active===0?`—`:`${A.fps}fps${A.hitches>0?` (${A.hitches}h)`:``}`,` · `,A.active,`/`,L.length]}),(0,W.jsx)(`div`,{role:`group`,"aria-label":`Graph view mode`,className:`inline-flex items-stretch rounded border border-[var(--color-line-1)] overflow-hidden text-[10px] font-mono uppercase tracking-wider`,title:`View mode — B cycles, Esc returns to full`,children:[`full`,`feed`,`stream`,`broadcast`].map(e=>{let t=d===e,n=e===`broadcast`?`cast`:e,r=e===`full`?`Full dashboard — sidebar, timeline, all controls`:e===`feed`?`Feed mode — vertical timeline of tool calls for non-technical users`:e===`stream`?`Stream mode — spotlight layout for Twitch/YouTube viewers`:`Broadcast mode — pure canvas for OBS scenes (Esc to exit)`;return(0,W.jsx)(`button`,{type:`button`,onClick:()=>f(e),"aria-pressed":t,title:r,className:`px-2 py-0.5 transition-colors cursor-pointer ${t?e===`broadcast`?`bg-amber-500/15 text-amber-300`:e===`stream`?`bg-sky-500/15 text-sky-300`:e===`feed`?`bg-emerald-500/15 text-emerald-300`:`bg-[var(--color-fg-4)]/10 text-[var(--color-fg-1)]`:`text-[var(--color-fg-4)] hover:text-[var(--color-fg-2)] hover:bg-white/5`}`,children:n},e)})}),(0,W.jsx)(`button`,{type:`button`,onClick:S,className:`chip cursor-pointer transition-colors ${b&&!c.enabled?`border-amber-500/60 text-amber-300 animate-pulse`:`hover:border-sky-500/50 hover:text-sky-300`}`,title:c.enabled?`Mute stream sounds`:`Enable stream sounds`,children:c.enabled?`SFX ON`:b?`🔊 enable cues`:`SFX OFF`}),!p&&L.length>0&&(0,W.jsx)(`div`,{"aria-live":`polite`,children:(0,W.jsx)(`button`,{type:`button`,"aria-label":`Clear all visible graph sessions`,onClick:()=>ee(L.filter(e=>!e.fadingOutAt).map(e=>e.key)),className:`chip cursor-pointer transition-colors ${T?`border-rose-500/60 text-rose-300`:`hover:border-rose-500/40 hover:text-rose-300`}`,title:`Close all active sessions on the graph — equivalent to /clear but reflects on the graph`,children:T?`confirm clear ${L.filter(e=>!e.fadingOutAt).length}`:`clear`})})]})]}),(0,W.jsxs)(`div`,{className:`grid grid-cols-1 ${v?``:y?`lg:grid-cols-[1fr_240px]`:`lg:grid-cols-[1fr_300px]`} gap-3 min-h-0 md:overflow-hidden`,children:[(0,W.jsx)(`div`,{className:`flex flex-col gap-3 min-h-0 min-w-0`,children:h?(0,W.jsx)(`div`,{className:`flex-1 flex flex-col min-h-0 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] overflow-hidden`,children:(0,W.jsx)(Su,{bursts:ie,selectedId:r,onSelect:s})}):L.length===0?(0,W.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] text-center px-4`,style:{minHeight:240},children:[(0,W.jsx)(`p`,{className:`overline mb-2 text-[var(--color-fg-3)]`,children:`graph · idle`}),(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)] max-w-[280px]`,children:`No active sessions in the current window. Each session will render as its own tree as bursts arrive.`})]}):(0,W.jsxs)(W.Fragment,{children:[R.hero&&(ce==null||ce===R.hero.key)&&(0,W.jsxs)(`div`,{className:`flex-1 min-h-0 flex flex-col gap-2`,children:[_e!=null&&(0,W.jsx)(`button`,{type:`button`,onClick:Se,className:`self-end chip text-amber-300 border-amber-500/40 hover:border-amber-400 cursor-pointer text-[10px]`,title:`Release manual spotlight — return to auto-follow`,children:`spotlight: locked · release ↺`}),(0,W.jsx)(`div`,{className:`flex-1 min-h-0`,children:(0,W.jsx)(vu,{sessionKey:R.hero.key,bursts:R.hero.bursts,paused:j.mode!==`live`||R.hero.fadingOutAt!=null,selectedId:r,onSelect:s,burstSeq:t,isStale:R.hero.fadingOutAt!=null||j.playhead_ms-R.hero.newestTs>Uu,isFadingOut:R.hero.fadingOutAt!=null,minHeight:0,pinned:R.hero.state.pinned,minimized:R.hero.state.minimized,isFullscreen:!1,viewMode:d,activePanelCount:1,onTogglePin:Ce.onTogglePin.get(R.hero.key),onToggleMinimize:Ce.onToggleMinimize.get(R.hero.key),onToggleFullscreen:Ce.onToggleFullscreen.get(R.hero.key),onClose:Ce.onClose.get(R.hero.key),onFrameTime:Ce.onFrameTime.get(R.hero.key)},R.hero.key)})]}),R.grid.length>0&&(0,W.jsx)(`div`,{className:`flex-1 grid gap-3 min-h-0 min-w-0`,style:{gridTemplateColumns:`repeat(${Ae}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${je}, minmax(180px, 1fr))`},children:R.grid.map(e=>{let n=e.fadingOutAt!=null||j.playhead_ms-e.newestTs>Uu;return ce!=null&&ce!==e.key?null:(0,W.jsx)(vu,{sessionKey:e.key,bursts:e.bursts,paused:j.mode!==`live`||e.fadingOutAt!=null,selectedId:r,onSelect:s,burstSeq:t,isStale:n,isFadingOut:e.fadingOutAt!=null,minHeight:z,pinned:e.state.pinned,minimized:e.state.minimized,isFullscreen:!1,viewMode:d,activePanelCount:R.grid.length,onTogglePin:Ce.onTogglePin.get(e.key),onToggleMinimize:Ce.onToggleMinimize.get(e.key),onToggleFullscreen:Ce.onToggleFullscreen.get(e.key),onClose:Ce.onClose.get(e.key),onFrameTime:Ce.onFrameTime.get(e.key)},e.key)})}),R.rail.length>0&&(0,W.jsxs)(`div`,{className:`shrink-0 flex flex-col gap-1`,children:[(0,W.jsxs)(`div`,{className:`flex items-baseline justify-between text-[10px] font-mono text-[var(--color-fg-4)] uppercase tracking-wider`,children:[(0,W.jsxs)(`span`,{children:[d===`full`?`overflow rail`:`spotlight rail`,` · `,R.rail.length,` session`,R.rail.length===1?``:`s`]}),R.overflow.length>0&&(0,W.jsxs)(`span`,{title:R.overflow.map(e=>e.key).join(`
20
20
  `),children:[`+`,R.overflow.length,` more`]})]}),(0,W.jsx)(`div`,{className:`grid gap-2`,style:{gridTemplateColumns:`repeat(${Math.min(R.rail.length,4)}, minmax(0, 1fr))`,gridAutoRows:`110px`},children:R.rail.map(e=>{let n=e.fadingOutAt!=null||j.playhead_ms-e.newestTs>Uu;return ce!=null&&ce!==e.key?null:(0,W.jsx)(vu,{sessionKey:e.key,bursts:e.bursts,paused:j.mode!==`live`||e.fadingOutAt!=null,selectedId:r,onSelect:s,burstSeq:t,isStale:n,isFadingOut:e.fadingOutAt!=null,minHeight:110,pinned:e.state.pinned,minimized:e.state.minimized,isFullscreen:!1,viewMode:d,thumbnail:!0,onPromote:Ce.onPromote.get(e.key),activePanelCount:R.rail.length+1,onTogglePin:Ce.onTogglePin.get(e.key),onToggleMinimize:Ce.onToggleMinimize.get(e.key),onToggleFullscreen:Ce.onToggleFullscreen.get(e.key),onClose:Ce.onClose.get(e.key),onFrameTime:Ce.onFrameTime.get(e.key)},e.key)})})]}),d===`broadcast`&&R.overflow.length>0&&(0,W.jsxs)(`div`,{className:`shrink-0 self-end pointer-events-none chip text-[var(--color-fg-3)] border-[var(--color-line-1)]`,children:[`+`,R.overflow.length,` more session`,R.overflow.length===1?``:`s`,` off-screen`]})]})}),!v&&(0,W.jsxs)(`aside`,{className:`flex flex-col gap-2 min-w-0 min-h-0 overflow-y-auto`,children:[(0,W.jsx)(Bu,{onMilestone:l,onRecord:u}),!y&&(0,W.jsx)(`section`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3`,children:(0,W.jsx)(Fu,{bursts:ie,allBursts:e.allBursts})}),(0,W.jsx)(Au,{burst:ge,anchor:a,onClose:()=>{i(null),o(null)}})]})]}),!g&&(0,W.jsx)(`section`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3`,children:(0,W.jsx)(Cu,{playback:j,bursts:ie,rangeStart:Te,rangeEnd:Ee,loading:oe,onPlayhead:t=>e.setPlayhead(t),onLive:()=>e.jumpToLive(),onPause:()=>e.setMode(`paused`),onResume:()=>e.setMode(`scrubbing`),on24h:()=>e.jumpTo24h()})}),p&&(0,W.jsxs)(`div`,{className:`pointer-events-none fixed bottom-3 right-4 flex flex-col items-end gap-1 z-30`,children:[(0,W.jsx)(`span`,{className:`text-[11px] font-mono uppercase tracking-[0.18em] text-[var(--color-fg-3)]`,children:`sigmashake gov`}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:`broadcast mode · press B or Esc to exit`})]}),Me&&(0,W.jsx)(`div`,{className:`fixed inset-0 z-50 bg-black/90 backdrop-blur-sm flex flex-col p-6`,children:(0,W.jsx)(vu,{sessionKey:Me.key,bursts:Me.bursts,paused:j.mode!==`live`||Me.fadingOutAt!=null,selectedId:r,onSelect:s,burstSeq:t,isStale:Me.fadingOutAt!=null||j.playhead_ms-Me.newestTs>Uu,isFadingOut:!1,minHeight:0,pinned:Me.state.pinned,minimized:!1,isFullscreen:!0,viewMode:d,onTogglePin:()=>pe(Me.key),onToggleMinimize:()=>me(Me.key),onToggleFullscreen:()=>he(Me.key)},`fs-${Me.key}`)})]})}var $u=[{id:`rca`,label:`rca`,hint:`pre-computed root cause`},{id:`timeline`,label:`timeline`,hint:`recent frames across traces`},{id:`watch`,label:`watch`,hint:`subscribe to any ssg:// URI`},{id:`state`,label:`state`,hint:`daemon runtime snapshot`},{id:`metrics`,label:`metrics`,hint:`latency + counters`}];function ed(){let[e,t]=(0,_.useState)(`rca`);return(0,W.jsxs)(`div`,{className:`flex flex-col gap-4 min-h-[70vh]`,children:[(0,W.jsxs)(`header`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,W.jsx)(`h1`,{className:`text-sm font-mono uppercase tracking-wider text-[var(--color-fg-1)]`,children:`ai-native debugger`}),(0,W.jsx)(`span`,{className:`chip text-sky-300 border-sky-500/30`,children:`ssg:// unified resolver`}),(0,W.jsx)(td,{})]}),(0,W.jsx)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)]`,children:`one surface · cli · mcp · dashboard`})]}),(0,W.jsx)(`nav`,{className:`flex items-center gap-1 border-b border-[var(--color-line-1)]`,children:$u.map(n=>(0,W.jsx)(`button`,{type:`button`,onClick:()=>t(n.id),title:n.hint,className:`px-3 py-1.5 text-[11px] font-mono uppercase tracking-wider border-b-2 transition-colors `+(e===n.id?`border-[var(--color-brand)] text-[var(--color-fg-1)]`:`border-transparent text-[var(--color-fg-4)] hover:text-[var(--color-fg-2)]`),children:n.label},n.id))}),(0,W.jsxs)(`section`,{className:`flex-1 min-h-0`,children:[e===`rca`&&(0,W.jsx)(nd,{}),e===`timeline`&&(0,W.jsx)(sd,{}),e===`watch`&&(0,W.jsx)(hd,{}),e===`state`&&(0,W.jsx)(gd,{uri:`ssg://daemon/state`}),e===`metrics`&&(0,W.jsx)(gd,{uri:`ssg://daemon/metrics`})]})]})}function td(){let e=je([`debug-frame`])[`debug-frame`]??0;return(0,W.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-emerald-300`,title:`${e} debug-frame bursts received`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-emerald-400 pulse-soft`}),`live · `,e]})}function nd(){let e=je([`debug-frame`,`activity-updated`]),{data:t,loading:n,error:r,refetch:i}=z(`/api/json/debug?uri=ssg%3A%2F%2Frca%2Fcurrent`,[e[`debug-frame`],e[`activity-updated`]]),a=t?.data?.pack??null;return(0,W.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-[1fr_340px] gap-4`,children:[(0,W.jsxs)(`article`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-4 space-y-3`,children:[n&&!t&&(0,W.jsx)(`p`,{className:`text-sm text-[var(--color-fg-4)]`,children:`loading RCA pack…`}),r&&(0,W.jsxs)(`p`,{className:`text-sm text-rose-300`,children:[`rca fetch error: `,r]}),!n&&!a&&(0,W.jsxs)(`div`,{className:`text-sm text-[var(--color-fg-3)] space-y-2`,children:[(0,W.jsx)(`p`,{className:`font-mono`,children:`no current RCA pack`}),(0,W.jsx)(`p`,{className:`text-[11px] text-[var(--color-fg-4)]`,children:`Packs are composed automatically when an eval errors, an ssqa finding arrives, or a daemon-level error fires. Nothing to diagnose yet — you're green.`})]}),a&&(0,W.jsx)(id,{pack:a})]}),(0,W.jsxs)(`aside`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 text-[11px] font-mono text-[var(--color-fg-4)] space-y-2`,children:[(0,W.jsx)(`p`,{className:`uppercase tracking-wider text-[var(--color-fg-2)]`,children:`how claude sees this`}),(0,W.jsxs)(`pre`,{className:`text-[10px] whitespace-pre-wrap leading-snug`,children:[`ssg debug rca --current --json`,`
21
21
  `,`# or via MCP:`,`
22
- `,`ssg_debug_rca(`,`{`,`auto_current:true`,`}`,`)`]}),(0,W.jsx)(`button`,{type:`button`,onClick:i,className:`w-full mt-2 px-2 py-1 border border-[var(--color-line-1)] rounded-sm hover:bg-[var(--color-surface-2)]`,children:`refresh`}),t?.snapshot_hash&&(0,W.jsxs)(`p`,{className:`text-[10px] opacity-60`,children:[`hash `,t.snapshot_hash.slice(0,12),`…`]})]})]})}function rd(e){return e===`critical`?`text-rose-400 border-rose-500/40`:e===`high`?`text-amber-300 border-amber-500/40`:e===`medium`?`text-sky-300 border-sky-500/40`:`text-[var(--color-fg-3)] border-[var(--color-line-1)]`}function id({pack:e}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`header`,{className:`flex items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`p`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-4)]`,children:[`rca pack · `,new Date(e.ts_ms).toLocaleTimeString()]}),(0,W.jsx)(`h2`,{className:`text-[15px] font-medium text-[var(--color-fg-1)] mt-1`,children:e.summary}),e.trace_id&&(0,W.jsxs)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)] mt-1`,children:[`trace_id · `,e.trace_id]})]}),(0,W.jsx)(`span`,{className:`chip uppercase text-[10px] tracking-wider `+rd(e.severity),children:e.severity})]}),e.hypothesis&&e.hypothesis.length>0&&(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] mb-2`,children:`hypothesis`}),(0,W.jsx)(`ol`,{className:`space-y-2`,children:e.hypothesis.map((e,t)=>(0,W.jsxs)(`li`,{className:`p-2 rounded-sm bg-[var(--color-surface-2)] border border-[var(--color-line-1)]`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,W.jsx)(`p`,{className:`text-[13px] text-[var(--color-fg-1)]`,children:e.cause}),(0,W.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:[`conf `,(e.confidence*100).toFixed(0),`%`]})]}),e.evidence.length>0&&(0,W.jsx)(`ul`,{className:`mt-1 pl-3 text-[11px] text-[var(--color-fg-3)] list-disc list-inside space-y-0.5`,children:e.evidence.map((e,t)=>(0,W.jsx)(`li`,{children:e},t))})]},t))})]}),e.suggested_next_actions&&e.suggested_next_actions.length>0&&(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] mb-2`,children:`suggested next actions`}),(0,W.jsx)(`ul`,{className:`space-y-1 text-[13px] text-[var(--color-fg-2)]`,children:e.suggested_next_actions.map((e,t)=>(0,W.jsxs)(`li`,{className:`font-mono text-[12px]`,children:[`→ `,e]},t))})]}),e.state_snapshot&&e.state_snapshot.length>0&&(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] mb-2`,children:`expand`}),(0,W.jsx)(`ul`,{className:`space-y-1 text-[11px] font-mono`,children:e.state_snapshot.map(e=>(0,W.jsxs)(`li`,{className:`text-[var(--color-fg-3)]`,children:[(0,W.jsx)(`code`,{className:`text-sky-300`,children:e.uri}),(0,W.jsxs)(`span`,{className:`opacity-50 ml-2`,children:[e.hash.slice(0,10),`…`]})]},e.uri))})]})]})}var ad=[`hook-ingress`,`parse`,`match`,`ffi-call`,`decide`,`audit`,`respond`],od={"hook-ingress":`#6ea8ff`,parse:`#a78bfa`,match:`#60d394`,"ffi-call":`#f59e0b`,decide:`#f472b6`,audit:`#94a3b8`,respond:`#22d3ee`};function sd(){let{data:e,loading:t,error:n}=z(`/api/json/debug?uri=ssg%3A%2F%2Fframes%2Frecent%3Flimit%3D1024`,[je([`debug-frame`])[`debug-frame`]]),r=e?.data?.frames??[],i=e?.data?.dropped??0,[a,o]=(0,_.useState)(null);return(0,W.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-[1fr_320px] gap-4`,children:[(0,W.jsxs)(`article`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 space-y-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,children:[`frames · `,r.length,i>0&&(0,W.jsxs)(`span`,{className:`ml-2 text-amber-300`,children:[`dropped · `,i]})]}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:`ssg://frames/recent`})]}),n&&(0,W.jsxs)(`p`,{className:`text-sm text-rose-300`,children:[`timeline fetch error: `,n]}),t&&r.length===0?(0,W.jsx)(`p`,{className:`text-sm text-[var(--color-fg-4)]`,children:`loading…`}):r.length===0?(0,W.jsx)(cd,{}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ud,{frames:r,onSelect:o}),(0,W.jsx)(ld,{})]})]}),(0,W.jsxs)(`aside`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 space-y-2 text-[11px] font-mono text-[var(--color-fg-3)]`,children:[(0,W.jsx)(`p`,{className:`uppercase tracking-wider text-[var(--color-fg-2)]`,children:`frame inspector`}),a?(0,W.jsx)(dd,{frame:a}):(0,W.jsx)(`p`,{className:`opacity-60`,children:`click a bar to inspect`})]})]})}function cd(){return(0,W.jsxs)(`div`,{className:`text-[12px] text-[var(--color-fg-3)] space-y-1 py-4`,children:[(0,W.jsx)(`p`,{children:`no frames yet`}),(0,W.jsx)(`p`,{className:`text-[11px] text-[var(--color-fg-4)] font-mono`,children:`SSG_DEBUG_ENABLED=1 ssg daemon`}),(0,W.jsx)(`p`,{className:`text-[11px] text-[var(--color-fg-4)]`,children:`then fire an eval — frames stream in live.`})]})}function ld(){return(0,W.jsx)(`div`,{className:`flex flex-wrap gap-3 text-[10px] font-mono text-[var(--color-fg-4)]`,children:ad.map(e=>(0,W.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-sm`,style:{background:od[e]}}),e]},e))})}function ud({frames:e,onSelect:t}){let n=(0,_.useRef)(null),r=(0,_.useRef)([]),[i,a]=(0,_.useState)(-1),{rows:o,tMin:s,tMax:c}=(0,_.useMemo)(()=>{let t=new Map;for(let n of e){let e=t.get(n.trace_id)??[];e.push(n),t.set(n.trace_id,e)}let n=Array.from(t.entries()).map(([e,t])=>({trace_id:e,frames:t.slice().sort((e,t)=>pd(e.ts_start_ns,t.ts_start_ns))}));n.sort((e,t)=>pd(e.frames[0].ts_start_ns,t.frames[0].ts_start_ns));let r=null,i=null;for(let t of e){let e=BigInt(t.ts_start_ns),n=BigInt(t.ts_end_ns);(r===null||e<r)&&(r=e),(i===null||n>i)&&(i=n)}return{rows:n,tMin:r??0n,tMax:i??1n}},[e]);(0,_.useEffect)(()=>{let e=n.current;if(!e)return;let t=window.devicePixelRatio||1,a=e.clientWidth,l=Math.max(120,o.length*22+24);e.width=a*t,e.height=l*t,e.style.height=`${l}px`;let u=e.getContext(`2d`);if(!u)return;u.setTransform(t,0,0,t,0,0),u.clearRect(0,0,a,l),u.strokeStyle=`rgba(255,255,255,0.04)`,u.lineWidth=1;for(let e=1;e<4;e++){let t=e*a/4;u.beginPath(),u.moveTo(t,0),u.lineTo(t,l),u.stroke()}let d=c>s?Number(c-s):1,f=a-110-8;u.font=`10px ui-monospace, monospace`,u.textBaseline=`middle`;let p=[];if(o.forEach((e,t)=>{let n=8+t*22;u.fillStyle=`rgba(255,255,255,0.55)`,u.fillText(e.trace_id.slice(0,10),6,n+18/2);for(let t of e.frames){let e=Number(BigInt(t.ts_start_ns)-s),r=Number(BigInt(t.ts_end_ns)-s),i=110+e/d*f,a=Math.max(2,(r-e)/d*f);u.fillStyle=od[t.stage]??`#888`,u.globalAlpha=t.result===`error`?1:.82,u.fillRect(i,n,a,18),u.globalAlpha=1,t.result===`error`&&(u.strokeStyle=`#f43f5e`,u.lineWidth=1.5,u.strokeRect(i+.5,n+.5,a-1,17)),p.push({x:i,y:n,w:a,h:18,frame:t})}}),r.current=p,i>=0&&i<p.length){let e=p[i];u.strokeStyle=`#fff`,u.lineWidth=1.5,u.strokeRect(e.x+.5,e.y+.5,e.w-1,e.h-1)}},[o,s,c,i]);function l(e){let t=n.current;if(!t)return-1;let i=t.getBoundingClientRect(),a=e.clientX-i.left,o=e.clientY-i.top;for(let e=r.current.length-1;e>=0;e--){let t=r.current[e];if(a>=t.x&&a<=t.x+t.w&&o>=t.y&&o<=t.y+t.h)return e}return-1}return(0,W.jsx)(`canvas`,{ref:n,className:`w-full block cursor-crosshair`,onMouseMove:e=>a(l(e)),onMouseLeave:()=>a(-1),onClick:e=>{let n=l(e);t(n>=0?r.current[n].frame:null)}})}function dd({frame:e}){let t=Number(BigInt(e.ts_end_ns)-BigInt(e.ts_start_ns)),n=t>=1e6?`${(t/1e6).toFixed(2)}ms`:t>=1e3?`${(t/1e3).toFixed(1)}µs`:`${t}ns`;return(0,W.jsxs)(`dl`,{className:`space-y-1`,children:[(0,W.jsxs)(fd,{k:`stage`,children:[(0,W.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-sm mr-1 align-middle`,style:{background:od[e.stage]??`#888`}}),e.stage]}),(0,W.jsx)(fd,{k:`tool`,children:e.tool}),(0,W.jsx)(fd,{k:`result`,children:(0,W.jsx)(`span`,{className:e.result===`error`?`text-rose-300`:e.result===`skip`?`text-[var(--color-fg-4)]`:`text-emerald-300`,children:e.result})}),(0,W.jsx)(fd,{k:`dur`,children:n}),e.rule_id&&(0,W.jsx)(fd,{k:`rule`,children:e.rule_id}),e.error&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(fd,{k:`err.type`,children:(0,W.jsx)(`span`,{className:`text-rose-300`,children:e.error.type})}),(0,W.jsx)(fd,{k:`err.msg`,children:(0,W.jsx)(`span`,{className:`text-rose-200`,children:e.error.message})})]}),e.input_preview&&(0,W.jsx)(fd,{k:`input`,children:(0,W.jsx)(`code`,{className:`text-[10px] break-all`,children:e.input_preview})}),(0,W.jsx)(fd,{k:`trace`,children:(0,W.jsx)(`code`,{className:`text-[10px]`,children:e.trace_id})}),(0,W.jsx)(fd,{k:`frame`,children:(0,W.jsx)(`code`,{className:`text-[10px]`,children:e.frame_id})})]})}function fd({k:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex gap-2 text-[11px] leading-tight`,children:[(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)] w-16 shrink-0 uppercase tracking-wider`,children:e}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)] break-all min-w-0`,children:t})]})}function pd(e,t){let n=BigInt(e),r=BigInt(t);return n<r?-1:n>r?1:0}var md=[`ssg://daemon/state`,`ssg://daemon/metrics`,`ssg://audit/recent?limit=10`,`ssg://frames/recent?limit=32`,`ssg://rules/list`,`ssg://rca/current`,`ssg://native/stats`];function hd(){let[e,t]=(0,_.useState)(`ssg://daemon/state`),[n,r]=(0,_.useState)(`ssg://daemon/state`);return(0,W.jsxs)(`div`,{className:`space-y-3`,children:[(0,W.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:md.map(e=>(0,W.jsx)(`button`,{type:`button`,onClick:()=>{t(e),r(e)},className:`chip text-[10px] `+(n===e?`border-[var(--color-brand)] text-[var(--color-fg-1)]`:`text-[var(--color-fg-3)]`),children:e},e))}),(0,W.jsxs)(`form`,{className:`flex items-center gap-2`,onSubmit:t=>{t.preventDefault(),r(e)},children:[(0,W.jsx)(`input`,{value:e,onChange:e=>t(e.target.value),placeholder:`ssg://source/path?k=v`,className:`flex-1 px-3 py-1.5 text-[12px] font-mono rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] text-[var(--color-fg-1)]`}),(0,W.jsx)(`button`,{type:`submit`,className:`px-3 py-1.5 text-[11px] font-mono uppercase tracking-wider border border-[var(--color-line-1)] rounded-sm hover:bg-[var(--color-surface-2)]`,children:`resolve`})]}),(0,W.jsx)(gd,{uri:n})]})}function gd({uri:e}){let t=je([`debug-frame`,`activity-updated`,`counters-updated`]),{data:n,loading:r,error:i,refetch:a}=z(`/api/json/debug?uri=${encodeURIComponent(e)}`,[t[`debug-frame`],t[`activity-updated`],t[`counters-updated`],e]),o=n?JSON.stringify(n.data,null,2):``;return(0,W.jsxs)(`div`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 space-y-2`,children:[(0,W.jsxs)(`header`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,children:e}),n?.snapshot_hash&&(0,W.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:[`hash `,n.snapshot_hash.slice(0,10),`…`]}),n?.stale&&(0,W.jsxs)(`span`,{className:`chip text-amber-300 border-amber-500/40 text-[10px]`,children:[`stale `,n.age_ms?`${Math.round(n.age_ms/1e3)}s`:``]})]}),(0,W.jsx)(`button`,{type:`button`,onClick:a,className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)]`,children:`refresh`})]}),r&&!n&&(0,W.jsx)(`p`,{className:`text-sm text-[var(--color-fg-4)]`,children:`resolving…`}),i&&(0,W.jsx)(`p`,{className:`text-sm text-rose-300`,children:i}),o&&(0,W.jsx)(`pre`,{className:`text-[11px] leading-snug font-mono text-[var(--color-fg-2)] overflow-auto max-h-[60vh] whitespace-pre-wrap break-all`,children:o})]})}var _d=`ssg-dashboard-tabs`,vd=2e3,$=6e3;function yd(){return`tab-${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function bd(){let[e,t]=(0,_.useState)(0),[n,r]=(0,_.useState)(!0),i=(0,_.useRef)(yd()),a=(0,_.useRef)(new Map);return(0,_.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(_d);function n(){let e=Date.now();for(let[t,n]of a.current.entries())e-n>$&&a.current.delete(t);let n=a.current.size;t(n),r([...a.current.keys(),i.current].sort()[0]===i.current)}function o(e){let t=e.data;!t||t.id===i.current||(t.type===`leave`?a.current.delete(t.id):a.current.set(t.id,Date.now()),n())}e.addEventListener(`message`,o),e.postMessage({type:`join`,id:i.current});let s=setInterval(()=>{e.postMessage({type:`heartbeat`,id:i.current}),n()},vd),c=()=>{e.postMessage({type:`leave`,id:i.current})};return window.addEventListener(`beforeunload`,c),()=>{clearInterval(s),e.postMessage({type:`leave`,id:i.current}),e.removeEventListener(`message`,o),e.close(),window.removeEventListener(`beforeunload`,c)}},[]),{otherTabCount:e,isLeader:n}}var xd=b;function Sd(){(0,_.useEffect)(()=>we([]),[]);let e=(0,_.useSyncExternalStore)(ge,_e),[,t]=(0,_.useState)(0);(0,_.useEffect)(()=>{if(e.connected||e.lastErrorAt===null)return;let n=setInterval(()=>t(e=>e+1),1e3);return()=>clearInterval(n)},[e.connected,e.lastErrorAt]);let n=Cd(e),r=n===`reconnecting`&&e.lastErrorAt!==null?Math.max(0,Math.ceil((e.lastErrorAt+e.reconnectDelayMs-Date.now())/1e3)):null,i=Math.round(xd/1e3);if(n===`connected`)return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,title:`Telemetry Live — SSE connected`,"data-testid":`sse-status-chip`,"data-state":`connected`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-emerald-400`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:`sse · live`})]});let a=n===`reconnecting`,o=a?`border-amber-500/40 bg-amber-500/10 text-amber-200`:`border-red-500/40 bg-red-500/10 text-red-200`,s=a?`bg-amber-400`:`bg-red-400`,c=a?r===null?`reconnecting`:`reconnect · ${r}s`:`offline`,l=`live paused · ${i}s poll`,u=a?`Live stream down — reconnect in ${r??`…`}s (attempt ${e.reconnectAttempts}). Dashboard is polling every ${i}s until SSE recovers.`:`Live stream disconnected. Dashboard is polling every ${i}s — data still updates, just at a coarser cadence.`;return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded border px-2 py-0.5 text-[11px] font-mono uppercase tracking-wider ${o}`,title:u,"data-testid":`sse-status-chip`,"data-state":n,role:`status`,"aria-live":`polite`,children:[(0,W.jsx)(`span`,{className:`status-dot ${s} pulse-soft`}),(0,W.jsx)(`span`,{className:`hidden md:inline`,children:l}),(0,W.jsx)(`span`,{className:`md:hidden`,children:c})]})}function Cd(e){return e.connected?`connected`:e.reconnectAttempts>0||e.lastErrorAt!==null?`reconnecting`:`disconnected`}var wd=`ssg:ui:font-scale:v1`,Td=[{label:`S`,value:.9},{label:`M`,value:1},{label:`L`,value:1.15},{label:`XL`,value:1.3}],Ed=1;function Dd(e){if(typeof e!=`number`||!Number.isFinite(e))return Ed;let t=Td.find(t=>Math.abs(t.value-e)<.001);return t?t.value:Ed}function Od(){if(typeof localStorage>`u`)return Ed;try{let e=localStorage.getItem(wd);return e===null?Ed:Dd(parseFloat(e))}catch{return Ed}}function kd(e){if(!(typeof localStorage>`u`))try{localStorage.setItem(wd,String(e))}catch{}}function Ad(e){typeof document>`u`||(document.documentElement.style.setProperty(`--ssg-font-scale`,String(e)),document.documentElement.style.fontSize=`${16*e}px`)}function jd(){let[e,t]=(0,_.useState)(()=>{let e=Od();return Ad(e),e});return(0,_.useEffect)(()=>{Ad(e)},[e]),{scale:e,setScale:(0,_.useCallback)(e=>{t(e),kd(e),Ad(e)},[])}}function Md(){let{scale:e,setScale:t}=jd();return(0,W.jsx)(`div`,{role:`radiogroup`,"aria-label":`Font size`,className:`flex items-center gap-0.5 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-0.5`,children:Td.map(n=>{let r=Math.abs(n.value-e)<.001;return(0,W.jsx)(`button`,{role:`radio`,"aria-checked":r,onClick:()=>t(n.value),title:`Font size: ${n.label} (${Math.round(n.value*100)}%)`,className:`px-1.5 py-0.5 text-[10px] font-mono uppercase tracking-wider cursor-pointer transition-colors rounded-sm `+(r?`bg-[var(--color-surface-3)] text-[var(--color-fg-0)]`:`text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)]`),children:n.label},n.label)})})}var Nd=`ssg:ui:theme:v1`,Pd=[{label:`Default Dark`,value:`default`},{label:`Light`,value:`light`},{label:`Dracula`,value:`dracula`},{label:`Gruvbox Dark`,value:`gruvbox-dark`},{label:`Gruvbox Light`,value:`gruvbox-light`},{label:`Tokyo Night`,value:`tokyo-night`},{label:`Catppuccin Mocha`,value:`catppuccin-mocha`},{label:`Nord`,value:`nord`},{label:`One Dark Pro`,value:`one-dark-pro`}],Fd=new Set([`light`,`gruvbox-light`]),Id=`default`;function Ld(e){return typeof e==`string`&&Pd.some(t=>t.value===e)}function Rd(){if(typeof localStorage>`u`)return Id;try{let e=localStorage.getItem(Nd);return Ld(e)?e:Id}catch{return Id}}function zd(e){if(!(typeof localStorage>`u`))try{localStorage.setItem(Nd,e)}catch{}}function Bd(e){typeof document>`u`||(e===Id?document.documentElement.removeAttribute(`data-theme`):document.documentElement.setAttribute(`data-theme`,e),document.documentElement.style.colorScheme=Fd.has(e)?`light`:`dark`)}function Vd(){let[e,t]=(0,_.useState)(()=>{let e=Rd();return Bd(e),e});return(0,_.useEffect)(()=>{Bd(e)},[e]),{theme:e,setTheme:(0,_.useCallback)(e=>{t(e),zd(e),Bd(e)},[])}}function Hd(){let{theme:e,setTheme:t}=Vd();return(0,W.jsx)(`select`,{value:e,onChange:e=>t(e.target.value),"aria-label":`Color theme`,title:`Color theme`,className:`text-[10px] font-mono uppercase tracking-wider cursor-pointer rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] text-[var(--color-fg-2)] px-1.5 py-0.5 hover:text-[var(--color-fg-1)] transition-colors`,children:Pd.map(e=>(0,W.jsx)(`option`,{value:e.value,children:e.label},e.value))})}var Ud=4200,Wd=3,Gd=700,Kd=[100,500,1e3,5e3,1e4,1e5],qd=[25,50,100,250,500],Jd=[10,25,50,100],Yd=[10,25,50,100,200],Xd={gold:`border-amber-400/60 bg-amber-500/10 text-amber-200`,green:`border-emerald-500/50 bg-emerald-500/10 text-emerald-200`,red:`border-red-500/50 bg-red-500/10 text-red-200`,sky:`border-sky-500/50 bg-sky-500/10 text-sky-200`},Zd={gold:`★`,green:`✓`,red:`⌖`,sky:`◆`};function Qd(){let e=Oe(),[t,n]=(0,_.useState)([]),r=(0,_.useRef)(0),i=(0,_.useRef)({totalAnnounced:0,allowStreakAnnounced:0,blockStreakAnnounced:0,comboAnnounced:0,lastBurstTs:0,allowStreakLive:0,blockStreakLive:0,comboLive:0,firstOfDayDate:``,seenAuditIds:new Set});if((0,_.useEffect)(()=>{if(e.length===0)return;let t=i.current,a=[],o=e=>{a.push({...e,id:++r.current,bornAt:performance.now()})};for(let n=0;n<e.length;n++){let r=e[n];if(!r)continue;let i=r.audit_id??`${r.ts_ms}:${r.tool}:${n}`;if(t.seenAuditIds.has(i))continue;if(t.seenAuditIds.add(i),t.seenAuditIds.size>1500){let e=t.seenAuditIds.values().next().value;e!==void 0&&t.seenAuditIds.delete(e)}r.ts_ms-t.lastBurstTs<=Gd?t.comboLive++:t.comboLive=1,t.lastBurstTs=r.ts_ms,r.decision===`allow`?(t.allowStreakLive++,t.blockStreakLive=0):r.decision===`block`||r.decision===`force`?(t.blockStreakLive++,t.allowStreakLive=0):(t.allowStreakLive=0,t.blockStreakLive=0);let a=new Date(r.ts_ms).toISOString().slice(0,10);t.firstOfDayDate!==a&&(t.firstOfDayDate!==``&&o({title:`NEW DAY · GOVERNANCE LIVE`,subtitle:`first burst at ${new Date(r.ts_ms).toLocaleTimeString()}`,tone:`sky`}),t.firstOfDayDate=a);for(let e of Yd)if(t.comboLive>=e&&t.comboAnnounced<e){t.comboAnnounced=e,o({title:`${e}× COMBO`,subtitle:`agent is on fire`,tone:`gold`});break}t.comboLive<t.comboAnnounced&&(t.comboAnnounced=0);for(let e of qd)if(t.allowStreakLive>=e&&t.allowStreakAnnounced<e){t.allowStreakAnnounced=e,o({title:`PERFECT STREAK · ${e} ALLOWS`,subtitle:`governance is letting work flow`,tone:`green`});break}t.allowStreakLive===0&&(t.allowStreakAnnounced=0);for(let e of Jd)if(t.blockStreakLive>=e&&t.blockStreakAnnounced<e){t.blockStreakAnnounced=e,o({title:`BLOCK STREAK · ${e}`,subtitle:`governance is doing real work`,tone:`red`});break}t.blockStreakLive===0&&(t.blockStreakAnnounced=0)}let s=e[e.length-1];if(s&&s.counters&&s.counters.total>0){for(let e of Kd)if(s.counters.total>=e&&t.totalAnnounced<e){t.totalAnnounced=e,o({title:`${e.toLocaleString()} EVALS TODAY`,subtitle:`you are shipping at scale`,tone:`gold`});break}}a.length>0&&n(e=>{let t=[...e,...a];return t.length>12?t.slice(-12):t})},[e]),(0,_.useEffect)(()=>{if(t.length===0)return;let e=setInterval(()=>{let e=performance.now();n(t=>t.filter(t=>e-t.bornAt<Ud))},1e3);return()=>clearInterval(e)},[t.length]),t.length===0)return null;let a=t.slice(-Wd),o=ct();return(0,W.jsx)(`div`,{className:`fixed left-4 z-50 flex flex-col gap-2 pointer-events-none`,style:{maxWidth:320,bottom:112},children:a.map(e=>(0,W.jsxs)(`div`,{className:U(`flex items-start gap-2 px-3 py-2 rounded-sm border-l-2 font-mono text-[11px] shadow-lg`,Xd[e.tone],!o&&`achievement-toast-enter`),children:[(0,W.jsx)(`span`,{className:`text-base leading-none mt-0.5`,"aria-hidden":!0,children:Zd[e.tone]}),(0,W.jsxs)(`span`,{className:`flex flex-col`,children:[(0,W.jsx)(`span`,{className:`font-bold uppercase tracking-widest text-[11px]`,children:e.title}),(0,W.jsx)(`span`,{className:`text-[10px] opacity-80 normal-case tracking-normal`,children:e.subtitle})]})]},e.id))})}function $d(){let[e,t]=(0,_.useState)(()=>Oo()),[n,r]=(0,_.useState)(()=>Ao()),[i,a]=(0,_.useState)(!1);return(0,_.useEffect)(()=>{ko(e)},[e]),(0,_.useEffect)(()=>{jo(n)},[n]),(0,W.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,W.jsxs)(`button`,{onClick:()=>t(e=>!e),onContextMenu:e=>{e.preventDefault(),a(e=>!e)},className:`chip cursor-pointer transition-colors ${e?`text-emerald-300 border-emerald-500/40`:`text-[var(--color-fg-3)] border-[var(--color-line-1)]`}`,title:e?`Decision chimes ON · click to mute · right-click for volume`:`Decision chimes OFF · click to enable`,children:[e?`♪`:`♫`,` audio `,e?`on`:`off`]}),i&&(0,W.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-50 flex items-center gap-2 px-3 py-2 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] shadow-lg`,onMouseLeave:()=>a(!1),children:[(0,W.jsx)(`span`,{className:`text-[10px] font-mono uppercase tracking-widest text-[var(--color-fg-4)]`,children:`volume`}),(0,W.jsx)(`input`,{type:`range`,min:0,max:1,step:.02,value:n,onChange:e=>r(parseFloat(e.target.value)),className:`w-24 accent-emerald-500`}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono tabular-nums text-[var(--color-fg-2)] w-8 text-right`,children:Math.round(n*100)})]})]})}var ef=[{path:`/`,label:`dashboard`},{path:`/graph`,label:`graph`},{path:`/rules`,label:`rules`},{path:`/audit`,label:`audit`},{path:`/approvals`,label:`approvals`},{path:`/hub`,label:`hub`},{path:`/profile`,label:`profile`},{path:`/monitor`,label:`monitor`},{path:`/observability`,label:`observability`},{path:`/debug`,label:`debug`}];function tf(e){let t=Math.max(0,e-Date.now()),n=Math.floor(t/1e3);if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m ${n%60}s`:`${Math.floor(r/60)}h ${r%60}m`}function nf(){let{data:e}=z(`/api/json/daemon-status`,[je([`counters-updated`])[`counters-updated`]]),[t,n]=(0,_.useState)(!1),[,r]=(0,_.useState)(0);(0,_.useEffect)(()=>{if(e?.status!==`degraded`||!e.hibernation)return;let t=setInterval(()=>r(e=>e+1),1e3);return()=>clearInterval(t)},[e?.status,e?.hibernation]);let i=e?.status??`starting`,a=i===`running`?`bg-emerald-400`:i===`starting`||i===`degraded`?`bg-amber-400`:`bg-red-400`,o=i===`starting`||i===`degraded`?`pulse-soft`:``,s=i===`degraded`&&e?.hibernation?tf(e.hibernation.nextRetryAt):null,c=i===`running`?`daemon · online`:i===`starting`?`daemon · booting`:i===`degraded`?`daemon · retry ${s??`…`}`:i===`error`?`daemon · error`:`daemon · offline`;return(0,W.jsxs)(`div`,{className:`relative`,children:[(0,W.jsxs)(`button`,{onClick:()=>n(e=>!e),className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] transition-colors cursor-pointer`,title:i===`running`?`Daemon running`:i===`starting`?`Daemon starting…`:i===`degraded`?`Daemon hibernating — retry in ${s??`…`}`:i===`error`?`Daemon error`:`Daemon stopped`,children:[(0,W.jsx)(`span`,{className:`status-dot ${a} ${o}`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:c})]}),t&&(0,W.jsxs)(`div`,{className:`absolute right-0 top-7 z-50 w-72 bg-[var(--color-surface-1)] border border-[var(--color-line-2)] rounded-sm shadow-xl p-3 text-xs`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,W.jsx)(`span`,{className:`overline`,children:`eval daemon`}),(0,W.jsx)(`button`,{onClick:()=>n(!1),className:`text-[var(--color-fg-4)] hover:text-[var(--color-fg-1)] cursor-pointer`,children:`✕`})]}),(0,W.jsxs)(`div`,{className:`space-y-1 text-[var(--color-fg-2)]`,children:[(0,W.jsxs)(`div`,{className:`font-mono text-[11px]`,children:[`status:`,` `,(0,W.jsx)(`span`,{className:i===`running`?`text-emerald-300`:i===`starting`||i===`degraded`?`text-amber-300`:`text-red-300`,children:i})]}),e?.pid&&(0,W.jsxs)(`div`,{className:`font-mono text-[11px]`,children:[`pid: `,e.pid]}),i===`degraded`&&e?.hibernation&&(0,W.jsxs)(`div`,{className:`mt-2 rounded-sm border border-amber-500/25 bg-amber-500/5 p-2 text-[11px] text-amber-300 space-y-0.5`,children:[(0,W.jsxs)(`div`,{children:[`next retry:`,` `,(0,W.jsx)(`span`,{className:`font-medium`,children:s})]}),(0,W.jsxs)(`div`,{children:[`episode attempt: `,e.hibernation.attempt,e.hibernation.reason?` (${e.hibernation.reason})`:``]}),(0,W.jsx)(`div`,{className:`text-amber-400/70`,children:`Slow-tier supervisor is retrying at long backoff — no manual restart required.`})]})]}),e?.logTail&&e.logTail.length>0&&(0,W.jsxs)(`div`,{className:`mt-3`,children:[(0,W.jsx)(`div`,{className:`overline mb-1`,children:`recent log`}),(0,W.jsx)(`pre`,{className:`bg-[var(--color-surface-0)] border border-[var(--color-line-0)] rounded-sm p-2 text-[10px] text-[var(--color-fg-2)] overflow-x-auto whitespace-pre-wrap break-all max-h-32 overflow-y-auto`,children:e.logTail.join(`
23
- `)})]})]})]})}function rf(){let{data:e}=z(`/api/state/activity-degraded`);if(!e?.degraded)return null;let t=e.since?new Date(e.since).toLocaleTimeString():`recently`;return(0,W.jsxs)(`div`,{role:`status`,className:`border-b border-amber-500/40 bg-amber-500/10 px-4 py-1.5 text-[11px] font-mono text-amber-200 text-center`,title:e.reason??`audit-worker degraded`,children:[`audit pipeline degraded since `,t,` — entries may be missing. Run`,` `,(0,W.jsx)(`code`,{className:`text-amber-100`,children:`ssg daemon --status`}),` to inspect.`]})}function af(){let{data:e}=z(`/api/json/license`,[je([`counters-updated`])[`counters-updated`]]);return!e||e.tier!==`unlicensed`||e.status===`needs_reauth`||e.status===`needs_login`||e.eval_daily_limit===null||e.evals_today<e.eval_daily_limit?null:(0,W.jsxs)(`div`,{role:`alert`,className:`border-b border-red-500/50 bg-red-500/10 px-4 py-1.5 text-[11px] font-mono text-red-200 text-center`,title:`Free tier daily eval limit reached — rules are being bypassed until quota resets`,children:[`quota exhausted — `,e.evals_today.toLocaleString(),`/`,e.eval_daily_limit.toLocaleString(),` evals used today. BLOCK and ASK rules are being bypassed (fail-open) until daily reset.`,` `,(0,W.jsx)(`a`,{href:e.upgrade_url,target:`_blank`,rel:`noopener noreferrer`,className:`text-red-100 underline hover:text-white`,children:`Upgrade to Pro →`})]})}function of(){let{data:e}=z(`/api/json/license`,[je([`counters-updated`])[`counters-updated`]]);return!e||e.status!==`needs_reauth`?null:(0,W.jsxs)(`div`,{role:`alert`,className:`border-b border-amber-500/50 bg-amber-500/10 px-4 py-1.5 text-[11px] font-mono text-amber-200 text-center`,title:`Re-authentication required — paid-tier features are paused until you re-login`,children:[`re-authentication required — `,e.detail??`License JWT invalid or expired`,`. Run`,` `,(0,W.jsx)(`code`,{className:`text-amber-100`,children:`ssg auth login`}),` in your terminal to restore your tier.`]})}function sf(){let{data:e,refetch:t}=z(`/api/json/ask-mode`),[n,r]=(0,_.useState)(!1),i=e?.mode??`tty`;async function a(e){if(!(n||e===i)){r(!0);try{await fetch(`/api/json/ask-mode`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ae()},body:JSON.stringify({mode:e})}),t()}finally{r(!1)}}}let o=i===`tty`;return(0,W.jsxs)(`button`,{onClick:()=>a(o?`dashboard`:`tty`),disabled:n,className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] transition-colors cursor-pointer disabled:opacity-50`,title:o?`ASK decisions prompt in the native IDE/TTY. Click to route to dashboard.`:`ASK decisions queue on /approvals. Click to route to native prompt.`,children:[(0,W.jsx)(`span`,{className:`status-dot ${o?`bg-sky-400`:`bg-violet-400`}`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:o?`ask · native`:`ask · dashboard`})]})}function cf({onRefresh:e}){return(0,W.jsx)(`button`,{onClick:e,className:`flex items-center justify-center text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] transition-colors cursor-pointer p-1 rounded-sm`,title:`Reset page — clears stale graph state without dropping SSE`,"aria-label":`Refresh page`,children:(0,W.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`path`,{d:`M21 12a9 9 0 1 1-3-6.7`}),(0,W.jsx)(`polyline`,{points:`21 3 21 9 15 9`})]})})}function lf(){let{data:e}=z(`/api/json/mcp-status`,[je([`activity-updated`])[`activity-updated`]]),t=e?.status??`inactive`;if(t===`inactive`)return null;let n=t===`active`?`bg-sky-400`:`bg-[var(--color-fg-4)]`,r=t===`active`?`mcp · active`:`mcp · idle`;return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,title:t===`active`?`MCP server: ${e?.recentCount??0} evals in last 5 min`:`MCP server: ${e?.totalCount??0} total evals`,children:[(0,W.jsx)(`span`,{className:`status-dot ${n}`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:r})]})}function uf(e){if(e===`/`)return(0,W.jsx)(Ws,{});if(e===`/classic`)return(0,W.jsx)(Ic,{});if(e===`/graph`)return(0,W.jsx)(Qu,{});if(e===`/debug`)return(0,W.jsx)(ed,{});if(e===`/rules`)return(0,W.jsx)(Wc,{});if(e===`/audit`)return(0,W.jsx)(Jc,{});if(e===`/approvals`)return(0,W.jsx)(il,{});if(e===`/profile`)return(0,W.jsx)(Sl,{});if(e===`/hub/connect`)return(0,W.jsx)(Nl,{});if(e===`/hub/publish`)return(0,W.jsx)(Pl,{});if(e.startsWith(`/hub/`)){let t=e.slice(5);if(t)return(0,W.jsx)(Ml,{id:t})}return e===`/hub`?(0,W.jsx)(Al,{}):e===`/monitor`?(0,W.jsx)(Gl,{}):e===`/observability`?(0,W.jsx)(uu,{}):(0,W.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-24 text-[var(--color-fg-3)]`,children:[(0,W.jsx)(`p`,{className:`overline mb-2`,children:`error · 404`}),(0,W.jsx)(`p`,{className:`text-sm`,children:`page not found`}),(0,W.jsx)(`a`,{href:`/`,className:`mt-4 text-[11px] font-mono uppercase tracking-wider text-[var(--color-brand)] hover:underline`,children:`← back to dashboard`})]})}function df(e){history.pushState(null,``,e),window.dispatchEvent(new PopStateEvent(`popstate`))}function ff({count:e}){let[t,n]=(0,_.useState)(!1);return t||e===0?null:(0,W.jsx)(`div`,{className:`border-b border-amber-500/25 bg-amber-500/5 px-4 py-2`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,W.jsxs)(`svg`,{className:`shrink-0 text-amber-300`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,W.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,W.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]}),(0,W.jsxs)(`p`,{className:`text-[11px] text-amber-200 flex-1 font-mono`,children:[(0,W.jsxs)(`span`,{className:`font-semibold uppercase tracking-wider`,children:[e,` other `,e===1?`tab`:`tabs`,` open.`]}),` `,`Each tab holds a live SSE connection. Browsers limit connections per origin — too many tabs will prevent this page from loading.`,` `,(0,W.jsx)(`span`,{className:`text-amber-400/70`,children:`Close other tabs to restore full live-update functionality.`})]}),(0,W.jsx)(`button`,{onClick:()=>n(!0),className:`text-amber-500/50 hover:text-amber-300 transition-colors shrink-0 cursor-pointer`,title:`Dismiss`,children:(0,W.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,W.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]})})]})})}function pf(){let[e,t]=(0,_.useState)(window.location.pathname),[n,r]=(0,_.useState)(0),[i,a]=(0,_.useState)(!1),{otherTabCount:o}=bd();(0,_.useEffect)(()=>{let e=()=>t(window.location.pathname);return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]),(0,_.useEffect)(()=>{a(!1)},[e]),(0,_.useEffect)(()=>{let e=e=>{let t=e.target.closest(`a`);if(!t)return;let n=t.getAttribute(`href`);!n||n.startsWith(`http`)||n.startsWith(`//`)||(e.preventDefault(),df(n))};return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[]);let s=t=>t===`/`?e===`/`:e.startsWith(t);return(0,W.jsxs)(`div`,{className:`min-h-screen bg-[var(--color-surface-0)] text-[var(--color-fg-1)]`,children:[(0,W.jsxs)(`header`,{className:`border-b border-[var(--color-line-1)] sticky top-0 z-50 bg-[var(--color-surface-0)]/98`,children:[(0,W.jsxs)(`div`,{className:`px-6 flex items-center h-12 gap-5`,children:[(0,W.jsxs)(`a`,{href:`/`,className:`flex items-baseline gap-0.5 select-none`,title:`SigmaShake Governance`,children:[(0,W.jsx)(`span`,{className:`font-mono text-sm font-semibold text-[var(--color-brand)] tracking-tight`,children:`ssg`}),(0,W.jsx)(`span`,{className:`font-mono text-[11px] text-[var(--color-fg-3)] tracking-tight`,children:`/gov`})]}),(0,W.jsx)(`nav`,{className:`hidden md:flex items-center`,children:ef.map(e=>{let t=s(e.path);return(0,W.jsxs)(`a`,{href:e.path,className:`relative px-3 py-1.5 text-[13px] font-mono tracking-wide transition-colors ${t?`text-[var(--color-fg-0)]`:`text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)]`}`,children:[e.label,t&&(0,W.jsx)(`span`,{className:`absolute inset-x-2 -bottom-px h-px bg-[var(--color-brand)]`})]},e.path)})}),(0,W.jsxs)(`div`,{className:`hidden md:flex items-center gap-4 ml-auto`,children:[o>0&&(0,W.jsxs)(`span`,{className:`chip text-amber-300 border-amber-500/30`,title:`${o} other tab${o===1?``:`s`} open — may cause connection issues`,children:[o+1,` tabs`]}),(0,W.jsx)(Sd,{}),(0,W.jsx)(sf,{}),(0,W.jsx)(lf,{}),(0,W.jsx)(nf,{}),(0,W.jsx)(cf,{onRefresh:()=>r(e=>e+1)}),(0,W.jsx)(Hd,{}),(0,W.jsx)(Md,{}),(0,W.jsx)($d,{})]}),(0,W.jsx)(`button`,{"aria-label":`menu`,className:`md:hidden ml-auto flex items-center justify-center w-8 h-8 text-[var(--color-fg-2)] hover:text-[var(--color-fg-0)] transition-colors cursor-pointer`,onClick:()=>a(e=>!e),children:i?(0,W.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 18 18`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,children:[(0,W.jsx)(`line`,{x1:`3`,y1:`3`,x2:`15`,y2:`15`}),(0,W.jsx)(`line`,{x1:`15`,y1:`3`,x2:`3`,y2:`15`})]}):(0,W.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 18 18`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,children:[(0,W.jsx)(`line`,{x1:`2`,y1:`5`,x2:`16`,y2:`5`}),(0,W.jsx)(`line`,{x1:`2`,y1:`9`,x2:`16`,y2:`9`}),(0,W.jsx)(`line`,{x1:`2`,y1:`13`,x2:`16`,y2:`13`})]})})]}),i&&(0,W.jsxs)(`div`,{className:`md:hidden border-t border-[var(--color-line-0)] bg-[var(--color-surface-0)]`,children:[(0,W.jsx)(`nav`,{className:`flex flex-col px-2 py-1`,children:ef.map(e=>{let t=s(e.path);return(0,W.jsx)(`a`,{href:e.path,onClick:()=>a(!1),className:`px-3 py-2.5 text-[13px] font-mono tracking-wide transition-colors rounded-sm ${t?`text-[var(--color-fg-0)] bg-[var(--color-surface-1)]`:`text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] hover:bg-[var(--color-surface-1)]`}`,children:e.label},e.path)})}),(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 px-4 py-2 border-t border-[var(--color-line-0)]`,children:[o>0&&(0,W.jsxs)(`span`,{className:`chip text-amber-300 border-amber-500/30`,title:`${o} other tab${o===1?``:`s`} open`,children:[o+1,` tabs`]}),(0,W.jsx)(Sd,{}),(0,W.jsx)(sf,{}),(0,W.jsx)(lf,{}),(0,W.jsx)(nf,{}),(0,W.jsx)(cf,{onRefresh:()=>r(e=>e+1)}),(0,W.jsx)(Hd,{}),(0,W.jsx)(Md,{}),(0,W.jsx)($d,{})]})]}),(0,W.jsx)(ff,{count:o}),(0,W.jsx)(of,{}),(0,W.jsx)(af,{}),(0,W.jsx)(rf,{})]}),(0,W.jsx)(`main`,{className:`px-6 py-6`,children:uf(e)},n),(0,W.jsx)(Qd,{})]})}var mf=document.getElementById(`app-root`);if(!mf)throw Error(`Missing #app-root`);g.createRoot(mf).render((0,W.jsx)(_.StrictMode,{children:(0,W.jsx)(pf,{})}));
22
+ `,`ssg_debug_rca(`,`{`,`auto_current:true`,`}`,`)`]}),(0,W.jsx)(`button`,{type:`button`,onClick:i,className:`w-full mt-2 px-2 py-1 border border-[var(--color-line-1)] rounded-sm hover:bg-[var(--color-surface-2)]`,children:`refresh`}),t?.snapshot_hash&&(0,W.jsxs)(`p`,{className:`text-[10px] opacity-60`,children:[`hash `,t.snapshot_hash.slice(0,12),`…`]})]})]})}function rd(e){return e===`critical`?`text-rose-400 border-rose-500/40`:e===`high`?`text-amber-300 border-amber-500/40`:e===`medium`?`text-sky-300 border-sky-500/40`:`text-[var(--color-fg-3)] border-[var(--color-line-1)]`}function id({pack:e}){return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsxs)(`header`,{className:`flex items-start justify-between gap-4`,children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`p`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-4)]`,children:[`rca pack · `,new Date(e.ts_ms).toLocaleTimeString()]}),(0,W.jsx)(`h2`,{className:`text-[15px] font-medium text-[var(--color-fg-1)] mt-1`,children:e.summary}),e.trace_id&&(0,W.jsxs)(`p`,{className:`text-[11px] font-mono text-[var(--color-fg-4)] mt-1`,children:[`trace_id · `,e.trace_id]})]}),(0,W.jsx)(`span`,{className:`chip uppercase text-[10px] tracking-wider `+rd(e.severity),children:e.severity})]}),e.hypothesis&&e.hypothesis.length>0&&(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] mb-2`,children:`hypothesis`}),(0,W.jsx)(`ol`,{className:`space-y-2`,children:e.hypothesis.map((e,t)=>(0,W.jsxs)(`li`,{className:`p-2 rounded-sm bg-[var(--color-surface-2)] border border-[var(--color-line-1)]`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,W.jsx)(`p`,{className:`text-[13px] text-[var(--color-fg-1)]`,children:e.cause}),(0,W.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:[`conf `,(e.confidence*100).toFixed(0),`%`]})]}),e.evidence.length>0&&(0,W.jsx)(`ul`,{className:`mt-1 pl-3 text-[11px] text-[var(--color-fg-3)] list-disc list-inside space-y-0.5`,children:e.evidence.map((e,t)=>(0,W.jsx)(`li`,{children:e},t))})]},t))})]}),e.suggested_next_actions&&e.suggested_next_actions.length>0&&(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] mb-2`,children:`suggested next actions`}),(0,W.jsx)(`ul`,{className:`space-y-1 text-[13px] text-[var(--color-fg-2)]`,children:e.suggested_next_actions.map((e,t)=>(0,W.jsxs)(`li`,{className:`font-mono text-[12px]`,children:[`→ `,e]},t))})]}),e.state_snapshot&&e.state_snapshot.length>0&&(0,W.jsxs)(`section`,{children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] mb-2`,children:`expand`}),(0,W.jsx)(`ul`,{className:`space-y-1 text-[11px] font-mono`,children:e.state_snapshot.map(e=>(0,W.jsxs)(`li`,{className:`text-[var(--color-fg-3)]`,children:[(0,W.jsx)(`code`,{className:`text-sky-300`,children:e.uri}),(0,W.jsxs)(`span`,{className:`opacity-50 ml-2`,children:[e.hash.slice(0,10),`…`]})]},e.uri))})]})]})}var ad=[`hook-ingress`,`parse`,`match`,`ffi-call`,`decide`,`audit`,`respond`],od={"hook-ingress":`#6ea8ff`,parse:`#a78bfa`,match:`#60d394`,"ffi-call":`#f59e0b`,decide:`#f472b6`,audit:`#94a3b8`,respond:`#22d3ee`};function sd(){let{data:e,loading:t,error:n}=z(`/api/json/debug?uri=ssg%3A%2F%2Fframes%2Frecent%3Flimit%3D1024`,[je([`debug-frame`])[`debug-frame`]]),r=e?.data?.frames??[],i=e?.data?.dropped??0,[a,o]=(0,_.useState)(null);return(0,W.jsxs)(`div`,{className:`grid grid-cols-1 xl:grid-cols-[1fr_320px] gap-4`,children:[(0,W.jsxs)(`article`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 space-y-2`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,children:[`frames · `,r.length,i>0&&(0,W.jsxs)(`span`,{className:`ml-2 text-amber-300`,children:[`dropped · `,i]})]}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:`ssg://frames/recent`})]}),n&&(0,W.jsxs)(`p`,{className:`text-sm text-rose-300`,children:[`timeline fetch error: `,n]}),t&&r.length===0?(0,W.jsx)(`p`,{className:`text-sm text-[var(--color-fg-4)]`,children:`loading…`}):r.length===0?(0,W.jsx)(cd,{}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(ud,{frames:r,onSelect:o}),(0,W.jsx)(ld,{})]})]}),(0,W.jsxs)(`aside`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 space-y-2 text-[11px] font-mono text-[var(--color-fg-3)]`,children:[(0,W.jsx)(`p`,{className:`uppercase tracking-wider text-[var(--color-fg-2)]`,children:`frame inspector`}),a?(0,W.jsx)(dd,{frame:a}):(0,W.jsx)(`p`,{className:`opacity-60`,children:`click a bar to inspect`})]})]})}function cd(){return(0,W.jsxs)(`div`,{className:`text-[12px] text-[var(--color-fg-3)] space-y-1 py-4`,children:[(0,W.jsx)(`p`,{children:`no frames yet`}),(0,W.jsx)(`p`,{className:`text-[11px] text-[var(--color-fg-4)] font-mono`,children:`SSG_DEBUG_ENABLED=1 ssg daemon`}),(0,W.jsx)(`p`,{className:`text-[11px] text-[var(--color-fg-4)]`,children:`then fire an eval — frames stream in live.`})]})}function ld(){return(0,W.jsx)(`div`,{className:`flex flex-wrap gap-3 text-[10px] font-mono text-[var(--color-fg-4)]`,children:ad.map(e=>(0,W.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,W.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-sm`,style:{background:od[e]}}),e]},e))})}function ud({frames:e,onSelect:t}){let n=(0,_.useRef)(null),r=(0,_.useRef)([]),[i,a]=(0,_.useState)(-1),{rows:o,tMin:s,tMax:c}=(0,_.useMemo)(()=>{let t=new Map;for(let n of e){let e=t.get(n.trace_id)??[];e.push(n),t.set(n.trace_id,e)}let n=Array.from(t.entries()).map(([e,t])=>({trace_id:e,frames:t.slice().sort((e,t)=>pd(e.ts_start_ns,t.ts_start_ns))}));n.sort((e,t)=>pd(e.frames[0].ts_start_ns,t.frames[0].ts_start_ns));let r=null,i=null;for(let t of e){let e=BigInt(t.ts_start_ns),n=BigInt(t.ts_end_ns);(r===null||e<r)&&(r=e),(i===null||n>i)&&(i=n)}return{rows:n,tMin:r??0n,tMax:i??1n}},[e]);(0,_.useEffect)(()=>{let e=n.current;if(!e)return;let t=window.devicePixelRatio||1,a=e.clientWidth,l=Math.max(120,o.length*22+24);e.width=a*t,e.height=l*t,e.style.height=`${l}px`;let u=e.getContext(`2d`);if(!u)return;u.setTransform(t,0,0,t,0,0),u.clearRect(0,0,a,l),u.strokeStyle=`rgba(255,255,255,0.04)`,u.lineWidth=1;for(let e=1;e<4;e++){let t=e*a/4;u.beginPath(),u.moveTo(t,0),u.lineTo(t,l),u.stroke()}let d=c>s?Number(c-s):1,f=a-110-8;u.font=`10px ui-monospace, monospace`,u.textBaseline=`middle`;let p=[];if(o.forEach((e,t)=>{let n=8+t*22;u.fillStyle=`rgba(255,255,255,0.55)`,u.fillText(e.trace_id.slice(0,10),6,n+18/2);for(let t of e.frames){let e=Number(BigInt(t.ts_start_ns)-s),r=Number(BigInt(t.ts_end_ns)-s),i=110+e/d*f,a=Math.max(2,(r-e)/d*f);u.fillStyle=od[t.stage]??`#888`,u.globalAlpha=t.result===`error`?1:.82,u.fillRect(i,n,a,18),u.globalAlpha=1,t.result===`error`&&(u.strokeStyle=`#f43f5e`,u.lineWidth=1.5,u.strokeRect(i+.5,n+.5,a-1,17)),p.push({x:i,y:n,w:a,h:18,frame:t})}}),r.current=p,i>=0&&i<p.length){let e=p[i];u.strokeStyle=`#fff`,u.lineWidth=1.5,u.strokeRect(e.x+.5,e.y+.5,e.w-1,e.h-1)}},[o,s,c,i]);function l(e){let t=n.current;if(!t)return-1;let i=t.getBoundingClientRect(),a=e.clientX-i.left,o=e.clientY-i.top;for(let e=r.current.length-1;e>=0;e--){let t=r.current[e];if(a>=t.x&&a<=t.x+t.w&&o>=t.y&&o<=t.y+t.h)return e}return-1}return(0,W.jsx)(`canvas`,{ref:n,className:`w-full block cursor-crosshair`,onMouseMove:e=>a(l(e)),onMouseLeave:()=>a(-1),onClick:e=>{let n=l(e);t(n>=0?r.current[n].frame:null)}})}function dd({frame:e}){let t=Number(BigInt(e.ts_end_ns)-BigInt(e.ts_start_ns)),n=t>=1e6?`${(t/1e6).toFixed(2)}ms`:t>=1e3?`${(t/1e3).toFixed(1)}µs`:`${t}ns`;return(0,W.jsxs)(`dl`,{className:`space-y-1`,children:[(0,W.jsxs)(fd,{k:`stage`,children:[(0,W.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-sm mr-1 align-middle`,style:{background:od[e.stage]??`#888`}}),e.stage]}),(0,W.jsx)(fd,{k:`tool`,children:e.tool}),(0,W.jsx)(fd,{k:`result`,children:(0,W.jsx)(`span`,{className:e.result===`error`?`text-rose-300`:e.result===`skip`?`text-[var(--color-fg-4)]`:`text-emerald-300`,children:e.result})}),(0,W.jsx)(fd,{k:`dur`,children:n}),e.rule_id&&(0,W.jsx)(fd,{k:`rule`,children:e.rule_id}),e.error&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(fd,{k:`err.type`,children:(0,W.jsx)(`span`,{className:`text-rose-300`,children:e.error.type})}),(0,W.jsx)(fd,{k:`err.msg`,children:(0,W.jsx)(`span`,{className:`text-rose-200`,children:e.error.message})})]}),e.input_preview&&(0,W.jsx)(fd,{k:`input`,children:(0,W.jsx)(`code`,{className:`text-[10px] break-all`,children:e.input_preview})}),(0,W.jsx)(fd,{k:`trace`,children:(0,W.jsx)(`code`,{className:`text-[10px]`,children:e.trace_id})}),(0,W.jsx)(fd,{k:`frame`,children:(0,W.jsx)(`code`,{className:`text-[10px]`,children:e.frame_id})})]})}function fd({k:e,children:t}){return(0,W.jsxs)(`div`,{className:`flex gap-2 text-[11px] leading-tight`,children:[(0,W.jsx)(`dt`,{className:`text-[var(--color-fg-4)] w-16 shrink-0 uppercase tracking-wider`,children:e}),(0,W.jsx)(`dd`,{className:`text-[var(--color-fg-2)] break-all min-w-0`,children:t})]})}function pd(e,t){let n=BigInt(e),r=BigInt(t);return n<r?-1:n>r?1:0}var md=[`ssg://daemon/state`,`ssg://daemon/metrics`,`ssg://audit/recent?limit=10`,`ssg://frames/recent?limit=32`,`ssg://rules/list`,`ssg://rca/current`,`ssg://native/stats`];function hd(){let[e,t]=(0,_.useState)(`ssg://daemon/state`),[n,r]=(0,_.useState)(`ssg://daemon/state`);return(0,W.jsxs)(`div`,{className:`space-y-3`,children:[(0,W.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:md.map(e=>(0,W.jsx)(`button`,{type:`button`,onClick:()=>{t(e),r(e)},className:`chip text-[10px] `+(n===e?`border-[var(--color-brand)] text-[var(--color-fg-1)]`:`text-[var(--color-fg-3)]`),children:e},e))}),(0,W.jsxs)(`form`,{className:`flex items-center gap-2`,onSubmit:t=>{t.preventDefault(),r(e)},children:[(0,W.jsx)(`input`,{value:e,onChange:e=>t(e.target.value),placeholder:`ssg://source/path?k=v`,className:`flex-1 px-3 py-1.5 text-[12px] font-mono rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] text-[var(--color-fg-1)]`}),(0,W.jsx)(`button`,{type:`submit`,className:`px-3 py-1.5 text-[11px] font-mono uppercase tracking-wider border border-[var(--color-line-1)] rounded-sm hover:bg-[var(--color-surface-2)]`,children:`resolve`})]}),(0,W.jsx)(gd,{uri:n})]})}function gd({uri:e}){let t=je([`debug-frame`,`activity-updated`,`counters-updated`]),{data:n,loading:r,error:i,refetch:a}=z(`/api/json/debug?uri=${encodeURIComponent(e)}`,[t[`debug-frame`],t[`activity-updated`],t[`counters-updated`],e]),o=n?JSON.stringify(n.data,null,2):``;return(0,W.jsxs)(`div`,{className:`rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-3 space-y-2`,children:[(0,W.jsxs)(`header`,{className:`flex items-center justify-between`,children:[(0,W.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,W.jsx)(`h3`,{className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,children:e}),n?.snapshot_hash&&(0,W.jsxs)(`span`,{className:`text-[10px] font-mono text-[var(--color-fg-4)]`,children:[`hash `,n.snapshot_hash.slice(0,10),`…`]}),n?.stale&&(0,W.jsxs)(`span`,{className:`chip text-amber-300 border-amber-500/40 text-[10px]`,children:[`stale `,n.age_ms?`${Math.round(n.age_ms/1e3)}s`:``]})]}),(0,W.jsx)(`button`,{type:`button`,onClick:a,className:`text-[10px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)]`,children:`refresh`})]}),r&&!n&&(0,W.jsx)(`p`,{className:`text-sm text-[var(--color-fg-4)]`,children:`resolving…`}),i&&(0,W.jsx)(`p`,{className:`text-sm text-rose-300`,children:i}),o&&(0,W.jsx)(`pre`,{className:`text-[11px] leading-snug font-mono text-[var(--color-fg-2)] overflow-auto max-h-[60vh] whitespace-pre-wrap break-all`,children:o})]})}var _d=`ssg-dashboard-tabs`,vd=2e3,$=6e3;function yd(){return`tab-${Date.now()}-${Math.random().toString(36).slice(2,7)}`}function bd(){let[e,t]=(0,_.useState)(0),[n,r]=(0,_.useState)(!0),i=(0,_.useRef)(yd()),a=(0,_.useRef)(new Map);return(0,_.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(_d);function n(){let e=Date.now();for(let[t,n]of a.current.entries())e-n>$&&a.current.delete(t);let n=a.current.size;t(n),r([...a.current.keys(),i.current].sort()[0]===i.current)}function o(e){let t=e.data;!t||t.id===i.current||(t.type===`leave`?a.current.delete(t.id):a.current.set(t.id,Date.now()),n())}e.addEventListener(`message`,o),e.postMessage({type:`join`,id:i.current});let s=setInterval(()=>{e.postMessage({type:`heartbeat`,id:i.current}),n()},vd),c=()=>{e.postMessage({type:`leave`,id:i.current})};return window.addEventListener(`beforeunload`,c),()=>{clearInterval(s),e.postMessage({type:`leave`,id:i.current}),e.removeEventListener(`message`,o),e.close(),window.removeEventListener(`beforeunload`,c)}},[]),{otherTabCount:e,isLeader:n}}var xd=b;function Sd(){(0,_.useEffect)(()=>we([]),[]);let e=(0,_.useSyncExternalStore)(ge,_e),[,t]=(0,_.useState)(0);(0,_.useEffect)(()=>{if(e.connected||e.lastErrorAt===null)return;let n=setInterval(()=>t(e=>e+1),1e3);return()=>clearInterval(n)},[e.connected,e.lastErrorAt]);let n=Cd(e),r=n===`reconnecting`&&e.lastErrorAt!==null?Math.max(0,Math.ceil((e.lastErrorAt+e.reconnectDelayMs-Date.now())/1e3)):null,i=Math.round(xd/1e3);if(n===`connected`)return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,title:`Telemetry Live — SSE connected`,"data-testid":`sse-status-chip`,"data-state":`connected`,children:[(0,W.jsx)(`span`,{className:`status-dot bg-emerald-400`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:`sse · live`})]});let a=n===`reconnecting`,o=a?`border-amber-500/40 bg-amber-500/10 text-amber-200`:`border-red-500/40 bg-red-500/10 text-red-200`,s=a?`bg-amber-400`:`bg-red-400`,c=a?r===null?`reconnecting`:`reconnect · ${r}s`:`offline`,l=`live paused · ${i}s poll`,u=a?`Live stream down — reconnect in ${r??`…`}s (attempt ${e.reconnectAttempts}). Dashboard is polling every ${i}s until SSE recovers.`:`Live stream disconnected. Dashboard is polling every ${i}s — data still updates, just at a coarser cadence.`;return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5 rounded border px-2 py-0.5 text-[11px] font-mono uppercase tracking-wider ${o}`,title:u,"data-testid":`sse-status-chip`,"data-state":n,role:`status`,"aria-live":`polite`,children:[(0,W.jsx)(`span`,{className:`status-dot ${s} pulse-soft`}),(0,W.jsx)(`span`,{className:`hidden md:inline`,children:l}),(0,W.jsx)(`span`,{className:`md:hidden`,children:c})]})}function Cd(e){return e.connected?`connected`:e.reconnectAttempts>0||e.lastErrorAt!==null?`reconnecting`:`disconnected`}var wd=`ssg:ui:font-scale:v1`,Td=[{label:`S`,value:.9},{label:`M`,value:1},{label:`L`,value:1.15},{label:`XL`,value:1.3}],Ed=1;function Dd(e){if(typeof e!=`number`||!Number.isFinite(e))return Ed;let t=Td.find(t=>Math.abs(t.value-e)<.001);return t?t.value:Ed}function Od(){if(typeof localStorage>`u`)return Ed;try{let e=localStorage.getItem(wd);return e===null?Ed:Dd(parseFloat(e))}catch{return Ed}}function kd(e){if(!(typeof localStorage>`u`))try{localStorage.setItem(wd,String(e))}catch{}}function Ad(e){typeof document>`u`||(document.documentElement.style.setProperty(`--ssg-font-scale`,String(e)),document.documentElement.style.fontSize=`${16*e}px`)}function jd(){let[e,t]=(0,_.useState)(()=>{let e=Od();return Ad(e),e});return(0,_.useEffect)(()=>{Ad(e)},[e]),{scale:e,setScale:(0,_.useCallback)(e=>{t(e),kd(e),Ad(e)},[])}}function Md(){let{scale:e,setScale:t}=jd();return(0,W.jsx)(`div`,{role:`radiogroup`,"aria-label":`Font size`,className:`flex items-center gap-0.5 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] p-0.5`,children:Td.map(n=>{let r=Math.abs(n.value-e)<.001;return(0,W.jsx)(`button`,{role:`radio`,"aria-checked":r,onClick:()=>t(n.value),title:`Font size: ${n.label} (${Math.round(n.value*100)}%)`,className:`px-1.5 py-0.5 text-[10px] font-mono uppercase tracking-wider cursor-pointer transition-colors rounded-sm `+(r?`bg-[var(--color-surface-3)] text-[var(--color-fg-0)]`:`text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)]`),children:n.label},n.label)})})}var Nd=`ssg:ui:theme:v1`,Pd=[{label:`Default Dark`,value:`default`},{label:`Light`,value:`light`},{label:`Dracula`,value:`dracula`},{label:`Gruvbox Dark`,value:`gruvbox-dark`},{label:`Gruvbox Light`,value:`gruvbox-light`},{label:`Tokyo Night`,value:`tokyo-night`},{label:`Catppuccin Mocha`,value:`catppuccin-mocha`},{label:`Nord`,value:`nord`},{label:`One Dark Pro`,value:`one-dark-pro`}],Fd=new Set([`light`,`gruvbox-light`]),Id=`default`;function Ld(e){return typeof e==`string`&&Pd.some(t=>t.value===e)}function Rd(){if(typeof localStorage>`u`)return Id;try{let e=localStorage.getItem(Nd);return Ld(e)?e:Id}catch{return Id}}function zd(e){if(!(typeof localStorage>`u`))try{localStorage.setItem(Nd,e)}catch{}}function Bd(e){typeof document>`u`||(e===Id?document.documentElement.removeAttribute(`data-theme`):document.documentElement.setAttribute(`data-theme`,e),document.documentElement.style.colorScheme=Fd.has(e)?`light`:`dark`)}function Vd(){let[e,t]=(0,_.useState)(()=>{let e=Rd();return Bd(e),e});return(0,_.useEffect)(()=>{Bd(e)},[e]),{theme:e,setTheme:(0,_.useCallback)(e=>{t(e),zd(e),Bd(e)},[])}}function Hd(){let{theme:e,setTheme:t}=Vd();return(0,W.jsx)(`select`,{value:e,onChange:e=>t(e.target.value),"aria-label":`Color theme`,title:`Color theme`,className:`text-[10px] font-mono uppercase tracking-wider cursor-pointer rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] text-[var(--color-fg-2)] px-1.5 py-0.5 hover:text-[var(--color-fg-1)] transition-colors`,children:Pd.map(e=>(0,W.jsx)(`option`,{value:e.value,children:e.label},e.value))})}function Ud(){let[e,t]=(0,_.useState)(()=>Oo()),[n,r]=(0,_.useState)(()=>Ao()),[i,a]=(0,_.useState)(!1);return(0,_.useEffect)(()=>{ko(e)},[e]),(0,_.useEffect)(()=>{jo(n)},[n]),(0,W.jsxs)(`div`,{className:`relative flex items-center`,children:[(0,W.jsxs)(`button`,{onClick:()=>t(e=>!e),onContextMenu:e=>{e.preventDefault(),a(e=>!e)},className:`chip cursor-pointer transition-colors ${e?`text-emerald-300 border-emerald-500/40`:`text-[var(--color-fg-3)] border-[var(--color-line-1)]`}`,title:e?`Decision chimes ON · click to mute · right-click for volume`:`Decision chimes OFF · click to enable`,children:[e?`♪`:`♫`,` audio `,e?`on`:`off`]}),i&&(0,W.jsxs)(`div`,{className:`absolute right-0 top-full mt-1 z-50 flex items-center gap-2 px-3 py-2 rounded-sm border border-[var(--color-line-1)] bg-[var(--color-surface-1)] shadow-lg`,onMouseLeave:()=>a(!1),children:[(0,W.jsx)(`span`,{className:`text-[10px] font-mono uppercase tracking-widest text-[var(--color-fg-4)]`,children:`volume`}),(0,W.jsx)(`input`,{type:`range`,min:0,max:1,step:.02,value:n,onChange:e=>r(parseFloat(e.target.value)),className:`w-24 accent-emerald-500`}),(0,W.jsx)(`span`,{className:`text-[10px] font-mono tabular-nums text-[var(--color-fg-2)] w-8 text-right`,children:Math.round(n*100)})]})]})}var Wd=[{path:`/`,label:`dashboard`},{path:`/graph`,label:`graph`},{path:`/rules`,label:`rules`},{path:`/audit`,label:`audit`},{path:`/approvals`,label:`approvals`},{path:`/hub`,label:`hub`},{path:`/profile`,label:`profile`},{path:`/monitor`,label:`monitor`},{path:`/observability`,label:`observability`},{path:`/debug`,label:`debug`}];function Gd(e){let t=Math.max(0,e-Date.now()),n=Math.floor(t/1e3);if(n<60)return`${n}s`;let r=Math.floor(n/60);return r<60?`${r}m ${n%60}s`:`${Math.floor(r/60)}h ${r%60}m`}function Kd(){let{data:e}=z(`/api/json/daemon-status`,[je([`counters-updated`])[`counters-updated`]]),[t,n]=(0,_.useState)(!1),[,r]=(0,_.useState)(0);(0,_.useEffect)(()=>{if(e?.status!==`degraded`||!e.hibernation)return;let t=setInterval(()=>r(e=>e+1),1e3);return()=>clearInterval(t)},[e?.status,e?.hibernation]);let i=e?.status??`starting`,a=i===`running`?`bg-emerald-400`:i===`starting`||i===`degraded`?`bg-amber-400`:`bg-red-400`,o=i===`starting`||i===`degraded`?`pulse-soft`:``,s=i===`degraded`&&e?.hibernation?Gd(e.hibernation.nextRetryAt):null,c=i===`running`?`daemon · online`:i===`starting`?`daemon · booting`:i===`degraded`?`daemon · retry ${s??`…`}`:i===`error`?`daemon · error`:`daemon · offline`;return(0,W.jsxs)(`div`,{className:`relative`,children:[(0,W.jsxs)(`button`,{onClick:()=>n(e=>!e),className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] transition-colors cursor-pointer`,title:i===`running`?`Daemon running`:i===`starting`?`Daemon starting…`:i===`degraded`?`Daemon hibernating — retry in ${s??`…`}`:i===`error`?`Daemon error`:`Daemon stopped`,children:[(0,W.jsx)(`span`,{className:`status-dot ${a} ${o}`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:c})]}),t&&(0,W.jsxs)(`div`,{className:`absolute right-0 top-7 z-50 w-72 bg-[var(--color-surface-1)] border border-[var(--color-line-2)] rounded-sm shadow-xl p-3 text-xs`,children:[(0,W.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,W.jsx)(`span`,{className:`overline`,children:`eval daemon`}),(0,W.jsx)(`button`,{onClick:()=>n(!1),className:`text-[var(--color-fg-4)] hover:text-[var(--color-fg-1)] cursor-pointer`,children:`✕`})]}),(0,W.jsxs)(`div`,{className:`space-y-1 text-[var(--color-fg-2)]`,children:[(0,W.jsxs)(`div`,{className:`font-mono text-[11px]`,children:[`status:`,` `,(0,W.jsx)(`span`,{className:i===`running`?`text-emerald-300`:i===`starting`||i===`degraded`?`text-amber-300`:`text-red-300`,children:i})]}),e?.pid&&(0,W.jsxs)(`div`,{className:`font-mono text-[11px]`,children:[`pid: `,e.pid]}),i===`degraded`&&e?.hibernation&&(0,W.jsxs)(`div`,{className:`mt-2 rounded-sm border border-amber-500/25 bg-amber-500/5 p-2 text-[11px] text-amber-300 space-y-0.5`,children:[(0,W.jsxs)(`div`,{children:[`next retry:`,` `,(0,W.jsx)(`span`,{className:`font-medium`,children:s})]}),(0,W.jsxs)(`div`,{children:[`episode attempt: `,e.hibernation.attempt,e.hibernation.reason?` (${e.hibernation.reason})`:``]}),(0,W.jsx)(`div`,{className:`text-amber-400/70`,children:`Slow-tier supervisor is retrying at long backoff — no manual restart required.`})]})]}),e?.logTail&&e.logTail.length>0&&(0,W.jsxs)(`div`,{className:`mt-3`,children:[(0,W.jsx)(`div`,{className:`overline mb-1`,children:`recent log`}),(0,W.jsx)(`pre`,{className:`bg-[var(--color-surface-0)] border border-[var(--color-line-0)] rounded-sm p-2 text-[10px] text-[var(--color-fg-2)] overflow-x-auto whitespace-pre-wrap break-all max-h-32 overflow-y-auto`,children:e.logTail.join(`
23
+ `)})]})]})]})}function qd(){let{data:e}=z(`/api/state/activity-degraded`);if(!e?.degraded)return null;let t=e.since?new Date(e.since).toLocaleTimeString():`recently`;return(0,W.jsxs)(`div`,{role:`status`,className:`border-b border-amber-500/40 bg-amber-500/10 px-4 py-1.5 text-[11px] font-mono text-amber-200 text-center`,title:e.reason??`audit-worker degraded`,children:[`audit pipeline degraded since `,t,` — entries may be missing. Run`,` `,(0,W.jsx)(`code`,{className:`text-amber-100`,children:`ssg daemon --status`}),` to inspect.`]})}function Jd(){let{data:e}=z(`/api/json/license`,[je([`counters-updated`])[`counters-updated`]]);return!e||e.tier!==`unlicensed`||e.status===`needs_reauth`||e.status===`needs_login`||e.eval_daily_limit===null||e.evals_today<e.eval_daily_limit?null:(0,W.jsxs)(`div`,{role:`alert`,className:`border-b border-red-500/50 bg-red-500/10 px-4 py-1.5 text-[11px] font-mono text-red-200 text-center`,title:`Free tier daily eval limit reached — rules are being bypassed until quota resets`,children:[`quota exhausted — `,e.evals_today.toLocaleString(),`/`,e.eval_daily_limit.toLocaleString(),` evals used today. BLOCK and ASK rules are being bypassed (fail-open) until daily reset.`,` `,(0,W.jsx)(`a`,{href:e.upgrade_url,target:`_blank`,rel:`noopener noreferrer`,className:`text-red-100 underline hover:text-white`,children:`Upgrade to Pro →`})]})}function Yd(){let{data:e}=z(`/api/json/license`,[je([`counters-updated`])[`counters-updated`]]);return!e||e.status!==`needs_reauth`?null:(0,W.jsxs)(`div`,{role:`alert`,className:`border-b border-amber-500/50 bg-amber-500/10 px-4 py-1.5 text-[11px] font-mono text-amber-200 text-center`,title:`Re-authentication required — paid-tier features are paused until you re-login`,children:[`re-authentication required — `,e.detail??`License JWT invalid or expired`,`. Run`,` `,(0,W.jsx)(`code`,{className:`text-amber-100`,children:`ssg auth login`}),` in your terminal to restore your tier.`]})}function Xd(){let{data:e,refetch:t}=z(`/api/json/ask-mode`),[n,r]=(0,_.useState)(!1),i=e?.mode??`tty`;async function a(e){if(!(n||e===i)){r(!0);try{await fetch(`/api/json/ask-mode`,{method:`POST`,headers:{"Content-Type":`application/json`,...Ae()},body:JSON.stringify({mode:e})}),t()}finally{r(!1)}}}let o=i===`tty`;return(0,W.jsxs)(`button`,{onClick:()=>a(o?`dashboard`:`tty`),disabled:n,className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] transition-colors cursor-pointer disabled:opacity-50`,title:o?`ASK decisions prompt in the native IDE/TTY. Click to route to dashboard.`:`ASK decisions queue on /approvals. Click to route to native prompt.`,children:[(0,W.jsx)(`span`,{className:`status-dot ${o?`bg-sky-400`:`bg-violet-400`}`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:o?`ask · native`:`ask · dashboard`})]})}function Zd({onRefresh:e}){return(0,W.jsx)(`button`,{onClick:e,className:`flex items-center justify-center text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] transition-colors cursor-pointer p-1 rounded-sm`,title:`Reset page — clears stale graph state without dropping SSE`,"aria-label":`Refresh page`,children:(0,W.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`path`,{d:`M21 12a9 9 0 1 1-3-6.7`}),(0,W.jsx)(`polyline`,{points:`21 3 21 9 15 9`})]})})}function Qd(){let{data:e}=z(`/api/json/mcp-status`,[je([`activity-updated`])[`activity-updated`]]),t=e?.status??`inactive`;if(t===`inactive`)return null;let n=t===`active`?`bg-sky-400`:`bg-[var(--color-fg-4)]`,r=t===`active`?`mcp · active`:`mcp · idle`;return(0,W.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px] font-mono uppercase tracking-wider text-[var(--color-fg-3)]`,title:t===`active`?`MCP server: ${e?.recentCount??0} evals in last 5 min`:`MCP server: ${e?.totalCount??0} total evals`,children:[(0,W.jsx)(`span`,{className:`status-dot ${n}`}),(0,W.jsx)(`span`,{className:`hidden sm:inline`,children:r})]})}function $d(e){if(e===`/`)return(0,W.jsx)(Ws,{});if(e===`/classic`)return(0,W.jsx)(Ic,{});if(e===`/graph`)return(0,W.jsx)(Qu,{});if(e===`/debug`)return(0,W.jsx)(ed,{});if(e===`/rules`)return(0,W.jsx)(Wc,{});if(e===`/audit`)return(0,W.jsx)(Jc,{});if(e===`/approvals`)return(0,W.jsx)(il,{});if(e===`/profile`)return(0,W.jsx)(Sl,{});if(e===`/hub/connect`)return(0,W.jsx)(Nl,{});if(e===`/hub/publish`)return(0,W.jsx)(Pl,{});if(e.startsWith(`/hub/`)){let t=e.slice(5);if(t)return(0,W.jsx)(Ml,{id:t})}return e===`/hub`?(0,W.jsx)(Al,{}):e===`/monitor`?(0,W.jsx)(Gl,{}):e===`/observability`?(0,W.jsx)(uu,{}):(0,W.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-24 text-[var(--color-fg-3)]`,children:[(0,W.jsx)(`p`,{className:`overline mb-2`,children:`error · 404`}),(0,W.jsx)(`p`,{className:`text-sm`,children:`page not found`}),(0,W.jsx)(`a`,{href:`/`,className:`mt-4 text-[11px] font-mono uppercase tracking-wider text-[var(--color-brand)] hover:underline`,children:`← back to dashboard`})]})}function ef(e){history.pushState(null,``,e),window.dispatchEvent(new PopStateEvent(`popstate`))}function tf({count:e}){let[t,n]=(0,_.useState)(!1);return t||e===0?null:(0,W.jsx)(`div`,{className:`border-b border-amber-500/25 bg-amber-500/5 px-4 py-2`,children:(0,W.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,W.jsxs)(`svg`,{className:`shrink-0 text-amber-300`,width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`path`,{d:`M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z`}),(0,W.jsx)(`line`,{x1:`12`,y1:`9`,x2:`12`,y2:`13`}),(0,W.jsx)(`line`,{x1:`12`,y1:`17`,x2:`12.01`,y2:`17`})]}),(0,W.jsxs)(`p`,{className:`text-[11px] text-amber-200 flex-1 font-mono`,children:[(0,W.jsxs)(`span`,{className:`font-semibold uppercase tracking-wider`,children:[e,` other `,e===1?`tab`:`tabs`,` open.`]}),` `,`Each tab holds a live SSE connection. Browsers limit connections per origin — too many tabs will prevent this page from loading.`,` `,(0,W.jsx)(`span`,{className:`text-amber-400/70`,children:`Close other tabs to restore full live-update functionality.`})]}),(0,W.jsx)(`button`,{onClick:()=>n(!0),className:`text-amber-500/50 hover:text-amber-300 transition-colors shrink-0 cursor-pointer`,title:`Dismiss`,children:(0,W.jsxs)(`svg`,{width:`13`,height:`13`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,W.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,W.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]})})]})})}function nf(){let[e,t]=(0,_.useState)(window.location.pathname),[n,r]=(0,_.useState)(0),[i,a]=(0,_.useState)(!1),{otherTabCount:o}=bd();(0,_.useEffect)(()=>{let e=()=>t(window.location.pathname);return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[]),(0,_.useEffect)(()=>{a(!1)},[e]),(0,_.useEffect)(()=>{let e=e=>{let t=e.target.closest(`a`);if(!t)return;let n=t.getAttribute(`href`);!n||n.startsWith(`http`)||n.startsWith(`//`)||(e.preventDefault(),ef(n))};return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[]);let s=t=>t===`/`?e===`/`:e.startsWith(t);return(0,W.jsxs)(`div`,{className:`min-h-screen bg-[var(--color-surface-0)] text-[var(--color-fg-1)]`,children:[(0,W.jsxs)(`header`,{className:`border-b border-[var(--color-line-1)] sticky top-0 z-50 bg-[var(--color-surface-0)]/98`,children:[(0,W.jsxs)(`div`,{className:`px-6 flex items-center h-12 gap-5`,children:[(0,W.jsxs)(`a`,{href:`/`,className:`flex items-baseline gap-0.5 select-none`,title:`SigmaShake Governance`,children:[(0,W.jsx)(`span`,{className:`font-mono text-sm font-semibold text-[var(--color-brand)] tracking-tight`,children:`ssg`}),(0,W.jsx)(`span`,{className:`font-mono text-[11px] text-[var(--color-fg-3)] tracking-tight`,children:`/gov`})]}),(0,W.jsx)(`nav`,{className:`hidden md:flex items-center`,children:Wd.map(e=>{let t=s(e.path);return(0,W.jsxs)(`a`,{href:e.path,className:`relative px-3 py-1.5 text-[13px] font-mono tracking-wide transition-colors ${t?`text-[var(--color-fg-0)]`:`text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)]`}`,children:[e.label,t&&(0,W.jsx)(`span`,{className:`absolute inset-x-2 -bottom-px h-px bg-[var(--color-brand)]`})]},e.path)})}),(0,W.jsxs)(`div`,{className:`hidden md:flex items-center gap-4 ml-auto`,children:[o>0&&(0,W.jsxs)(`span`,{className:`chip text-amber-300 border-amber-500/30`,title:`${o} other tab${o===1?``:`s`} open — may cause connection issues`,children:[o+1,` tabs`]}),(0,W.jsx)(Sd,{}),(0,W.jsx)(Xd,{}),(0,W.jsx)(Qd,{}),(0,W.jsx)(Kd,{}),(0,W.jsx)(Zd,{onRefresh:()=>r(e=>e+1)}),(0,W.jsx)(Hd,{}),(0,W.jsx)(Md,{}),(0,W.jsx)(Ud,{})]}),(0,W.jsx)(`button`,{"aria-label":`menu`,className:`md:hidden ml-auto flex items-center justify-center w-8 h-8 text-[var(--color-fg-2)] hover:text-[var(--color-fg-0)] transition-colors cursor-pointer`,onClick:()=>a(e=>!e),children:i?(0,W.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 18 18`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,children:[(0,W.jsx)(`line`,{x1:`3`,y1:`3`,x2:`15`,y2:`15`}),(0,W.jsx)(`line`,{x1:`15`,y1:`3`,x2:`3`,y2:`15`})]}):(0,W.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 18 18`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,children:[(0,W.jsx)(`line`,{x1:`2`,y1:`5`,x2:`16`,y2:`5`}),(0,W.jsx)(`line`,{x1:`2`,y1:`9`,x2:`16`,y2:`9`}),(0,W.jsx)(`line`,{x1:`2`,y1:`13`,x2:`16`,y2:`13`})]})})]}),i&&(0,W.jsxs)(`div`,{className:`md:hidden border-t border-[var(--color-line-0)] bg-[var(--color-surface-0)]`,children:[(0,W.jsx)(`nav`,{className:`flex flex-col px-2 py-1`,children:Wd.map(e=>{let t=s(e.path);return(0,W.jsx)(`a`,{href:e.path,onClick:()=>a(!1),className:`px-3 py-2.5 text-[13px] font-mono tracking-wide transition-colors rounded-sm ${t?`text-[var(--color-fg-0)] bg-[var(--color-surface-1)]`:`text-[var(--color-fg-3)] hover:text-[var(--color-fg-1)] hover:bg-[var(--color-surface-1)]`}`,children:e.label},e.path)})}),(0,W.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 px-4 py-2 border-t border-[var(--color-line-0)]`,children:[o>0&&(0,W.jsxs)(`span`,{className:`chip text-amber-300 border-amber-500/30`,title:`${o} other tab${o===1?``:`s`} open`,children:[o+1,` tabs`]}),(0,W.jsx)(Sd,{}),(0,W.jsx)(Xd,{}),(0,W.jsx)(Qd,{}),(0,W.jsx)(Kd,{}),(0,W.jsx)(Zd,{onRefresh:()=>r(e=>e+1)}),(0,W.jsx)(Hd,{}),(0,W.jsx)(Md,{}),(0,W.jsx)(Ud,{})]})]}),(0,W.jsx)(tf,{count:o}),(0,W.jsx)(Yd,{}),(0,W.jsx)(Jd,{}),(0,W.jsx)(qd,{})]}),(0,W.jsx)(`main`,{className:`px-6 py-6`,children:$d(e)},n)]})}var rf=document.getElementById(`app-root`);if(!rf)throw Error(`Missing #app-root`);g.createRoot(rf).render((0,W.jsx)(_.StrictMode,{children:(0,W.jsx)(nf,{})}));