agent-lookout 0.2.0 → 0.2.1

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.
@@ -0,0 +1 @@
1
+ @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-border-spacing-x:0;--tw-border-spacing-y:0;--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-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-content:"";--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--spacing:.25rem;--container-md:28rem;--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);--font-sans:"Atkinson Hyperlegible Next", system-ui, sans-serif;--font-mono:"Atkinson Hyperlegible Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--text-wait:46px;--text-wait--line-height:.95;--text-wait--letter-spacing:-.03em;--text-name:34px;--text-name--line-height:1.05;--text-name--letter-spacing:-.025em;--text-stat:28px;--text-stat--line-height:1;--text-stat--letter-spacing:-.02em;--text-unit:22px;--text-unit--line-height:1;--text-unit--letter-spacing:0;--text-wordmark:19px;--text-wordmark--line-height:1;--text-wordmark--letter-spacing:-.015em;--text-lead:16px;--text-lead--line-height:1.2;--text-title:15px;--text-title--line-height:1.3;--text-title--letter-spacing:-.006em;--text-row:14px;--text-row--line-height:1.45;--text-body:13px;--text-body--line-height:1.45;--text-fact:12.5px;--text-fact--line-height:1.45;--text-caption:12px;--text-caption--line-height:1.35;--text-micro:11px;--text-micro--line-height:1.2;--leading-tight:1.2;--radius-panel:24px;--radius-chrome:22px;--radius-inner:14px;--radius-row:10px;--radius-capsule:999px;--radius-tube:6px;--radius-bar:4px;--spacing-window:12px;--spacing-rail:76px;--spacing-header:56px;--spacing-row:44px;--spacing-group:40px;--spacing-log-row:38px;--spacing-control:30px;--spacing-button:28px;--spacing-button-hero:38px;--spacing-mark:14px;--spacing-icon:20px;--spacing-track:30px;--spacing-label-col:188px;--spacing-bar-needs-you:16px;--spacing-bar-working:10px;--spacing-bar-idle:2px;--spacing-waited-name:132px;--ease-out:cubic-bezier(.2, .7, .2, 1);--animate-lamp:lamp 3.2s ease-in-out infinite;--animate-spin-loader:spin-loader .9s linear infinite;--animate-rise-fast:rise .24s ease-out both;--animate-fade-in:fade-in .2s ease-out both;--animate-fade-out:fade-out .15s ease-in both;--animate-drop:drop .15s ease-in both}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--hairline);outline-color:var(--focus)}html{background-color:var(--ground-top)}body{min-height:100vh;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-color:#0000;font-size:14px;line-height:1.45}code,kbd,samp,pre{letter-spacing:-.02em;word-spacing:-.22em;font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background-color:var(--focus)}@supports (color:color-mix(in lab,red,red)){::selection{background-color:color-mix(in srgb,var(--focus) 32%,transparent)}}}@layer components{.ground{z-index:-1;pointer-events:none;background-image:var(--ground);position:fixed;inset:0;overflow:hidden}.ground>i{will-change:transform;border-radius:50%;display:block;position:absolute}.ground-main{top:var(--field-main-top);right:var(--field-main-right);width:var(--field-main-width);height:var(--field-main-height);transform:rotate(var(--field-main-turn));background-image:radial-gradient(closest-side,rgb(var(--field) / var(--field-strength)),rgb(var(--field) / calc(var(--field-strength) * .4)) 52%,transparent 100%)}.ground-deep{background-image:radial-gradient(closest-side,rgb(var(--field-deep) / calc(var(--field-strength) * .85)),rgb(var(--field-deep) / calc(var(--field-strength) * .3)) 55%,transparent 100%);width:1180px;height:880px;top:520px;left:-300px}.ground-far{background-image:radial-gradient(closest-side,rgb(var(--field) / calc(var(--field-strength) * .45)),transparent 100%);width:900px;height:600px;top:820px;left:46%}.ground:after{content:"";opacity:var(--grain);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}@media(prefers-reduced-motion:no-preference){.ground-main{animation:96s ease-in-out infinite alternate drift-main}.ground-deep{animation:124s ease-in-out infinite alternate drift-deep}.ground-far{animation:150s ease-in-out infinite alternate drift-far}.ground[data-drift=paused]>i{animation-play-state:paused}}@keyframes drift-main{to{transform:rotate(var(--field-main-turn)) translate3d(-90px,70px,0) scale(1.06)}}@keyframes drift-deep{to{transform:translate(120px,-60px)scale(1.04)}}@keyframes drift-far{to{transform:translate(-140px,-40px)}}.glass-chrome,.glass-card,.glass-raised,.glass-float{isolation:isolate;position:relative}.glass-chrome{--rim-paint:var(--rim);border-radius:var(--radius-chrome);background-color:var(--glass-chrome);box-shadow:var(--elev-1)}.glass-card{--rim-paint:var(--rim);border-radius:var(--radius-panel);background-color:var(--glass-card);box-shadow:var(--elev-2)}.glass-raised{--rim-paint:var(--rim-raised);border-radius:var(--radius-panel);background-color:var(--glass-raised);box-shadow:var(--elev-3)}.glass-raised[data-light=lamp]{--rim-paint:var(--rim-lamp), var(--rim-raised)}.glass-raised[data-light=rest]{--rim-paint:var(--rim-rest), var(--rim-raised)}.glass-float{--rim-paint:var(--rim-raised);border-radius:var(--radius-panel);background-color:var(--glass-float);box-shadow:var(--elev-3)}:is(.glass-chrome,.glass-card,.glass-raised,.glass-float):before{content:"";z-index:3;border-radius:inherit;pointer-events:none;background:var(--rim-paint);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}:is(.glass-chrome,.glass-card,.glass-raised,.glass-float):after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background-image:var(--sheen);position:absolute;inset:0}@supports not ((mask-composite:exclude) or (-webkit-mask-composite:xor)){:is(.glass-chrome,.glass-card,.glass-raised,.glass-float):before{box-shadow:inset 0 1px 0 var(--control-top),inset 0 0 0 1px var(--rule);background:0 0;padding:0;-webkit-mask:none;mask:none}}.glass-blur{-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--saturate))}.lamp-light,.rest-light{--light-reach:60px;z-index:0;top:-90px;left:calc(var(--light-reach) * -1);width:min(820px,calc(100% + var(--light-reach)));pointer-events:none;height:520px;filter:saturate(var(--saturate-hero));-webkit-mask-image:linear-gradient(to right,transparent calc(var(--light-reach) - var(--spacing-window)),#000 var(--light-reach));mask-image:linear-gradient(to right,transparent calc(var(--light-reach) - var(--spacing-window)),#000 var(--light-reach));position:absolute}.lamp-light:before,.rest-light:before{content:"";border-radius:50%;position:absolute}.lamp-light{background-image:radial-gradient(closest-side,rgb(var(--lamp) / calc(var(--lamp-strength) * .3)),rgb(var(--lamp) / calc(var(--lamp-strength) * .09)) 50%,transparent 100%)}.lamp-light:before{background-image:radial-gradient(closest-side,rgb(var(--lamp) / var(--lamp-strength)),rgb(var(--lamp) / calc(var(--lamp-strength) * .35)) 55%,transparent 100%);width:63%;height:330px;top:50px;left:3.7%}.rest-light{background-image:radial-gradient(closest-side,rgb(var(--rest) / calc(var(--rest-strength) * .5)),rgb(var(--rest) / calc(var(--rest-strength) * .2)) 50%,transparent 100%)}.rest-light:before{background-image:radial-gradient(closest-side,rgb(var(--rest) / var(--rest-strength)),rgb(var(--rest) / calc(var(--rest-strength) * .35)) 55%,transparent 100%);width:78%;height:360px;top:40px;left:14.6%}@media(prefers-reduced-motion:no-preference){.lamp-light{animation:lamp-rise 1.2s var(--ease-out) both}}@keyframes lamp-rise{0%{opacity:0;transform:translateY(90px)scale(.9)}}.bar-open{background-color:var(--status-needs-you);box-shadow:inset 0 0 0 1px var(--status-needs-you-edge),var(--bar-glow,0 0 transparent)}.bar-glow{--bar-glow:0 0 16px -3px var(--glow-needs-you)}.bar-answered{background-color:var(--answered-fill);box-shadow:inset 0 0 0 1.5px var(--status-idle)}.bar-working{background-color:var(--status-working-fill);box-shadow:inset 0 1px 0 var(--status-working-top)}.bar-idle{background-color:var(--status-idle)}.stale-dots{background-image:repeating-linear-gradient(to right,var(--status-idle) 0 2px,transparent 2px 6px)}.bar-tube{background-color:var(--tube);box-shadow:inset 0 0 0 1px var(--tube-rim),inset 0 1px 0 var(--tube-top)}.unmeasured-hatch{background-image:repeating-linear-gradient(135deg,var(--unmeasured) 0 1px,transparent 1px 6px)}.thin-scroll::-webkit-scrollbar{width:4px;height:4px}.thin-scroll::-webkit-scrollbar-thumb{background-color:var(--rule-strong);border-radius:999px}.thin-scroll::-webkit-scrollbar-track{background:0 0}@supports not selector(::-webkit-scrollbar){.thin-scroll{scrollbar-width:thin;scrollbar-color:var(--rule-strong) transparent}}[data-host=app] :is([data-slot=header],[data-slot=rail-buttons],[data-slot=ground-above]){-webkit-app-region:drag}[data-host=app] :is([data-slot=header],[data-slot=rail]) :is(a,button,input,select,textarea,summary,[role=button],[tabindex]),[data-host=app] body>:not(#root){-webkit-app-region:no-drag}[data-host=app]{scrollbar-width:thin}}@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.inset-y-0\.75{inset-block:calc(var(--spacing) * .75)}.-top-1\.75{top:calc(var(--spacing) * -1.75)}.top-0{top:0}.top-1\.75{top:calc(var(--spacing) * 1.75)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-window{top:var(--spacing-window)}.-right-7\.5{right:calc(var(--spacing) * -7.5)}.right-0{right:0}.right-full{right:100%}.bottom-0{bottom:0}.bottom-1\/2{bottom:50%}.bottom-auto{bottom:auto}.left-0{left:0}.left-0\.75{left:calc(var(--spacing) * .75)}.left-1\/2{left:50%}.left-3\.5{left:calc(var(--spacing) * 3.5)}.isolate{isolation:isolate}.z-0{z-index:0}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-60{z-index:60}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-4{grid-column:span 4/span 4}.col-span-8{grid-column:span 8/span 8}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.container{width:100%}@media(min-width:761px){.container{max-width:761px}}@media(min-width:1181px){.container{max-width:1181px}}.-m-2{margin:calc(var(--spacing) * -2)}.-mx-1\.5{margin-inline:calc(var(--spacing) * -1.5)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-auto{margin-inline:auto}.-my-0\.5{margin-block:calc(var(--spacing) * -.5)}.-my-2\.5{margin-block:calc(var(--spacing) * -2.5)}.my-auto{margin-block:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-0\.75{margin-top:calc(var(--spacing) * .75)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-\[6vh\]{margin-top:6vh}.mt-px{margin-top:1px}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-11\.5{margin-right:calc(var(--spacing) * 11.5)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-0\.5{margin-left:calc(var(--spacing) * -.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.ml-label-col{margin-left:var(--spacing-label-col)}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\!hidden{display:none!important}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-6\.5{width:calc(var(--spacing) * 6.5);height:calc(var(--spacing) * 6.5)}.size-7\.5{width:calc(var(--spacing) * 7.5);height:calc(var(--spacing) * 7.5)}.size-button{width:var(--spacing-button);height:var(--spacing-button)}.size-icon{width:var(--spacing-icon);height:var(--spacing-icon)}.size-mark{width:var(--spacing-mark);height:var(--spacing-mark)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-5{height:calc(var(--spacing) * 5)}.h-5\.5{height:calc(var(--spacing) * 5.5)}.h-7{height:calc(var(--spacing) * 7)}.h-11{height:calc(var(--spacing) * 11)}.h-55{height:calc(var(--spacing) * 55)}.h-bar-idle{height:var(--spacing-bar-idle)}.h-bar-needs-you{height:var(--spacing-bar-needs-you)}.h-bar-working{height:var(--spacing-bar-working)}.h-button{height:var(--spacing-button)}.h-button-hero{height:var(--spacing-button-hero)}.h-control{height:var(--spacing-control)}.h-full{height:100%}.h-group{height:var(--spacing-group)}.h-header{height:var(--spacing-header)}.h-px{height:1px}.h-row{height:var(--spacing-row)}.h-track{height:var(--spacing-track)}.h-window{height:var(--spacing-window)}.max-h-57{max-height:calc(var(--spacing) * 57)}.max-h-\[min\(26rem\,55vh\)\]{max-height:min(26rem,55vh)}.min-h-28{min-height:calc(var(--spacing) * 28)}.min-h-65{min-height:calc(var(--spacing) * 65)}.min-h-button{min-height:var(--spacing-button)}.min-h-log-row{min-height:var(--spacing-log-row)}.min-h-screen{min-height:100vh}.w-0{width:0}.w-0\.5{width:calc(var(--spacing) * .5)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-5\.5{width:calc(var(--spacing) * 5.5)}.w-15\.5{width:calc(var(--spacing) * 15.5)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-25{width:calc(var(--spacing) * 25)}.w-28{width:calc(var(--spacing) * 28)}.w-40{width:calc(var(--spacing) * 40)}.w-96{width:calc(var(--spacing) * 96)}.w-\[min\(440px\,100\%\)\]{width:min(440px,100%)}.w-\[min\(600px\,100\%\)\]{width:min(600px,100%)}.w-\[min\(760px\,100\%\)\]{width:min(760px,100%)}.w-fit{width:fit-content}.w-full{width:100%}.w-label-col{width:var(--spacing-label-col)}.w-mark{width:var(--spacing-mark)}.w-px{width:1px}.w-rail{width:var(--spacing-rail)}.w-waited-name{width:var(--spacing-waited-name)}.max-w-155{max-width:calc(var(--spacing) * 155)}.max-w-\[52ch\]{max-width:52ch}.max-w-\[56ch\]{max-width:56ch}.max-w-\[620px\]{max-width:620px}.max-w-\[min\(26rem\,calc\(100vw-1\.5rem\)\)\]{max-width:min(26rem,100vw - 1.5rem)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-0\.75{min-width:calc(var(--spacing) * .75)}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-5\.5{min-width:calc(var(--spacing) * 5.5)}.min-w-16{min-width:calc(var(--spacing) * 16)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin-loader{animation:var(--animate-spin-loader)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,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-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,1\.75fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-1\.25{gap:calc(var(--spacing) * 1.25)}.gap-1\.75{gap:calc(var(--spacing) * 1.75)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\.5{gap:calc(var(--spacing) * 3.5)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}.gap-window{gap:var(--spacing-window)}.gap-x-1{column-gap:var(--spacing)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-2\.5{column-gap:calc(var(--spacing) * 2.5)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-3\.5{column-gap:calc(var(--spacing) * 3.5)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-4{row-gap:calc(var(--spacing) * 4)}.gap-y-px{row-gap:1px}.self-center{align-self:center}.justify-self-start{justify-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-clip{overflow-x:clip}.overflow-y-auto{overflow-y:auto}.rounded-bar{border-radius:var(--radius-bar)}.rounded-capsule{border-radius:var(--radius-capsule)}.rounded-chrome{border-radius:var(--radius-chrome)}.rounded-inner{border-radius:var(--radius-inner)}.rounded-panel{border-radius:var(--radius-panel)}.rounded-row{border-radius:var(--radius-row)}.rounded-tube{border-radius:var(--radius-tube)}.rounded-t-chrome{border-top-left-radius:var(--radius-chrome);border-top-right-radius:var(--radius-chrome)}.rounded-t-tube{border-top-left-radius:var(--radius-tube);border-top-right-radius:var(--radius-tube)}.rounded-b-bar{border-bottom-right-radius:var(--radius-bar);border-bottom-left-radius:var(--radius-bar)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-hairline{border-color:var(--hairline)}.border-ink-muted{border-color:var(--ink-muted)}.border-rule{border-color:var(--rule)}.border-rule-strong{border-color:var(--rule-strong)}.border-t-ink-secondary{border-top-color:var(--ink-secondary)}.bg-fill-quiet{background-color:var(--fill-quiet)}.bg-fill-selected{background-color:var(--fill-selected)}.bg-fill-zebra{background-color:var(--fill-zebra)}.bg-glass-float{background-color:var(--glass-float)}.bg-hairline{background-color:var(--hairline)}.bg-rule{background-color:var(--rule)}.bg-rule-strong{background-color:var(--rule-strong)}.bg-scrim{background-color:var(--scrim)}.bg-status-finished{background-color:var(--status-finished)}.bg-status-needs-you{background-color:var(--status-needs-you)}.bg-thumb{background-color:var(--thumb)}.bg-transparent{background-color:#0000}.bg-well{background-color:var(--well)}.bg-fixed{background-attachment:fixed}.fill-ink-muted{fill:var(--ink-muted)}.fill-status-needs-you{fill:var(--status-needs-you)}.stroke-status-needs-you-edge{stroke:var(--status-needs-you-edge)}.p-0\.75{padding:calc(var(--spacing) * .75)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-10{padding:calc(var(--spacing) * 10)}.p-window{padding:var(--spacing-window)}.px-0{padding-inline:0}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-6\.5{padding-inline:calc(var(--spacing) * 6.5)}.px-7{padding-inline:calc(var(--spacing) * 7)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.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-8{padding-block:calc(var(--spacing) * 8)}.py-14{padding-block:calc(var(--spacing) * 14)}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-4\.5{padding-top:calc(var(--spacing) * 4.5)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[6vh\]{padding-top:6vh}.pt-\[12vh\]{padding-top:12vh}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-2\.25{padding-bottom:calc(var(--spacing) * 2.25)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-3\.5{padding-bottom:calc(var(--spacing) * 3.5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-4\.5{padding-bottom:calc(var(--spacing) * 4.5)}.pb-5{padding-bottom:calc(var(--spacing) * 5)}.pb-5\.5{padding-bottom:calc(var(--spacing) * 5.5)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-name{font-size:var(--text-name);line-height:var(--tw-leading,var(--text-name--line-height));letter-spacing:var(--tw-tracking,var(--text-name--letter-spacing))}.text-stat{font-size:var(--text-stat);line-height:var(--tw-leading,var(--text-stat--line-height));letter-spacing:var(--tw-tracking,var(--text-stat--letter-spacing))}.text-title{font-size:var(--text-title);line-height:var(--tw-leading,var(--text-title--line-height));letter-spacing:var(--tw-tracking,var(--text-title--letter-spacing))}.text-unit{font-size:var(--text-unit);line-height:var(--tw-leading,var(--text-unit--line-height));letter-spacing:var(--tw-tracking,var(--text-unit--letter-spacing))}.text-wait{font-size:var(--text-wait);line-height:var(--tw-leading,var(--text-wait--line-height));letter-spacing:var(--tw-tracking,var(--text-wait--letter-spacing))}.text-wordmark{font-size:var(--text-wordmark);line-height:var(--tw-leading,var(--text-wordmark--line-height));letter-spacing:var(--tw-tracking,var(--text-wordmark--letter-spacing))}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-caption{font-size:var(--text-caption);line-height:var(--tw-leading,var(--text-caption--line-height))}.text-fact{font-size:var(--text-fact);line-height:var(--tw-leading,var(--text-fact--line-height))}.text-lead{font-size:var(--text-lead);line-height:var(--tw-leading,var(--text-lead--line-height))}.text-micro{font-size:var(--text-micro);line-height:var(--tw-leading,var(--text-micro--line-height))}.text-row{font-size:var(--text-row);line-height:var(--tw-leading,var(--text-row--line-height))}.leading-3\.5{--tw-leading:calc(var(--spacing) * 3.5);line-height:calc(var(--spacing) * 3.5)}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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)}.font-mono{letter-spacing:-.02em;word-spacing:-.22em;font-variant-numeric:tabular-nums}.text-pretty{text-wrap:pretty}.wrap-anywhere{overflow-wrap:anywhere}.wrap-break-word{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.text-ink{color:var(--ink)}.text-ink-muted{color:var(--ink-muted)}.text-ink-secondary{color:var(--ink-secondary)}.text-label-needs-you{color:var(--label-needs-you)}.text-on-needs-you{color:var(--on-needs-you)}.text-status-finished{color:var(--status-finished)}.text-status-idle{color:var(--status-idle)}.text-status-needs-you-edge{color:var(--status-needs-you-edge)}.text-status-working{color:var(--status-working)}.lowercase{text-transform:lowercase}.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,)}.underline{text-decoration-line:underline}.decoration-rule-strong{-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong)}.underline-offset-2{text-underline-offset:2px}.opacity-70{opacity:.7}.shadow-edge{--tw-shadow:inset 3px 0 0 var(--tw-shadow-color,var(--ink));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-glow{--tw-shadow:0 8px 22px -8px var(--tw-shadow-color,var(--glow-needs-you));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-thumb{--tw-shadow:0 2px 6px -2px var(--tw-shadow-color,var(--thumb-drop));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--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)}.inset-shadow-lit{--tw-inset-shadow:inset 0 1px 0 var(--tw-inset-shadow-color,var(--lit-top));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-shadow-top{--tw-inset-shadow:inset 0 1px 0 var(--tw-inset-shadow-color,var(--control-top));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-shadow-well{--tw-inset-shadow:inset 0 1px 2px var(--tw-inset-shadow-color,var(--well-shade));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-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)}.inset-ring-control-rim{--tw-inset-ring-color:var(--control-rim)}.inset-ring-hairline{--tw-inset-ring-color:var(--hairline)}.inset-ring-rule{--tw-inset-ring-color:var(--rule)}.inset-ring-rule-strong{--tw-inset-ring-color:var(--rule-strong)}.inset-ring-status-idle{--tw-inset-ring-color:var(--status-idle)}.inset-ring-status-needs-you-edge{--tw-inset-ring-color:var(--status-needs-you-edge)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,color\,filter\]{transition-property:background-color,color,filter;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-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-120{--tw-duration:.12s;transition-duration:.12s}.duration-220{--tw-duration:.22s;transition-duration:.22s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-text{-webkit-user-select:text;user-select:text}.fade-in{--tw-enter-opacity:0}.fade-out{--tw-exit-opacity:0}.paused{animation-play-state:paused}.running{animation-play-state:running}@media(hover:hover){.group-hover\:bg-fill-selected:is(:where(.group):hover *){background-color:var(--fill-selected)}.group-hover\:text-ink:is(:where(.group):hover *){color:var(--ink)}}.placeholder\:text-ink-muted::placeholder{color:var(--ink-muted)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:-inset-x-1:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * -1)}.before\:inset-x-0:before{content:var(--tw-content);inset-inline:0}.before\:inset-x-2\.5:before{content:var(--tw-content);inset-inline:calc(var(--spacing) * 2.5)}.before\:inset-y-0:before{content:var(--tw-content);inset-block:0}.before\:inset-y-px:before{content:var(--tw-content);inset-block:1px}.before\:-top-2:before{content:var(--tw-content);top:calc(var(--spacing) * -2)}.before\:top-1\/2:before{content:var(--tw-content);top:50%}.before\:right-0:before{content:var(--tw-content);right:0}.before\:left-1\/2:before{content:var(--tw-content);left:50%}.before\:-z-10:before{content:var(--tw-content);z-index:-10}.before\:h-1:before{content:var(--tw-content);height:var(--spacing)}.before\:h-px:before{content:var(--tw-content);height:1px}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:rounded-inner:before{content:var(--tw-content);border-radius:var(--radius-inner)}.before\:bg-hairline:before{content:var(--tw-content);background-color:var(--hairline)}.before\:bg-rule-strong:before{content:var(--tw-content);background-color:var(--rule-strong)}.before\:transition-colors:before{content:var(--tw-content);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))}.before\:duration-120:before{content:var(--tw-content);--tw-duration:.12s;transition-duration:.12s}@media(hover:hover){.group-hover\:before\:bg-fill-hover:is(:where(.group):hover *):before{content:var(--tw-content);background-color:var(--fill-hover)}}.group-has-\[a\[data-part\=name\]\:focus-visible\]\:before\:outline-2:is(:where(.group):has(:is(a[data-part=name]:focus-visible)) *):before{content:var(--tw-content);outline-style:var(--tw-outline-style);outline-width:2px}.group-has-\[a\[data-part\=name\]\:focus-visible\]\:before\:outline-offset-2:is(:where(.group):has(:is(a[data-part=name]:focus-visible)) *):before{content:var(--tw-content);outline-offset:2px}.group-has-\[a\[data-part\=name\]\:focus-visible\]\:before\:outline-focus:is(:where(.group):has(:is(a[data-part=name]:focus-visible)) *):before{content:var(--tw-content);outline-color:var(--focus)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:rounded-inner:after{content:var(--tw-content);border-radius:var(--radius-inner)}.first\:pl-6:first-child{padding-left:calc(var(--spacing) * 6)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.last\:pr-4\.5:last-child{padding-right:calc(var(--spacing) * 4.5)}.odd\:bg-fill-zebra:nth-child(odd){background-color:var(--fill-zebra)}@media(hover:hover){.hover\:bg-fill-hover:hover{background-color:var(--fill-hover)}.hover\:bg-fill-selected:hover{background-color:var(--fill-selected)}.hover\:text-ink:hover{color:var(--ink)}.hover\:text-ink-secondary:hover{color:var(--ink-secondary)}.hover\:brightness-105:hover{--tw-brightness:brightness(105%);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,)}}.focus-visible\:z-20:focus-visible{z-index:20}.focus-visible\:bg-fill-selected:focus-visible{background-color:var(--fill-selected)}.focus-visible\:text-ink:focus-visible{color:var(--ink)}.focus-visible\:-outline-offset-2:focus-visible{outline-offset:-2px}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:brightness-97:active{--tw-brightness:brightness(97%);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,)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.has-\[a\[data-part\=name\]\:focus-visible\]\:outline-2:has(:is(a[data-part=name]:focus-visible)){outline-style:var(--tw-outline-style);outline-width:2px}.has-\[a\[data-part\=name\]\:focus-visible\]\:outline-offset-2:has(:is(a[data-part=name]:focus-visible)){outline-offset:2px}.has-\[a\[data-part\=name\]\:focus-visible\]\:outline-focus:has(:is(a[data-part=name]:focus-visible)){outline-color:var(--focus)}.has-\[button\:focus-visible\]\:outline-2:has(:is(button:focus-visible)){outline-style:var(--tw-outline-style);outline-width:2px}.has-\[button\:focus-visible\]\:outline-offset-2:has(:is(button:focus-visible)){outline-offset:2px}.has-\[button\:focus-visible\]\:outline-focus:has(:is(button:focus-visible)){outline-color:var(--focus)}.data-\[state\=checked\]\:text-ink[data-state=checked]{color:var(--ink)}.data-\[state\=closed\]\:animate-drop[data-state=closed]{animation:var(--animate-drop)}.data-\[state\=closed\]\:animate-fade-out[data-state=closed]{animation:var(--animate-fade-out)}.data-\[state\=open\]\:animate-fade-in[data-state=open]{animation:var(--animate-fade-in)}.data-\[state\=open\]\:animate-rise-fast[data-state=open]{animation:var(--animate-rise-fast)}@media(prefers-reduced-motion:no-preference){.motion-safe\:animate-lamp{animation:var(--animate-lamp)}.motion-safe\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:duration-220{--tw-duration:.22s;transition-duration:.22s}.motion-safe\:ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}@media not all and (min-width:1181px){.max-wide\:col-span-1{grid-column:span 1/span 1}.max-wide\:col-start-1{grid-column-start:1}.max-wide\:row-start-2{grid-row-start:2}.max-wide\:row-start-3{grid-row-start:3}.max-wide\:row-start-4{grid-row-start:4}.max-wide\:row-start-5{grid-row-start:5}.max-wide\:flex{display:flex}.max-wide\:hidden{display:none}.max-wide\:h-50{height:calc(var(--spacing) * 50)}.max-wide\:max-h-120{max-height:calc(var(--spacing) * 120)}.max-wide\:min-h-0{min-height:0}.max-wide\:w-full{width:100%}.max-wide\:flex-none{flex:none}.max-wide\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-wide\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-wide\:flex-col{flex-direction:column}.max-wide\:flex-wrap{flex-wrap:wrap}.max-wide\:gap-y-3\.5{row-gap:calc(var(--spacing) * 3.5)}}@media not all and (min-width:761px){.max-mid\:sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.max-mid\:order-last{order:9999}.max-mid\:mr-auto{margin-right:auto}.max-mid\:hidden{display:none}.max-mid\:w-11{width:calc(var(--spacing) * 11)}.max-mid\:w-14{width:calc(var(--spacing) * 14)}.max-mid\:w-auto{width:auto}.max-mid\:min-w-0{min-width:0}.max-mid\:flex-1{flex:1}.max-mid\:basis-full{flex-basis:100%}.max-mid\:flex-col{flex-direction:column}.max-mid\:flex-wrap{flex-wrap:wrap}.max-mid\:items-start{align-items:flex-start}.max-mid\:items-stretch{align-items:stretch}.max-mid\:justify-between{justify-content:space-between}.max-mid\:gap-0\.5{gap:calc(var(--spacing) * .5)}.max-mid\:gap-1\.5{gap:calc(var(--spacing) * 1.5)}.max-mid\:gap-2{gap:calc(var(--spacing) * 2)}.max-mid\:gap-4{gap:calc(var(--spacing) * 4)}.max-mid\:gap-x-4{column-gap:calc(var(--spacing) * 4)}.max-mid\:gap-y-1{row-gap:var(--spacing)}.max-mid\:gap-y-2{row-gap:calc(var(--spacing) * 2)}.max-mid\:gap-y-3{row-gap:calc(var(--spacing) * 3)}.max-mid\:border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.max-mid\:p-5{padding:calc(var(--spacing) * 5)}.max-mid\:px-5{padding-inline:calc(var(--spacing) * 5)}.max-mid\:py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.max-mid\:pl-0{padding-left:0}.max-mid\:pl-4{padding-left:calc(var(--spacing) * 4)}.max-mid\:text-left{text-align:left}}@media(min-width:1181px){.wide\:absolute{position:absolute}.wide\:inset-0{inset:0}}@container not (min-width:42rem){.\@max-\[42rem\]\:hidden{display:none}}@container (min-width:26rem){.\@min-\[26rem\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width:47rem){.\@min-\[47rem\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:text-status-working:where([data-theme=dark],[data-theme=dark] *){color:var(--status-working)}.in-app\:w-rail:where([data-host=app] *){width:var(--spacing-rail)}.in-app-windowed\:block:where([data-host=app]:not([data-fullscreen]) *){display:block}.in-app-windowed\:rounded-inner:where([data-host=app]:not([data-fullscreen]) *){border-radius:var(--radius-inner)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/atkinson-hyperlegible-next-latin-ext-500-normal-CUASR3PD.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-500-normal-oZS3KxrF.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/atkinson-hyperlegible-next-latin-500-normal-gHP6TDRs.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-500-normal-B0CYqHl3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-next-latin-ext-600-normal-kZZEtAc7.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-600-normal-BBAQIogt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-next-latin-600-normal-BBuhw47K.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-600-normal-BhgCag5w.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-CpVFOiMk.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-ITMuFrSK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-400-normal-CmMGer93.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-400-normal-Cmjm2dBj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-500-normal-DE1cvYE7.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-500-normal-BiHEOgiK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/atkinson-hyperlegible-mono-latin-500-normal-CfDLaOZW.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-500-normal-BV5ipwqM.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-600-normal-DKhxRsTL.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-600-normal-ZiH-ObRk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-mono-latin-600-normal-BiYyYOKJ.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-600-normal-CuPF9o0F.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--field-main-width:1760px;--field-main-height:470px;--field-main-right:-420px;--field-main-top:-150px;--field-main-turn:-13deg;--glass-blur:30px;--lit-top:#ffffff8c}:root,[data-theme=dark]{color-scheme:dark;--ground-top:#090908;--ground:linear-gradient(180deg, #090908 0%, #0b0a09 46%, #11100e 100%);--field:218 214 207;--field-deep:142 137 130;--field-strength:.23;--grain:.5;--lamp:255 166 60;--lamp-strength:.48;--rest:226 221 213;--rest-strength:.34;--glass-chrome:#100f0e99;--glass-card:#1312119e;--glass-raised:#211f1da8;--glass-float:#1e1c1ad6;--saturate:118%;--saturate-hero:185%;--rim:linear-gradient(205deg, #fff8ee4d 0%, #fff8ee17 20%, #fff8ee08 58%, #fff8ee14 100%);--rim-raised:linear-gradient(205deg, #fff8ee6b 0%, #fff8ee21 20%, #fff8ee0b 58%, #fff8ee1f 100%);--rim-lamp:linear-gradient(135deg, #ffb8608c 0%, #ffb86029 22%, #ffb86000 46%);--rim-rest:linear-gradient(135deg, #f0eae057 0%, #f0eae017 24%, #f0eae000 48%);--sheen:linear-gradient(180deg, #fff8ee11, #fff8ee03 120px, #fff8ee00 260px);--elev-1:0 0 0 1px #0000008c, 0 1px 1px #00000059, 0 14px 34px -18px #000c;--elev-2:0 0 0 1px #00000094, 0 1px 1px #00000061, 0 26px 52px -26px #000000e0;--elev-3:0 0 0 1px #0000009e, 0 2px 2px #0000006b, 0 44px 90px -34px #000000f2;--fill-quiet:#fff8ee0e;--fill-hover:#fff8ee0b;--fill-selected:#fff8ee1a;--fill-zebra:#fff8ee06;--control-rim:#fff8ee1a;--control-top:#fff8ee1a;--well:#0000004d;--well-shade:#00000059;--thumb:#fff8ee1c;--thumb-drop:#00000059;--hairline:#fff8ee13;--rule:#fff8ee1f;--rule-strong:#fff8ee38;--ink:#f3f0ea;--ink-secondary:#c3beb5;--ink-muted:#9e988f;--status-needs-you:#ffb547;--status-needs-you-edge:#ffb547;--label-needs-you:#ffb547;--on-needs-you:#221400;--glow-needs-you:#ffaa3c80;--status-working:#a9bcd4;--status-working-fill:#86a0bd;--status-working-top:#ffffff29;--status-idle:#948e85;--answered-fill:#948e8542;--status-finished:#9e988f;--tube:#fff8ee0a;--tube-rim:#fff8ee26;--tube-top:#fff8ee33;--unmeasured:#4b463f;--focus:#c3d3e6;--scrim:#0009}[data-theme=light]{color-scheme:light;--ground-top:#d4d0ca;--ground:linear-gradient(180deg, #d4d0ca, #ebe9e5);--field:255 255 255;--field-deep:240 235 227;--field-strength:.72;--grain:.3;--lamp:255 176 80;--lamp-strength:.46;--rest:255 255 255;--rest-strength:.7;--glass-chrome:#fcfbf985;--glass-card:#fffffe8f;--glass-raised:#ffffffa8;--glass-float:#fdfcfad6;--saturate:160%;--saturate-hero:190%;--rim:linear-gradient(205deg, #fff 0%, #ffffff9e 20%, #ffffff6b 60%, #fffc 100%);--rim-raised:linear-gradient(205deg, #fff 0%, #ffffffbf 20%, #ffffff85 60%, #ffffffe6 100%);--rim-lamp:linear-gradient(135deg, #e896288c 0%, #e8962824 22%, #e8962800 46%);--rim-rest:linear-gradient(135deg, #ffffffe6 0%, #fff0 40%);--sheen:linear-gradient(180deg, #fff6, #fff0 96px);--elev-1:0 0 0 .5px #26201a1f, 0 1px 2px #26201a0f, 0 14px 30px -18px #26201a4d;--elev-2:0 0 0 .5px #26201a1f, 0 1px 2px #26201a0f, 0 24px 46px -26px #26201a5c;--elev-3:0 0 0 .5px #26201a24, 0 2px 3px #26201a12, 0 40px 80px -34px #26201a73;--fill-quiet:#ffffff9e;--fill-hover:#ffffff8c;--fill-selected:#ffffffd9;--fill-zebra:#26201a09;--control-rim:#26201a21;--control-top:#ffffffe6;--well:#26201a0e;--well-shade:#26201a0f;--thumb:#fff;--thumb-drop:#26201a4d;--hairline:#26201a14;--rule:#26201a21;--rule-strong:#26201a47;--ink:#181613;--ink-secondary:#3f3b36;--ink-muted:#5b564f;--status-needs-you:#f4a62a;--status-needs-you-edge:#a35a00;--label-needs-you:#864600;--on-needs-you:#221400;--glow-needs-you:#d6801466;--status-working:#36577e;--status-working-fill:#5b7ca4;--status-working-top:#ffffff38;--status-idle:#6f6961;--answered-fill:#6f696124;--status-finished:#5b564f;--tube:#ffffff9e;--tube-rim:#26201a29;--tube-top:#fff;--unmeasured:#b2aca3;--focus:#36577e;--scrim:#26201a47}@media not all and (min-width:761px){:root{--text-name:28px;--text-wait:38px;--spacing-label-col:140px;--spacing-waited-name:104px}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-ease{syntax:"*";inherits:false}@keyframes lamp{0%,to{stroke-opacity:.38}50%{stroke-opacity:.8}}@keyframes spin-loader{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}@keyframes drop{to{transform:translateY(6px)}}
@@ -167,7 +167,7 @@ async function runCommand(options) {
167
167
  return EXIT.notKnown;
168
168
  }
169
169
  if (parsed.kind === "start") {
170
- const { startCommand } = await import("./startCommand-6YPFCG3S.js");
170
+ const { startCommand } = await import("./startCommand-ZV2NQ6YG.js");
171
171
  const url = await startCommand({
172
172
  ...parsed.options,
173
173
  distDir: options.distDir ?? fileURLToPath(new URL("../../dist/", import.meta.url)),
@@ -4252,7 +4252,7 @@ function header(req, name) {
4252
4252
  const value = req.headers[name.toLowerCase()];
4253
4253
  return typeof value === "string" ? value : void 0;
4254
4254
  }
4255
- function jumpRefusalFor(req) {
4255
+ function actionRefusalFor(req, action, maxBodyBytes) {
4256
4256
  if (req.method !== "POST") {
4257
4257
  return refuse(405, "This address only answers POST requests.", { Allow: "POST" });
4258
4258
  }
@@ -4264,10 +4264,10 @@ function jumpRefusalFor(req) {
4264
4264
  if (site !== void 0 && site !== "same-origin") {
4265
4265
  return refuse(403, "This address only acts for the dashboard page served from this machine.");
4266
4266
  }
4267
- if (header(req, ACTION_HEADER) !== ACTION) {
4267
+ if (header(req, ACTION_HEADER) !== action) {
4268
4268
  return refuse(
4269
4269
  403,
4270
- `A request to this address must carry the header ${ACTION_HEADER}: ${ACTION}.`
4270
+ `A request to this address must carry the header ${ACTION_HEADER}: ${action}.`
4271
4271
  );
4272
4272
  }
4273
4273
  const contentType = header(req, "content-type")?.split(";", 1)[0]?.trim().toLowerCase();
@@ -4275,11 +4275,14 @@ function jumpRefusalFor(req) {
4275
4275
  return refuse(415, "The body must be JSON, sent as application/json.");
4276
4276
  }
4277
4277
  const length = header(req, "content-length");
4278
- if (length !== void 0 && (!/^\d+$/.test(length) || Number(length) > MAX_JUMP_BODY_BYTES)) {
4279
- return refuse(413, `The body must be no more than ${MAX_JUMP_BODY_BYTES} bytes.`);
4278
+ if (length !== void 0 && (!/^\d+$/.test(length) || Number(length) > maxBodyBytes)) {
4279
+ return refuse(413, `The body must be no more than ${maxBodyBytes} bytes.`);
4280
4280
  }
4281
4281
  return null;
4282
4282
  }
4283
+ function jumpRefusalFor(req) {
4284
+ return actionRefusalFor(req, ACTION, MAX_JUMP_BODY_BYTES);
4285
+ }
4283
4286
  function sessionIdIn(body) {
4284
4287
  let value;
4285
4288
  try {
@@ -4966,6 +4969,7 @@ function createCollector(options) {
4966
4969
  email?.handle(snapshot);
4967
4970
  webhook?.handle(snapshot);
4968
4971
  notifications.handle(snapshot);
4972
+ options.onSnapshot?.(snapshot);
4969
4973
  }
4970
4974
  });
4971
4975
  const handler = createApiHandler({
package/dist/index.html CHANGED
@@ -28,11 +28,11 @@
28
28
  document.documentElement.setAttribute("data-theme", theme);
29
29
  })();
30
30
  </script>
31
- <script type="module" crossorigin src="/assets/index-BEOekdx1.js"></script>
31
+ <script type="module" crossorigin src="/assets/index-DRcy1hT5.js"></script>
32
32
  <link rel="modulepreload" crossorigin href="/assets/react-C2DiJaR6.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/motion-BAhdRuCw.js">
34
34
  <link rel="modulepreload" crossorigin href="/assets/radix-27o0jeIu.js">
35
- <link rel="stylesheet" crossorigin href="/assets/index-CtnpRdvw.css">
35
+ <link rel="stylesheet" crossorigin href="/assets/index-Dz4q_OYZ.css">
36
36
  </head>
37
37
  <body>
38
38
  <div id="root"></div>
package/docs/API.md CHANGED
@@ -184,6 +184,19 @@ The server then looks the session up in its own latest snapshot and acts on the
184
184
 
185
185
  Each of these has an `error` sentence beside its `reason`. [SECURITY.md](../SECURITY.md) says what the route can and cannot change.
186
186
 
187
+ ## In the Mac app only
188
+
189
+ The Mac app serves the dashboard and this API from its own address, `agent-lookout://app/`, with no port, and answers four more routes there, for its updates. `npm start`, `npx agent-lookout` and `npm run dev` do not have them: there, each answers 404.
190
+
191
+ | Route | Body | Does |
192
+ | ------------------------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
193
+ | `GET /api/app/update` | | Where updates stand: the version, the switch, the last check, what was found and how far a download has got |
194
+ | `POST /api/app/update/check` | `{}` | Checks GitHub now, and answers once it has |
195
+ | `POST /api/app/update/install` | `{}` | Installs the version that is ready, then quits and opens it. 409 when none is ready, or it cannot be installed where the app runs |
196
+ | `POST /api/app/update/setting` | `{ "automatic": true }` or `false` | Turns the daily check on or off |
197
+
198
+ Each POST passes the checks `POST /api/jump` does, with its own `X-Agent-Lookout-Action`: `check-for-updates`, `install-update` or `update-setting`, and a body of 256 bytes or less that is exactly what the table says. Each answers with the status `GET /api/app/update` gives, `AppUpdateStatus` in `src/core/appUpdate.ts`. Nothing in a request reaches a command or a path.
199
+
187
200
  ## The notifications header
188
201
 
189
202
  A dashboard page sends `X-Agent-Lookout-Notifications` on every request, to say which events its notifications are on for: `off`, `on` for a session starting to wait, or `on; events=` followed by names, such as `on; events=needs-you,finished`. Any other value, or the header sent twice, says nothing. It changes no answer. The server reads it only from a `GET` that passed the checks above, and keeps the last thing a page said, to decide whether it shows notifications itself while no page is open. [ARCHITECTURE.md](ARCHITECTURE.md#notifications-from-the-collector) has the rules.
package/docs/GUIDE.md CHANGED
@@ -3,7 +3,7 @@
3
3
  ## Requirements
4
4
 
5
5
  - macOS or Linux. Agent Lookout is developed and tested on macOS. On Linux it has been checked in CI by starting it with `npm start`, and not yet by a person on a Linux desktop. [On Linux](#on-linux) says what differs there. Windows is untested.
6
- - Node.js 20.19 or newer. On Node 22 it needs 22.12 or newer.
6
+ - Node.js 20.19 or newer. On Node 22 it needs 22.12 or newer. The [Mac app](#desktop-app) needs no Node.js.
7
7
  - Claude Code, Codex or both. Neither needs any setup. Any other agent can appear too, by writing a status file: see [Your own agents](#your-own-agents).
8
8
  - For Claude Code, a version that has the `claude agents` command. `claude agents --help` should print `Usage: claude agents`. Without that command Agent Lookout still reads the session files, but cannot list background jobs that have finished or failed.
9
9
  - For Codex, version 0.155 or later, so that Agent Lookout can tell a session that has ended from one that is idle.
@@ -214,7 +214,7 @@ Why, for each No and Partly:
214
214
 
215
215
  ### Settings
216
216
 
217
- Settings has five cards. Theme chooses Night, which is the default, Day, or System, which follows your computer's setting. Notifications turns notifications on and off, for the dashboard page and for Agent Lookout itself, and chooses what sends one. Email says whether Agent Lookout emails you, and for what, and Webhook whether it posts to a webhook, such as a Slack channel's, and for what. Both are set up when you start it, not here. This copy shows the version you are running and where Agent Lookout sends your data: nowhere, or only in the emails and webhook posts you set up.
217
+ Settings has five cards, and in the Mac app a sixth, [Updates](#updates). Theme chooses Night, which is the default, Day, or System, which follows your computer's setting. Notifications turns notifications on and off, for the dashboard page and for Agent Lookout itself, and chooses what sends one. Email says whether Agent Lookout emails you, and for what, and Webhook whether it posts to a webhook, such as a Slack channel's, and for what. Both are set up when you start it, not here. This copy shows the version you are running and where Agent Lookout sends your data: nowhere, or only in the emails and webhook posts you set up.
218
218
 
219
219
  #### Notifications
220
220
 
@@ -461,6 +461,8 @@ Choose Allow, and the tab comes forward. macOS remembers the answer and does not
461
461
 
462
462
  To change the answer later, open System Settings, choose Privacy & Security, then Automation. Under the program you start Agent Lookout from, turn Terminal or iTerm2 on to let Jump switch tabs, or off to stop it. If you start Agent Lookout from another program, macOS asks again, for that program.
463
463
 
464
+ In the [desktop app](#desktop-app) the collector runs inside Agent Lookout itself, so the question names Agent Lookout, the row says so, and the permission is Agent Lookout's alone.
465
+
464
466
  #### What the row says
465
467
 
466
468
  | It says | What happened |
@@ -805,7 +807,7 @@ Agent Lookout runs `ps` from `/usr/bin` or `/bin`. Where it is not there, as on
805
807
 
806
808
  It cannot stop, resume or answer a session, and nor can an agent through [`agent-lookout mcp`](#for-your-agents), whose tools only read. It covers Claude Code and Codex, and any agent that writes a [status file](#your-own-agents), and only sessions on this computer. Cloud sessions, Codex cloud tasks and browser chats do not appear. [What each agent can report](#what-each-agent-can-report) has a table of what each agent can and cannot show.
807
809
 
808
- A notification, an email or a post is sent for four events only: a session starting to wait, finishing, failing or ending. Only Claude Code sessions and sessions from a status file can be seen waiting. A Claude Code session that is not a background job does not say how it ended, so it sends Ended, never Finished or Failed. A Claude Code background job that starts and ends between two runs of the `claude` command, which is run every 30 seconds, leaves the list before the command lists it as finished, so it too sends Ended. A session from a Codex older than 0.155 is never shown as finished, so it sends Ended when it leaves the list, a day after it was last used. With no dashboard tab open, notifications are shown on a Mac only. Those come from Script Editor, cannot open the session, and are not cleared when the session moves on.
810
+ A notification, an email or a post is sent for four events only: a session starting to wait, finishing, failing or ending. Only Claude Code sessions and sessions from a status file can be seen waiting. A Claude Code session that is not a background job does not say how it ended, so it sends Ended, never Finished or Failed. A Claude Code background job that starts and ends between two runs of the `claude` command, which is run every 30 seconds, leaves the list before the command lists it as finished, so it too sends Ended. A session from a Codex older than 0.155 is never shown as finished, so it sends Ended when it leaves the list, a day after it was last used. With no dashboard tab open, notifications are shown on a Mac only. Those come from Script Editor, unless Agent Lookout runs as the [desktop app](#desktop-app), cannot open the session, and are not cleared when the session moves on.
809
811
 
810
812
  A Codex session never shows as needing you. Codex's session files do not record when it is waiting for your approval, so a Codex session that is waiting for you shows as working. Once it has written nothing for 5 minutes, its row says how long it has been [quiet](#quiet-for), which is the sign to look. A Claude Code session never says how long it has been quiet. A Codex session also appears only once its first prompt is sent, because Codex creates its file then. Past sessions the Codex desktop app imports from another agent appear only once you use them in Codex. A session from the Codex desktop app is named after its folder, because the app does not keep the titles it shows in the names file Agent Lookout reads.
811
813
 
@@ -876,7 +878,7 @@ npm start
876
878
  curl -s http://127.0.0.1:4777/api/health
877
879
  ```
878
880
 
879
- It prints `{"ok":true,"version":"0.2.0"}`, or a later version number. If you run `npm start` before `npm run build`, it stops and tells you to build first. After you pull new code, run `npm run build` again.
881
+ It prints `{"ok":true,"version":"0.2.1"}`, or a later version number. If you run `npm start` before `npm run build`, it stops and tells you to build first. After you pull new code, run `npm run build` again.
880
882
 
881
883
  ## Start it with one command
882
884
 
@@ -887,7 +889,7 @@ It prints `{"ok":true,"version":"0.2.0"}`, or a later version number. If you run
887
889
  | `--port <number>` | Listens on this port in place of 4777, such as `--port 4778`. `AGENT_LOOKOUT_PORT` does the same, and `--port` wins when both are given |
888
890
  | `--open` | Opens the address in your default browser once it is listening, with `open` on macOS or `xdg-open` on Linux. If that cannot be done, it prints one line with the address and keeps running |
889
891
  | `--help` | Prints the options of `agent-lookout`, `agent-lookout status` and `agent-lookout mcp` |
890
- | `--version` | Prints the version of Agent Lookout, such as `0.2.0`, and nothing else |
892
+ | `--version` | Prints the version of Agent Lookout, such as `0.2.1`, and nothing else |
891
893
 
892
894
  Every other setting under [Settings you can change](#settings-you-can-change) works with it as with `npm start`. It ends with 0 when you press Ctrl+C, and with 1 when it cannot start, such as when the port is in use. Under `npx agent-lookout`, the shell reports the interrupt instead, as exit code 130.
893
895
 
@@ -895,6 +897,60 @@ Agent Lookout is on npm, so `npx agent-lookout` starts it with nothing to clone
895
897
 
896
898
  In a clone, run `npm run build` and `npm link` once in the `agent-lookout` folder, then `agent-lookout` from any folder.
897
899
 
900
+ ## Desktop app
901
+
902
+ Agent Lookout can also run as a Mac app: the same dashboard in a window of its own, with the collector running inside the app. The app opens no port, so nothing else on this computer can reach it. It needs no Node.js.
903
+
904
+ To install it, download the disk image for your Mac from the [latest release](https://github.com/Olanetsoft/agent-lookout/releases/latest) on GitHub: `Agent-Lookout-<version>-mac-arm64.dmg` for Apple silicon, or `Agent-Lookout-<version>-mac-x64.dmg` for Intel. About This Mac, in the Apple menu, shows which you have: a chip such as Apple M1 is Apple silicon, and a processor named Intel is Intel. Open the disk image and drag Agent Lookout to Applications. Keep it there: the app [updates itself](#updates) only from a folder it can change.
905
+
906
+ The app is not yet signed with an Apple Developer ID, so the first time a downloaded copy is opened, macOS does not open it. Its message is titled “Agent Lookout” Not Opened and says that Apple could not verify “Agent Lookout” is free of malware. To open it anyway:
907
+
908
+ 1. Press Done. Do not press Move to Bin, or Move to Trash, which deletes the app.
909
+ 2. Open System Settings › Privacy & Security.
910
+ 3. Under Security, next to the line that says Agent Lookout was blocked, press Open Anyway, and confirm with your password or Touch ID. The button is there for about an hour after macOS stopped the app. If it has gone, open the app again, press Done, and go back to Privacy & Security.
911
+
912
+ macOS remembers the choice.
913
+
914
+ To build the app yourself instead, from a clone, on a Mac:
915
+
916
+ ```sh
917
+ npm install
918
+ npm run dist:mac
919
+ ```
920
+
921
+ It takes a minute or two, and the first time it downloads Electron for each kind of Mac. It puts a disk image and a zip for each in `release/`, with the same names as on the release. Open the disk image for your Mac and drag Agent Lookout to Applications. A copy you built yourself on this Mac opens without the steps above.
922
+
923
+ It behaves as a Mac app does:
924
+
925
+ - One copy runs at a time. Opening it again brings its window forward.
926
+ - Closing the window leaves it running, still watching your sessions and showing notifications. Click its icon in the Dock to open the window again. Cmd+Q quits it.
927
+ - With its window open or closed, its [notifications](#notifications) come from Agent Lookout, not from Script Editor, and clicking one opens the window.
928
+ - Its icon in the Dock shows how many sessions need you, with the window open or closed, and no number when none do.
929
+ - Settings… in the Agent Lookout menu, or Cmd+comma, opens the Settings view. The Help menu opens this guide.
930
+ - Right-click selected text to copy it, or in the search field to cut, copy and paste.
931
+ - It opens where you left it, at the size you left it.
932
+ - Check for Updates…, in the Agent Lookout menu under About, checks for a newer version at once. [Updates](#updates) says how.
933
+
934
+ ### Updates
935
+
936
+ The app can update itself from the project's [releases on GitHub](https://github.com/Olanetsoft/agent-lookout/releases). About once a day while it runs, it asks GitHub whether a newer version is out. It sends nothing about your sessions: GitHub sees the app's version number and your IP address, as with any web request. [Updates (Mac app only)](../PRIVACY.md#updates-mac-app-only) has the details. To turn it off, open Settings and, under Updates, set Check for updates automatically to Off. Check for Updates…, in the Agent Lookout menu and in Settings, checks at once either way. `npx agent-lookout` and the repository never check for anything.
937
+
938
+ When a newer version is out, the app downloads it, checks it against the size and SHA-512 its release gives, and says so under Updates in Settings, as in "Version 0.2.2 is available", with a link to its release notes. The daily check also shows a notification, once for each version. Press Install and Restart, and the app quits, puts the new version in its place and opens it again. Nothing is installed until you press it. With the window closed, Check for Updates… shows its answer in a message, which can install a version that is ready. When the latest release has no Mac app yet, it says "The latest release has no Mac app yet", and when it has none for your kind of Mac, "The latest release has no app for this kind of Mac". Neither needs anything from you. If a version cannot be put in place, the app opens again as the version you had, on the Updates card, which says it could not be installed.
939
+
940
+ The app can replace itself only from a folder it can change, so keep it in Applications. Opened from its disk image or another disk, or opened where it was downloaded, which macOS runs from a read-only copy, it says it cannot update itself there. Drag it to Applications, open it from there and check again, or download the new version from its release page. A copy run with `npm run dev:desktop` checks only when you ask and never installs.
941
+
942
+ What the app cannot show you it writes in its log, `~/Library/Logs/Agent Lookout/main.log`: an error, and the lines `npm start` would print, such as the one that says an email or webhook setting is wrong. If the app cannot start at all, it says so in a message and quits. The log stays on this computer.
943
+
944
+ It reads the same [settings](#settings-you-can-change) as `npm start`, from its environment, except the port and address, which it has no use for. An app opened from the Finder or the Dock gets none of your shell's variables, so to give it one, quit it and open it from a terminal:
945
+
946
+ ```sh
947
+ open -a "Agent Lookout" --env AGENT_LOOKOUT_NOTIFICATIONS=on
948
+ ```
949
+
950
+ `agent-lookout status`, `agent-lookout mcp` and the [tmux status line](#in-a-tmux-status-line) read Agent Lookout over its local address, which the app does not have. For them, run `agent-lookout` or `npm start` as well.
951
+
952
+ To work on the app, `npm run dev:desktop` builds it and opens it from `dist-electron/`, with reload and the developer tools in its View menu.
953
+
898
954
  ## When something goes wrong
899
955
 
900
956
  ### The port is in use
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-lookout",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Shows the AI agent sessions on your computer in one browser page, and which need you.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -50,6 +50,9 @@
50
50
  "build": "tsc -b && vite build",
51
51
  "build:package": "npm run build && node scripts/build-package.mjs",
52
52
  "prepack": "npm run build:package",
53
+ "build:desktop": "npm run build && node scripts/build-desktop.mjs",
54
+ "dev:desktop": "npm run build:desktop && electron dist-electron",
55
+ "dist:mac": "npm run build:desktop && electron-builder --mac --publish never",
53
56
  "start": "tsx src/collector/hosts/serve.ts",
54
57
  "start:check": "node scripts/start-check.mjs",
55
58
  "status": "node bin/agent-lookout.mjs status",
@@ -84,6 +87,8 @@
84
87
  "@vitest/browser-playwright": "^4.1.11",
85
88
  "class-variance-authority": "^0.7.1",
86
89
  "clsx": "^2.1.1",
90
+ "electron": "^44.5.1",
91
+ "electron-builder": "^26.15.3",
87
92
  "esbuild": "^0.28.2",
88
93
  "eslint": "^10.12.0",
89
94
  "eslint-config-prettier": "^10.1.8",