Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
5 lines (4 loc) · 414 KB
/
Copy pathindex.html
File metadata and controls
5 lines (4 loc) · 414 KB
1
2
3
4
5
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Gecode capacity — problem sizes solved in ten seconds</title><style>/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after{--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-scroll-snap-strictness:proximity;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-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;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}::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-scroll-snap-strictness:proximity;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-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;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:Arial, Helvetica, sans-serif;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--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);--font-weight-normal:400;--font-weight-medium:500;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--radius-md:6px;--radius-2xl:1rem;--radius-4xl:2rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xs:4px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:Arial, Helvetica, sans-serif;--default-mono-font-family:"SFMono-Regular", Consolas, monospace;--color-popover:var(--card);--color-border:var(--border)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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(--border)}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.\@container\/field-group{container:field-group/inline-size}.pointer-events-auto{pointer-events:auto}.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}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-x-4{inset-inline:calc(var(--spacing) * 4)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.inset-s-1\/2{inset-inline-start:50%}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-1\/3{top:33.3333%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-\[60\%\]{top:60%}.top-full{top:100%}.top-px{top:1px}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.-left-12{left:calc(var(--spacing) * -12)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-0{z-index:0}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[calc\(1000-var\(--toast-index\)\)\]{z-index:calc(1000 - var(--toast-index))}.order-first{order:-9999}.order-last{order:9999}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-\(--drawer-inset\,0px\){margin:var(--drawer-inset,0px)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:calc(var(--spacing) * 1)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-auto{margin-block:auto}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.aspect-\(--ratio\){aspect-ratio:var(--ratio)}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.h-\(--accordion-panel-height\){height:var(--accordion-panel-height)}.h-\(--cell-size\){height:var(--cell-size)}.h-\(--drawer-content-height\){height:var(--drawer-content-height)}.h-\(--height\){height:var(--height)}.h-\(--popup-height\){height:var(--popup-height)}.h-\(--positioner-height\){height:var(--positioner-height)}.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-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-8\!{height:calc(var(--spacing) * 8)!important}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-\[calc\(--spacing\(5\.25\)\)\]{height:calc(calc(var(--spacing) * 5.25))}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-full{height:100%}.h-max{height:max-content}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--available-height\){max-height:var(--available-height)}.max-h-\(--drawer-content-max-height\,none\){max-height:var(--drawer-content-max-height,none)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[min\(calc\(--spacing\(72\)---spacing\(9\)\)\,calc\(var\(--available-height\)---spacing\(9\)\)\)\]{max-height:min(calc(calc(var(--spacing) * 72) - calc(var(--spacing) * 9)), calc(var(--available-height) - calc(var(--spacing) * 9)))}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-dvh{min-height:100dvh}.min-h-full{min-height:100%}.min-h-svh{min-height:100svh}.w-\(--anchor-width\){width:var(--anchor-width)}.w-\(--cell-size\){width:var(--cell-size)}.w-\(--drawer-content-width\,auto\){width:var(--drawer-content-width,auto)}.w-\(--popup-width\){width:var(--popup-width)}.w-\(--positioner-width\){width:var(--positioner-width)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-10{width:calc(var(--spacing) * 10)}.w-24{width:calc(var(--spacing) * 24)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--available-width\){max-width:var(--available-width)}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-\[80\%\]{max-width:80%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-full{max-width:100%}.max-w-max{max-width:max-content}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-\(--cell-size\){min-width:var(--cell-size)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-\[96px\]{min-width:96px}.min-w-\[calc\(var\(--anchor-width\)\+--spacing\(7\)\)\]{min-width:calc(var(--anchor-width) + calc(var(--spacing) * 7))}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.origin-bottom{transform-origin:bottom}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x:1px;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)}.-translate-y-3\/4{--tw-translate-y:calc(calc(3 / 4 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-3\/4{--tw-translate-y:calc(3 / 4 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.\[transform\:translateX\(var\(--toast-swipe-movement-x\)\)_translateY\(calc\(var\(--toast-swipe-movement-y\)-\(var\(--toast-index\)\*var\(--peek\)\)-\(var\(--shrink\)\*var\(--height\)\)\)\)_scale\(var\(--scale\)\)\]{transform:translateX(var(--toast-swipe-movement-x)) translateY(calc(var(--toast-swipe-movement-y) - (var(--toast-index) * var(--peek)) - (var(--shrink) * var(--height)))) scale(var(--scale))}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform-\[translate3d\(var\(--translate-x\,0px\)\,var\(--translate-y\,0px\)\,0\)_scale\(var\(--stack-scale\)\)\]{transform:translate3d(var(--translate-x,0px),var(--translate-y,0px),0) scale(var(--stack-scale))}.scroll-fade-x{--_scroll-fade-size-s:var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--_scroll-fade-size-e:var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--scroll-fade-inline:linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.scroll-fade-x:where([dir=rtl],[dir=rtl] *){--scroll-fade-inline:linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%)}.scroll-fade-x{-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));mask-image:var(--scroll-fade-mask,var(--scroll-fade-inline));-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (animation-timeline:scroll()){.scroll-fade-x{animation:1ms ease-in-out scroll-fade-reveal-s,1ms ease-in-out scroll-fade-reveal-e;animation-timeline:scroll(self inline),scroll(self inline);animation-range:0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)), calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%;animation-fill-mode:both}}@supports not (animation-timeline:scroll()){.scroll-fade-x{--scroll-fade-s:var(--_scroll-fade-size-s);--scroll-fade-e:var(--_scroll-fade-size-e)}}.scroll-fade-b{--_scroll-fade-size-b:var(--scroll-fade-b-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))));--scroll-fade-mask:linear-gradient(to bottom, #000 0, #000 calc(100% - var(--scroll-fade-b,0px)), transparent 100%);-webkit-mask-image:var(--scroll-fade-mask);-webkit-mask-image:var(--scroll-fade-mask);-webkit-mask-image:var(--scroll-fade-mask);-webkit-mask-image:var(--scroll-fade-mask);mask-image:var(--scroll-fade-mask);-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-composite:source-in;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (animation-timeline:scroll()){.scroll-fade-b{animation:1ms ease-in-out scroll-fade-reveal-b;animation-timeline:scroll(self y);animation-range:calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%;animation-fill-mode:both}}@supports not (animation-timeline:scroll()){.scroll-fade-b{--scroll-fade-b:var(--_scroll-fade-size-b)}}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-text{cursor:text}.touch-manipulation{touch-action:manipulation}.touch-none{touch-action:none}.resize-none{resize:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.scroll-px-1{scroll-padding-inline:calc(var(--spacing) * 1)}.scroll-py-1{scroll-padding-block:calc(var(--spacing) * 1)}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;appearance:none}.auto-rows-min{grid-auto-rows:min-content}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.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-\(--card-spacing\){gap:var(--card-spacing)}.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)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-\[--spacing\(var\(--gap\)\)\]{gap:calc(var(--spacing) * var(--gap))}:where(.-space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)))}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-x-contain{overscroll-behavior-x:contain}.rounded{border-radius:.25rem}.rounded-\(--cell-radius\){border-radius:var(--cell-radius)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-4xl{border-radius:var(--radius-4xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(var\(--radius\)-3px\)\]{border-radius:calc(var(--radius) - 3px)}.rounded-\[inherit\]{border-radius:inherit}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:8px}.rounded-lg\!{border-radius:8px!important}.rounded-md{border-radius:6px}.rounded-none{border-radius:0}.rounded-sm{border-radius:4px}.rounded-xl{border-radius:12px}.rounded-xl\!{border-radius:12px!important}.rounded-t-xl{border-top-left-radius:12px;border-top-right-radius:12px}.rounded-l-\(--cell-radius\){border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.rounded-tl-sm{border-top-left-radius:4px}.rounded-r-\(--cell-radius\){border-top-right-radius:var(--cell-radius);border-bottom-right-radius:var(--cell-radius)}.rounded-b-xl{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\(--color-border\){border-color:var(--color-border)}.border-border,.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--border) 50%, transparent)}}.border-input,.border-input\/30{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-input\/30{border-color:color-mix(in oklab, var(--border) 30%, transparent)}}.border-ring{border-color:var(--primary)}.border-transparent{border-color:#0000}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-\[Canvas\]{background-color:canvas}.bg-background{background-color:var(--background)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 10%, transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-input,.bg-input\/30{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.bg-input\/30{background-color:color-mix(in oklab, var(--border) 30%, transparent)}}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--card)}.bg-primary{background-color:var(--primary)}.bg-primary-foreground{background-color:var(--result-surface,#fff)}.bg-secondary{background-color:var(--muted)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.object-cover{object-fit:cover}.p-\(--card-spacing\){padding:var(--card-spacing)}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-\(--card-spacing\){padding-inline:var(--card-spacing)}.px-\(--cell-size\){padding-inline:var(--cell-size)}.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)}.py-\(--card-spacing\){padding-block:var(--card-spacing)}.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-6{padding-block:calc(var(--spacing) * 6)}.py-\[2px\]{padding-block:2px}.pt-0{padding-top:calc(var(--spacing) * 0)}.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-1\.5{padding-right:calc(var(--spacing) * 1.5)}.pr-1\.5\!{padding-right:calc(var(--spacing) * 1.5)!important}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-1\.5\!{padding-left:calc(var(--spacing) * 1.5)!important}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-7{padding-left:calc(var(--spacing) * 7)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-heading{font-family:var(--font-sans)}.font-mono{font-family:SFMono-Regular,Consolas,monospace}.font-sans{font-family:Arial,Helvetica,sans-serif}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-sm\/relaxed{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.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-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)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.wrap-break-word{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-\[CanvasText\]{color:canvastext}.text-background{color:var(--background)}.text-card-foreground{color:var(--foreground)}.text-current{color:currentColor}.text-destructive{color:var(--result-danger,#b92d35)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--result-surface,#fff)}.text-secondary-foreground{color:var(--foreground)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.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-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-\[max\(var\(--drawer-overlay-min-opacity\,0\)\,calc\(1-var\(--drawer-swipe-progress\)\)\)\]{opacity:max(var(--drawer-overlay-min-opacity,0), calc(1 - var(--drawer-swipe-progress)))}.bg-blend-color{background-blend-mode:color}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_1px_var\(--sidebar-border\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-border));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none\!{--tw-shadow:0 0 #0000!important;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)!important}.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-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-3{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-background{--tw-ring-color:var(--background)}.ring-card{--tw-ring-color:var(--card)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.ring-ring\/50{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.invert{--tw-invert:invert(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-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\,translate\]{transition-property:opacity,transform,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[opacity\,transform\,width\,height\,scale\,translate\]{transition-property:opacity,transform,width,height,scale,translate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[top\,left\,right\,bottom\]{transition-property:top,left,right,bottom;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[transform\,height\,opacity\,filter\]{transition-property:transform,height,opacity,filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[translate\,scale\,opacity\]{transition-property:translate,scale,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-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))}.transition-none{transition-property:none}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-250{--tw-duration:.25s;transition-duration:.25s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-450{--tw-duration:.45s;transition-duration:.45s}.duration-1000{--tw-duration:1s;transition-duration:1s}.duration-\[0\.35s\]{--tw-duration:.35s;transition-duration:.35s}.ease-\[cubic-bezier\(0\.22\,1\,0\.36\,1\)\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.ease-\[cubic-bezier\(0\.32\,0\.72\,0\,1\)\]{--tw-ease:cubic-bezier(.32,.72,0,1);transition-timing-function:cubic-bezier(.32,.72,0,1)}.ease-\[cubic-bezier\(0\.45\,1\.005\,0\,1\.005\)\]{--tw-ease:cubic-bezier(.45,1.005,0,1.005);transition-timing-function:cubic-bezier(.45,1.005,0,1.005)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.will-change-transform{will-change:transform}.contain-content{contain:content}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[--bleed\:3rem\]{--bleed:3rem}.\[--card-spacing\:--spacing\(4\)\]{--card-spacing:calc(var(--spacing) * 4)}.\[--cell-radius\:var\(--radius-md\)\]{--cell-radius:var(--radius-md)}.\[--cell-size\:--spacing\(7\)\]{--cell-size:calc(var(--spacing) * 7)}.\[--drawer-content-height\:var\(--drawer-height\,auto\)\]{--drawer-content-height:var(--drawer-height,auto)}.\[--gap\:0\.75rem\]{--gap:.75rem}.\[--height\:var\(--toast-frontmost-height\,var\(--toast-height\)\)\]{--height:var(--toast-frontmost-height,var(--toast-height))}.\[--offset-y\:calc\(var\(--toast-offset-y\)\*-1\+calc\(var\(--toast-index\)\*var\(--gap\)\*-1\)\+var\(--toast-swipe-movement-y\)\)\]{--offset-y:calc(var(--toast-offset-y) * -1 + calc(var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y))}.\[--peek\:0\.75rem\]{--peek:.75rem}.\[--peek\:1rem\]{--peek:1rem}.\[--scale\:calc\(max\(0\,1-\(var\(--toast-index\)\*0\.1\)\)\)\]{--scale:calc(max(0, 1 - (var(--toast-index) * .1)))}.\[--shrink\:calc\(1-var\(--scale\)\)\]{--shrink:calc(1 - var(--scale))}.\[--stack-height\:var\(--drawer-frontmost-height\,var\(--drawer-height\,0px\)\)\]{--stack-height:var(--drawer-frontmost-height,var(--drawer-height,0px))}.\[--stack-peek-offset\:max\(0px\,calc\(\(var\(--nested-drawers\)-var\(--stack-progress\)\)\*var\(--peek\)\)\)\]{--stack-peek-offset:max(0px, calc((var(--nested-drawers) - var(--stack-progress)) * var(--peek)))}.\[--stack-progress\:clamp\(0\,var\(--drawer-swipe-progress\)\,1\)\]{--stack-progress:clamp(0, var(--drawer-swipe-progress), 1)}.\[--stack-scale-base\:max\(0\,calc\(1-\(var\(--nested-drawers\)\*var\(--stack-step\)\)\)\)\]{--stack-scale-base:max(0, calc(1 - (var(--nested-drawers) * var(--stack-step))))}.\[--stack-scale\:clamp\(0\,calc\(var\(--stack-scale-base\)\+\(var\(--stack-step\)\*var\(--stack-progress\)\)\)\,1\)\]{--stack-scale:clamp(0, calc(var(--stack-scale-base) + (var(--stack-step) * var(--stack-progress))), 1)}.\[--stack-shrink\:calc\(1-var\(--stack-scale\)\)\]{--stack-shrink:calc(1 - var(--stack-scale))}.\[--stack-step\:0\.05\]{--stack-step:.05}.\[contain-intrinsic-size\:auto_10rem\]{contain-intrinsic-size:auto 10rem}.\[content-visibility\:auto\]{content-visibility:auto}.\[interpolate-size\:allow-keywords\]{interpolate-size:allow-keywords}.\[transition\:transform_500ms_cubic-bezier\(0\.22\,1\,0\.36\,1\)\,opacity_500ms\,height_150ms\]{transition:transform .5s cubic-bezier(.22,1,.36,1),opacity .5s,height .15s}.paused{animation-play-state:paused}.running{animation-play-state:running}:is(.\*\:w-full>*){width:100%}.not-last\:border-b:not(:last-child){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media (hover:hover){.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.group-focus\/context-menu-item\:text-accent-foreground:is(:where(.group\/context-menu-item):focus *),.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *),.group-focus\/menubar-item\:text-accent-foreground:is(:where(.group\/menubar-item):focus *){color:var(--primary)}.group-has-disabled\/field\:opacity-50:is(:where(.group\/field):has(:disabled) *){opacity:.5}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8:is(:where(.group\/menu-item):has([data-sidebar=menu-action]) *){padding-right:calc(var(--spacing) * 8)}.group-has-data-\[size\=lg\]\/avatar-group\:size-10:is(:where(.group\/avatar-group):has([data-size=lg]) *){width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.group-has-data-\[size\=sm\]\/avatar-group\:size-6:is(:where(.group\/avatar-group):has([data-size=sm]) *){width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.group-has-data-\[slot\=combobox-clear\]\/input-group\:hidden:is(:where(.group\/input-group):has([data-slot=combobox-clear]) *),.group-has-data-\[slot\=command-shortcut\]\/command-item\:hidden:is(:where(.group\/command-item):has([data-slot=command-shortcut]) *){display:none}.group-has-data-\[slot\=item-description\]\/item\:translate-y-0\.5:is(:where(.group\/item):has([data-slot=item-description]) *){--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-has-data-\[slot\=item-description\]\/item\:self-start:is(:where(.group\/item):has([data-slot=item-description]) *){align-self:flex-start}.group-has-data-\[slot\=message-footer\]\/message\:-translate-y-8:is(:where(.group\/message):has([data-slot=message-footer]) *){--tw-translate-y:calc(var(--spacing) * -8);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-has-data-\[variant\=ghost\]\/message\:px-0:is(:where(.group\/message):has([data-variant=ghost]) *){padding-inline:calc(var(--spacing) * 0)}.group-has-data-horizontal\/field\:text-balance:is(:where(.group\/field):has(:where([data-orientation=horizontal])) *){text-wrap:balance}.group-has-\[\:focus-visible\]\/field-label\:border-transparent:is(:where(.group\/field-label):has(:focus-visible) *){border-color:#0000}.group-has-\[\:focus-visible\]\/field-label\:ring-0:is(:where(.group\/field-label):has(:focus-visible) *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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)}.group-has-\[\:focus-visible\]\/field-label\:not-data-checked\:border-input:is(:where(.group\/field-label):has(:focus-visible) *):not(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--border)}.group-has-\[\>input\]\/input-group\:pt-2:is(:where(.group\/input-group):has(>input) *){padding-top:calc(var(--spacing) * 2)}.group-has-\[\>input\]\/input-group\:pb-2:is(:where(.group\/input-group):has(>input) *){padding-bottom:calc(var(--spacing) * 2)}.group-has-\[\>svg\]\/alert\:col-start-2:is(:where(.group\/alert):has(>svg) *){grid-column-start:2}.group-aria-expanded\/accordion-trigger\:hidden:is(:where(.group\/accordion-trigger)[aria-expanded=true] *){display:none}.group-aria-expanded\/accordion-trigger\:inline:is(:where(.group\/accordion-trigger)[aria-expanded=true] *){display:inline}.group-data-empty\/combobox-content\:flex:is(:where(.group\/combobox-content)[data-empty] *){display:flex}.group-data-nested-drawer-open\/drawer-popup\:opacity-0:is(:where(.group\/drawer-popup)[data-nested-drawer-open] *){opacity:0}.group-data-nested-drawer-swiping\/drawer-popup\:opacity-100:is(:where(.group\/drawer-popup)[data-nested-drawer-swiping] *){opacity:1}.group-data-popup-open\/navigation-menu-trigger\:rotate-180:is(:where(.group\/navigation-menu-trigger)[data-popup-open] *){rotate:180deg}.group-data-swiping\/drawer-popup\:select-none:is(:where(.group\/drawer-popup)[data-swiping] *){-webkit-user-select:none;user-select:none}.group-data-\[align\=end\]\/bubble\:self-end:is(:where(.group\/bubble)[data-align=end] *){align-self:flex-end}.group-data-\[align\=end\]\/message\:justify-end:is(:where(.group\/message)[data-align=end] *){justify-content:flex-end}.group-data-\[align\=end\]\/message\:self-end:is(:where(.group\/message)[data-align=end] *){align-self:flex-end}.group-data-\[checked\=true\]\/command-item\:opacity-100:is(:where(.group\/command-item)[data-checked=true] *){opacity:1}.group-data-\[collapsible\=icon\]\:-mt-8:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing) * -8)}.group-data-\[collapsible\=icon\]\:hidden:is(:where(.group)[data-collapsible=icon] *){display:none}.group-data-\[collapsible\=icon\]\:size-8\!:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\):is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)))}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px)}.group-data-\[collapsible\=icon\]\:overflow-hidden:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}.group-data-\[collapsible\=icon\]\:p-0\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 0)!important}.group-data-\[collapsible\=icon\]\:p-2\!:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 2)!important}.group-data-\[collapsible\=icon\]\:opacity-0:is(:where(.group)[data-collapsible=icon] *){opacity:0}.group-data-\[collapsible\=offcanvas\]\:w-0:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing) * 0)}.group-data-\[collapsible\=offcanvas\]\:translate-x-0:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *),.group-data-\[disabled\=true\]\/field\:opacity-50:is(:where(.group\/field)[data-disabled=true] *),.group-data-\[disabled\=true\]\/input-group\:opacity-50:is(:where(.group\/input-group)[data-disabled=true] *){opacity:.5}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:border-ring:is(:where(.group\/day)[data-focused=true] *){border-color:var(--primary)}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.group-data-\[focused\=true\]\/day\:ring-ring\/50:is(:where(.group\/day)[data-focused=true] *){--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.group-data-\[orientation\=vertical\]\/attachment\:absolute:is(:where(.group\/attachment)[data-orientation=vertical] *){position:absolute}.group-data-\[orientation\=vertical\]\/attachment\:top-3:is(:where(.group\/attachment)[data-orientation=vertical] *){top:calc(var(--spacing) * 3)}.group-data-\[orientation\=vertical\]\/attachment\:right-3:is(:where(.group\/attachment)[data-orientation=vertical] *){right:calc(var(--spacing) * 3)}.group-data-\[orientation\=vertical\]\/attachment\:w-full:is(:where(.group\/attachment)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/attachment\:gap-1:is(:where(.group\/attachment)[data-orientation=vertical] *){gap:calc(var(--spacing) * 1)}.group-data-\[orientation\=vertical\]\/attachment\:px-1:is(:where(.group\/attachment)[data-orientation=vertical] *){padding-inline:calc(var(--spacing) * 1)}.group-data-\[side\=left\]\:-right-4:is(:where(.group)[data-side=left] *){right:calc(var(--spacing) * -4)}.group-data-\[side\=left\]\:border-r:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}.group-data-\[side\=right\]\:left-0:is(:where(.group)[data-side=right] *){left:calc(var(--spacing) * 0)}.group-data-\[side\=right\]\:rotate-180:is(:where(.group)[data-side=right] *){rotate:180deg}.group-data-\[side\=right\]\:border-l:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-\[size\=default\]\/avatar\:size-2\.5:is(:where(.group\/avatar)[data-size=default] *){width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.group-data-\[size\=default\]\/switch\:size-4:is(:where(.group\/switch)[data-size=default] *){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-data-\[size\=lg\]\/avatar\:size-3:is(:where(.group\/avatar)[data-size=lg] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.group-data-\[size\=sm\]\/attachment\:w-8:is(:where(.group\/attachment)[data-size=sm] *){width:calc(var(--spacing) * 8)}.group-data-\[size\=sm\]\/avatar\:size-2:is(:where(.group\/avatar)[data-size=sm] *){width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.group-data-\[size\=sm\]\/avatar\:text-xs:is(:where(.group\/avatar)[data-size=sm] *){font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.group-data-\[size\=sm\]\/card\:text-sm:is(:where(.group\/card)[data-size=sm] *){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.group-data-\[size\=sm\]\/item\:size-8:is(:where(.group\/item)[data-size=sm] *){width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.group-data-\[size\=sm\]\/switch\:size-3:is(:where(.group\/switch)[data-size=sm] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=xs\]\/attachment\:w-7:is(:where(.group\/attachment)[data-size=xs] *){width:calc(var(--spacing) * 7)}.group-data-\[size\=xs\]\/attachment\:rounded-md:is(:where(.group\/attachment)[data-size=xs] *){border-radius:6px}.group-data-\[size\=xs\]\/item\:size-6:is(:where(.group\/item)[data-size=xs] *){width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.group-data-\[size\=xs\]\/item\:gap-0:is(:where(.group\/item)[data-size=xs] *){gap:calc(var(--spacing) * 0)}.group-data-\[size\=xs\]\/item\:text-xs:is(:where(.group\/item)[data-size=xs] *){font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *){border-radius:0}.group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[state\=done\]\/attachment\:opacity-100:is(:where(.group\/attachment)[data-state=done] *){opacity:1}.group-data-\[state\=error\]\/attachment\:bg-destructive\/10:is(:where(.group\/attachment)[data-state=error] *){background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.group-data-\[state\=error\]\/attachment\:bg-destructive\/10:is(:where(.group\/attachment)[data-state=error] *){background-color:color-mix(in oklab, var(--result-danger,#b92d35) 10%, transparent)}}.group-data-\[state\=error\]\/attachment\:text-destructive:is(:where(.group\/attachment)[data-state=error] *),.group-data-\[state\=error\]\/attachment\:text-destructive\/80:is(:where(.group\/attachment)[data-state=error] *){color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.group-data-\[state\=error\]\/attachment\:text-destructive\/80:is(:where(.group\/attachment)[data-state=error] *){color:color-mix(in oklab, var(--result-danger,#b92d35) 80%, transparent)}}.group-data-\[state\=idle\]\/attachment\:opacity-100:is(:where(.group\/attachment)[data-state=idle] *){opacity:1}.group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=processing] *){--_spread:var(--shimmer-spread,calc(3ch + 40px));--_base:currentColor;--_highlight:var(--shimmer-color,oklch(from currentColor l c h / calc(alpha* .2)));background-image:var(--shimmer-image,linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), var(--_highlight) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, var(--_highlight) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))))}@supports (color:color-mix(in lab, red, red)){.group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=processing] *){background-image:var(--shimmer-image,linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))))}}.group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=processing] *){background-repeat:no-repeat;background-size:calc(200% + var(--_spread) * 2) 100%;-webkit-text-fill-color:var(--shimmer-text-fill,transparent);animation:tw-shimmer var(--shimmer-duration,2s) linear infinite;background-position:0 0;-webkit-background-clip:text;background-clip:text}.group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=processing] *):is(.dark *){--_highlight:var(--shimmer-color,oklch(from currentColor max(.8, calc(l + .4)) c h / calc(alpha + .4)))}.group-data-\[state\=processing\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=processing] *):where([dir=rtl],[dir=rtl] *){animation-direction:reverse}.group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=uploading] *){--_spread:var(--shimmer-spread,calc(3ch + 40px));--_base:currentColor;--_highlight:var(--shimmer-color,oklch(from currentColor l c h / calc(alpha* .2)));background-image:var(--shimmer-image,linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), var(--_highlight) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, var(--_highlight) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))))}@supports (color:color-mix(in lab, red, red)){.group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=uploading] *){background-image:var(--shimmer-image,linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread))))}}.group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=uploading] *){background-repeat:no-repeat;background-size:calc(200% + var(--_spread) * 2) 100%;-webkit-text-fill-color:var(--shimmer-text-fill,transparent);animation:tw-shimmer var(--shimmer-duration,2s) linear infinite;background-position:0 0;-webkit-background-clip:text;background-clip:text}.group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=uploading] *):is(.dark *){--_highlight:var(--shimmer-color,oklch(from currentColor max(.8, calc(l + .4)) c h / calc(alpha + .4)))}.group-data-\[state\=uploading\]\/attachment\:shimmer:is(:where(.group\/attachment)[data-state=uploading] *):where([dir=rtl],[dir=rtl] *){animation-direction:reverse}.group-data-\[swipe-axis\=x\]\/drawer-popup\:h-full:is(:where(.group\/drawer-popup)[data-swipe-axis=x] *){height:100%}.group-data-\[swipe-axis\=x\]\/drawer-popup\:w-3:is(:where(.group\/drawer-popup)[data-swipe-axis=x] *){width:calc(var(--spacing) * 3)}.group-data-\[swipe-axis\=x\]\/drawer-popup\:items-center:is(:where(.group\/drawer-popup)[data-swipe-axis=x] *){align-items:center}.group-data-\[swipe-axis\=y\]\/drawer-popup\:h-3:is(:where(.group\/drawer-popup)[data-swipe-axis=y] *){height:calc(var(--spacing) * 3)}.group-data-\[swipe-axis\=y\]\/drawer-popup\:w-full:is(:where(.group\/drawer-popup)[data-swipe-axis=y] *){width:100%}.group-data-\[swipe-axis\=y\]\/drawer-popup\:justify-center:is(:where(.group\/drawer-popup)[data-swipe-axis=y] *){justify-content:center}.group-data-\[swipe-axis\=y\]\/drawer-popup\:text-center:is(:where(.group\/drawer-popup)[data-swipe-axis=y] *){text-align:center}.group-data-\[swipe-direction\=down\]\/drawer-popup\:items-end:is(:where(.group\/drawer-popup)[data-swipe-direction=down] *){align-items:flex-end}.group-data-\[swipe-direction\=left\]\/drawer-popup\:order-last:is(:where(.group\/drawer-popup)[data-swipe-direction=left] *){order:9999}.group-data-\[swipe-direction\=left\]\/drawer-popup\:justify-start:is(:where(.group\/drawer-popup)[data-swipe-direction=left] *){justify-content:flex-start}.group-data-\[swipe-direction\=right\]\/drawer-popup\:justify-end:is(:where(.group\/drawer-popup)[data-swipe-direction=right] *){justify-content:flex-end}.group-data-\[swipe-direction\=up\]\/drawer-popup\:order-last:is(:where(.group\/drawer-popup)[data-swipe-direction=up] *){order:9999}.group-data-\[swipe-direction\=up\]\/drawer-popup\:items-start:is(:where(.group\/drawer-popup)[data-swipe-direction=up] *){align-items:flex-start}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:8px}.group-data-\[variant\=floating\]\:shadow-sm:is(:where(.group)[data-variant=floating] *){--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)}.group-data-\[variant\=floating\]\:ring-1:is(:where(.group)[data-variant=floating] *){--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)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-\[variant\=outline\]\/field-group\:-mb-2:is(:where(.group\/field-group)[data-variant=outline] *){margin-bottom:calc(var(--spacing) * -2)}.group-data-\[variant\=separator\]\/marker\:flex-none:is(:where(.group\/marker)[data-variant=separator] *){flex:none}.group-data-\[variant\=separator\]\/marker\:text-center:is(:where(.group\/marker)[data-variant=separator] *){text-align:center}.group-data-\[viewport\=false\]\/navigation-menu\:rounded-lg:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-radius:8px}.group-data-\[viewport\=false\]\/navigation-menu\:bg-popover:is(:where(.group\/navigation-menu)[data-viewport=false] *){background-color:var(--card)}.group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground:is(:where(.group\/navigation-menu)[data-viewport=false] *){color:var(--foreground)}.group-data-\[viewport\=false\]\/navigation-menu\:shadow:is(:where(.group\/navigation-menu)[data-viewport=false] *){--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)}.group-data-\[viewport\=false\]\/navigation-menu\:ring-1:is(:where(.group\/navigation-menu)[data-viewport=false] *){--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)}.group-data-\[viewport\=false\]\/navigation-menu\:ring-foreground\/10:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.group-data-\[viewport\=false\]\/navigation-menu\:ring-foreground\/10:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.group-data-\[viewport\=false\]\/navigation-menu\:duration-300:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-duration:.3s;transition-duration:.3s}.group-data-open\/navigation-menu-trigger\:rotate-180:is(:is(:where(.group\/navigation-menu-trigger):where([data-state=open]),:where(.group\/navigation-menu-trigger):where([data-open]:not([data-open=false]))) *){rotate:180deg}.group-data-selected\/command-item\:text-foreground:is(:where(.group\/command-item):where([data-selected=true]) *){color:var(--foreground)}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing) * 8)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation=vertical]) *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation=vertical]) *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-data-\[size\=default\]\/menu-button\:top-1\.5:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing) * 1.5)}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing) * 2.5)}.peer-data-\[size\=sm\]\/menu-button\:top-1:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing) * 1)}.selection\:bg-primary ::selection,.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection,.selection\:text-primary-foreground::selection{color:var(--result-surface,#fff)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.before\:mr-1:before{content:var(--tw-content);margin-right:calc(var(--spacing) * 1)}.before\:h-px:before{content:var(--tw-content);height:1px}.before\:min-w-0:before{content:var(--tw-content);min-width:calc(var(--spacing) * 0)}.before\:flex-1:before{content:var(--tw-content);flex:1}.before\:bg-border:before{content:var(--tw-content);background-color:var(--border)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}.after\:inset-0:after{content:var(--tw-content);inset:calc(var(--spacing) * 0)}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * -3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing) * -2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:start-1\/2:after{content:var(--tw-content);inset-inline-start:50%}.after\:top-full:after{content:var(--tw-content);top:100%}.after\:right-0:after{content:var(--tw-content);right:calc(var(--spacing) * 0)}.after\:left-0:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:ml-1:after{content:var(--tw-content);margin-left:calc(var(--spacing) * 1)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-\[calc\(var\(--gap\)\+1px\)\]:after{content:var(--tw-content);height:calc(var(--gap) + 1px)}.after\:h-px:after{content:var(--tw-content);height:1px}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.after\:w-4:after{content:var(--tw-content);width:calc(var(--spacing) * 4)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:min-w-0:after{content:var(--tw-content);min-width:calc(var(--spacing) * 0)}.after\:flex-1:after{content:var(--tw-content);flex:1}.after\:shrink-0:after{content:var(--tw-content);flex-shrink:0}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.after\:rounded-full:after{content:var(--tw-content);border-radius:2147483647px}.after\:border:after{content:var(--tw-content);border-style:var(--tw-border-style);border-width:1px}.after\:border-border:after{content:var(--tw-content);border-color:var(--border)}.after\:bg-\(--drawer-bleed-background\,var\(--color-popover\)\):after{content:var(--tw-content);background-color:var(--drawer-bleed-background,var(--color-popover))}.after\:bg-border:after{content:var(--tw-content);background-color:var(--border)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:bg-muted:after{content:var(--tw-content);background-color:var(--muted)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:mix-blend-darken:after{content:var(--tw-content);mix-blend-mode:darken}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.group-data-\[swipe-axis\=x\]\/drawer-popup\:after\:h-24:is(:where(.group\/drawer-popup)[data-swipe-axis=x] *):after{content:var(--tw-content);height:calc(var(--spacing) * 24)}.group-data-\[swipe-axis\=x\]\/drawer-popup\:after\:w-1:is(:where(.group\/drawer-popup)[data-swipe-axis=x] *):after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.group-data-\[swipe-axis\=y\]\/drawer-popup\:after\:h-1:is(:where(.group\/drawer-popup)[data-swipe-axis=y] *):after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.group-data-\[swipe-axis\=y\]\/drawer-popup\:after\:w-24:is(:where(.group\/drawer-popup)[data-swipe-axis=y] *):after{content:var(--tw-content);width:calc(var(--spacing) * 24)}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}.first\:rounded-l-lg:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:mt-0:last-child{margin-top:calc(var(--spacing) * 0)}.last\:rounded-r-lg:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.focus-within\:border-ring:focus-within{border-color:var(--primary)}.focus-within\:ring-1:focus-within{--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-within\:ring-3:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-ring\/50:focus-within{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_var\(--sidebar-accent\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,var(--sidebar-accent));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-3:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-muted:focus{background-color:var(--muted)}.focus\:text-accent-foreground:focus,:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--primary)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--result-danger,#b92d35) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--primary)}.focus-visible\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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-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-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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-destructive\/20:focus-visible{--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}:is(.focus-visible\:ring-ring:focus-visible,.focus-visible\:ring-ring\/50:focus-visible){--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--primary)}:is(.\*\:focus-visible\:relative>*):focus-visible{position:relative}:is(.\*\:focus-visible\:z-10>*):focus-visible{z-index:10}.focus-visible\:after\:border-ring:focus-visible:after{content:var(--tw-content);border-color:var(--primary)}.active\:cursor-grabbing:active{cursor:grabbing}.active\:ring-3:active{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab, var(--border) 50%, transparent)}}.disabled\:bg-transparent:disabled{background-color:#0000}.disabled\:opacity-50:disabled{opacity:.5}:where([data-side=left]) .in-data-\[side\=left\]\:cursor-w-resize{cursor:w-resize}:where([data-side=right]) .in-data-\[side\=right\]\:cursor-e-resize{cursor:e-resize}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:8px}:where([data-slot=card-content]) .in-data-\[slot\=card-content\]\:bg-transparent{background-color:#0000}:where([data-slot=combobox-content]) .in-data-\[slot\=combobox-content\]\:focus-within\:border-inherit:focus-within{border-color:inherit}:where([data-slot=combobox-content]) .in-data-\[slot\=combobox-content\]\:focus-within\:ring-0:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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)}:where([data-slot=dialog-content]) .in-data-\[slot\=dialog-content\]\:rounded-lg\!{border-radius:8px!important}:where([data-slot=dropdown-menu-content]) .in-data-\[slot\=dropdown-menu-content\]\:p-0{padding:calc(var(--spacing) * 0)}:where([data-slot=navigation-menu-content]) .in-data-\[slot\=navigation-menu-content\]\:rounded-md{border-radius:6px}:where([data-slot=popover-content]) .in-data-\[slot\=popover-content\]\:bg-transparent{background-color:#0000}:where([data-slot=tooltip-content]) .in-data-\[slot\=tooltip-content\]\:bg-background\/20{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){:where([data-slot=tooltip-content]) .in-data-\[slot\=tooltip-content\]\:bg-background\/20{background-color:color-mix(in oklab, var(--background) 20%, transparent)}}:where([data-slot=tooltip-content]) .in-data-\[slot\=tooltip-content\]\:text-background{color:var(--background)}.has-disabled\:pointer-events-none:has(:disabled){pointer-events:none}.has-disabled\:cursor-not-allowed:has(:disabled){cursor:not-allowed}.has-disabled\:bg-input\/50:has(:disabled){background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.has-disabled\:bg-input\/50:has(:disabled){background-color:color-mix(in oklab, var(--border) 50%, transparent)}}.has-disabled\:opacity-50:has(:disabled){opacity:.5}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.has-aria-invalid\:border-destructive:has([aria-invalid=true]){border-color:var(--result-danger,#b92d35)}.has-aria-invalid\:ring-3:has([aria-invalid=true]){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.has-aria-invalid\:ring-destructive\/20:has([aria-invalid=true]){--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.has-aria-invalid\:ring-destructive\/20:has([aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[size\=sm\]\:gap-2\.5:has([data-size=sm]){gap:calc(var(--spacing) * 2.5)}.has-data-\[size\=xs\]\:gap-2:has([data-size=xs]){gap:calc(var(--spacing) * 2)}.has-data-\[slot\=alert-action\]\:relative:has([data-slot=alert-action]){position:relative}.has-data-\[slot\=alert-action\]\:pr-18:has([data-slot=alert-action]){padding-right:calc(var(--spacing) * 18)}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-4:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing) * 4)}.has-data-\[slot\=attachment-content\]\:w-30:has([data-slot=attachment-content]){width:calc(var(--spacing) * 30)}.has-data-\[slot\=attachment-content\]\:px-1\.5:has([data-slot=attachment-content]){padding-inline:calc(var(--spacing) * 1.5)}.has-data-\[slot\=attachment-content\]\:px-2:has([data-slot=attachment-content]){padding-inline:calc(var(--spacing) * 2)}.has-data-\[slot\=attachment-content\]\:px-2\.5:has([data-slot=attachment-content]){padding-inline:calc(var(--spacing) * 2.5)}.has-data-\[slot\=attachment-content\]\:py-1:has([data-slot=attachment-content]){padding-block:calc(var(--spacing) * 1)}.has-data-\[slot\=attachment-content\]\:py-1\.5:has([data-slot=attachment-content]){padding-block:calc(var(--spacing) * 1.5)}.has-data-\[slot\=attachment-content\]\:py-2:has([data-slot=attachment-content]){padding-block:calc(var(--spacing) * 2)}.has-data-\[slot\=attachment-media\]\:p-1:has([data-slot=attachment-media]){padding:calc(var(--spacing) * 1)}.has-data-\[slot\=attachment-media\]\:p-1\.5:has([data-slot=attachment-media]){padding:calc(var(--spacing) * 1.5)}.has-data-\[slot\=attachment-media\]\:p-2:has([data-slot=attachment-media]){padding:calc(var(--spacing) * 2)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-data-\[slot\=card-description\]\:grid-rows-\[auto_auto\]:has([data-slot=card-description]){grid-template-rows:auto auto}.has-data-\[slot\=card-footer\]\:pb-0:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing) * 0)}.has-data-\[slot\=combobox-chip\]\:px-1:has([data-slot=combobox-chip]){padding-inline:calc(var(--spacing) * 1)}.has-data-\[slot\=combobox-chip-remove\]\:pr-0:has([data-slot=combobox-chip-remove]){padding-right:calc(var(--spacing) * 0)}.has-data-\[slot\=kbd\]\:pr-1\.5:has([data-slot=kbd]){padding-right:calc(var(--spacing) * 1.5)}.has-data-checked\:border-primary\/30:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.has-data-checked\:border-primary\/30:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.has-data-checked\:bg-primary\/5:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.has-data-checked\:bg-primary\/5:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:color-mix(in oklab, var(--primary) 5%, transparent)}}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:var(--primary)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-3:has([data-slot=input-group-control]:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){border-color:var(--result-danger,#b92d35)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-3:has([data-slot][aria-invalid=true]){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.has-\[button\]\:p-0:has(:is(button)){padding:calc(var(--spacing) * 0)}.has-\[select\:disabled\]\:opacity-50:has(:is(select:disabled)){opacity:.5}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:calc(var(--spacing) * 2)}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:calc(var(--spacing) * 3)}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:rounded-lg:has(>[data-slot=field]){border-radius:8px}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-style:var(--tw-border-style);border-width:1px}@media (hover:hover){.has-\[\>\[data-slot\=field\]\]\:not-has-\[\:disabled\,\[data-disabled\]\]\:hover\:bg-muted\/50:has(>[data-slot=field]):not(:has(:is(:disabled,[data-disabled]))):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-\[\>\[data-slot\=field\]\]\:not-has-\[\:disabled\,\[data-disabled\]\]\:hover\:bg-muted\/50:has(>[data-slot=field]):not(:has(:is(:disabled,[data-disabled]))):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:border-ring:has(>[data-slot=field]):has(:focus-visible){border-color:var(--primary)}.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-3:has(>[data-slot=field]):has(:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-ring\/50:has(>[data-slot=field]):has(:focus-visible){--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-ring\/50:has(>[data-slot=field]):has(:focus-visible){--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:calc(var(--spacing) * 3)}@media (hover:hover){.has-\[\>a\,\>button\]\:hover\:bg-muted\/50:has(>a,>button):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-\[\>a\,\>button\]\:hover\:bg-muted\/50:has(>a,>button):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.has-\[\>button\]\:mr-\[-0\.3rem\]:has(>button){margin-right:-.3rem}.has-\[\>button\]\:ml-\[-0\.3rem\]:has(>button){margin-left:-.3rem}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:calc(var(--spacing) * 0)}.has-\[\>kbd\]\:mr-\[-0\.15rem\]:has(>kbd){margin-right:-.15rem}.has-\[\>kbd\]\:ml-\[-0\.15rem\]:has(>kbd){margin-left:-.15rem}.has-\[\>svg\]\:grid-cols-\[auto_1fr\]:has(>svg){grid-template-columns:auto 1fr}.has-\[\>svg\]\:gap-x-2:has(>svg){column-gap:calc(var(--spacing) * 2)}.has-\[\>svg\]\:p-0:has(>svg){padding:calc(var(--spacing) * 0)}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true],.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:text-foreground[aria-expanded=true],.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:opacity-100[aria-expanded=true]{opacity:1}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--result-danger,#b92d35)}.aria-invalid\:ring-0[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.aria-invalid\:aria-checked\:border-primary[aria-invalid=true][aria-checked=true]{border-color:var(--primary)}.aria-pressed\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.aria-\[orientation\=horizontal\]\:h-px[aria-orientation=horizontal]{height:1px}.aria-\[orientation\=horizontal\]\:w-full[aria-orientation=horizontal]{width:100%}.aria-\[orientation\=horizontal\]\:after\:left-0[aria-orientation=horizontal]:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.aria-\[orientation\=horizontal\]\:after\:h-1[aria-orientation=horizontal]:after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.aria-\[orientation\=horizontal\]\:after\:w-full[aria-orientation=horizontal]:after{content:var(--tw-content);width:100%}.aria-\[orientation\=horizontal\]\:after\:translate-x-0[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.aria-\[orientation\=horizontal\]\:after\:-translate-y-1\/2[aria-orientation=horizontal]:after{content:var(--tw-content);--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.aria-\[orientation\=vertical\]\:flex-col[aria-orientation=vertical]{flex-direction:column}.data-behind\:opacity-0[data-behind]{opacity:0}.data-empty\:p-0[data-empty]{padding:calc(var(--spacing) * 0)}.data-ending-style\:pointer-events-none[data-ending-style]{pointer-events:none}.data-ending-style\:h-0[data-ending-style]{height:calc(var(--spacing) * 0)}.data-ending-style\:scale-90[data-ending-style]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-ending-style\:transform-\(--closed-transform\)[data-ending-style]{transform:var(--closed-transform)}.data-ending-style\:opacity-0[data-ending-style]{opacity:0}.data-ending-style\:opacity-\[0\.9999\][data-ending-style]{opacity:.9999}.data-ending-style\:duration-150[data-ending-style]{--tw-duration:.15s;transition-duration:.15s}.data-ending-style\:duration-\[calc\(var\(--drawer-swipe-strength\)\*400ms\)\][data-ending-style]{--tw-duration:calc(var(--drawer-swipe-strength) * .4s);transition-duration:calc(var(--drawer-swipe-strength) * .4s)}.data-expanded\:h-\(--toast-height\)[data-expanded]{height:var(--toast-height)}.data-expanded\:\[transform\:translateX\(var\(--toast-swipe-movement-x\)\)_translateY\(var\(--offset-y\)\)\][data-expanded]{transform:translateX(var(--toast-swipe-movement-x)) translateY(var(--offset-y))}.data-expanded\:opacity-100[data-expanded]{opacity:1}.data-highlighted\:bg-accent[data-highlighted]{background-color:var(--accent)}.data-highlighted\:text-accent-foreground[data-highlighted],:is(.not-data-\[variant\=destructive\]\:data-highlighted\:\*\*\:text-accent-foreground:not([data-variant=destructive])[data-highlighted] *){color:var(--primary)}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing) * 7)}.data-instant\:transition-none[data-instant]{transition-property:none}.data-limited\:opacity-0[data-limited]{opacity:0}.data-nested-drawer-open\:overflow-hidden[data-nested-drawer-open]{overflow:hidden}.data-nested-drawer-open\:brightness-95[data-nested-drawer-open]{--tw-brightness:brightness(95%);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,)}.data-nested-drawer-swiping\:duration-0[data-nested-drawer-swiping]{--tw-duration:0s;transition-duration:0s}.data-ending-style\:data-nested-drawer-swiping\:duration-\[calc\(var\(--drawer-swipe-strength\)\*400ms\)\][data-ending-style][data-nested-drawer-swiping]{--tw-duration:calc(var(--drawer-swipe-strength) * .4s);transition-duration:calc(var(--drawer-swipe-strength) * .4s)}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-popup-open\:bg-accent[data-popup-open]{background-color:var(--accent)}.data-popup-open\:bg-muted\/50[data-popup-open]{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.data-popup-open\:bg-muted\/50[data-popup-open]{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.data-popup-open\:text-accent-foreground[data-popup-open]{color:var(--primary)}@media (hover:hover){.data-popup-open\:hover\:bg-muted[data-popup-open]:hover{background-color:var(--muted)}}.data-pressed\:bg-transparent[data-pressed]{background-color:#0000}:is(.\*\:data-slot\:rounded-r-none>*)[data-slot]{border-top-right-radius:0;border-bottom-right-radius:0}:is(.\*\:data-slot\:rounded-b-none>*)[data-slot]{border-bottom-right-radius:0;border-bottom-left-radius:0}:is(.group-data-\[align\=end\]\/message\:\*\:data-slot\:self-end:is(:where(.group\/message)[data-align=end] *)>*)[data-slot]{align-self:flex-end}.data-snap-points\:\[--drawer-overlay-min-opacity\:0\.5\][data-snap-points]{--drawer-overlay-min-opacity:.5}.data-starting-style\:h-0[data-starting-style]{height:calc(var(--spacing) * 0)}.data-starting-style\:scale-90[data-starting-style]{--tw-scale-x:90%;--tw-scale-y:90%;--tw-scale-z:90%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-starting-style\:\[transform\:translateY\(150\%\)\][data-starting-style]{transform:translateY(150%)}.data-starting-style\:transform-\(--closed-transform\)[data-starting-style]{transform:var(--closed-transform)}.data-starting-style\:opacity-0[data-starting-style]{opacity:0}.data-swiping\:duration-0[data-swiping]{--tw-duration:0s;transition-duration:0s}.data-ending-style\:data-swiping\:duration-\[calc\(var\(--drawer-swipe-strength\)\*400ms\)\][data-ending-style][data-swiping]{--tw-duration:calc(var(--drawer-swipe-strength) * .4s);transition-duration:calc(var(--drawer-swipe-strength) * .4s)}.data-\[active\=false\]\:pointer-events-none[data-active=false]{pointer-events:none}.data-\[active\=false\]\:scale-95[data-active=false]{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-\[active\=false\]\:opacity-0[data-active=false]{opacity:0}.data-\[active\=false\]\:duration-400[data-active=false]{--tw-duration:.4s;transition-duration:.4s}.data-\[active\=false\]\:ease-\[cubic-bezier\(0\.7\,0\,0\.84\,0\)\][data-active=false]{--tw-ease:cubic-bezier(.7,0,.84,0);transition-timing-function:cubic-bezier(.7,0,.84,0)}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[active\=true\]\:translate-y-0[data-active=true]{--tw-translate-y:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[active\=true\]\:scale-100[data-active=true]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:var(--primary)}.data-\[active\=true\]\:opacity-100[data-active=true]{opacity:1}.data-\[active\=true\]\:ring-3[data-active=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}.data-\[active\=true\]\:ease-\[cubic-bezier\(0\.23\,1\,0\.32\,1\)\][data-active=true]{--tw-ease:cubic-bezier(.23,1,.32,1);transition-timing-function:cubic-bezier(.23,1,.32,1)}.data-\[active\=true\]\:aria-invalid\:border-destructive[data-active=true][aria-invalid=true]{border-color:var(--result-danger,#b92d35)}.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.data-\[active\=true\]\:aria-invalid\:ring-destructive\/20[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[align\=end\]\:flex-row-reverse[data-align=end]{flex-direction:row-reverse}.data-\[align\=end\]\:self-end[data-align=end]{align-self:flex-end}.data-\[chips\=true\]\:min-w-\(--anchor-width\)[data-chips=true]{min-width:var(--anchor-width)}.data-\[direction\=end\]\:bottom-4[data-direction=end]{bottom:calc(var(--spacing) * 4)}.data-\[direction\=end\]\:data-\[active\=false\]\:translate-y-full[data-direction=end][data-active=false]{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[direction\=start\]\:top-4[data-direction=start]{top:calc(var(--spacing) * 4)}.data-\[direction\=start\]\:data-\[active\=false\]\:-translate-y-full[data-direction=start][data-active=false]{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{color:var(--result-danger,#b92d35)}.data-\[modal\=true\]\:pointer-events-auto[data-modal=true]{pointer-events:auto}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:calc(52*var(--spacing))}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:calc(52*var(--spacing))}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[range-end\=true\]\:rounded-\(--cell-radius\)[data-range-end=true]{border-radius:var(--cell-radius)}.data-\[range-end\=true\]\:rounded-r-\(--cell-radius\)[data-range-end=true]{border-top-right-radius:var(--cell-radius);border-bottom-right-radius:var(--cell-radius)}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:var(--primary)}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:var(--result-surface,#fff)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-muted[data-range-middle=true]{background-color:var(--muted)}.data-\[range-middle\=true\]\:text-foreground[data-range-middle=true]{color:var(--foreground)}.data-\[range-start\=true\]\:rounded-\(--cell-radius\)[data-range-start=true]{border-radius:var(--cell-radius)}.data-\[range-start\=true\]\:rounded-l-\(--cell-radius\)[data-range-start=true]{border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.data-\[range-start\=true\]\:bg-primary[data-range-start=true]{background-color:var(--primary)}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true]{color:var(--result-surface,#fff)}.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:var(--primary)}.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:var(--result-surface,#fff)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:calc(var(--spacing) * 0)}.data-\[side\=bottom\]\:top-1[data-side=bottom]{top:calc(var(--spacing) * 1)}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:calc(var(--spacing) * 0)}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=bottom\]\:before\:top-\[-10px\][data-side=bottom]:before{content:var(--tw-content);top:-10px}.data-\[side\=bottom\]\:before\:right-0[data-side=bottom]:before{content:var(--tw-content);right:calc(var(--spacing) * 0)}.data-\[side\=bottom\]\:before\:left-0[data-side=bottom]:before{content:var(--tw-content);left:calc(var(--spacing) * 0)}.data-\[side\=bottom\]\:data-ending-style\:translate-y-\[2\.5rem\][data-side=bottom][data-ending-style],.data-\[side\=bottom\]\:data-starting-style\:translate-y-\[2\.5rem\][data-side=bottom][data-starting-style]{--tw-translate-y:2.5rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=inline-end\]\:top-1\/2\![data-side=inline-end]{top:50%!important}.data-\[side\=inline-end\]\:-left-1[data-side=inline-end]{left:calc(var(--spacing) * -1)}.data-\[side\=inline-end\]\:-translate-y-1\/2[data-side=inline-end]{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=inline-start\]\:top-1\/2\![data-side=inline-start]{top:50%!important}.data-\[side\=inline-start\]\:-right-1[data-side=inline-start]{right:calc(var(--spacing) * -1)}.data-\[side\=inline-start\]\:-translate-y-1\/2[data-side=inline-start]{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:calc(var(--spacing) * 0)}.data-\[side\=left\]\:top-1\/2\![data-side=left]{top:50%!important}.data-\[side\=left\]\:-right-1[data-side=left]{right:calc(var(--spacing) * -1)}.data-\[side\=left\]\:left-0[data-side=left]{left:calc(var(--spacing) * 0)}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:-translate-y-1\/2[data-side=left]{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=left\]\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=left]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.data-\[side\=left\]\:data-ending-style\:translate-x-\[-2\.5rem\][data-side=left][data-ending-style],.data-\[side\=left\]\:data-starting-style\:translate-x-\[-2\.5rem\][data-side=left][data-starting-style]{--tw-translate-x:-2.5rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:calc(var(--spacing) * 0)}.data-\[side\=right\]\:top-1\/2\![data-side=right]{top:50%!important}.data-\[side\=right\]\:right-0[data-side=right]{right:calc(var(--spacing) * 0)}.data-\[side\=right\]\:-left-1[data-side=right]{left:calc(var(--spacing) * -1)}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:-translate-y-1\/2[data-side=right]{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=right\]\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\][data-side=right]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.data-\[side\=right\]\:data-ending-style\:translate-x-\[2\.5rem\][data-side=right][data-ending-style],.data-\[side\=right\]\:data-starting-style\:translate-x-\[2\.5rem\][data-side=right][data-starting-style]{--tw-translate-x:2.5rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:calc(var(--spacing) * 0)}.data-\[side\=top\]\:top-0[data-side=top]{top:calc(var(--spacing) * 0)}.data-\[side\=top\]\:-bottom-2\.5[data-side=top]{bottom:calc(var(--spacing) * -2.5)}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[side\=top\]\:data-ending-style\:translate-y-\[-2\.5rem\][data-side=top][data-ending-style],.data-\[side\=top\]\:data-starting-style\:translate-y-\[-2\.5rem\][data-side=top][data-starting-style]{--tw-translate-y:-2.5rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=default\]\:max-w-xs[data-size=default]{max-width:var(--container-xs)}.data-\[size\=lg\]\:size-10[data-size=lg]{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.data-\[size\=md\]\:text-sm[data-size=md]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[size\=sm\]\:size-6[data-size=sm]{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md), 10px)}.data-\[size\=sm\]\:py-0\.5[data-size=sm]{padding-block:calc(var(--spacing) * .5)}.data-\[size\=sm\]\:text-xs[data-size=sm]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.data-\[size\=sm\]\:\[--card-spacing\:--spacing\(3\)\][data-size=sm]{--card-spacing:calc(var(--spacing) * 3)}.data-\[size\=sm\]\:has-data-\[slot\=card-footer\]\:pb-0[data-size=sm]:has([data-slot=card-footer]){padding-bottom:calc(var(--spacing) * 0)}:is(.\*\*\:data-\[slot\=accordion-trigger-icon\]\:ml-auto *)[data-slot=accordion-trigger-icon]{margin-left:auto}:is(.\*\*\:data-\[slot\=accordion-trigger-icon\]\:size-4 *)[data-slot=accordion-trigger-icon]{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\*\:data-\[slot\=accordion-trigger-icon\]\:text-muted-foreground *)[data-slot=accordion-trigger-icon]{color:var(--muted-foreground)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--result-danger,#b92d35) 90%, transparent)}}:is(.\*\:data-\[slot\=attachment\]\:flex-none>*)[data-slot=attachment]{flex:none}:is(.\*\:data-\[slot\=attachment\]\:snap-start>*)[data-slot=attachment]{scroll-snap-align:start}:is(.\*\:data-\[slot\=avatar\]\:ring-2>*)[data-slot=avatar]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.\*\:data-\[slot\=avatar\]\:ring-background>*)[data-slot=avatar]{--tw-ring-color:var(--background)}:is(.\*\:data-\[slot\=bubble-content\]\:rounded-none>*)[data-slot=bubble-content]{border-radius:0}:is(.\*\:data-\[slot\=bubble-content\]\:border-border>*)[data-slot=bubble-content]{border-color:var(--border)}:is(.\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.93_calc\(c\*0\.4\)_h\)\]>*)[data-slot=bubble-content]{background-color:oklch(from var(--primary) .93 calc(c * .4) h)}:is(.\*\:data-\[slot\=bubble-content\]\:bg-background>*)[data-slot=bubble-content]{background-color:var(--background)}:is(.\*\:data-\[slot\=bubble-content\]\:bg-destructive\/10>*)[data-slot=bubble-content]{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=bubble-content\]\:bg-destructive\/10>*)[data-slot=bubble-content]{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 10%, transparent)}}:is(.\*\:data-\[slot\=bubble-content\]\:bg-muted>*)[data-slot=bubble-content]{background-color:var(--muted)}:is(.\*\:data-\[slot\=bubble-content\]\:bg-primary>*)[data-slot=bubble-content]{background-color:var(--primary)}:is(.\*\:data-\[slot\=bubble-content\]\:bg-secondary>*)[data-slot=bubble-content]{background-color:var(--muted)}:is(.\*\:data-\[slot\=bubble-content\]\:bg-transparent>*)[data-slot=bubble-content]{background-color:#0000}:is(.\*\:data-\[slot\=bubble-content\]\:p-0>*)[data-slot=bubble-content]{padding:calc(var(--spacing) * 0)}:is(.\*\:data-\[slot\=bubble-content\]\:text-destructive>*)[data-slot=bubble-content]{color:var(--result-danger,#b92d35)}:is(.\*\:data-\[slot\=bubble-content\]\:text-foreground>*)[data-slot=bubble-content]{color:var(--foreground)}:is(.\*\:data-\[slot\=bubble-content\]\:text-primary-foreground>*)[data-slot=bubble-content]{color:var(--result-surface,#fff)}:is(.\*\:data-\[slot\=bubble-content\]\:text-secondary-foreground>*)[data-slot=bubble-content]{color:var(--foreground)}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:calc(var(--spacing) * 3)}:is(.\*\:data-\[slot\=field\]\:p-2\.5>*)[data-slot=field]{padding:calc(var(--spacing) * 2.5)}:is(.\*\:data-\[slot\=field-group\]\:gap-4>*)[data-slot=field-group]{gap:calc(var(--spacing) * 4)}:is(.\*\:data-\[slot\=field-label\]\:flex-auto>*)[data-slot=field-label]{flex:auto}:is(.\*\:data-\[slot\=input-group\]\:m-1>*)[data-slot=input-group]{margin:calc(var(--spacing) * 1)}:is(.\*\:data-\[slot\=input-group\]\:mb-0>*)[data-slot=input-group]{margin-bottom:calc(var(--spacing) * 0)}:is(.\*\:data-\[slot\=input-group\]\:h-8>*)[data-slot=input-group]{height:calc(var(--spacing) * 8)}:is(.\*\:data-\[slot\=input-group\]\:border-input\/30>*)[data-slot=input-group]{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=input-group\]\:border-input\/30>*)[data-slot=input-group]{border-color:color-mix(in oklab, var(--border) 30%, transparent)}}:is(.\*\:data-\[slot\=input-group\]\:bg-input\/30>*)[data-slot=input-group]{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=input-group\]\:bg-input\/30>*)[data-slot=input-group]{background-color:color-mix(in oklab, var(--border) 30%, transparent)}}:is(.\*\:data-\[slot\=input-group\]\:shadow-none>*)[data-slot=input-group]{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.\*\:data-\[slot\=input-group-addon\]\:pl-2\!>*)[data-slot=input-group-addon]{padding-left:calc(var(--spacing) * 2)!important}:is(.\*\*\:data-\[slot\=kbd\]\:relative *)[data-slot=kbd]{position:relative}:is(.\*\*\:data-\[slot\=kbd\]\:isolate *)[data-slot=kbd]{isolation:isolate}:is(.\*\*\:data-\[slot\=kbd\]\:z-50 *)[data-slot=kbd]{z-index:50}:is(.\*\*\:data-\[slot\=kbd\]\:rounded-sm *)[data-slot=kbd]{border-radius:4px}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:ring-0 *)[data-slot=navigation-menu-link]:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:outline-none *)[data-slot=navigation-menu-link]:focus{--tw-outline-style:none;outline-style:none}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}:is(.group-data-\[orientation\=vertical\]\/attachment\:\*\:data-\[slot\=spinner\]\:size-6\!:is(:where(.group\/attachment)[data-orientation=vertical] *)>*)[data-slot=spinner]{width:calc(var(--spacing) * 6)!important;height:calc(var(--spacing) * 6)!important}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:last-child{border-bottom-right-radius:8px;border-bottom-left-radius:8px}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[state\=error\]\:border-destructive\/30[data-state=error]{border-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=error\]\:border-destructive\/30[data-state=error]{border-color:color-mix(in oklab, var(--result-danger,#b92d35) 30%, transparent)}}.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=idle\]\:border-dashed[data-state=idle]{--tw-border-style:dashed;border-style:dashed}.data-\[state\=on\]\:bg-muted[data-state=on],.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=visible\]\:animate-in[data-state=visible]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[swipe-axis\=x\]\:inset-y-0[data-swipe-axis=x]{inset-block:calc(var(--spacing) * 0)}.data-\[swipe-axis\=x\]\:flex-row[data-swipe-axis=x]{flex-direction:row}.data-\[swipe-axis\=x\]\:\[--drawer-content-width\:75\%\][data-swipe-axis=x]{--drawer-content-width:75%}.data-\[swipe-axis\=x\]\:after\:inset-y-0[data-swipe-axis=x]:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.data-\[swipe-axis\=x\]\:after\:w-\(--bleed\)[data-swipe-axis=x]:after{content:var(--tw-content);width:var(--bleed)}.data-\[swipe-axis\=y\]\:inset-x-0[data-swipe-axis=y]{inset-inline:calc(var(--spacing) * 0)}.data-\[swipe-axis\=y\]\:\[--drawer-content-max-height\:calc\(100dvh-6rem\)\][data-swipe-axis=y]{--drawer-content-max-height:calc(100dvh - 6rem)}.data-\[swipe-axis\=y\]\:after\:inset-x-0[data-swipe-axis=y]:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.data-\[swipe-axis\=y\]\:after\:h-\(--bleed\)[data-swipe-axis=y]:after{content:var(--tw-content);height:var(--bleed)}.data-\[swipe-axis\=y\]\:data-nested-drawer-open\:h-\(--stack-height\)[data-swipe-axis=y][data-nested-drawer-open]{height:var(--stack-height)}.data-\[swipe-axis\=y\]\:data-snap-points\:\[--drawer-content-height\:100dvh\][data-swipe-axis=y][data-snap-points]{--drawer-content-height:100dvh}.data-\[swipe-direction\=down\]\:bottom-0[data-swipe-direction=down]{bottom:calc(var(--spacing) * 0)}.data-\[swipe-direction\=down\]\:origin-bottom[data-swipe-direction=down]{transform-origin:bottom}.data-\[swipe-direction\=down\]\:rounded-t-xl[data-swipe-direction=down]{border-top-left-radius:12px;border-top-right-radius:12px}.data-\[swipe-direction\=down\]\:border-t[data-swipe-direction=down]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[swipe-direction\=down\]\:\[--closed-transform\:translate3d\(0\,calc\(100\%\+var\(--drawer-inset\,0px\)\+2px\)\,0\)\][data-swipe-direction=down]{--closed-transform:translate3d(0,calc(100% + var(--drawer-inset,0px) + 2px),0)}.data-\[swipe-direction\=down\]\:\[--translate-y\:calc\(var\(--drawer-snap-point-offset\,0px\)\+var\(--drawer-swipe-movement-y\)-var\(--stack-peek-offset\)-\(var\(--stack-shrink\)\*var\(--stack-height\)\)\)\][data-swipe-direction=down]{--translate-y:calc(var(--drawer-snap-point-offset,0px) + var(--drawer-swipe-movement-y) - var(--stack-peek-offset) - (var(--stack-shrink) * var(--stack-height)))}.data-\[swipe-direction\=down\]\:after\:top-full[data-swipe-direction=down]:after{content:var(--tw-content);top:100%}.data-ending-style\:data-\[swipe-direction\=down\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)\+150\%\)\)\][data-ending-style][data-swipe-direction=down],.data-expanded\:data-ending-style\:data-\[swipe-direction\=down\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)\+150\%\)\)\][data-expanded][data-ending-style][data-swipe-direction=down]{transform:translateY(calc(var(--toast-swipe-movement-y) + 150%))}.data-\[swipe-direction\=left\]\:left-0[data-swipe-direction=left]{left:calc(var(--spacing) * 0)}.data-\[swipe-direction\=left\]\:origin-left[data-swipe-direction=left]{transform-origin:0}.data-\[swipe-direction\=left\]\:rounded-r-xl[data-swipe-direction=left]{border-top-right-radius:12px;border-bottom-right-radius:12px}.data-\[swipe-direction\=left\]\:border-r[data-swipe-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[swipe-direction\=left\]\:\[--closed-transform\:translate3d\(calc\(-100\%-var\(--drawer-inset\,0px\)-2px\)\,0\,0\)\][data-swipe-direction=left]{--closed-transform:translate3d(calc(-100% - var(--drawer-inset,0px) - 2px),0,0)}.data-\[swipe-direction\=left\]\:\[--translate-x\:calc\(var\(--drawer-swipe-movement-x\)\+var\(--stack-peek-offset\)\+\(var\(--stack-shrink\)\*100\%\)\)\][data-swipe-direction=left]{--translate-x:calc(var(--drawer-swipe-movement-x) + var(--stack-peek-offset) + (var(--stack-shrink) * 100%))}.data-\[swipe-direction\=left\]\:after\:right-full[data-swipe-direction=left]:after{content:var(--tw-content);right:100%}.data-ending-style\:data-\[swipe-direction\=left\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)-150\%\)\)_translateY\(var\(--offset-y\)\)\][data-ending-style][data-swipe-direction=left],.data-expanded\:data-ending-style\:data-\[swipe-direction\=left\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)-150\%\)\)_translateY\(var\(--offset-y\)\)\][data-expanded][data-ending-style][data-swipe-direction=left]{transform:translateX(calc(var(--toast-swipe-movement-x) - 150%)) translateY(var(--offset-y))}.data-\[swipe-direction\=right\]\:right-0[data-swipe-direction=right]{right:calc(var(--spacing) * 0)}.data-\[swipe-direction\=right\]\:origin-right[data-swipe-direction=right]{transform-origin:100%}.data-\[swipe-direction\=right\]\:rounded-l-xl[data-swipe-direction=right]{border-top-left-radius:12px;border-bottom-left-radius:12px}.data-\[swipe-direction\=right\]\:border-l[data-swipe-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[swipe-direction\=right\]\:\[--closed-transform\:translate3d\(calc\(100\%\+var\(--drawer-inset\,0px\)\+2px\)\,0\,0\)\][data-swipe-direction=right]{--closed-transform:translate3d(calc(100% + var(--drawer-inset,0px) + 2px),0,0)}.data-\[swipe-direction\=right\]\:\[--translate-x\:calc\(var\(--drawer-swipe-movement-x\)-var\(--stack-peek-offset\)-\(var\(--stack-shrink\)\*100\%\)\)\][data-swipe-direction=right]{--translate-x:calc(var(--drawer-swipe-movement-x) - var(--stack-peek-offset) - (var(--stack-shrink) * 100%))}.data-\[swipe-direction\=right\]\:after\:left-full[data-swipe-direction=right]:after{content:var(--tw-content);left:100%}.data-ending-style\:data-\[swipe-direction\=right\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)\+150\%\)\)_translateY\(var\(--offset-y\)\)\][data-ending-style][data-swipe-direction=right],.data-expanded\:data-ending-style\:data-\[swipe-direction\=right\]\:\[transform\:translateX\(calc\(var\(--toast-swipe-movement-x\)\+150\%\)\)_translateY\(var\(--offset-y\)\)\][data-expanded][data-ending-style][data-swipe-direction=right]{transform:translateX(calc(var(--toast-swipe-movement-x) + 150%)) translateY(var(--offset-y))}.data-\[swipe-direction\=up\]\:top-0[data-swipe-direction=up]{top:calc(var(--spacing) * 0)}.data-\[swipe-direction\=up\]\:origin-top[data-swipe-direction=up]{transform-origin:top}.data-\[swipe-direction\=up\]\:rounded-b-xl[data-swipe-direction=up]{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.data-\[swipe-direction\=up\]\:border-b[data-swipe-direction=up]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[swipe-direction\=up\]\:\[--closed-transform\:translate3d\(0\,calc\(-100\%-var\(--drawer-inset\,0px\)-2px\)\,0\)\][data-swipe-direction=up]{--closed-transform:translate3d(0,calc(-100% - var(--drawer-inset,0px) - 2px),0)}.data-\[swipe-direction\=up\]\:\[--translate-y\:calc\(var\(--drawer-snap-point-offset\,0px\)\+var\(--drawer-swipe-movement-y\)\+var\(--stack-peek-offset\)\+\(var\(--stack-shrink\)\*var\(--stack-height\)\)\)\][data-swipe-direction=up]{--translate-y:calc(var(--drawer-snap-point-offset,0px) + var(--drawer-swipe-movement-y) + var(--stack-peek-offset) + (var(--stack-shrink) * var(--stack-height)))}.data-\[swipe-direction\=up\]\:after\:bottom-full[data-swipe-direction=up]:after{content:var(--tw-content);bottom:100%}.data-ending-style\:data-\[swipe-direction\=up\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)-150\%\)\)\][data-ending-style][data-swipe-direction=up],.data-expanded\:data-ending-style\:data-\[swipe-direction\=up\]\:\[transform\:translateY\(calc\(var\(--toast-swipe-movement-y\)-150\%\)\)\][data-expanded][data-ending-style][data-swipe-direction=up]{transform:translateY(calc(var(--toast-swipe-movement-y) - 150%))}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--result-danger,#b92d35)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--result-danger,#b92d35)}.data-\[variant\=ghost\]\:max-w-full[data-variant=ghost]{max-width:100%}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.nth-last-2\:-mt-1:nth-last-child(2){margin-top:calc(var(--spacing) * -1)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-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,)}}@supports (-webkit-touch-callout:none){.supports-\[-webkit-touch-callout\:none\]\:absolute{position:absolute}}@media (min-width:40rem){.sm\:right-4{right:calc(var(--spacing) * 4)}.sm\:left-auto{left:auto}.sm\:mx-0{margin-inline:calc(var(--spacing) * 0)}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:w-full{width:100%}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left],.data-\[side\=right\]\:sm\:max-w-sm[data-side=right],.data-\[size\=default\]\:sm\:max-w-sm[data-size=default]{max-width:var(--container-sm)}.data-\[swipe-axis\=x\]\:sm\:\[--drawer-content-width\:24rem\][data-swipe-axis=x]{--drawer-content-width:24rem}}@media (min-width:48rem){.md\:block{display:block}.md\:flex{display:flex}.md\:flex-row{flex-direction:row}.md\:gap-0\.5{gap:calc(var(--spacing) * .5)}.md\:text-left{text-align:left}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}.md\:opacity-0{opacity:0}.md\:peer-data-\[variant\=inset\]\:m-2:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing) * 2)}.md\:peer-data-\[variant\=inset\]\:ml-0:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 0)}.md\:peer-data-\[variant\=inset\]\:rounded-xl:is(:where(.peer)[data-variant=inset]~*){border-radius:12px}.md\:peer-data-\[variant\=inset\]\:shadow-sm:is(:where(.peer)[data-variant=inset]~*){--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)}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2:is(:where(.peer)[data-variant=inset]~*):is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing) * 2)}.md\:after\:hidden:after{content:var(--tw-content);display:none}}@container field-group (width>=28rem){.\@md\/field-group\:flex-row{flex-direction:row}.\@md\/field-group\:items-center{align-items:center}:is(.\@md\/field-group\:\*\:w-auto>*){width:auto}.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}:is(.\@md\/field-group\:\*\:data-\[slot\=field-label\]\:flex-auto>*)[data-slot=field-label]{flex:auto}}.ltr\:-translate-x-1\/2:where(:not(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=ltr],[dir=ltr] *),.rtl\:-translate-x-1\/2:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:translate-x-1\/2:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){--tw-translate-x:calc(1 / 2 * 100%);translate:var(--tw-translate-x) var(--tw-translate-y)}.dark\:border-input:is(.dark *){border-color:var(--border)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--border) 30%, transparent)}}.dark\:bg-transparent:is(.dark *){background-color:#0000}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:after\:mix-blend-lighten:is(.dark *):after{content:var(--tw-content);mix-blend-mode:lighten}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--border) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.dark\:disabled\:bg-transparent:is(.dark *):disabled{background-color:#0000}:where([data-slot=tooltip-content]) .dark\:in-data-\[slot\=tooltip-content\]\:bg-background\/10:is(.dark *){background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){:where([data-slot=tooltip-content]) .dark\:in-data-\[slot\=tooltip-content\]\:bg-background\/10:is(.dark *){background-color:color-mix(in oklab, var(--background) 10%, transparent)}}.dark\:has-disabled\:bg-input\/80:is(.dark *):has(:disabled){background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:has-disabled\:bg-input\/80:is(.dark *):has(:disabled){background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.dark\:has-aria-invalid\:border-destructive\/50:is(.dark *):has([aria-invalid=true]){border-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:has-aria-invalid\:border-destructive\/50:is(.dark *):has([aria-invalid=true]){border-color:color-mix(in oklab, var(--result-danger,#b92d35) 50%, transparent)}}.dark\:has-aria-invalid\:ring-destructive\/40:is(.dark *):has([aria-invalid=true]){--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:has-aria-invalid\:ring-destructive\/40:is(.dark *):has([aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 40%, transparent)}}.dark\:has-data-checked\:border-primary\/20:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dark\:has-data-checked\:border-primary\/20:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.dark\:has-data-checked\:bg-primary\/10:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dark\:has-data-checked\:bg-primary\/10:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:is(.dark *):has([data-slot][aria-invalid=true]){--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:is(.dark *):has([data-slot][aria-invalid=true]){--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 40%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--result-danger,#b92d35) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 40%, transparent)}}.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[active\=true\]\:aria-invalid\:ring-destructive\/40:is(.dark *)[data-active=true][aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--result-danger,#b92d35) 40%, transparent)}}:is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-\[oklch\(from_var\(--primary\)_0\.3_calc\(c\*0\.4\)_h\)\]:is(.dark *)>*)[data-slot=bubble-content]{background-color:oklch(from var(--primary) .3 calc(c * .4) h)}:is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-destructive\/20:is(.dark *)>*)[data-slot=bubble-content]{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){:is(.dark\:\*\:data-\[slot\=bubble-content\]\:bg-destructive\/20:is(.dark *)>*)[data-slot=bubble-content]{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.data-open\:animate-accordion-down:where([data-state=open]),.data-open\:animate-accordion-down:where([data-open]:not([data-open=false])){animation:accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:bg-accent:where([data-state=open]),.data-open\:bg-accent:where([data-open]:not([data-open=false])){background-color:var(--accent)}.data-open\:bg-muted\/50:where([data-state=open]),.data-open\:bg-muted\/50:where([data-open]:not([data-open=false])){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.data-open\:bg-muted\/50:where([data-state=open]),.data-open\:bg-muted\/50:where([data-open]:not([data-open=false])){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.data-open\:text-accent-foreground:where([data-state=open]),.data-open\:text-accent-foreground:where([data-open]:not([data-open=false])){color:var(--primary)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.group-data-\[viewport\=false\]\/navigation-menu\:data-open\:animate-in:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-state=open]),.group-data-\[viewport\=false\]\/navigation-menu\:data-open\:animate-in:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.group-data-\[viewport\=false\]\/navigation-menu\:data-open\:fade-in-0:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-state=open]),.group-data-\[viewport\=false\]\/navigation-menu\:data-open\:fade-in-0:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.group-data-\[viewport\=false\]\/navigation-menu\:data-open\:zoom-in-95:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-state=open]),.group-data-\[viewport\=false\]\/navigation-menu\:data-open\:zoom-in-95:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-open]:not([data-open=false])){--tw-enter-scale:.95}@media (hover:hover){:is(.data-open\:hover\:bg-muted:where([data-state=open]),.data-open\:hover\:bg-muted:where([data-open]:not([data-open=false]))):hover{background-color:var(--muted)}}:is(.data-open\:focus\:bg-muted:where([data-state=open]),.data-open\:focus\:bg-muted:where([data-open]:not([data-open=false]))):focus{background-color:var(--muted)}.data-closed\:animate-accordion-up:where([data-state=closed]),.data-closed\:animate-accordion-up:where([data-closed]:not([data-closed=false])){animation:accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:overflow-hidden:where([data-state=closed]),.data-closed\:overflow-hidden:where([data-closed]:not([data-closed=false])){overflow:hidden}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.group-data-\[viewport\=false\]\/navigation-menu\:data-closed\:animate-out:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-state=closed]),.group-data-\[viewport\=false\]\/navigation-menu\:data-closed\:animate-out:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.group-data-\[viewport\=false\]\/navigation-menu\:data-closed\:fade-out-0:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-state=closed]),.group-data-\[viewport\=false\]\/navigation-menu\:data-closed\:fade-out-0:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.group-data-\[viewport\=false\]\/navigation-menu\:data-closed\:zoom-out-95:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-state=closed]),.group-data-\[viewport\=false\]\/navigation-menu\:data-closed\:zoom-out-95:is(:where(.group\/navigation-menu)[data-viewport=false] *):where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-checked\:border-primary:where([data-state=checked]),.data-checked\:border-primary:where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.data-checked\:bg-primary:where([data-state=checked]),.data-checked\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.data-checked\:text-primary-foreground:where([data-state=checked]),.data-checked\:text-primary-foreground:where([data-checked]:not([data-checked=false])){color:var(--result-surface,#fff)}.group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-state=checked]),.group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *):where([data-state=checked]),.group-data-\[size\=default\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=default] *):where([data-checked]:not([data-checked=false])),.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *):where([data-state=checked]),.group-data-\[size\=sm\]\/switch\:data-checked\:translate-x-\[calc\(100\%-2px\)\]:is(:where(.group\/switch)[data-size=sm] *):where([data-checked]:not([data-checked=false])){--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x) var(--tw-translate-y)}.dark\:data-checked\:bg-primary:is(.dark *):where([data-state=checked]),.dark\:data-checked\:bg-primary:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.dark\:data-checked\:bg-primary-foreground:is(.dark *):where([data-state=checked]),.dark\:data-checked\:bg-primary-foreground:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--result-surface,#fff)}.data-unchecked\:bg-input:where([data-state=unchecked]),.data-unchecked\:bg-input:where([data-unchecked]:not([data-unchecked=false])){background-color:var(--border)}.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *):where([data-state=unchecked]),.group-data-\[size\=default\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=default] *):where([data-unchecked]:not([data-unchecked=false])),.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *):where([data-state=unchecked]),.group-data-\[size\=sm\]\/switch\:data-unchecked\:translate-x-0:is(:where(.group\/switch)[data-size=sm] *):where([data-unchecked]:not([data-unchecked=false])){--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.dark\:data-unchecked\:bg-foreground:is(.dark *):where([data-state=unchecked]),.dark\:data-unchecked\:bg-foreground:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--foreground)}.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-state=unchecked]),.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-state=unchecked]),.dark\:data-unchecked\:bg-input\/80:is(.dark *):where([data-unchecked]:not([data-unchecked=false])){background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.data-selected\:bg-muted:where([data-selected=true]){background-color:var(--muted)}.data-selected\:text-foreground:where([data-selected=true]){color:var(--foreground)}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:cursor-not-allowed:where([data-disabled=true]),.data-disabled\:cursor-not-allowed:where([data-disabled]:not([data-disabled=false])){cursor:not-allowed}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-active\:bg-background:where([data-state=active]),.data-active\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.data-active\:bg-muted\/50:where([data-state=active]),.data-active\:bg-muted\/50:where([data-active]:not([data-active=false])){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.data-active\:bg-muted\/50:where([data-state=active]),.data-active\:bg-muted\/50:where([data-active]:not([data-active=false])){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.data-active\:font-medium:where([data-state=active]),.data-active\:font-medium:where([data-active]:not([data-active=false])){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-active\:text-foreground:where([data-state=active]),.data-active\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-state=active]),.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-active]:not([data-active=false])){--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)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}@media (hover:hover){:is(.data-active\:hover\:bg-muted:where([data-state=active]),.data-active\:hover\:bg-muted:where([data-active]:not([data-active=false]))):hover{background-color:var(--muted)}}:is(.data-active\:focus\:bg-muted:where([data-state=active]),.data-active\:focus\:bg-muted:where([data-active]:not([data-active=false]))):focus{background-color:var(--muted)}.dark\:data-active\:border-input:is(.dark *):where([data-state=active]),.dark\:data-active\:border-input:is(.dark *):where([data-active]:not([data-active=false])){border-color:var(--border)}.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab, var(--border) 30%, transparent)}}.dark\:data-active\:text-foreground:is(.dark *):where([data-state=active]),.dark\:data-active\:text-foreground:is(.dark *):where([data-active]:not([data-active=false])){color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.data-horizontal\:mx-px:where([data-orientation=horizontal]){margin-inline:1px}.data-horizontal\:h-1:where([data-orientation=horizontal]){height:calc(var(--spacing) * 1)}.data-horizontal\:h-2\.5:where([data-orientation=horizontal]){height:calc(var(--spacing) * 2.5)}.data-horizontal\:h-full:where([data-orientation=horizontal]){height:100%}.data-horizontal\:h-px:where([data-orientation=horizontal]){height:1px}.data-horizontal\:w-auto:where([data-orientation=horizontal]){width:auto}.data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.data-horizontal\:border-t:where([data-orientation=horizontal]){border-top-style:var(--tw-border-style);border-top-width:1px}.data-horizontal\:border-t-transparent:where([data-orientation=horizontal]){border-top-color:#0000}.data-vertical\:my-px:where([data-orientation=vertical]){margin-block:1px}.data-vertical\:h-auto:where([data-orientation=vertical]){height:auto}.data-vertical\:h-full:where([data-orientation=vertical]){height:100%}.data-vertical\:min-h-40:where([data-orientation=vertical]){min-height:calc(var(--spacing) * 40)}.data-vertical\:w-1:where([data-orientation=vertical]){width:calc(var(--spacing) * 1)}.data-vertical\:w-2\.5:where([data-orientation=vertical]){width:calc(var(--spacing) * 2.5)}.data-vertical\:w-auto:where([data-orientation=vertical]){width:auto}.data-vertical\:w-full:where([data-orientation=vertical]){width:100%}.data-vertical\:w-px:where([data-orientation=vertical]){width:1px}.data-vertical\:flex-col:where([data-orientation=vertical]){flex-direction:column}.data-vertical\:items-stretch:where([data-orientation=vertical]){align-items:stretch}.data-vertical\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.data-vertical\:border-l:where([data-orientation=vertical]){border-left-style:var(--tw-border-style);border-left-width:1px}.data-vertical\:border-l-transparent:where([data-orientation=vertical]){border-left-color:#0000}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted-foreground)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:var(--border)}@supports (color:color-mix(in lab, red, red)){.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke=\#ccc]{stroke:color-mix(in oklab, var(--border) 50%, transparent)}}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--border)}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke=\#ccc]{stroke:var(--border)}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector{outline-offset:2px;outline:2px solid #0000}}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke=\#fff]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-3 a{text-underline-offset:3px}@media (hover:hover){.\[\&_a\]\:hover\:text-foreground a:hover{color:var(--foreground)}}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{object-fit:cover}.\[\&_p\:not\(\:last-child\)\]\:mb-4 p:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.data-\[direction\=start\]\:\[\&_svg\]\:rotate-180[data-direction=start] svg{rotate:180deg}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.group-data-\[orientation\=vertical\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6:is(:where(.group\/attachment)[data-orientation=vertical] *) svg:not([class*=size-]){width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.group-data-\[size\=xs\]\/attachment\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5:is(:where(.group\/attachment)[data-size=xs] *) svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-\(--cell-radius\):first-child[data-selected=true] button{border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}.\[\.border-b\]\:pb-\(--card-spacing\).border-b{padding-bottom:var(--card-spacing)}.\[\.border-b\]\:pb-2.border-b{padding-bottom:calc(var(--spacing) * 2)}.\[\.border-t\]\:pt-2.border-t{padding-top:calc(var(--spacing) * 2)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:px-2 *)[cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:py-1\.5 *)[cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:text-xs *)[cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:font-medium *)[cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}:is(.\*\*\:\[\[cmdk-group-heading\]\]\:text-muted-foreground *)[cmdk-group-heading]{color:var(--muted-foreground)}.\[a\]\:underline:is(a){text-decoration-line:underline}.\[a\]\:underline-offset-3:is(a){text-underline-offset:3px}.\[a\]\:transition-colors:is(a){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))}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-destructive\/20:is(a):hover{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.\[a\]\:hover\:bg-muted:is(a):hover{background-color:var(--muted)}.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-primary\/80:is(a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.\[a\]\:hover\:bg-secondary\/80:is(a):hover{background-color:color-mix(in oklab, var(--muted) 80%, transparent)}}.\[a\]\:hover\:text-foreground:is(a):hover{color:var(--foreground)}.\[a\]\:hover\:text-muted-foreground:is(a):hover{color:var(--muted-foreground)}:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}.\[button\]\:text-left:is(button){text-align:left}.\[button\,a\]\:transition-colors:is(button,a){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))}.\[button\,a\]\:outline-none:is(button,a){--tw-outline-style:none;outline-style:none}.\[button\,a\]\:focus-visible\:border-ring:is(button,a):focus-visible{border-color:var(--primary)}.\[button\,a\]\:focus-visible\:ring-3:is(button,a):focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.\[button\,a\]\:focus-visible\:ring-ring\/50:is(button,a):focus-visible{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[button\,a\]\:focus-visible\:ring-ring\/50:is(button,a):focus-visible{--tw-ring-color:color-mix(in oklab, var(--primary) 50%, transparent)}}:is(.\*\:\[img\]\:aspect-square>*):is(img){aspect-ratio:1}:is(.\*\:\[img\]\:w-full>*):is(img){width:100%}:is(.\*\:\[img\]\:object-cover>*):is(img){object-fit:cover}:is(.\*\:\[img\:first-child\]\:rounded-t-xl>*):is(img:first-child){border-top-left-radius:12px;border-top-right-radius:12px}:is(.\*\:\[img\:last-child\]\:rounded-b-xl>*):is(img:last-child){border-bottom-right-radius:12px;border-bottom-left-radius:12px}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}:is(.\*\:\[svg\]\:row-span-2>*):is(svg){grid-row:span 2/span 2}:is(.\*\:\[svg\]\:translate-y-0\.5>*):is(svg){--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\*\:\[svg\]\:text-current>*):is(svg){color:currentColor}:is(.focus\:\*\:\[svg\]\:text-accent-foreground:focus>*):is(svg){color:var(--primary)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--result-danger,#b92d35)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive\![data-variant=destructive]>*):is(svg){color:var(--result-danger,#b92d35)!important}:is(.data-selected\:\*\:\[svg\]\:text-foreground:where([data-selected=true])>*):is(svg){color:var(--foreground)}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>*):is(svg:not([class*=size-])){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6>*):is(svg:not([class*=size-])){width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-\(--cell-radius\):last-child[data-selected=true] button{border-top-right-radius:var(--cell-radius);border-bottom-right-radius:var(--cell-radius)}.\[\&\:nth-child\(2\)\[data-selected\=true\]_button\]\:rounded-l-\(--cell-radius\):nth-child(2)[data-selected=true] button{border-top-left-radius:var(--cell-radius);border-bottom-left-radius:var(--cell-radius)}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--muted\)\,var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--muted\)\,var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklch,var(--muted),var(--foreground) 5%)}}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.88_calc\(c\*0\.5\)_h\)\]>[data-slot=bubble-content]:is(button,a):hover{background-color:oklch(from var(--primary) .88 calc(c * .5) h)}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/20>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/20>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 20%, transparent)}}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-muted>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--muted)}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-primary\/80>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-primary\/80>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:text-foreground>[data-slot=bubble-content]:is(button,a):hover{color:var(--foreground)}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-\[oklch\(from_var\(--primary\)_0\.35_calc\(c\*0\.5\)_h\)\]:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:oklch(from var(--primary) .35 calc(c * .5) h)}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/30:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--result-danger,#b92d35)}@supports (color:color-mix(in lab, red, red)){.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-destructive\/30:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklab, var(--result-danger,#b92d35) 30%, transparent)}}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-input\/30:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-input\/30:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklab, var(--border) 30%, transparent)}}.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-muted\/50:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:\[\&\>\[data-slot\=bubble-content\]\:is\(button\,a\)\:hover\]\:bg-muted\/50:is(.dark *)>[data-slot=bubble-content]:is(button,a):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-lg:has(:is(select[aria-hidden=true]:last-child))>[data-slot=select-trigger]:last-of-type{border-top-right-radius:8px;border-bottom-right-radius:8px}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:fit-content}.\[\&\>\[data-slot\]\:not\(\:has\(\~\[data-slot\]\)\)\]\:rounded-r-lg\!>[data-slot]:not(:has(~[data-slot])){border-top-right-radius:8px!important;border-bottom-right-radius:8px!important}.\[\&\>\[data-slot\]\:not\(\:has\(\~\[data-slot\]\)\)\]\:rounded-b-lg\!>[data-slot]:not(:has(~[data-slot])){border-bottom-right-radius:8px!important;border-bottom-left-radius:8px!important}.\[\&\>\[data-slot\]\~\[data-slot\]\]\:rounded-t-none>[data-slot]~[data-slot]{border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\[data-slot\]\~\[data-slot\]\]\:rounded-l-none>[data-slot]~[data-slot]{border-top-left-radius:0;border-bottom-left-radius:0}.\[\&\>\[data-slot\]\~\[data-slot\]\]\:border-t-0>[data-slot]~[data-slot]{border-top-style:var(--tw-border-style);border-top-width:0}.\[\&\>\[data-slot\]\~\[data-slot\]\]\:border-l-0>[data-slot]~[data-slot]{border-left-style:var(--tw-border-style);border-left-width:0}:is(.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content])>[role=checkbox],.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content]) [role=radio]){margin-top:1px}@container field-group (width>=28rem){:is(.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content])>[role=checkbox],.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content]) [role=radio]){margin-top:1px}}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>a\:hover\]\:text-primary>a:hover{color:var(--primary)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>input\]\:flex-1>input{flex:1}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3:has(>[data-align=block-end])>input{padding-top:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3:has(>[data-align=block-start])>input{padding-bottom:calc(var(--spacing) * 3)}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-1\.5:has(>[data-align=inline-end])>input{padding-right:calc(var(--spacing) * 1.5)}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-1\.5:has(>[data-align=inline-start])>input{padding-left:calc(var(--spacing) * 1.5)}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\!>svg{width:calc(var(--spacing) * 3)!important;height:calc(var(--spacing) * 3)!important}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:h-2\.5>svg{height:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:h-3>svg{height:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.group-has-data-\[size\=lg\]\/avatar-group\:\[\&\>svg\]\:size-5:is(:where(.group\/avatar-group):has([data-size=lg]) *)>svg{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.group-has-data-\[size\=sm\]\/avatar-group\:\[\&\>svg\]\:size-3:is(:where(.group\/avatar-group):has([data-size=sm]) *)>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size=default] *)>svg,.group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2:is(:where(.group\/avatar)[data-size=lg] *)>svg{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden:is(:where(.group\/avatar)[data-size=sm] *)>svg{display:none}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[aria-orientation\=horizontal\]\>div\]\:rotate-90[aria-orientation=horizontal]>div{rotate:90deg}.\[\&\[data-ending-style\]\:not\(\[data-limited\]\)\:not\(\[data-swipe-direction\]\)\]\:\[transform\:translateY\(150\%\)\][data-ending-style]:not([data-limited]):not([data-swipe-direction]){transform:translateY(150%)}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:calc(var(--spacing) * -2)}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:calc(var(--spacing) * -2)}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}}@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}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--background:var(--result-surface,#fff);--foreground:var(--result-link,#17263a);--card:var(--result-surface,#fff);--primary:var(--result-link,#2358cb);--muted:var(--result-surface,#f4f6f9);--muted-foreground:var(--result-text,#677488);--accent:var(--result-surface,#edf3ff);--border:var(--result-surface,#e0e6ee);--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{transition:color .15s,background-color .15s,border-color .15s}a{text-decoration:none}:is(button:focus-visible,a:focus-visible,summary:focus-visible){outline:3px solid var(--result-border,#8eadef);outline-offset:4px}h1,h2,h3,h4,h5,p{margin:0}h1,h2,h3,h4,h5{color:var(--foreground)}p{color:var(--result-text,#5c6a7e)}.site-shell{max-width:1264px;margin:0 auto;padding:0 48px}.skip-link{background:var(--result-surface,white);z-index:100;padding:8px 14px;position:absolute;top:-60px;left:20px}.skip-link:focus{top:12px}.masthead{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:100px;display:flex}.brand{letter-spacing:-.4px;align-items:center;gap:13px;font-size:18px;font-weight:700;line-height:1.25;display:flex}.brand-mark{letter-spacing:-4px;margin-top:-7px;padding-right:5px;font-size:40px;font-weight:700}.brand-mark span{color:var(--primary)}.brand-sub{color:var(--muted-foreground);letter-spacing:1.1px;margin-top:3px;font-size:12px;font-weight:500;display:block}.masthead-right{align-items:center;gap:32px;display:flex}.edition{color:var(--result-text,#7b8594);letter-spacing:1.35px;font-size:11px;font-weight:600}.text-link{color:var(--primary);text-align:left;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:500;display:inline-flex}.text-link:hover,.inline-link:hover{color:var(--result-link,#123784);text-underline-offset:4px;text-decoration:underline}.intro{justify-content:space-between;align-items:flex-end;gap:35px;padding:54px 0 36px;display:flex}.eyebrow{color:var(--result-text,#6e7b8c);letter-spacing:1.25px;text-transform:uppercase;align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.tiny-square{background:var(--primary);width:6px;height:6px;display:inline-block}h1{letter-spacing:-2px;margin:15px 0 18px;font-size:clamp(36px,4.5vw,54px);font-weight:600;line-height:1.14}.intro-copy{max-width:650px;font-size:17px;line-height:1.65}.download-button{background:var(--primary);color:var(--result-surface,white);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:13px 17px;font-size:14px;font-weight:600;display:inline-flex}.download-button:hover{background:var(--result-link,#1a449f)}.download-format{opacity:.7;margin-left:9px;font-size:11px;font-weight:400}.release-strip{background:var(--result-surface,#f6f8fb);border:1px solid var(--border);color:var(--result-text,#637086);border-radius:6px;align-items:center;gap:10px;padding:13px 16px;font-size:13px;display:flex}.release-strip strong{color:var(--result-text,#47556a);font-size:13px;font-weight:600}.status-dot{background:var(--result-warning,#b08424);border-radius:50%;flex-shrink:0;width:6px;height:6px}.release-date{white-space:nowrap;margin-left:auto;font-size:12px}.main-tabs{gap:0;margin-top:30px}.main-nav{border-bottom:1px solid var(--border);justify-content:flex-start;width:100%;padding:0;overflow-x:auto;gap:30px!important;height:52px!important}.main-nav [data-slot=tabs-trigger]{height:52px;color:var(--result-text,#728094);border-radius:0;flex:none;gap:9px;padding:0 0 1px;font-size:14px;font-weight:500}.main-nav [data-slot=tabs-trigger][data-active]{color:var(--primary)}.main-nav [data-slot=tabs-trigger]:after{background:var(--primary);height:2px;bottom:0}.nav-count{background:var(--result-surface,#edf1f6);color:var(--result-text,#63748c);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:500}.tab-body{padding:34px 0 0;font-size:16px}.stats-grid{border-bottom:1px solid var(--border);grid-template-columns:repeat(3,1fr);padding:2px 0 28px;display:grid}.stats-grid>div{border-left:1px solid var(--border);padding:3px 32px}.stats-grid>div:first-child{border-left:none;padding-left:0}.stat-label{color:var(--result-text,#67758a);font-size:13px}.stat-number{letter-spacing:-1.5px;font-variant-numeric:tabular-nums;margin:9px 0 6px;font-size:42px;font-weight:500;line-height:1.2;display:block}.stat-number span{letter-spacing:0;color:var(--result-text,#7c8796);margin-left:9px;font-size:15px;font-weight:400}.success-number{color:var(--result-success,#25735e)}.stats-grid p{color:var(--result-text,#7a8698);align-items:center;gap:5px;font-size:12px;display:flex}.stats-grid p svg{color:var(--result-success,#25735e)}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}h2{letter-spacing:-.7px;font-size:27px;font-weight:500;line-height:1.3}.section-heading h2{margin-top:7px}h3{letter-spacing:-.25px;font-size:18px;font-weight:600;line-height:1.4}.comparison-section{margin:34px 0 45px}.comparison-table{border:1px solid var(--border);border-radius:8px;overflow:hidden}[data-slot=table]{border-collapse:collapse;width:100%;font-size:14px}[data-slot=table-head]{color:var(--result-text,#758196);text-align:left;background:var(--result-surface,#f8f9fb);white-space:nowrap;height:44px;padding:10px 20px;font-size:12px;font-weight:500}[data-slot=table-cell]{vertical-align:middle;padding:18px 20px}[data-slot=table-row]{border-bottom:1px solid var(--border)}[data-slot=table-body] [data-slot=table-row]:last-child{border-bottom:none}[data-slot=table-body] [data-slot=table-row]:hover{background:var(--result-surface,#fafbfd)}.solver-name{align-items:center;gap:9px;font-weight:600;display:flex}.solver-symbol{border-radius:2px;width:8px;height:8px}.solver-symbol.baseline{background:var(--result-link,#285ecb)}.solver-symbol.improved{background:var(--result-surface,white);border:1.5px solid var(--result-text,#98a6ba)}.cell-note{color:var(--result-text,#8a94a4);margin-top:5px;font-size:12px;font-weight:400;display:block}.solver-note{margin-left:17px}.check-pill{background:var(--result-success-surface,#eef7f3);color:var(--result-success,#28785f);border-radius:4px;align-items:center;gap:5px;padding:3px 8px;font-size:12px;display:inline-flex}.index-pending{color:var(--result-text,#9ea8b6);font-size:24px;line-height:1}.pending-label{color:var(--result-text,#6f7d90);font-size:12px}.comparison-note{max-width:860px;color:var(--result-text,#7a8698);align-items:flex-start;gap:9px;margin:13px 1px 0;font-size:12px;display:flex}.comparison-note svg{color:var(--result-text,#8494a9);flex-shrink:0;margin-top:2px}.coverage-table [data-slot=table-cell],.coverage-table [data-slot=table-head]{padding:14px 12px;font-size:12px}.coverage-table [data-slot=table-cell]:first-child,.coverage-table [data-slot=table-head]:first-child{padding-left:0}.coverage-table [data-slot=table-head]{background:var(--result-surface,white);padding-top:0}.family-table-link{text-align:left;align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.family-table-link:hover,.instance-button:hover{color:var(--primary)}.verified-text{color:var(--result-success,#347d67);white-space:nowrap;font-size:12px}.coverage-section>p{margin-top:17px}.muted{color:var(--muted-foreground)}.small{font-size:12px;line-height:1.7}.overview-bottom{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:40px;margin-top:46px;padding-top:30px;display:grid}.overview-bottom>div{padding-left:40px;position:relative}.overview-bottom>div>svg{color:var(--result-link,#7690bb);position:absolute;top:2px;left:0}.overview-bottom h3{font-size:16px}.overview-bottom p{max-width:420px;margin:10px 0 13px;font-size:14px}.page-heading{max-width:810px;margin-bottom:35px}.page-heading h2{letter-spacing:-1px;margin:10px 0 14px;font-size:32px}.page-heading>p{font-size:16px;line-height:1.7}.group-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.group-heading h3{align-items:center;gap:9px;font-size:16px;display:flex}.group-heading svg{color:var(--result-link,#7b90b2)}.group-heading>span{color:var(--result-text,#7d899b);font-size:12px}.family-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.family-card{text-align:left;border:1px solid var(--border);background:var(--result-surface,white);border-radius:8px;flex-direction:column;padding:22px 22px 0;display:flex;overflow:hidden}.family-card:hover{border-color:var(--result-border,#9cb6e7);background:var(--result-surface,#fcfdff)}.family-card-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:20px;display:flex}.source-label{color:var(--result-link,#526a8f);letter-spacing:.15px;align-self:flex-start;font-size:11px;font-weight:500;display:inline-flex}.source-label.generated{color:var(--result-link,#2e63bf)}.source-label.imported{color:var(--result-warning,#877336)}.source-label.proposed{background:var(--result-warning-surface,#f1ebdc);color:var(--result-warning,#86692b);border-radius:4px;padding:3px 7px}.family-card h3{justify-content:space-between;gap:10px;width:100%;font-size:17px;display:flex}.family-card h3 svg{color:var(--result-text,#93a1b6);flex-shrink:0;margin-top:3px}.family-card>p{margin-top:12px;font-size:14px;line-height:1.6}.family-task{color:var(--result-text,#77869c);margin:17px 0 21px;font-size:12px}.mini-tiers{border-top:1px solid var(--result-border,#e9edf3);width:100%;color:var(--result-text,#8692a4);justify-content:space-between;align-items:center;gap:13px;margin-top:auto;padding:13px 0;font-size:11px;display:flex}.imported-heading{margin-top:44px;margin-bottom:10px}.section-description{max-width:880px;margin-bottom:21px;font-size:14px}.section-description code{font-size:12px}.imported-size{border-top:1px solid var(--result-border,#e9edf3);width:100%;color:var(--result-text,#8490a1);margin-top:auto;padding:14px 0;font-size:11px}.provenance-footer{background:var(--result-surface,#f7f9fc);border-radius:6px;align-items:flex-start;gap:13px;margin-top:24px;padding:18px 20px;display:flex}.provenance-footer svg{color:var(--result-link,#6982a9);flex-shrink:0;margin-top:2px}.provenance-footer p{font-size:13px}.inline-link{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.method-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:52px;display:grid}.method-section{border-top:1px solid var(--border);gap:19px;padding:25px 0;display:flex}.section-number{color:var(--result-text,#8496b3);margin-top:4px;font-family:monospace;font-size:12px}.method-section h3{margin-bottom:12px}.method-section p{margin-top:10px;font-size:14px;line-height:1.8}.score-card{background:var(--result-surface,#f5f7fb);border:1px solid var(--border);border-radius:8px;padding:24px}.score-card h3{margin:16px 0 12px;font-size:20px;line-height:1.35}.score-card p{margin:14px 0;font-size:13px;line-height:1.8}.score-formula{border-top:1px solid var(--result-border,#dce4ef);border-bottom:1px solid var(--result-border,#dce4ef);color:var(--result-link,#345686);margin:20px 0;padding:20px 0;font-family:SFMono-Regular,Consolas,monospace;font-size:15px}.score-formula small{color:var(--result-text,#637997);margin-top:16px;font-size:11px;line-height:1.9;display:block}.evidence-section{border-top:1px solid var(--border);padding:25px 0}.evidence-grid{grid-template-columns:repeat(3,1fr);gap:40px;margin:20px 0;display:grid}.evidence-grid strong{letter-spacing:-.7px;font-size:28px;font-weight:500}.evidence-grid p{margin-top:5px;font-size:13px}.evidence-section>.text-link{margin-top:13px}.method-sources{border-top:1px solid var(--border);flex-wrap:wrap;gap:15px 22px;padding-top:20px;display:flex}.method-sources .eyebrow{width:100%}.method-sources a{font-size:12px}.reproduce-layout{grid-template-columns:minmax(0,1fr) 340px;gap:54px;display:grid}.step-title{align-items:center;gap:10px;margin:32px 0 13px;display:flex}.step-title:first-child{margin-top:0}.step-title>span{background:var(--result-surface,#eaf0fc);width:23px;height:23px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.step-title h3{font-size:17px}.reproduce-layout>div>p{margin-bottom:14px;font-size:14px;line-height:1.85}.reproduce-layout p .text-link{display:inline}.reproduce-layout p .text-link svg{vertical-align:-2px;display:inline-block}.secondary-download{min-height:42px;margin-top:5px;padding:10px 14px;font-size:13px}.code-card{background:var(--result-link,#17273d);color:var(--result-surface,#dce8fa);border-radius:8px;margin-top:17px;overflow:hidden}.code-card>div{border-bottom:1px solid var(--result-link,#304057);color:var(--result-link,#9eafc6);justify-content:space-between;align-items:center;padding:7px 13px 7px 18px;font-size:11px;display:flex}.code-card button{color:var(--result-border,#bfcee3);height:29px;font-size:11px}.code-card button:hover{background:var(--result-link,#293e5b);color:var(--result-surface,white)}.code-card pre{padding:21px;font-size:12px;line-height:1.9;overflow-x:auto}.contents-card{border:1px solid var(--border);border-radius:8px;align-self:start;padding:25px}.contents-card h3{margin-bottom:22px;font-size:16px}.contents-card pre{color:var(--result-text,#64748a);font-size:11px;line-height:2.1;overflow-x:auto}.contents-card p{margin:24px 0 18px}.resource-links{flex-direction:column;display:flex}.resource-links a{border-top:1px solid var(--border);color:var(--primary);justify-content:space-between;align-items:center;padding:11px 0;font-size:12px;display:flex}.footer{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:20px;margin-top:62px;padding:24px 0 32px;display:flex}.footer>div{flex-direction:column;gap:5px;display:flex}.footer>div:last-child{align-items:flex-end}.footer strong{color:var(--result-text,#61718a);font-size:12px;font-weight:500}.footer span{color:var(--result-text,#8a96a7);font-size:11px}.footer a{color:var(--result-text,#667a99);align-items:center;gap:4px;font-size:11px;display:flex}.family-sheet{overscroll-behavior:contain;gap:0;overflow-y:auto}.detail-header{border-bottom:1px solid var(--border);gap:0;padding:44px 32px 25px}.detail-title{letter-spacing:-.8px;margin:13px 0;font-size:29px;font-weight:500;line-height:1.25}.detail-subtitle{font-size:15px;line-height:1.7}.detail-body{padding:0 32px 40px}.detail-section{padding:25px 0 0}.detail-section h3{margin-bottom:11px;font-size:16px}.detail-section>p{font-size:14px;line-height:1.8}.detail-section .text-link{margin-top:11px;font-size:13px}.task-label{background:var(--result-surface,#eef3fa);color:var(--result-link,#647eaa);border-radius:4px;margin-top:12px;padding:3px 9px;font-size:11px;display:inline-flex}.commit{color:var(--result-text,#93a0b2);overflow-wrap:anywhere;margin-top:12px;font-size:10px;display:block}.detail-section .section-heading{margin-bottom:12px}.detail-section .section-heading h3{margin-bottom:0}.tier-tabs{background:var(--result-surface,#f1f4f8);border-radius:6px;gap:3px;width:100%;min-height:37px;margin-top:3px;padding:3px}.tier-tabs [data-slot=toggle-group-item]{height:32px;color:var(--result-text,#708096);border-radius:4px;flex:1;padding:5px 7px;font-size:12px}.tier-tabs [data-slot=toggle-group-item][data-pressed]{background:var(--result-surface,white);color:var(--result-link,#265ac8)}.table-hint{margin:12px 0}.instance-table [data-slot=table-head]{padding:9px 8px;font-size:11px}.instance-table [data-slot=table-cell]{padding:12px 8px;font-size:12px}.instance-table [data-state=selected]{background:var(--result-surface,#edf3ff)!important}.instance-button{text-align:left;font-family:SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.6}.instance-table .cell-note{margin-top:3px;font-size:10px}.instance-table .verified-text{font-size:11px}.instance-detail{border:1px solid var(--result-border,#c9d8ef);background:var(--result-surface,#f9fbff);border-radius:7px;margin-top:20px;padding:20px}.instance-detail h4{overflow-wrap:anywhere;margin-bottom:14px;font-size:14px}.metadata-list{gap:8px;margin:0 0 15px;display:grid}.metadata-list>div{grid-template-columns:130px 1fr;gap:12px;font-size:12px;display:grid}.metadata-list dt{color:var(--result-text,#7a8799)}.metadata-list dd{color:var(--result-text,#52647f);margin:0}.instance-detail h5{margin-top:18px;font-size:12px}.json-block{color:var(--result-text,#62758f);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;font-size:11px;line-height:1.8}.file-actions{flex-wrap:wrap;gap:13px;margin:20px 0;display:flex}.file-actions a{color:var(--primary);align-items:center;gap:5px;font-size:12px;display:inline-flex}.hash-details{color:var(--result-text,#71829a);font-size:11px}.hash-details summary{cursor:pointer}.hash-details p{margin-top:13px}.hash-details code{overflow-wrap:anywhere;font-size:10px}@media (max-width:1000px){.site-shell{padding:0 28px}.intro{flex-direction:column;align-items:flex-start;gap:24px}.intro-copy{max-width:730px}.family-grid{grid-template-columns:repeat(2,1fr)}.method-layout,.reproduce-layout{grid-template-columns:minmax(0,1fr) 290px;gap:28px}.release-date{display:none}.stats-grid>div{padding:3px 20px}.coverage-table{min-width:820px}}@media (max-width:720px){.site-shell{padding:0 20px}.masthead{height:82px}.edition{display:none}.masthead .text-link{font-size:12px}.intro{padding-top:36px}h1{letter-spacing:-1.4px;font-size:38px}.intro-copy{font-size:16px}.release-strip{flex-wrap:wrap;gap:5px 8px;padding:12px;font-size:12px}.release-strip>span:not(.status-dot):not(.release-date){flex-basis:100%;padding-left:14px}.main-tabs{margin-top:19px}.main-nav{gap:24px!important}.main-nav [data-slot=tabs-trigger]{font-size:13px}.nav-count{display:none}.tab-body{padding-top:26px}.stats-grid{grid-template-columns:1fr 1fr;gap:24px 0}.stats-grid>div{padding:0 0 0 20px}.stats-grid>div:last-child{border-left:none;border-top:1px solid var(--border);grid-column:1/-1;padding:20px 0 0}.stat-number{font-size:35px}.stat-number span{font-size:13px}.stats-grid p{font-size:11px}.section-heading{align-items:flex-start}.section-heading>.text-link{text-align:right;margin-top:5px;font-size:12px}.section-heading h2{font-size:23px}.comparison-table [data-slot=table]{min-width:650px}.family-grid{grid-template-columns:1fr;gap:14px}.family-card{padding:22px 22px 0}.group-heading{flex-direction:column;align-items:flex-start;gap:6px}.page-heading h2{font-size:28px}.page-heading p{font-size:15px}.overview-bottom{grid-template-columns:1fr;gap:27px}.method-layout,.reproduce-layout{grid-template-columns:1fr;gap:28px}.method-section{gap:13px}.score-card{padding:23px}.evidence-section{margin-top:28px}.evidence-grid{gap:20px}.evidence-grid strong{font-size:24px}.evidence-grid p{font-size:12px}.footer{flex-direction:column;margin-top:44px}.footer>div:last-child{align-items:flex-start}.detail-header{padding:40px 20px 24px}.detail-body{padding:0 20px 32px}.detail-title{font-size:26px}.instance-table{min-width:460px}.metadata-list>div{grid-template-columns:115px 1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.scaling-announcement{text-align:left;background:var(--result-surface,#edf3ff);border:1px solid var(--result-border,#d7e3fa);width:100%;color:var(--result-link,#526d9e);border-radius:6px;justify-content:space-between;align-items:center;gap:20px;margin-top:24px;padding:15px 17px;font-size:12px;display:flex}.scaling-announcement strong{color:var(--result-link,#315eab);font-weight:600}.scaling-announcement svg{flex-shrink:0}.scaling-announcement:hover{background:var(--result-surface,#e4edfe)}.scaling-protocol{border-top:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--result-text,#8190a5);flex-wrap:wrap;gap:14px 30px;padding:17px 0;font-size:13px;display:flex}.scaling-protocol strong{color:var(--result-link,#415877);margin-right:4px;font-size:17px;font-weight:500}.scaling-heading{margin-top:32px}.ratio-number{color:var(--result-link,#456183);font-variant-numeric:tabular-nums;font-size:16px;font-weight:500}.scaling-findings{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:30px;padding:28px 0;display:grid}.scaling-findings strong{color:var(--result-link,#3c597a);font-size:19px;font-weight:500;display:block}.scaling-findings span{max-width:470px;margin-top:7px;font-size:12px;display:block}.scaling-section{margin-top:30px}.scaling-section>h3{margin-bottom:8px}.scaling-section>p{margin:12px 0}.scaling-table{min-width:760px;margin:16px 0}.scaling-table [data-slot=table-head],.scaling-table [data-slot=table-cell]{padding:13px 12px;font-size:13px}.scaling-table [data-slot=table-head]{font-size:11px}.scaling-table .cell-note{font-size:10px}.scale-name{text-transform:capitalize;font-weight:500}.scaling-family-list{flex-wrap:wrap;gap:8px;display:flex}.scaling-family-list button{border:1px solid var(--border);color:var(--result-text,#6c7e98);border-radius:5px;align-items:center;gap:10px;padding:7px 10px;font-size:12px;display:inline-flex}.scaling-family-list button:hover,.scaling-family-list button.selected{color:var(--primary);background:var(--result-surface,#edf3ff);border-color:var(--result-border,#aec4eb)}.scaling-family-detail{border:1px solid var(--result-border,#d5e0f2);border-radius:7px;margin-top:22px;padding:19px}.scaling-family-detail h4{font-size:16px;font-weight:500}.scaling-method-grid{grid-template-columns:1fr 1fr;gap:26px 40px;margin-top:22px;display:grid}.scaling-method-grid h4{margin-bottom:8px;font-size:14px;font-weight:600}.scaling-method-grid p{font-size:13px;line-height:1.8}.native-provenance{border-top:1px solid var(--border);margin-top:23px;padding-top:18px}.native-provenance summary{cursor:pointer;color:var(--result-link,#57729a);align-items:center;gap:9px;font-size:13px;display:flex}.native-provenance>p{margin-top:15px}.native-provenance pre{background:var(--result-surface,#f6f8fb);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--result-text,#7f8fa5);border-radius:6px;margin-top:12px;padding:15px;font-size:10px}.timing-warning{background:var(--result-warning-surface,#fcf1dd);color:var(--result-warning,#836023);border-radius:6px;margin:20px 0;padding:16px;font-size:13px}@media (max-width:720px){.scaling-findings,.scaling-method-grid{grid-template-columns:1fr;gap:22px}.scaling-protocol{gap:12px 20px}.scaling-family-detail{padding:15px}}.overview-graphics{margin:32px 0 40px}.aggregate-charts{grid-template-columns:1fr 1fr;gap:20px;display:grid}.comparison-figure{border:1px solid var(--border);background:var(--result-surface,#fff);border-radius:8px;margin:0;padding:25px}.chart-kicker{color:var(--result-text,#718198);font-size:12px}.comparison-figure h3{letter-spacing:-.6px;margin:10px 0;font-size:22px;font-weight:500;line-height:1.3}.comparison-figure figcaption>p{font-size:14px;line-height:1.6}.horizontal-comparison{margin-top:28px}.comparison-bar-row+.comparison-bar-row{margin-top:21px}.bar-row-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px;font-size:14px;display:flex}.bar-row-heading>span{align-items:center;gap:7px;display:flex}.bar-row-heading strong{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.bar-row-heading small{color:var(--result-text,#738297);margin-left:7px;font-size:12px;font-weight:400;display:inline-block}.series-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.series-dot.stock,.bar-track .stock{background:var(--result-link,#285ecb)}.series-dot.enhanced,.bar-track .enhanced{background:var(--result-success,#13836e)}.bar-track{background:var(--result-surface,#edf1f6);border-radius:4px;height:24px;overflow:hidden}.bar-track>span{border-radius:0 3px 3px 0;height:100%;display:block}.bar-axis{color:var(--result-text,#8a96a8);justify-content:space-between;padding-top:8px;font-size:12px;display:flex}.chart-explanation{color:var(--result-text,#748299);margin-top:20px;font-size:12px;line-height:1.8}.graph-scope-note{color:var(--result-text,#79899e);margin:13px 1px 0;font-size:12px;line-height:1.8}.scaling-visual-overview{margin-top:28px}.size-completion-figure{border:1px solid var(--border);border-radius:8px;margin:20px 0;padding:24px 24px 18px}.size-chart-caption{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:17px;display:flex}.size-chart-caption strong{font-size:16px;font-weight:500;display:block}.size-chart-caption>div>span{color:var(--result-text,#7b899e);margin-top:5px;font-size:12px;display:block}.chart-legend{flex-wrap:wrap;gap:16px;padding-top:3px;display:flex}.size-chart-caption .chart-legend>span{color:var(--result-text,#536982);align-items:center;gap:7px;margin:0;font-size:12px;display:inline-flex}.size-completion-chart{aspect-ratio:auto;width:100%;height:280px}@media (max-width:900px){.aggregate-charts{grid-template-columns:1fr}.size-chart-caption{flex-direction:column;gap:13px}}@media (max-width:520px){.comparison-figure{padding:20px 16px}.comparison-figure h3{font-size:21px}.bar-row-heading{gap:8px;font-size:13px}.bar-row-heading small{margin-left:0;display:block}.size-completion-figure{padding:18px 10px}.size-chart-caption{padding:0 8px}.size-completion-chart{height:250px}.overview-graphics .section-heading{flex-direction:column;gap:10px}.chart-explanation{padding:0 2px}}@media (prefers-color-scheme:dark){:root:has(.progress-shell){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0b1420;--foreground:#edf2f9;--card:#131f2e;--primary:#9cc1ff;--muted:#1c2c3f;--muted-foreground:#b8c5d8;--accent:#203149;--border:#34465c;--result-surface:#131f2e;--result-border:#34465c;--result-text:#b8c5d8;--result-link:#9cc1ff;--result-before:#aab9ce;--result-success:#61d9bd;--result-success-surface:#112d28;--result-success-border:#366455;--result-warning:#f1c27b;--result-warning-surface:#30281c;--result-warning-border:#73603f;--result-danger:#ffa5a5;--result-danger-surface:#342025;--result-danger-border:#80505a}}@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-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height,var(--accordion-panel-height,auto))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--accordion-panel-height,auto))}to{height:0}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}}@keyframes scroll-fade-reveal-b{0%{--scroll-fade-b:var(--_scroll-fade-size-b,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}to{--scroll-fade-b:0px}}@keyframes scroll-fade-reveal-s{0%{--scroll-fade-s:0px}to{--scroll-fade-s:var(--_scroll-fade-size-s,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}}@keyframes scroll-fade-reveal-e{0%{--scroll-fade-e:var(--_scroll-fade-size-e,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10))))}to{--scroll-fade-e:0px}}@keyframes tw-shimmer{0%{background-position:100% 0}to{background-position:0 0}}
.progress-shell{max-width:1380px}.progress-shell p{color:var(--result-text,#45566d);font-size:16px;line-height:1.75}.progress-back{color:var(--result-link,#365b8a);align-items:center;gap:8px;font-size:14px;display:inline-flex}.progress-intro{justify-content:space-between;align-items:flex-end;gap:30px;padding:26px 0 20px;display:flex}.progress-intro>div{max-width:820px}.progress-shell .progress-eyebrow{color:var(--result-link,#386194);letter-spacing:1.5px;margin-bottom:12px;font-size:12px;font-weight:700}.progress-intro h1{letter-spacing:-1.6px;margin-bottom:16px;font-size:clamp(30px,3.1vw,42px);font-weight:600;line-height:1.14}.progress-download{border:1px solid var(--result-border,#bdcde0);color:var(--result-link,#214e88);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:12px 17px;font-size:14px;font-weight:600;display:flex}.progress-download:hover{background:var(--result-surface,#edf3fb)}.progress-nav{border-bottom:1px solid var(--result-border,#d6e0ec);gap:30px;padding-top:4px;display:flex;overflow-x:auto}.progress-nav a{color:var(--result-link,#375a89);white-space:nowrap;padding:12px 0;font-size:15px;display:block}.progress-nav a:hover{color:var(--result-link,#133c73);box-shadow:inset 0 -2px var(--result-link,#2358cb)}.progress-reading-guide{border:1px solid var(--result-border,#d6e0ec);background:var(--result-surface,#f7faff);border-radius:8px;grid-template-columns:repeat(3,1fr);margin:24px 0 0;display:grid}.progress-reading-guide>div{gap:12px;padding:18px;display:flex}.progress-reading-guide>div+div{border-left:1px solid var(--result-border,#d6e0ec)}.progress-reading-guide svg{color:var(--result-link,#335e92);flex-shrink:0;margin-top:3px}.progress-reading-guide strong{color:var(--result-link,#1d3653);font-size:15px;display:block}.progress-reading-guide span{margin-top:4px;font-size:14px;line-height:1.55;display:block}.progress-section{padding-top:45px;scroll-margin-top:20px}.progress-section-head{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:15px;display:flex}.progress-section-head h2{letter-spacing:-.9px;font-size:clamp(26px,2.8vw,34px);font-weight:550;line-height:1.25}.progress-host{color:var(--result-text,#52667e);text-align:right;max-width:280px;font-size:13px}.progress-section-copy{max-width:930px}.progress-track{margin-top:32px}.progress-track-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:19px;display:flex}.progress-track-heading h3{letter-spacing:-.4px;font-size:23px;font-weight:550}.progress-track-heading p{max-width:800px;margin-top:5px}.progress-protocol{color:var(--result-link,#3f607f);white-space:nowrap;padding-top:6px;font-size:14px}.progress-cases{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.progress-case{border:1px solid var(--result-border,#cedae8);background:var(--result-surface,white);border-radius:8px;margin:0;padding:23px}.progress-case figcaption{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:25px;display:flex}.progress-case h3{font-size:18px;font-weight:600;line-height:1.35}.progress-direction{color:var(--result-text,#426555);white-space:nowrap;align-items:center;gap:4px;font-size:14px;display:flex}.progress-series+.progress-series{margin-top:20px}.progress-series-heading{color:var(--result-text,#4c627a);justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;font-size:14px;display:flex}.progress-series-heading>span{align-items:center;gap:7px;display:flex}.progress-series-heading i{background:var(--result-link,#5875a3);width:9px;height:9px;display:inline-block}.progress-series-heading strong{font-variant-numeric:tabular-nums;color:var(--result-link,#243d60);white-space:nowrap;font-size:21px;font-weight:600}.progress-bar-track{background:var(--result-surface,#edf2f8);border-left:1px solid var(--result-border,#becbda);height:22px}.progress-bar-track>span{background:var(--result-link,#5875a3);border-radius:0 3px 3px 0;height:100%;display:block}.is-current .progress-bar-track>span,.is-current .progress-series-heading i{background:var(--result-success,#087f73)}.is-current .progress-series-heading strong{color:var(--result-success,#076c63)}.progress-series-foot{color:var(--result-text,#5b6b7e);flex-wrap:wrap;justify-content:space-between;gap:3px 12px;margin-top:7px;font-size:12px;display:flex}.progress-no-time{color:var(--result-warning,#765716);background:repeating-linear-gradient(135deg, var(--result-warning-surface,#fbf3e3), var(--result-warning-surface,#fbf3e3) 8px, var(--result-warning-surface,#f6ebd3) 8px, var(--result-warning-surface,#f6ebd3) 16px);padding:6px 10px;font-size:13px}.progress-case-result{border-top:1px solid var(--result-border,#e0e7ef);color:var(--result-link,#304e71);flex-direction:column;gap:4px;margin-top:18px;padding-top:15px;font-size:14px;display:flex}.progress-case-result>span+span{color:var(--result-text,#647489);font-size:12px}.progress-shell .progress-track-note{color:var(--result-text,#55697f);margin-top:16px;font-size:14px}.progress-caveat{background:var(--result-warning-surface,#fff8e9);border-left:3px solid var(--result-warning,#b18b33);border-radius:0 6px 6px 0;margin-top:28px;padding:19px 23px}.progress-caveat strong{color:var(--result-warning,#694e16);font-size:16px}.progress-caveat p{color:var(--result-warning,#624e2d);margin-top:8px;font-size:14px}.progress-support-key{flex-wrap:wrap;gap:10px;margin:23px 0 15px;display:flex}.support-badge{border-radius:4px;padding:4px 9px;font-size:14px;font-weight:500;line-height:1.4;display:inline-flex}.support-badge.retained{background:var(--result-surface,#eaf0f8);color:var(--result-link,#315784)}.support-badge.added{background:var(--result-success-surface,#e0f3ee);color:var(--result-success,#096456)}.support-badge.partial{background:var(--result-warning-surface,#fff1d9);color:var(--result-warning,#785617)}.support-badge.absent{background:var(--result-surface,#eceff3);color:var(--result-text,#4c5767)}.progress-support-table{table-layout:fixed;border-top:1px solid var(--result-border,#d6e0ec);min-width:900px}.progress-support-table [data-slot=table-head]{background:var(--result-surface,#f5f8fc);color:var(--result-link,#405c7e);white-space:normal;padding:16px 14px;font-size:14px}.progress-support-table [data-slot=table-cell]{white-space:normal;vertical-align:top;color:var(--result-text,#455a71);padding:17px 14px;font-size:14px;line-height:1.65}.progress-support-table th:first-child,.progress-support-table th:nth-child(2),.progress-support-table th:nth-child(3){width:22%}.progress-support-table th:nth-child(4){width:34%}.progress-support-table strong{color:var(--result-link,#203d5e);font-weight:600}.progress-new-features{grid-template-columns:1fr 1fr;gap:20px;margin-top:22px;display:grid}.progress-new-features article{border:1px solid var(--result-border,#c8dfd9);background:var(--result-success-surface,#f8fcfa);border-radius:8px;padding:25px}.progress-new-features h3{margin-top:14px;font-size:21px;font-weight:550}.progress-feature-timing{align-items:center;gap:28px;margin:23px 0;display:flex}.progress-feature-timing>span{color:var(--result-text,#536a68);flex-direction:column;gap:5px;font-size:14px;display:flex}.progress-feature-timing strong{color:var(--result-success,#17675e);font-size:19px;font-weight:550}.progress-feature-timing>span:first-child strong{color:var(--result-text,#526471);font-size:16px}.progress-new-features p{font-size:14px}.progress-validation{background:var(--result-link,#193854);color:var(--result-surface,white);border-radius:7px;justify-content:space-between;align-items:center;gap:15px;margin-top:20px;padding:21px 24px;display:flex}.progress-validation strong{font-size:20px;font-weight:550}.progress-validation span{color:var(--result-surface,#cfdeeb);font-size:14px}.progress-method{grid-template-columns:1fr 1fr;gap:30px 45px;margin:27px 0;display:grid}.progress-method h3{margin-bottom:10px;font-size:18px;font-weight:600}.progress-doc-link{color:var(--result-link,#245fa4);text-underline-offset:4px;align-items:center;gap:7px;margin-top:12px;font-size:14px;text-decoration:underline;display:flex}.progress-provenance{border-top:1px solid var(--result-border,#d6e0ec);color:var(--result-link,#38597e);padding:19px 0;font-size:14px}.progress-provenance summary{cursor:pointer}.progress-provenance p{margin-top:18px;font-size:14px}.progress-provenance code{overflow-wrap:anywhere;font-size:13px}.progress-footer{border-top:1px solid var(--result-border,#d6e0ec);color:var(--result-text,#4d647e);justify-content:space-between;gap:20px;margin-top:30px;padding:24px 0 35px;font-size:14px;display:flex}.progress-footer a{color:var(--result-link,#315b8f);align-items:center;gap:8px;display:flex}@media (max-width:1000px){.progress-reading-guide{grid-template-columns:1fr}.progress-reading-guide>div+div{border-left:0;border-top:1px solid var(--result-border,#d6e0ec)}.progress-intro{flex-direction:column;align-items:flex-start;gap:20px}.progress-case figcaption{flex-direction:column;gap:5px}.progress-section-head{flex-direction:column;align-items:flex-start}.progress-host{text-align:left;max-width:none}.progress-track-heading{flex-direction:column;gap:9px}}@media (max-width:700px){.progress-cases,.progress-new-features,.progress-method{grid-template-columns:1fr}.progress-shell{padding:0 20px}.progress-nav{gap:22px}.progress-section{padding-top:35px}.progress-intro{padding-top:30px}.progress-validation,.progress-footer{flex-direction:column;align-items:flex-start}.progress-feature-timing{gap:20px}.progress-case{padding:19px}.progress-new-features article{padding:21px}}@media print{.progress-nav,.progress-back,.progress-download{display:none}.progress-shell{max-width:none;padding:0}.progress-case,.progress-new-features article{break-inside:avoid}.progress-support-table{min-width:0}.progress-section{padding-top:25px}}.progress-completion{background:var(--result-surface,#f0f6fc);border:1px solid var(--result-border,#cfddeb);border-radius:8px;grid-template-columns:1fr 1fr;align-items:center;gap:35px;margin-bottom:18px;padding:22px 25px;display:grid}.progress-completion h4{font-size:19px;font-weight:550}.progress-completion p{margin-top:6px;font-size:14px}.progress-completion>div>span{color:var(--result-success,#126556);margin-top:10px;font-size:14px;font-weight:600;display:block}.progress-completion-bars>div+div{margin-top:13px}.progress-completion-bars>div>div:first-child{color:var(--result-link,#385777);justify-content:space-between;align-items:center;gap:15px;margin-bottom:5px;font-size:14px;display:flex}.progress-completion-bars strong{color:var(--result-link,#294e7b);font-size:24px;font-weight:550}.progress-completion-bars .is-current strong{color:var(--result-success,#08756a)}@media (max-width:700px){.progress-completion{grid-template-columns:1fr;gap:20px;padding:21px}}.progress-intro .progress-headline-result{border-left:3px solid var(--result-success,#087f73);color:var(--result-link,#244766);margin-top:16px;padding-left:13px;font-size:15px}.capacity-section{padding-top:24px;scroll-margin-top:20px}.capacity-section-label{color:var(--result-link,#425a72);justify-content:space-between;gap:16px;margin-bottom:16px;font-size:15px;display:flex}.capacity-section-label strong{color:var(--result-success,#126752)}.capacity-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.capacity-card{border:1px solid var(--result-border,#bdd8ce);border-top:4px solid var(--result-success,#087761);background:var(--result-success-surface,#fbfdfc);border-radius:8px;margin:0;padding:24px}.capacity-card.is-control{border-color:var(--result-border,#d0dae6);border-top-color:var(--result-text,#71839a);background:var(--result-surface,#fafbfd)}.capacity-role{color:var(--result-text,#526b64);font-size:14px}.capacity-card h3{letter-spacing:-.4px;margin-top:4px;font-size:21px;font-weight:600}.capacity-numbers{font-variant-numeric:tabular-nums;letter-spacing:-1.5px;align-items:center;gap:14px;margin:24px 0 0;font-size:clamp(32px,4vw,52px);line-height:1.15;display:flex}.capacity-numbers>span,.capacity-numbers>svg{color:var(--result-text,#657b93)}.capacity-numbers strong{color:var(--result-success,#087761);font-weight:650}.is-control .capacity-numbers strong{color:var(--result-link,#334a64)}.progress-shell .capacity-unit{margin-top:7px;font-size:14px}.capacity-growth{background:var(--result-success-surface,#e0f1e9);color:var(--result-success,#075b46);border-radius:4px;margin-top:15px;padding:6px 9px;font-size:15px;font-weight:600;display:inline-block}.is-control .capacity-growth{color:var(--result-link,#415872);background:var(--result-surface,#e9eef4)}.capacity-bars{margin-top:23px}.capacity-bar+.capacity-bar{margin-top:13px}.capacity-bar>div:first-child{color:var(--result-text,#42556b);justify-content:space-between;margin-bottom:5px;font-size:14px;display:flex}.capacity-bar-track{background:var(--result-surface,#e7edf1);border-radius:3px;height:19px;overflow:hidden}.capacity-bar-track>span{background:var(--result-before,#59718e);height:100%;display:block}.capacity-bar.after .capacity-bar-track>span{background:var(--result-success,#087761)}.progress-shell .capacity-card-note{margin-top:18px;font-size:14px;line-height:1.6}.progress-shell .capacity-scope{color:var(--result-text,#54677b);max-width:1080px;margin:17px 0 0;font-size:14px;line-height:1.7}.capacity-matrix-heading{margin-top:40px}.progress-shell .capacity-matrix-key{flex-wrap:wrap;gap:9px 24px;margin:15px 0;font-size:14px;display:flex}.capacity-matrix-key .solved{color:var(--result-success,#09664e);font-weight:600}.capacity-matrix-key .limited{color:var(--result-warning,#915717);font-weight:600}.capacity-matrix-wrap,.capacity-result-scroll{overflow-x:auto}.capacity-matrix{border-collapse:separate;border-spacing:10px 12px;width:100%;min-width:850px;margin:-10px}.capacity-matrix th{text-align:left;color:var(--result-link,#354e69);font-size:15px}.capacity-matrix thead th{padding:5px 2px;font-weight:600}.capacity-matrix thead th:not(:first-child){text-align:center}.capacity-matrix tbody th{vertical-align:bottom;width:195px;min-width:195px;font-weight:400}.capacity-matrix tbody th>strong{color:var(--result-link,#203b57);font-size:16px;display:block}.capacity-matrix tbody th>span{margin:4px 0 12px;font-size:14px;line-height:1.5;display:block}.capacity-matrix td{vertical-align:bottom;width:16%}.capacity-row-labels>span{height:84px;color:var(--result-before,#59718e);align-items:center;font-weight:600;display:flex}.capacity-row-labels>span+span{color:var(--result-success,#087761);margin-top:6px}.capacity-cell{border:1px solid var(--result-success-border,#c2e0d3);background:var(--result-success-surface,#e7f4ed);min-width:112px;height:84px;color:var(--result-success,#075b46);font-variant-numeric:tabular-nums;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:14px;display:flex}.capacity-cell+.capacity-cell{margin-top:6px}.capacity-cell>strong{letter-spacing:-.4px;font-size:23px;font-weight:600;line-height:1.2}.capacity-cell>strong>span{letter-spacing:0;font-size:14px;font-weight:400}.capacity-cell-status{align-items:center;gap:4px;font-weight:600;display:inline-flex}.capacity-cell.limited,.capacity-cell.mixed{color:var(--result-warning,#8a561f);background:repeating-linear-gradient(135deg, var(--result-warning-surface,#fff9ed), var(--result-warning-surface,#fff9ed) 7px, var(--result-warning-surface,#fbf1dd) 7px, var(--result-warning-surface,#fbf1dd) 14px);border-color:var(--result-warning-border,#e5cda5)}.capacity-cell.error{color:var(--result-danger,#9b3232);background:var(--result-danger-surface,#fbeaea);border-color:var(--result-danger-border,#efc6c6)}.capacity-not-tested{text-align:center;height:174px;color:var(--result-text,#728196);justify-content:center;align-items:center;padding:12px;font-size:14px;display:flex}.capacity-details,.capacity-evidence{border-top:1px solid var(--result-border,#d6e0ec);margin-top:26px;padding-top:18px}.capacity-details summary{cursor:pointer;color:var(--result-link,#214b78);font-size:17px;font-weight:600}.capacity-details summary span{color:var(--result-text,#5c6d80);margin-left:14px;font-size:14px;font-weight:400}.capacity-details>p{margin-top:18px}.capacity-timing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.capacity-timing-figure{border:1px solid var(--result-border,#d6e0ec);border-radius:6px;margin:0;padding:20px 12px 15px}.capacity-timing-figure figcaption{color:var(--result-link,#244564);padding:0 10px 12px;font-size:16px;font-weight:600}.capacity-timing-figure figcaption>span{color:var(--result-text,#596b7f);margin-top:3px;font-size:14px;font-weight:400;display:block}.capacity-timing-figure svg{width:100%;height:auto}.capacity-timing-figure svg text{fill:var(--result-text,#52657b);font-size:12px}.capacity-legend{color:var(--result-text,#52657b);flex-wrap:wrap;justify-content:center;gap:10px 20px;font-size:14px;display:flex}.capacity-legend .before{color:var(--result-before,#59718e)}.capacity-legend .after{color:var(--result-success,#087761)}.capacity-results{border-collapse:collapse;text-align:left;width:100%;min-width:760px;margin-top:25px;font-size:14px}.capacity-results th,.capacity-results td{border-bottom:1px solid var(--result-border,#dce4ed);padding:13px}.capacity-results th{color:var(--result-link,#344d65)}.capacity-results th>span{color:var(--result-text,#66758a);margin-top:3px;font-weight:400;display:block}.progress-shell .capacity-evidence p{font-size:14px}.progress-archive{border-top:1px solid var(--result-border,#d6e0ec);margin-top:35px;padding-top:20px}.progress-archive>summary{cursor:pointer;color:var(--result-link,#2a4e75);font-size:18px;font-weight:600}@media (max-width:1080px){.capacity-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.capacity-overview,.capacity-timing-grid{grid-template-columns:1fr}.capacity-card{padding:20px}.capacity-numbers{font-size:44px}.capacity-section-label{flex-direction:column;gap:5px}.capacity-details summary span{margin:5px 0 0;display:block}}.capacity-bar.auto .capacity-bar-track>span{background:var(--result-success,#087761)}.capacity-bar.configured .capacity-bar-track>span{background:var(--result-configured,#8b5fc7)}.capacity-legend .configured{color:var(--result-configured,#8b5fc7)}@media (prefers-color-scheme:dark){.progress-shell{--result-configured:#bd9bed}}
</style></head><body><div class="site-shell progress-shell"><a class="skip-link" href="#results">Skip to results</a><header class="masthead"><a class="brand" href="#results" aria-label="Gecode benchmarks home"><span class="brand-mark">g<span>.</span></span><span>Gecode<span class="brand-sub">benchmarks</span></span></a><a class="progress-back" href="#results"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg> Back to results</a></header><main id="results"><section class="progress-intro"><div><p class="progress-eyebrow">BEFORE & AFTER · 5 September 2026</p><h1>How large a problem can Gecode solve in 10 seconds?</h1><p>The same time budget. The same problems. Compare the largest sizes the original, automatic racing and configured routes can solve and prove optimal.</p></div><a class="progress-download" href="./downloads/gecode-final.json.gz" download=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line" aria-hidden="true"><path d="M12 17V3"></path><path d="m6 11 6 6 6-6"></path><path d="M19 21H5"></path></svg> Download results</a></section><nav class="progress-nav" aria-label="Page sections"><a href="#capacity">Solvable problem size</a><a href="#algorithms">Earlier algorithm study</a><a href="#timing">Historical timings</a><a href="#support">Supported problems</a><a href="#checks">New feature checks</a><a href="#method">Method & documentation</a></nav><section id="capacity" class="capacity-section"><div class="capacity-section-label"><strong>Largest confirmed problem · larger is better ↑</strong><span>10 seconds per solve · exploration included</span></div><div class="capacity-overview"><figure class="capacity-card"><figcaption><h3>Knapsack</h3><span class="capacity-role">Both random and correlated profits</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>33 items</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:1.4322916666666667%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>2304 items</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>2304 items</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure><figure class="capacity-card"><figcaption><h3>Assignment</h3><span class="capacity-role">One task per worker</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>17 tasks</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:26.5625%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>64 tasks</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>31 tasks</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:48.4375%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure><figure class="capacity-card"><figcaption><h3>Facility location</h3><span class="capacity-role">Two customers per candidate site</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>8 sites</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:14.814814814814815%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>44 sites</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:81.48148148148148%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>54 sites</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure><figure class="capacity-card"><figcaption><h3>Bin packing</h3><span class="capacity-role">Weighted items; candidate bins grow with size</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>17 items</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:36.170212765957444%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>47 items</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>30 items</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:63.829787234042556%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure><figure class="capacity-card"><figcaption><h3>Production planning</h3><span class="capacity-role">Eight quantity options per period</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>11 periods</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:39.285714285714285%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>27 periods</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:96.42857142857143%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>28 periods</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure><figure class="capacity-card"><figcaption><h3>Routing</h3><span class="capacity-role">Minimum-cost tour through all cities</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>21 cities</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>21 cities</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>21 cities</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure><figure class="capacity-card"><figcaption><h3>Weighted queens</h3><span class="capacity-role">Minimum-cost non-attacking placement</span></figcaption><div class="capacity-bars"><div class="capacity-bar before"><div><span>Original Gecode</span><strong>23 queens</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar auto"><div><span>Auto + race</span><strong>23 queens</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="capacity-bar configured"><div><span>Configured</span><strong>23 queens</strong></div><div class="capacity-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div><p class="capacity-card-note">Bars start at zero. Compare sizes within this problem class.</p></figure></div><p class="capacity-scope">Original Gecode is the preserved project solver before the algorithm improvements. Auto + race uses the current solver with bounded strategy exploration; configured uses the same current build with presets chosen for each family before this run. Each headline size passed two repetitions and every knapsack variant. These are sampled boundaries, not absolute solver limits: irregular difficulty leaves untested sizes unknown.</p><p class="capacity-scope">Racing may increase total CPU work or solve time. Several seconds—or a longer exploration window—can be worthwhile if an early trial finds a substantially better search strategy. This study charges exploration and the selected restart to the same ten-second budget.</p><div class="progress-section-head capacity-matrix-heading"><h2>The boundary, in problem terms.</h2></div><div class="capacity-result-scroll"><table class="capacity-matrix"><thead><tr><th>Problem</th><th>Original Gecode</th><th>Auto + race</th><th>Configured</th></tr></thead><tbody><tr><th scope="row">Knapsack<span>Both random and correlated profits</span></th><td><strong>33 items</strong><p>Confirmed failed upper: 34; sampled bracket width 1.</p></td><td><strong>2304 items</strong><p>Confirmed failed upper: 2336; sampled bracket width 32.</p></td><td><strong>2304 items</strong><p>Confirmed failed upper: 2336; sampled bracket width 32.</p></td></tr><tr><th scope="row">Assignment<span>One task per worker</span></th><td><strong>17 tasks</strong><p>Confirmed failed upper: 18; sampled bracket width 1.</p></td><td><strong>64 tasks</strong><p>Confirmed failed upper: 66; sampled bracket width 2.</p></td><td><strong>31 tasks</strong><p>Confirmed failed upper: 32; sampled bracket width 1.</p></td></tr><tr><th scope="row">Facility location<span>Two customers per candidate site</span></th><td><strong>8 sites</strong><p>Confirmed failed upper: 9; sampled bracket width 1.</p></td><td><strong>44 sites</strong><p>Confirmed failed upper: 45; sampled bracket width 1.</p></td><td><strong>54 sites</strong><p>Confirmed failed upper: 56; sampled bracket width 2.</p></td></tr><tr><th scope="row">Bin packing<span>Weighted items; candidate bins grow with size</span></th><td><strong>17 items</strong><p>Confirmed failed upper: 18; sampled bracket width 1.</p></td><td><strong>47 items</strong><p>Confirmed failed upper: 48; sampled bracket width 1.</p></td><td><strong>30 items</strong><p>Confirmed failed upper: 31; sampled bracket width 1.</p></td></tr><tr><th scope="row">Production planning<span>Eight quantity options per period</span></th><td><strong>11 periods</strong><p>Confirmed failed upper: 12; sampled bracket width 1.</p></td><td><strong>27 periods</strong><p>Confirmed failed upper: 29; sampled bracket width 2.</p><p>Interior sizes have mixed confirmations; bracket could not be narrowed without repeating observations.</p></td><td><strong>28 periods</strong><p>Confirmed failed upper: 29; sampled bracket width 1.</p></td></tr><tr><th scope="row">Routing<span>Minimum-cost tour through all cities</span></th><td><strong>21 cities</strong><p>Confirmed failed upper: 22; sampled bracket width 1.</p></td><td><strong>21 cities</strong><p>Confirmed failed upper: 22; sampled bracket width 1.</p></td><td><strong>21 cities</strong><p>Confirmed failed upper: 22; sampled bracket width 1.</p></td></tr><tr><th scope="row">Weighted queens<span>Minimum-cost non-attacking placement</span></th><td><strong>23 queens</strong><p>Confirmed failed upper: 24; sampled bracket width 1.</p></td><td><strong>23 queens</strong><p>Confirmed failed upper: 24; sampled bracket width 1.</p></td><td><strong>23 queens</strong><p>Confirmed failed upper: 24; sampled bracket width 1.</p></td></tr></tbody></table></div><div class="progress-section-head capacity-matrix-heading"><h2>Same problem sizes. Different solve times.</h2></div><p class="capacity-scope">The time curves retain the same logarithmic scale, run ranges and unfinished markers. Shared points use identical inputs. Missing points were not measured; timeouts have no completion-time estimate. Discovery uses one run; boundary confirmation uses two. Knapsack ranges include both profit variants.</p><div class="capacity-timing-grid"><figure class="capacity-timing-figure"><figcaption id="capacity-timing-knapsack">Knapsack <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-knapsack"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="80.34404601012949" x2="55" y2="35.610009538502" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="45.12804068288116" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="45.12804068288116" x2="55.12303149606299" y2="41.470523844575446" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="55.12303149606299" y1="80.27053619549679" x2="55.12303149606299" y2="32.13869298998526" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55.12303149606299" cy="41.470523844575446" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="55.246062992125985" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 55.246062992125985 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="55.49212598425197" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 55.49212598425197 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="55.98425196850394" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 55.98425196850394 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="56.968503937007874" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 56.968503937007874 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="58.93700787401575" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 58.93700787401575 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="185.15859918150718" x2="60" y2="141.20765672184905" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="145.3775710774014" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="150.3775710774014" x2="60.12303149606299" y2="185.86472219388097" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="60.12303149606299" y1="185.96393934455295" x2="60.12303149606299" y2="185.76619761601845" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55.12303149606299" y="180.86472219388097" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60.12303149606299" y1="185.86472219388097" x2="60.246062992125985" y2="186.11737758445102" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="60.246062992125985" y1="186.41768258682356" x2="60.246062992125985" y2="185.8233290603387" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55.246062992125985" y="181.11737758445102" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="63.93700787401575" y1="181.7302078245438" x2="63.93700787401575" y2="180.6780874654792" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="58.93700787401575" y="176.19434659357384" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="63.93700787401575" y1="181.19434659357384" x2="71.81102362204724" y2="169.20174746631452" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="71.81102362204724" y1="170.99324152468924" x2="71.81102362204724" y2="167.61224205092714" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="66.81102362204724" y="164.20174746631452" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="71.81102362204724" y1="169.20174746631452" x2="87.55905511811024" y2="157.579781487891" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="87.55905511811024" y1="157.67902184471427" x2="87.55905511811024" y2="157.4812340267604" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="82.55905511811024" y="152.579781487891" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="87.55905511811024" y1="157.579781487891" x2="118.93208661417323" y2="140.80297631312317" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="118.93208661417323" y1="140.92076859525505" x2="118.93208661417323" y2="140.16107565159555" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="113.93208661417323" y="135.80297631312317" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="118.93208661417323" y1="140.80297631312317" x2="119.05511811023622" y2="140.33176533460562" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="119.05511811023622" y1="140.40461159902856" x2="119.05511811023622" y2="140.0103046603371" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="114.05511811023622" y="135.33176533460562" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="119.05511811023622" y1="140.33176533460562" x2="182.04724409448818" y2="121.68066220656725" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="182.04724409448818" y1="122.65407092493271" x2="182.04724409448818" y2="120.04835301788123" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="177.04724409448818" y="116.68066220656725" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="182.04724409448818" y1="121.68066220656725" x2="308.0314960629921" y2="101.75580071883245" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="308.0314960629921" y1="102.3884757074696" x2="308.0314960629921" y2="101.19995738447201" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="303.0314960629921" y="96.75580071883245" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="308.0314960629921" y1="101.75580071883245" x2="339.5275590551181" y2="99.67248661778927" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="339.5275590551181" y1="99.74108285952857" x2="339.5275590551181" y2="99.61114095299364" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="334.5275590551181" y="94.67248661778927" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="338.46456692913387" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 343.46456692913387 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="342.40157480314963" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 347.40157480314963 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="350.2755905511811" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 355.2755905511811 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="366.0236220472441" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 371.0236220472441 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="429.01574803149606" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 434.01574803149606 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="189.5298698182148" x2="65" y2="188.32177995875028" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 188.91290352641786)" x="60" y="183.91290352641786" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="188.91290352641786" x2="65.12303149606299" y2="189.78869645098086" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="65.12303149606299" y1="190.08669728341224" x2="65.12303149606299" y2="189.49685743776283" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65.12303149606299 189.78869645098086)" x="60.12303149606299" y="184.78869645098086" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65.12303149606299" y1="189.78869645098086" x2="65.24606299212599" y2="189.72777029722255" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="65.24606299212599" y1="190.29031484958978" x2="65.24606299212599" y2="189.18678959516623" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65.24606299212599 189.72777029722255)" x="60.246062992125985" y="184.72777029722255" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="68.93700787401575" y1="184.3107623732315" x2="68.93700787401575" y2="178.72171264093197" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 68.93700787401575 181.24138409838218)" x="63.93700787401575" y="176.24138409838218" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="68.93700787401575" y1="181.24138409838218" x2="76.81102362204724" y2="172.62807919856667" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="76.81102362204724" y1="173.0064714498037" x2="76.81102362204724" y2="172.2595668338816" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 76.81102362204724 172.62807919856667)" x="71.81102362204724" y="167.62807919856667" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="76.81102362204724" y1="172.62807919856667" x2="92.55905511811024" y2="158.95810502023258" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="92.55905511811024" y1="159.14950267950326" x2="92.55905511811024" y2="158.76926808314306" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 92.55905511811024 158.95810502023258)" x="87.55905511811024" y="153.95810502023258" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="92.55905511811024" y1="158.95810502023258" x2="123.93208661417323" y2="141.01539621215426" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="123.93208661417323" y1="141.59411125128443" x2="123.93208661417323" y2="140.9625714300824" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 123.93208661417323 141.01539621215426)" x="118.93208661417323" y="136.01539621215426" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="123.93208661417323" y1="141.01539621215426" x2="124.05511811023622" y2="141.2925642534971" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="124.05511811023622" y1="141.60811320039386" x2="124.05511811023622" y2="140.94827081676763" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 124.05511811023622 141.2925642534971)" x="119.05511811023622" y="136.2925642534971" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="124.05511811023622" y1="141.2925642534971" x2="187.04724409448818" y2="122.30709321473215" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="187.04724409448818" y1="123.24469086044343" x2="187.04724409448818" y2="121.79818448210466" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 187.04724409448818 122.30709321473215)" x="182.04724409448818" y="117.30709321473215" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="187.04724409448818" y1="122.30709321473215" x2="313.0314960629921" y2="102.39393016466778" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="313.0314960629921" y1="102.60729590576886" x2="313.0314960629921" y2="102.17530428946026" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 313.0314960629921 102.39393016466778)" x="308.0314960629921" y="97.39393016466778" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="313.0314960629921" y1="102.39393016466778" x2="344.5275590551181" y2="99.7730922696899" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="344.5275590551181" y1="99.96372753581723" x2="344.5275590551181" y2="99.60392508827013" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 344.5275590551181 99.7730922696899)" x="339.5275590551181" y="94.7730922696899" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 348.46456692913387 32)" x="343.46456692913387" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 348.46456692913387 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 352.40157480314963 32)" x="347.40157480314963" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 352.40157480314963 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 360.2755905511811 32)" x="355.2755905511811" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 360.2755905511811 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 376.0236220472441 32)" x="371.0236220472441" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 376.0236220472441 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 439.01574803149606 32)" x="434.01574803149606" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 439.01574803149606 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 565 32)" x="560" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 565 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">32</text><text x="60.98425196850394" y="252" text-anchor="middle">40</text><text x="87.55905511811024" y="252" text-anchor="middle">256</text><text x="308.0314960629921" y="252" text-anchor="middle">2,048</text><text x="355.2755905511811" y="252" text-anchor="middle">2,432</text><text x="560" y="252" text-anchor="middle">4,096</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure><figure class="capacity-timing-figure"><figcaption id="capacity-timing-assignment">Assignment <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-assignment"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="48.62464149260442" x2="55" y2="48.07288009181417" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="48.34606480814443" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="48.34606480814443" x2="56.023065476190474" y2="36.40521387907397" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="56.023065476190474" y1="36.522296734803426" x2="56.023065476190474" y2="36.28909426155201" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="56.023065476190474" cy="36.40521387907397" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="57.10813492063492" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 57.10813492063492 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="59.46428571428571" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 59.46428571428571 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="64.92063492063492" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 64.92063492063492 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="78.80952380952381" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 78.80952380952381 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="106.50859435531741" x2="60" y2="106.50859435531741" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="101.50859435531741" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="106.50859435531741" x2="61.023065476190474" y2="107.64379967717592" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="61.023065476190474" y1="107.64379967717592" x2="61.023065476190474" y2="107.64379967717592" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="56.023065476190474" y="102.64379967717592" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="61.023065476190474" y1="107.64379967717592" x2="62.10813492063492" y2="103.58523171011373" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="62.10813492063492" y1="103.58523171011373" x2="62.10813492063492" y2="103.58523171011373" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="57.10813492063492" y="98.58523171011373" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="81.85639880952381" y1="83.53750373362665" x2="81.85639880952381" y2="83.28914478592341" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="76.85639880952381" y="78.4127780035989" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="81.85639880952381" y1="83.4127780035989" x2="83.80952380952381" y2="77.38228146459939" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="83.80952380952381" y1="77.49097548632759" x2="83.80952380952381" y2="77.27441808535161" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="78.80952380952381" y="72.38228146459939" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="83.80952380952381" y1="77.38228146459939" x2="179.04761904761904" y2="36.88799074362787" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="179.04761904761904" y1="36.982309128047184" x2="179.04761904761904" y2="36.79429844547576" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="174.04761904761904" y="31.887990743627867" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="182.10813492063494" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 187.10813492063494 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="190.41666666666666" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 195.41666666666666 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="207.77777777777777" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 212.77777777777777 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="245.47619047619048" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 250.47619047619048 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="332.77777777777777" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 337.77777777777777 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="111.79817608202391" x2="65" y2="111.79817608202391" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 111.79817608202391)" x="60" y="106.79817608202391" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="111.79817608202391" x2="66.02306547619048" y2="108.49396342009584" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="66.02306547619048" y1="108.49396342009584" x2="66.02306547619048" y2="108.49396342009584" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 66.02306547619048 108.49396342009584)" x="61.02306547619048" y="103.49396342009584" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="66.02306547619048" y1="108.49396342009584" x2="67.10813492063491" y2="113.04765830302358" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="67.10813492063491" y1="113.04765830302358" x2="67.10813492063491" y2="113.04765830302358" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 67.10813492063491 113.04765830302358)" x="62.10813492063491" y="108.04765830302358" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="74.92063492063492" y1="76.88192541481934" x2="74.92063492063492" y2="76.88192541481934" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 74.92063492063492 76.88192541481934)" x="69.92063492063492" y="71.88192541481934" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="74.92063492063492" y1="76.88192541481934" x2="81.36904761904762" y2="34.89802452025272" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="81.36904761904762" y1="34.89802452025272" x2="81.36904761904762" y2="34.89802452025272" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 81.36904761904762 34.89802452025272)" x="76.36904761904762" y="29.89802452025272" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="81.36904761904762" y1="34.89802452025272" x2="84.96527777777777" y2="42.55345555163927" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="84.96527777777777" y1="42.77354241745881" x2="84.96527777777777" y2="42.33674785131045" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 84.96527777777777 42.55345555163927)" x="79.96527777777777" y="37.55345555163927" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="84.96527777777777" y1="42.55345555163927" x2="86.85639880952381" y2="33.338297695735875" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="86.85639880952381" y1="33.432385021333275" x2="86.85639880952381" y2="33.24483340274251" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 86.85639880952381 33.338297695735875)" x="81.85639880952381" y="28.338297695735875" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 88.80952380952381 32)" x="83.80952380952381" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 88.80952380952381 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">256</text><text x="69.92063492063492" y="252" text-anchor="middle">576</text><text x="83.80952380952381" y="252" text-anchor="middle">1,024</text><text x="212.77777777777777" y="252" text-anchor="middle">5,184</text><text x="560" y="252" text-anchor="middle">16,384</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure><figure class="capacity-timing-figure"><figcaption id="capacity-timing-facility_location">Facility location <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-facility_location"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="76.58607198198123" x2="55" y2="76.58261080571582" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="76.58434128775477" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="76.58434128775477" x2="56.90160716476506" y2="50.157113026865524" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="56.90160716476506" y1="50.397357103982316" x2="56.90160716476506" y2="49.92088980023393" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="56.90160716476506" cy="50.157113026865524" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="59.04858299595142" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 59.04858299595142 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="61.44092749355907" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 61.44092749355907 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="66.96172248803828" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 66.96172248803828 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="80.94773647405226" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 80.94773647405226 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="137.57738417356543" x2="60" y2="137.57738417356543" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="132.57738417356543" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="137.57738417356543" x2="61.90160716476506" y2="121.87054742952216" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="61.90160716476506" y1="121.87054742952216" x2="61.90160716476506" y2="121.87054742952216" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="56.90160716476506" y="116.87054742952216" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="61.90160716476506" y1="121.87054742952216" x2="64.04858299595142" y2="134.00336846789097" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="64.04858299595142" y1="134.00336846789097" x2="64.04858299595142" y2="134.00336846789097" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="59.04858299595142" y="129.00336846789097" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="82.08317997791681" y1="103.19436144408532" x2="82.08317997791681" y2="103.03914518051398" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="77.08317997791681" y="98.11653995151401" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="82.08317997791681" y1="103.11653995151401" x2="85.94773647405226" y2="101.44666842761596" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="85.94773647405226" y1="102.28519876484799" x2="85.94773647405226" y2="100.65517297641239" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="80.94773647405226" y="96.44666842761596" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="85.94773647405226" y1="101.44666842761596" x2="181.1507790455159" y2="53.83648891048184" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="181.1507790455159" y1="53.87992850152452" x2="181.1507790455159" y2="53.79318260084781" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="176.1507790455159" y="48.83648891048184" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="181.1507790455159" y1="53.83648891048184" x2="252.30769230769232" y2="42.48531592879371" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="252.30769230769232" y1="42.51428843857889" x2="252.30769230769232" y2="42.45640276811268" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="247.30769230769232" y="37.48531592879371" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="252.30769230769232" y1="42.48531592879371" x2="293.77499693289167" y2="36.874851861881545" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="293.77499693289167" y1="36.94156426101932" x2="293.77499693289167" y2="36.80845329558859" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="288.77499693289167" y="31.874851861881545" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="299.75524475524475" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 304.75524475524475 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="310.98086124401914" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 315.98086124401914 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="334.1682002208318" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 339.1682002208318 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="137.59396392219475" x2="65" y2="137.59396392219475" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 137.59396392219475)" x="60" y="132.59396392219475" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="137.59396392219475" x2="66.90160716476507" y2="127.73337638965016" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="66.90160716476507" y1="127.73337638965016" x2="66.90160716476507" y2="127.73337638965016" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 66.90160716476507 127.73337638965016)" x="61.90160716476507" y="122.73337638965016" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="66.90160716476507" y1="127.73337638965016" x2="69.04858299595142" y2="134.04104158961997" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="69.04858299595142" y1="134.04104158961997" x2="69.04858299595142" y2="134.04104158961997" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 69.04858299595142 134.04104158961997)" x="64.04858299595142" y="129.04104158961997" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="87.08317997791681" y1="102.09276645910136" x2="87.08317997791681" y2="101.72138156840012" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 87.08317997791681 101.90585255649087)" x="82.08317997791681" y="96.90585255649087" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="87.08317997791681" y1="101.90585255649087" x2="90.94773647405226" y2="103.39191648690596" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="90.94773647405226" y1="103.61598530464433" x2="90.94773647405226" y2="103.17134924662717" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 90.94773647405226 103.39191648690596)" x="85.94773647405226" y="98.39191648690596" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="90.94773647405226" y1="103.39191648690596" x2="186.1507790455159" y2="62.74707452545441" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="186.1507790455159" y1="62.7686748453954" x2="186.1507790455159" y2="62.72550721119173" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 186.1507790455159 62.74707452545441)" x="181.1507790455159" y="57.74707452545441" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="344.1682002208318" y1="33.35101688016785" x2="344.1682002208318" y2="33.3033465340359" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 344.1682002208318 33.32716158196952)" x="339.1682002208318" y="28.32716158196952" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="344.1682002208318" y1="33.32716158196952" x2="393.4873021715127" y2="34.29554015148483" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="393.4873021715127" y1="34.30287239008312" x2="393.4873021715127" y2="34.28821171986103" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 393.4873021715127 34.29554015148483)" x="388.4873021715127" y="29.29554015148483" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="393.4873021715127" y1="34.29554015148483" x2="419.61906514538094" y2="33.57417437656758" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="419.61906514538094" y1="33.66170608335949" x2="419.61906514538094" y2="33.4871821549694" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 419.61906514538094 33.57417437656758)" x="414.61906514538094" y="28.574174376567584" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 446.73230278493435 32)" x="441.73230278493435" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 446.73230278493435 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 565 32)" x="560" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 565 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">105</text><text x="71.96172248803828" y="252" text-anchor="middle">300</text><text x="252.30769230769232" y="252" text-anchor="middle">3,240</text><text x="339.1682002208318" y="252" text-anchor="middle">4,656</text><text x="560" y="252" text-anchor="middle">8,256</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure><figure class="capacity-timing-figure"><figcaption id="capacity-timing-bin_packing">Bin packing <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-bin_packing"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="67.20505292747029" x2="55" y2="66.86662645768102" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="67.03482540621542" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="67.03482540621542" x2="57.25903614457831" y2="49.06908076350065" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="57.25903614457831" y1="49.32274699086315" x2="57.25903614457831" y2="48.819893041521006" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="57.25903614457831" cy="49.06908076350065" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="59.51807228915662" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 59.51807228915662 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="71.94277108433735" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 71.94277108433735 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="91.8975903614458" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 91.8975903614458 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="153.26807228915663" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 153.26807228915663 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="115.5104631080004" x2="60" y2="115.5104631080004" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="110.5104631080004" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="115.5104631080004" x2="62.25903614457831" y2="120.02702527986212" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="62.25903614457831" y1="120.02702527986212" x2="62.25903614457831" y2="120.02702527986212" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="57.25903614457831" y="115.02702527986212" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="62.25903614457831" y1="120.02702527986212" x2="64.51807228915662" y2="123.50325667072335" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="64.51807228915662" y1="123.50325667072335" x2="64.51807228915662" y2="123.50325667072335" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="59.51807228915662" y="118.50325667072335" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="154.1265060240964" y1="112.72101703202183" x2="154.1265060240964" y2="112.01028027979385" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="149.1265060240964" y="107.36117550026646" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="154.1265060240964" y1="112.36117550026646" x2="158.26807228915663" y2="88.33969056097072" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="158.26807228915663" y1="88.38635879020592" x2="158.26807228915663" y2="88.29317612658409" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="153.26807228915663" y="83.33969056097072" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="158.26807228915663" y1="88.33969056097072" x2="237.710843373494" y2="105.31256041918346" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="237.710843373494" y1="105.50171038266635" x2="237.710843373494" y2="105.12591177902722" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="232.710843373494" y="100.31256041918346" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="237.710843373494" y1="105.31256041918346" x2="275.7379518072289" y2="101.64912712193507" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="275.7379518072289" y1="101.89006801247102" x2="275.7379518072289" y2="101.41223024441148" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="270.7379518072289" y="96.64912712193507" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="275.7379518072289" y1="101.64912712193507" x2="304.7289156626506" y2="101.50287017826918" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="304.7289156626506" y1="101.53402689720625" x2="304.7289156626506" y2="101.47178208369489" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="299.7289156626506" y="96.50287017826918" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="304.7289156626506" y1="101.50287017826918" x2="310.7530120481928" y2="101.04030428542768" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="310.7530120481928" y1="101.04817969700271" x2="310.7530120481928" y2="101.0324332655925" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="305.7530120481928" y="96.04030428542768" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="311.77710843373495" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 316.77710843373495 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="152.777405528649" x2="65" y2="152.777405528649" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 152.777405528649)" x="60" y="147.777405528649" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="152.777405528649" x2="67.25903614457832" y2="154.93177181304804" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="67.25903614457832" y1="154.93177181304804" x2="67.25903614457832" y2="154.93177181304804" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 67.25903614457832 154.93177181304804)" x="62.25903614457832" y="149.93177181304804" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="67.25903614457832" y1="154.93177181304804" x2="69.51807228915662" y2="140.2932439568299" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="69.51807228915662" y1="140.2932439568299" x2="69.51807228915662" y2="140.2932439568299" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 69.51807228915662 140.2932439568299)" x="64.51807228915662" y="135.2932439568299" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="101.8975903614458" y1="37.835125344976575" x2="101.8975903614458" y2="37.835125344976575" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 101.8975903614458 37.835125344976575)" x="96.8975903614458" y="32.835125344976575" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="101.8975903614458" y1="37.835125344976575" x2="135.7831325301205" y2="142.34218444090297" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="135.7831325301205" y1="142.34218444090297" x2="135.7831325301205" y2="142.34218444090297" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 135.7831325301205 142.34218444090297)" x="130.7831325301205" y="137.34218444090297" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="135.7831325301205" y1="142.34218444090297" x2="139.54819277108433" y2="143.4869482731182" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="139.54819277108433" y1="145.00344033960167" x2="139.54819277108433" y2="142.11769842585798" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 139.54819277108433 143.4869482731182)" x="134.54819277108433" y="138.4869482731182" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="139.54819277108433" y1="143.4869482731182" x2="143.3132530120482" y2="138.9747671234987" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="143.3132530120482" y1="138.99774363355132" x2="143.3132530120482" y2="138.95182795515214" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 143.3132530120482 138.9747671234987)" x="138.3132530120482" y="133.9747671234987" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 159.1265060240964 32)" x="154.1265060240964" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 159.1265060240964 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 163.26807228915663 32)" x="158.26807228915663" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 163.26807228915663 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">102</text><text x="96.8975903614458" y="252" text-anchor="middle">200</text><text x="154.1265060240964" y="252" text-anchor="middle">352</text><text x="304.7289156626506" y="252" text-anchor="middle">752</text><text x="560" y="252" text-anchor="middle">1,430</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure><figure class="capacity-timing-figure"><figcaption id="capacity-timing-production">Production planning <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-production"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="141.6034010867191" x2="55" y2="141.6034010867191" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="141.6034010867191" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="141.6034010867191" x2="90.71428571428572" y2="105.51634730575586" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="90.71428571428572" y1="105.51634730575586" x2="90.71428571428572" y2="105.51634730575586" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="90.71428571428572" cy="105.51634730575586" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="90.71428571428572" y1="105.51634730575586" x2="102.61904761904762" y2="62.124980513245625" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="102.61904761904762" y1="62.20621911824667" x2="102.61904761904762" y2="62.04420681509349" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="102.61904761904762" cy="62.124980513245625" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="102.61904761904762" y1="62.124980513245625" x2="114.52380952380952" y2="45.26687298536186" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="114.52380952380952" y1="45.31856596186046" x2="114.52380952380952" y2="45.2153686377673" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="114.52380952380952" cy="45.26687298536186" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="126.42857142857144" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 126.42857142857144 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="125.45754243118064" x2="60" y2="125.45754243118064" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="120.45754243118064" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="125.45754243118064" x2="95.71428571428572" y2="107.42394639584252" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="95.71428571428572" y1="107.42394639584252" x2="95.71428571428572" y2="107.42394639584252" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="90.71428571428572" y="102.42394639584252" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="95.71428571428572" y1="107.42394639584252" x2="107.61904761904762" y2="113.59428951731735" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="107.61904761904762" y1="113.59428951731735" x2="107.61904761904762" y2="113.59428951731735" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="102.61904761904762" y="108.59428951731735" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="107.61904761904762" y1="113.59428951731735" x2="119.52380952380952" y2="112.15455890076548" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="119.52380952380952" y1="112.15455890076548" x2="119.52380952380952" y2="112.15455890076548" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="114.52380952380952" y="107.15455890076548" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="119.52380952380952" y1="112.15455890076548" x2="131.42857142857144" y2="108.54979913190462" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="131.42857142857144" y1="108.54979913190462" x2="131.42857142857144" y2="108.54979913190462" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="126.42857142857144" y="103.54979913190462" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="131.42857142857144" y1="108.54979913190462" x2="274.2857142857143" y2="64.84621954677175" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="274.2857142857143" y1="64.84621954677175" x2="274.2857142857143" y2="64.84621954677175" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="269.2857142857143" y="59.84621954677175" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="274.2857142857143" y1="64.84621954677175" x2="298.0952380952381" y2="45.70022300396259" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="298.0952380952381" y1="45.77520760268501" x2="298.0952380952381" y2="45.6256346617139" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="293.0952380952381" y="40.70022300396259" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="298.0952380952381" y1="45.70022300396259" x2="310" y2="39.87591070469585" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="310" y1="39.89997558723201" x2="310" y2="39.851886782173764" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="305" y="34.87591070469585" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="316.9047619047619" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 321.9047619047619 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="328.8095238095238" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 333.8095238095238 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="340.7142857142857" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 345.7142857142857 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="412.14285714285717" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 417.14285714285717 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="131.62326227282642" x2="65" y2="131.62326227282642" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 131.62326227282642)" x="60" y="126.62326227282642" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="131.62326227282642" x2="100.71428571428572" y2="117.56595594566771" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="100.71428571428572" y1="117.56595594566771" x2="100.71428571428572" y2="117.56595594566771" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 100.71428571428572 117.56595594566771)" x="95.71428571428572" y="112.56595594566771" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="100.71428571428572" y1="117.56595594566771" x2="112.61904761904762" y2="113.78563427200132" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="112.61904761904762" y1="113.78563427200132" x2="112.61904761904762" y2="113.78563427200132" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 112.61904761904762 113.78563427200132)" x="107.61904761904762" y="108.78563427200132" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="112.61904761904762" y1="113.78563427200132" x2="124.52380952380952" y2="111.83436597284782" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="124.52380952380952" y1="111.83436597284782" x2="124.52380952380952" y2="111.83436597284782" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 124.52380952380952 111.83436597284782)" x="119.52380952380952" y="106.83436597284782" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="124.52380952380952" y1="111.83436597284782" x2="136.42857142857144" y2="108.17262858567705" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="136.42857142857144" y1="108.17262858567705" x2="136.42857142857144" y2="108.17262858567705" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 136.42857142857144 108.17262858567705)" x="131.42857142857144" y="103.17262858567705" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="136.42857142857144" y1="108.17262858567705" x2="279.2857142857143" y2="69.02642599988289" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="279.2857142857143" y1="69.02642599988289" x2="279.2857142857143" y2="69.02642599988289" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 279.2857142857143 69.02642599988289)" x="274.2857142857143" y="64.02642599988289" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="315" y1="40.79606290524154" x2="315" y2="40.69716207220689" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 315 40.74652586410241)" x="310" y="35.74652586410241" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="315" y1="40.74652586410241" x2="326.9047619047619" y2="32.42704690439865" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="326.9047619047619" y1="32.51536759827097" x2="326.9047619047619" y2="32.33927543461793" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 326.9047619047619 32.42704690439865)" x="321.9047619047619" y="27.42704690439865" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 338.8095238095238 32)" x="333.8095238095238" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 338.8095238095238 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 350.7142857142857 32)" x="345.7142857142857" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 350.7142857142857 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 422.14285714285717 32)" x="417.14285714285717" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 422.14285714285717 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 565 32)" x="560" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 565 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">48</text><text x="119.52380952380952" y="252" text-anchor="middle">88</text><text x="298.0952380952381" y="252" text-anchor="middle">208</text><text x="333.8095238095238" y="252" text-anchor="middle">232</text><text x="560" y="252" text-anchor="middle">384</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure><figure class="capacity-timing-figure"><figcaption id="capacity-timing-native_tsp">Routing <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-native_tsp"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="104.2808245448751" x2="55" y2="104.2808245448751" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="104.2808245448751" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="104.2808245448751" x2="180" y2="48.25682860812799" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="180" y1="48.277688592398235" x2="180" y2="48.23599940742799" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="180" cy="48.25682860812799" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="180" y1="48.25682860812799" x2="211.25" y2="32.701261099587065" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="211.25" y1="32.704888830909816" x2="211.25" y2="32.69763430042535" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="211.25" cy="32.701261099587065" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="242.5" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 242.5 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="305" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 305 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g><g><g><circle cx="555" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 555 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="104.9331594300802" x2="60" y2="104.9331594300802" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="99.9331594300802" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="104.9331594300802" x2="185" y2="48.137307092810794" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="185" y1="48.208953108048235" x2="185" y2="48.06602291910783" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="180" y="43.137307092810794" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="185" y1="48.137307092810794" x2="216.25" y2="32.61646160435324" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="216.25" y1="32.63413646964391" x2="216.25" y2="32.59880884460149" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="211.25" y="27.61646160435324" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="242.5" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 247.5 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="305" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 310 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="105.3544478660955" x2="65" y2="105.3544478660955" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 105.3544478660955)" x="60" y="100.3544478660955" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="105.3544478660955" x2="190" y2="48.01306534856644" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="190" y1="48.164514482304284" x2="190" y2="47.86322402526609" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 190 48.01306534856644)" x="185" y="43.01306534856644" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="190" y1="48.01306534856644" x2="221.25" y2="32.58639812899311" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="221.25" y1="32.61407540780401" x2="221.25" y2="32.55877501639466" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 221.25 32.58639812899311)" x="216.25" y="27.58639812899311" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 252.5 32)" x="247.5" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 252.5 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 315 32)" x="310" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 315 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g><g><g><rect transform="rotate(45 565 32)" x="560" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 565 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">32</text><text x="185" y="252" text-anchor="middle">40</text><text x="216.25" y="252" text-anchor="middle">42</text><text x="247.5" y="252" text-anchor="middle">44</text><text x="310" y="252" text-anchor="middle">48</text><text x="560" y="252" text-anchor="middle">64</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure><figure class="capacity-timing-figure"><figcaption id="capacity-timing-weighted_queens">Weighted queens <span>Less solve time is better ↓</span></figcaption><svg viewBox="0 0 600 285" role="img" aria-labelledby="capacity-timing-weighted_queens"><desc>Logarithmic solve-time scale from 0.01 milliseconds to ten seconds.Original Gecode uses circles and solid lines; auto + race uses squares and dotted lines. Open markers with upward arrows at ten seconds are unfinished runs, not completed solves. Configured uses diamonds and dashed lines. Exact values are in the table below.</desc><g><line x1="60" y1="227" x2="560" y2="227" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="231" text-anchor="end">0.01 ms</text></g><g><line x1="60" y1="194.5" x2="560" y2="194.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="198.5" text-anchor="end">0.1 ms</text></g><g><line x1="60" y1="162.00000000000003" x2="560" y2="162.00000000000003" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="166.00000000000003" text-anchor="end">1 ms</text></g><g><line x1="60" y1="129.5" x2="560" y2="129.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="133.5" text-anchor="end">10 ms</text></g><g><line x1="60" y1="97.00000000000001" x2="560" y2="97.00000000000001" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="101.00000000000001" text-anchor="end">100 ms</text></g><g><line x1="60" y1="64.5" x2="560" y2="64.5" stroke="var(--result-border, #dce4ed)"></line><text x="51" y="68.5" text-anchor="end">1 s</text></g><g><line x1="60" y1="32" x2="560" y2="32" stroke="var(--result-warning, #b87435)" stroke-dasharray="5 4"></line><text x="51" y="36" text-anchor="end">10 s</text></g><g><g><line x1="55" y1="134.33277775445444" x2="55" y2="134.33277775445444" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="55" cy="134.33277775445444" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="55" y1="134.33277775445444" x2="305" y2="70.43137873703314" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="305" y1="70.43137873703314" x2="305" y2="70.43137873703314" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="305" cy="70.43137873703314" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="305" y1="70.43137873703314" x2="430" y2="38.78981901730579" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="430" y1="38.78981901730579" x2="430" y2="38.78981901730579" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="430" cy="38.78981901730579" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="430" y1="38.78981901730579" x2="471.6666666666667" y2="37.70532782106618" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="471.6666666666667" y1="37.7121207464488" x2="471.6666666666667" y2="37.69853816334499" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="471.6666666666667" cy="37.70532782106618" r="5" fill="var(--result-before, #59718e)"></circle></g><g><line x1="471.6666666666667" y1="37.70532782106618" x2="513.3333333333333" y2="33.66503289215654" stroke="var(--result-before, #59718e)" stroke-width="2.5" stroke-linecap="round"></line><line x1="513.3333333333333" y1="33.68613746345045" x2="513.3333333333333" y2="33.64395983000564" stroke="var(--result-before, #59718e)" stroke-width="2"></line><circle cx="513.3333333333333" cy="33.66503289215654" r="5" fill="var(--result-before, #59718e)"></circle></g><g><g><circle cx="555" cy="32" r="5" fill="var(--result-surface, white)" stroke="var(--result-before, #59718e)" stroke-width="2"></circle><path d="M 555 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-before, #59718e)" stroke-width="1.7"></path></g></g></g><g><g><line x1="60" y1="129.8801688857103" x2="60" y2="129.8801688857103" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="55" y="124.8801688857103" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="60" y1="129.8801688857103" x2="310" y2="70.48287613564166" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="310" y1="70.48287613564166" x2="310" y2="70.48287613564166" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="305" y="65.48287613564166" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="310" y1="70.48287613564166" x2="435" y2="38.751610989232525" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="435" y1="38.751610989232525" x2="435" y2="38.751610989232525" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="430" y="33.751610989232525" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="435" y1="38.751610989232525" x2="476.6666666666667" y2="37.641264359766225" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="476.6666666666667" y1="37.685454731539785" x2="476.6666666666667" y2="37.59721190899708" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="471.6666666666667" y="32.641264359766225" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><line x1="476.6666666666667" y1="37.641264359766225" x2="518.3333333333333" y2="33.67457554707219" stroke="var(--result-success, #087761)" stroke-width="2.5" stroke-dasharray="2 6" stroke-linecap="round"></line><line x1="518.3333333333333" y1="33.681220718385994" x2="518.3333333333333" y2="33.66793350284764" stroke="var(--result-success, #087761)" stroke-width="2"></line><rect x="513.3333333333333" y="28.674575547072187" width="10" height="10" fill="var(--result-success, #087761)"></rect></g><g><g><rect x="555" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-success, #087761)" stroke-width="2"></rect><path d="M 560 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-success, #087761)" stroke-width="1.7"></path></g></g></g><g><g><line x1="65" y1="141.95743739525813" x2="65" y2="141.95743739525813" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 65 141.95743739525813)" x="60" y="136.95743739525813" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="65" y1="141.95743739525813" x2="315" y2="70.39576190777677" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="315" y1="70.39576190777677" x2="315" y2="70.39576190777677" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 315 70.39576190777677)" x="310" y="65.39576190777677" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="315" y1="70.39576190777677" x2="440" y2="38.544510493736865" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="440" y1="38.544510493736865" x2="440" y2="38.544510493736865" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 440 38.544510493736865)" x="435" y="33.544510493736865" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="440" y1="38.544510493736865" x2="481.6666666666667" y2="37.66662403049287" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="481.6666666666667" y1="37.707952121196385" x2="481.6666666666667" y2="37.62541659707324" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 481.6666666666667 37.66662403049287)" x="476.6666666666667" y="32.66662403049287" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><line x1="481.6666666666667" y1="37.66662403049287" x2="523.3333333333333" y2="33.590767961933906" stroke="var(--result-configured, #8b5fc7)" stroke-width="2.5" stroke-dasharray="8 4" stroke-linecap="round"></line><line x1="523.3333333333333" y1="33.60316316941599" x2="523.3333333333333" y2="33.57838363018975" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></line><rect transform="rotate(45 523.3333333333333 33.590767961933906)" x="518.3333333333333" y="28.590767961933906" width="10" height="10" fill="var(--result-configured, #8b5fc7)"></rect></g><g><g><rect transform="rotate(45 565 32)" x="560" y="27" width="10" height="10" fill="var(--result-surface, white)" stroke="var(--result-configured, #8b5fc7)" stroke-width="2"></rect><path d="M 565 27 v -10 m -3 3 l 3 -3 l 3 3" fill="none" stroke="var(--result-configured, #8b5fc7)" stroke-width="1.7"></path></g></g></g><text x="60" y="252" text-anchor="middle">48</text><text x="310" y="252" text-anchor="middle">72</text><text x="435" y="252" text-anchor="middle">84</text><text x="476.6666666666667" y="252" text-anchor="middle">88</text><text x="518.3333333333333" y="252" text-anchor="middle">92</text><text x="560" y="252" text-anchor="middle">96</text><text x="310" y="278" text-anchor="middle">Model variables · tested sizes</text></svg><div class="capacity-legend"><span class="before">● ━ Original Gecode · solid</span><span class="after">■ ┈ Auto + race · dotted</span><span class="configured">◆ ┄ Configured · dashed</span><span>Open markers ↑ Unfinished at 10 s</span></div></figure></div><details class="capacity-details"><summary>Every sampled size and exact timing</summary><div class="capacity-result-scroll"><table class="capacity-matrix"><thead><tr><th>Problem / size</th><th>Original Gecode</th><th>Auto + race</th><th>Configured</th></tr></thead><tbody><tr><th scope="row">Knapsack · 32 items<span>32 model variables</span></th><td>4/4 exact solves completed<p>3,945.121 ms median</p></td><td>2/2 exact solves completed<p>2.278 ms median</p></td><td>2/2 exact solves completed<p>0.149 ms median</p></td></tr><tr><th scope="row">Knapsack · 33 items<span>33 model variables</span></th><td>4/4 exact solves completed<p>5,112.099 ms median</p></td><td>2/2 exact solves completed<p>0.184 ms median</p></td><td>2/2 exact solves completed<p>0.14 ms median</p></td></tr><tr><th scope="row">Knapsack · 34 items<span>34 model variables</span></th><td>2/4 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>0.181 ms median</p></td><td>2/2 exact solves completed<p>0.14 ms median</p></td></tr><tr><th scope="row">Knapsack · 36 items<span>36 model variables</span></th><td>1/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 40 items<span>40 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 48 items<span>48 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 64 items<span>64 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>0.257 ms median</p></td><td>2/2 exact solves completed<p>0.256 ms median</p></td></tr><tr><th scope="row">Knapsack · 128 items<span>128 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>0.6 ms median</p></td><td>2/2 exact solves completed<p>0.471 ms median</p></td></tr><tr><th scope="row">Knapsack · 256 items<span>256 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>1.368 ms median</p></td><td>2/2 exact solves completed<p>1.241 ms median</p></td></tr><tr><th scope="row">Knapsack · 511 items<span>511 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>4/4 exact solves completed<p>4.49 ms median</p></td><td>4/4 exact solves completed<p>4.423 ms median</p></td></tr><tr><th scope="row">Knapsack · 512 items<span>512 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>4/4 exact solves completed<p>4.642 ms median</p></td><td>4/4 exact solves completed<p>4.337 ms median</p></td></tr><tr><th scope="row">Knapsack · 1024 items<span>1024 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>4/4 exact solves completed<p>17.402 ms median</p></td><td>4/4 exact solves completed<p>16.646 ms median</p></td></tr><tr><th scope="row">Knapsack · 2048 items<span>2048 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>4/4 exact solves completed<p>71.395 ms median</p></td><td>4/4 exact solves completed<p>68.239 ms median</p></td></tr><tr><th scope="row">Knapsack · 2304 items<span>2304 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>4/4 exact solves completed<p>82.75 ms median</p></td><td>4/4 exact solves completed<p>82.163 ms median</p></td></tr><tr><th scope="row">Knapsack · 2336 items<span>2336 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 2368 items<span>2368 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 2432 items<span>2432 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 2560 items<span>2560 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 3072 items<span>3072 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Knapsack · 4096 items<span>4096 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td><td>0/4 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 16 tasks<span>256 model variables</span></th><td>2/2 exact solves completed<p>3,140.828 ms median</p></td><td>1/1 exact solves completed<p>50.983 ms median</p></td><td>1/1 exact solves completed<p>35.049 ms median</p></td></tr><tr><th scope="row">Assignment · 17 tasks<span>289 model variables</span></th><td>2/2 exact solves completed<p>7,319.054 ms median</p></td><td>1/1 exact solves completed<p>47.043 ms median</p></td><td>1/1 exact solves completed<p>44.293 ms median</p></td></tr><tr><th scope="row">Assignment · 18 tasks<span>324 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>62.716 ms median</p></td><td>1/1 exact solves completed<p>32.079 ms median</p></td></tr><tr><th scope="row">Assignment · 20 tasks<span>400 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 24 tasks<span>576 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>415.928 ms median</p></td></tr><tr><th scope="row">Assignment · 28 tasks<span>784 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>8,143.855 ms median</p></td></tr><tr><th scope="row">Assignment · 30 tasks<span>900 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>4,734.545 ms median</p></td></tr><tr><th scope="row">Assignment · 31 tasks<span>961 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>261.86 ms median</p></td><td>2/2 exact solves completed<p>9,095.396 ms median</p></td></tr><tr><th scope="row">Assignment · 32 tasks<span>1024 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>401.441 ms median</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 64 tasks<span>4096 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>7,072.945 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 66 tasks<span>4356 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 68 tasks<span>4624 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 72 tasks<span>5184 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 80 tasks<span>6400 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 96 tasks<span>9216 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Assignment · 128 tasks<span>16384 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 7 sites<span>105 model variables</span></th><td>2/2 exact solves completed<p>424.79 ms median</p></td><td>1/1 exact solves completed<p>5.642 ms median</p></td><td>1/1 exact solves completed<p>5.636 ms median</p></td></tr><tr><th scope="row">Facility location · 8 sites<span>136 model variables</span></th><td>2/2 exact solves completed<p>2,762.61 ms median</p></td><td>1/1 exact solves completed<p>17.169 ms median</p></td><td>1/1 exact solves completed<p>11.333 ms median</p></td></tr><tr><th scope="row">Facility location · 9 sites<span>171 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>7.268 ms median</p></td><td>1/1 exact solves completed<p>7.249 ms median</p></td></tr><tr><th scope="row">Facility location · 10 sites<span>210 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 12 sites<span>300 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 15 sites<span>465 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>64.833 ms median</p></td><td>2/2 exact solves completed<p>70.64 ms median</p></td></tr><tr><th scope="row">Facility location · 16 sites<span>528 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>72.976 ms median</p></td><td>2/2 exact solves completed<p>63.581 ms median</p></td></tr><tr><th scope="row">Facility location · 32 sites<span>2080 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>2,128.669 ms median</p></td><td>2/2 exact solves completed<p>1,132.234 ms median</p></td></tr><tr><th scope="row">Facility location · 40 sites<span>3240 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>4,757.457 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 44 sites<span>3916 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>7,079.532 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 45 sites<span>4095 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 46 sites<span>4278 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 48 sites<span>4656 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>9,102.575 ms median</p></td></tr><tr><th scope="row">Facility location · 52 sites<span>5460 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>8,499.003 ms median</p></td></tr><tr><th scope="row">Facility location · 54 sites<span>5886 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>8,944.661 ms median</p></td></tr><tr><th scope="row">Facility location · 56 sites<span>6328 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Facility location · 64 sites<span>8256 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 16 items<span>102 model variables</span></th><td>2/2 exact solves completed<p>835.613 ms median</p></td><td>1/1 exact solves completed<p>26.943 ms median</p></td><td>1/1 exact solves completed<p>1.922 ms median</p></td></tr><tr><th scope="row">Bin packing · 17 items<span>108 model variables</span></th><td>2/2 exact solves completed<p>2,983.991 ms median</p></td><td>1/1 exact solves completed<p>19.565 ms median</p></td><td>1/1 exact solves completed<p>1.65 ms median</p></td></tr><tr><th scope="row">Bin packing · 18 items<span>114 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>15.294 ms median</p></td><td>1/1 exact solves completed<p>4.655 ms median</p></td></tr><tr><th scope="row">Bin packing · 20 items<span>147 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 24 items<span>200 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>6,613.901 ms median</p></td></tr><tr><th scope="row">Bin packing · 28 items<span>290 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>4.026 ms median</p></td></tr><tr><th scope="row">Bin packing · 29 items<span>300 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>3.712 ms median</p></td></tr><tr><th scope="row">Bin packing · 30 items<span>310 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>5.111 ms median</p></td></tr><tr><th scope="row">Bin packing · 31 items<span>352 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>33.678 ms median</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 32 items<span>363 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>184.702 ms median</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 40 items<span>574 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>55.492 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 44 items<span>675 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>71.937 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 46 items<span>752 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>72.686 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 47 items<span>768 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>75.107 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 48 items<span>784 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Bin packing · 64 items<span>1430 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Production planning · 6 periods<span>48 model variables</span></th><td>1/1 exact solves completed<p>4.242 ms median</p></td><td>1/1 exact solves completed<p>13.316 ms median</p></td><td>1/1 exact solves completed<p>8.603 ms median</p></td></tr><tr><th scope="row">Production planning · 9 periods<span>72 model variables</span></th><td>1/1 exact solves completed<p>54.696 ms median</p></td><td>1/1 exact solves completed<p>47.782 ms median</p></td><td>1/1 exact solves completed<p>23.292 ms median</p></td></tr><tr><th scope="row">Production planning · 10 periods<span>80 model variables</span></th><td>2/2 exact solves completed<p>1,183.253 ms median</p></td><td>1/1 exact solves completed<p>30.861 ms median</p></td><td>1/1 exact solves completed<p>30.445 ms median</p></td></tr><tr><th scope="row">Production planning · 11 periods<span>88 model variables</span></th><td>2/2 exact solves completed<p>3,906.506 ms median</p></td><td>1/1 exact solves completed<p>34.175 ms median</p></td><td>1/1 exact solves completed<p>34.959 ms median</p></td></tr><tr><th scope="row">Production planning · 12 periods<span>96 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>44.119 ms median</p></td><td>1/1 exact solves completed<p>45.313 ms median</p></td></tr><tr><th scope="row">Production planning · 24 periods<span>192 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>1/1 exact solves completed<p>975.769 ms median</p></td><td>1/1 exact solves completed<p>725.647 ms median</p></td></tr><tr><th scope="row">Production planning · 26 periods<span>208 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>3,788.39 ms median</p></td><td>Not tested<p>No completion-time estimate</p></td></tr><tr><th scope="row">Production planning · 27 periods<span>216 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>5,723.534 ms median</p></td><td>2/2 exact solves completed<p>5,381.163 ms median</p></td></tr><tr><th scope="row">Production planning · 28 periods<span>224 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>1/2 exact solves completed<p>No completion-time estimate</p></td><td>2/2 exact solves completed<p>9,701.974 ms median</p></td></tr><tr><th scope="row">Production planning · 29 periods<span>232 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Production planning · 30 periods<span>240 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Production planning · 36 periods<span>288 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Production planning · 48 periods<span>384 model variables</span></th><td>Not tested<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Routing · 16 cities<span>32 model variables</span></th><td>1/1 exact solves completed<p>59.7 ms median</p></td><td>1/1 exact solves completed<p>57.004 ms median</p></td><td>1/1 exact solves completed<p>55.327 ms median</p></td></tr><tr><th scope="row">Routing · 20 cities<span>40 model variables</span></th><td>2/2 exact solves completed<p>3,160.748 ms median</p></td><td>2/2 exact solves completed<p>3,187.627 ms median</p></td><td>2/2 exact solves completed<p>3,215.809 ms median</p></td></tr><tr><th scope="row">Routing · 21 cities<span>42 model variables</span></th><td>2/2 exact solves completed<p>9,515.305 ms median</p></td><td>2/2 exact solves completed<p>9,572.645 ms median</p></td><td>2/2 exact solves completed<p>9,593.056 ms median</p></td></tr><tr><th scope="row">Routing · 22 cities<span>44 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Routing · 24 cities<span>48 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Routing · 32 cities<span>64 model variables</span></th><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td><td>0/1 exact solves completed<p>No completion-time estimate</p></td></tr><tr><th scope="row">Weighted queens · 12 queens<span>48 model variables</span></th><td>1/1 exact solves completed<p>7.101 ms median</p></td><td>1/1 exact solves completed<p>9.734 ms median</p></td><td>1/1 exact solves completed<p>4.137 ms median</p></td></tr><tr><th scope="row">Weighted queens · 18 queens<span>72 model variables</span></th><td>1/1 exact solves completed<p>656.895 ms median</p></td><td>1/1 exact solves completed<p>654.503 ms median</p></td><td>1/1 exact solves completed<p>658.555 ms median</p></td></tr><tr><th scope="row">Weighted queens · 21 queens<span>84 model variables</span></th><td>1/1 exact solves completed<p>6,181.338 ms median</p></td><td>1/1 exact solves completed<p>6,198.094 ms median</p></td><td>1/1 exact solves completed<p>6,289.707 ms median</p></td></tr><tr><th scope="row">Weighted queens · 22 queens<span>88 model variables</span></th><td>2/2 exact solves completed<p>6,675.003 ms median</p></td><td>2/2 exact solves completed<p>6,705.368 ms median</p></td><td>2/2 exact solves completed<p>6,693.332 ms median</p></td></tr><tr><th scope="row">Weighted queens · 23 queens<span>92 model variables</span></th><td>2/2 exact solves completed<p>8,887.267 ms median</p></td><td>2/2 exact solves completed<p>8,881.26 ms median</p></td><td>2/2 exact solves completed<p>8,934.151 ms median</p></td></tr><tr><th scope="row">Weighted queens · 24 queens<span>96 model variables</span></th><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td><td>0/2 exact solves completed<p>No completion-time estimate</p></td></tr></tbody></table></div></details><div class="capacity-evidence"><p>114 sampled inputs · 356 measured runs · 34.1 minutes. Original witnesses are independently checked; large-instance optimality is backend-reported. The seeded families informed development and presets, so this is not an independent holdout.</p><a class="progress-doc-link" href="./downloads/gecode-final.json.gz" download="">Download every run, input and search decision</a><a class="progress-doc-link" href="./downloads/gecode-final-method.md">Read the final method and limits</a></div></section><details id="algorithms" class="progress-archive"><summary>Earlier 2-second study · existing problem families</summary><div class="progress-reading-guide"><div><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg><p><strong>Time: lower is better.</strong><span>Bars start at zero. Each problem has its own scale.</span></p></div><div><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><p><strong>Completion: higher is better.</strong><span>A timeout is unfinished, not unsupported or a fast solve.</span></p></div><div><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-minus" aria-hidden="true"><path d="M5 12h14"></path></svg><p><strong>No support means no timing.</strong><span>Missing APIs never receive an invented zero or speedup.</span></p></div></div><section class="progress-section"><div class="progress-section-head"><div><p class="progress-eyebrow">EARLIER / NATIVE SEARCH ALGORITHMS</p><h2>Same problems. Exact capacity optimization.</h2></div></div><p class="progress-section-copy">These runs compare the immediate prior implementation with a bounded exact optimization for binary capacity models. Other search defaults are preserved. All problem types in this panel were supported before and remain supported now. Each pair uses the same driver, build configuration, inputs and two-second solver limit. Numerical HiGHS solving is a separate route.</p><section class="progress-track" aria-labelledby="track-algorithm-native"><div class="progress-track-heading"><div><h3 id="track-algorithm-native">Ordinary native branch-and-bound</h3><p>Both versions support every problem shown. Completion requires a solver proof and an independently checked optimum.</p></div><span class="progress-protocol">Same driver · 3 paired repetitions · 2 s solver limit</span></div><div class="progress-completion"><div><h4>Models completed at the known optimum</h4><p>All three repetitions must complete and pass checks.</p><span>Higher completion is better ↑</span></div><div class="progress-completion-bars"><div class="is-before"><div><span>Before algorithms</span><strong>7 / 8</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:87.5%"></span></div></div><div class="is-current"><div><span>Now</span><strong>8 / 8</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div></div><div class="progress-cases"><figure class="progress-case"><figcaption><h3>Knapsack · 80 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>No completed solve</strong></div><div class="progress-no-time">Time limit reached — no completion time</div><div class="progress-series-foot"><span>0/3 completed and checked · 3 solver limits</span><span>Completion time excludes unfinished runs</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>12.55 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571428%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 11.29 ms–13.36 ms</span></div></div><div class="progress-case-result"><span>No speed ratio without three completed pairs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Facility location · 128 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>453 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.17546463208195%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 452 ms–454 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>454 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571428%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 454 ms–458 ms</span></div></div><div class="progress-case-result"><span>Median timing within 1%.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Assignment · 144 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>105 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:88.31225379433232%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 104 ms–107 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>106 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571428%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 106 ms–107 ms</span></div></div><div class="progress-case-result"><span>1.1% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Binary TSP · 120 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>34.85 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 34.16 ms–35.47 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>34.39 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:88.10375712159767%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 34.06 ms–35.4 ms</span></div></div><div class="progress-case-result"><span>1.3% less time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Production · 120 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>19.91 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:86.29906352343994%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 19.12 ms–20.08 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>20.6 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 19.45 ms–20.86 ms</span></div></div><div class="progress-case-result"><span>3.5% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Bin packing · 44 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>10.74 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:87.89769924949783%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 10 ms–11.04 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>10.91 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 9.93 ms–10.99 ms</span></div></div><div class="progress-case-result"><span>1.6% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Circuit TSP · 12 cities</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>20.06 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:81.64886604495229%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 19.98 ms–21.07 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>21.93 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 18.85 ms–22.63 ms</span></div></div><div class="progress-case-result"><span>9.4% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Weighted queens · 12 queens</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>19.4 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:82.39470031972513%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 19.37 ms–20.1 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>21.02 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 20.07 ms–22.34 ms</span></div></div><div class="progress-case-result"><span>8.4% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure></div><p class="progress-track-note">External wall time includes process startup and model construction. Bars require all three repetitions to complete; unfinished runs have no completion-time bar. Small timing differences can reflect ordinary desktop activity.</p></section><section class="progress-track" aria-labelledby="track-algorithm-dfs"><div class="progress-track-heading"><div><h3 id="track-algorithm-dfs">Explicit depth-first frontier</h3><p>Both versions support every problem shown. Completion requires a solver proof and an independently checked optimum.</p></div><span class="progress-protocol">Same driver · 3 paired repetitions · 2 s solver limit</span></div><div class="progress-completion"><div><h4>Models completed at the known optimum</h4><p>All three repetitions must complete and pass checks.</p><span>Higher completion is better ↑</span></div><div class="progress-completion-bars"><div class="is-before"><div><span>Before algorithms</span><strong>1 / 2</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:50%"></span></div></div><div class="is-current"><div><span>Now</span><strong>2 / 2</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div></div><div class="progress-cases"><figure class="progress-case"><figcaption><h3>Knapsack · 80 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>No completed solve</strong></div><div class="progress-no-time">Time limit reached — no completion time</div><div class="progress-series-foot"><span>0/3 completed and checked · 3 solver limits</span><span>Completion time excludes unfinished runs</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>10.46 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 10.31 ms–11.06 ms</span></div></div><div class="progress-case-result"><span>No speed ratio without three completed pairs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Bin packing · 44 binary variables</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before algorithms</span><strong>10.83 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 10.12 ms–11.23 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Now</span><strong>10.57 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:87.13365990289779%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 10.26 ms–10.9 ms</span></div></div><div class="progress-case-result"><span>2.4% less time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure></div><p class="progress-track-note">External wall time includes process startup and model construction. Bars require all three repetitions to complete; unfinished runs have no completion-time bar. Small timing differences can reflect ordinary desktop activity.</p></section><aside class="progress-caveat"><strong>Solutions found before the limit</strong><p>All objectives below are minimization values: lower is better. Values are shown in repetition order. An incumbent is a feasible solution, not a proof of completion.</p></aside><div data-slot="table-container" class="relative w-full overflow-x-auto"><table data-slot="table" class="w-full caption-bottom text-sm"><thead data-slot="table-header" class="[&_tr]:border-b"><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Previously unfinished problem / route</th><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Before: objective</th><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Now: objective</th><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Known optimum</th></tr></thead><tbody data-slot="table-body" class="[&_tr:last-child]:border-0"><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Knapsack · 80 binary variables / native</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">-1947, -1947, -1947</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">-2464, -2464, -2464</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">-2464</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Knapsack · 80 binary variables / dfs</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">-1792, -1780, -1792</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">-2464, -2464, -2464</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">-2464</td></tr></tbody></table></div><p class="progress-track-note">An earlier 60-run experiment with generic search ordering was rejected: completion did not improve and a limited knapsack solution became worse. All pilot results remain in the download, separately from the accepted study. This same panel informed development, so it is an adaptive regression comparison, not an untouched holdout.</p><p class="progress-track-note">Every returned witness is checked against the original problem. Finding the known best value does not mean the solver proved optimality. The table retains all three outcomes; no failed or limited run is retried.</p><a class="progress-doc-link" href="./downloads/gecode-native-algorithms.json" download="">Download all 60 latest runs and provenance <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line" aria-hidden="true"><path d="M12 17V3"></path><path d="m6 11 6 6 6-6"></path><path d="M19 21H5"></path></svg></a><a class="progress-doc-link" href="./documentation/api/md_docs_2solver-parity_2ALGORITHMIC-CHECKPOINT.html">Read the algorithm checkpoint <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></section></details><details id="timing" class="progress-archive"><summary>Historical comparison · before this project</summary><section class="progress-section"><div class="progress-section-head"><div><p class="progress-eyebrow">01 / MEASURED RUNTIMES</p><h2>The same problems, both versions.</h2></div><span class="progress-host">Apple M1 Pro · macOS 15.7.4 · one solver process at a time</span></div><p class="progress-section-copy">Before is the preserved pre-project experimental build. Now is the ninth integrated version. Three alternating paired runs per problem use a two-second solver limit. External wall time includes startup, import, search and output.</p><section class="progress-track" aria-labelledby="track-mip"><div class="progress-track-heading"><div><h3 id="track-mip">Binary optimization: more instances reach an optimum</h3><p>Five existing pure-binary MIPLIB models. Both versions support these problems. Before uses the experimental binary adapter; now uses the numerical HiGHS facade.</p></div><span class="progress-protocol">3 runs per version · 2 s solve limit</span></div><div class="progress-completion"><div><h4>Models completed at the known optimum</h4><p>All three repetitions must complete and pass checks.</p><span>Higher completion is better ↑</span></div><div class="progress-completion-bars"><div class="is-before"><div><span>Before project · binary adapter</span><strong>1 / 5</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:20%"></span></div></div><div class="is-current"><div><span>Ninth checkpoint</span><strong>5 / 5</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div></div><div class="progress-cases"><figure class="progress-case"><figcaption><h3>p0033</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · binary adapter</span><strong>16.43 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:47.65988451000035%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 16.22 ms–17.25 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>30.77 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571429%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 29.97 ms–30.86 ms</span></div></div><div class="progress-case-result"><span>87.3% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>p0201</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · binary adapter</span><strong>No completed solve</strong></div><div class="progress-no-time">Time limit reached — no completion time</div><div class="progress-series-foot"><span>0/3 completed and checked · 3 solver limits</span><span>Completion time excludes unfinished runs</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>641 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 638 ms–654 ms</span></div></div><div class="progress-case-result"><span>No speed ratio without three completed pairs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>p0282</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · binary adapter</span><strong>No completed solve</strong></div><div class="progress-no-time">Time limit reached — no completion time</div><div class="progress-series-foot"><span>0/3 completed and checked · 3 solver limits</span><span>Completion time excludes unfinished runs</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>159 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 157 ms–159 ms</span></div></div><div class="progress-case-result"><span>No speed ratio without three completed pairs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>p0548</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · binary adapter</span><strong>No completed solve</strong></div><div class="progress-no-time">Time limit reached — no completion time</div><div class="progress-series-foot"><span>0/3 completed and checked · 3 solver limits</span><span>Completion time excludes unfinished runs</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>70.55 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 70.48 ms–71.84 ms</span></div></div><div class="progress-case-result"><span>No speed ratio without three completed pairs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>lseu</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · binary adapter</span><strong>No completed solve</strong></div><div class="progress-no-time">Time limit reached — no completion time</div><div class="progress-series-foot"><span>0/3 completed and checked · 3 solver limits</span><span>Completion time excludes unfinished runs</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>191 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571428%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 190 ms–192 ms</span></div></div><div class="progress-case-result"><span>No speed ratio without three completed pairs.</span><span>Zero-based scale · compare bars within this card</span></div></figure></div><p class="progress-track-note">Completion requires the solver to report optimal and an independent exact witness check to match the known optimum. Twelve old runs returned feasible points at the limit. p0201 found the known optimum but did not prove it; it remains unfinished. Numerical HiGHS status is not an exact optimality certificate.</p></section><section class="progress-track" aria-labelledby="track-native_cp"><div class="progress-track-heading"><div><h3 id="track-native_cp">Native CP: tiny end-to-end checks take longer</h3><p>Four unchanged legacy FlatZinc fixtures. These capabilities already existed. Preserved self-contained binaries are compared with the current shared-library build.</p></div><span class="progress-protocol">3 runs per version · 2 s solve limit</span></div><div class="progress-completion"><div><h4>Fixtures matching the original expected output</h4><p>All three repetitions must complete and pass checks.</p><span>Higher completion is better ↑</span></div><div class="progress-completion-bars"><div class="is-before"><div><span>Before project · native FlatZinc</span><strong>4 / 4</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div><div class="is-current"><div><span>Ninth checkpoint</span><strong>4 / 4</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:100%"></span></div></div></div></div><div class="progress-cases"><figure class="progress-case"><figcaption><h3>Job-shop scheduling</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · native FlatZinc</span><strong>5.04 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:42.49942739235211%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 4.4 ms–5.1 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>10.6 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 9.55 ms–11.11 ms</span></div></div><div class="progress-case-result"><span>110.1% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Cumulative scheduling</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · native FlatZinc</span><strong>4.21 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:40.90397786003896%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 3.95 ms–4.37 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>9.19 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 8.94 ms–9.43 ms</span></div></div><div class="progress-case-result"><span>118.3% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Sudoku</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · native FlatZinc</span><strong>4.56 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:41.27031199199222%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 4.5 ms–4.72 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>9.88 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 8.92 ms–9.94 ms</span></div></div><div class="progress-case-result"><span>116.3% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure><figure class="progress-case"><figcaption><h3>Multidimensional knapsack</h3><span class="progress-direction"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down" aria-hidden="true"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg> Less time is better</span></figcaption><div class="progress-series is-before"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Before project · native FlatZinc</span><strong>4.44 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:42.344878496227736%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 4.17 ms–4.49 ms</span></div></div><div class="progress-series is-current"><div class="progress-series-heading"><span><i aria-hidden="true"></i>Ninth checkpoint</span><strong>9.37 ms</strong></div><div class="progress-bar-track" aria-hidden="true"><span style="width:89.28571428571426%"></span></div><div class="progress-series-foot"><span>3/3 completed and checked</span><span>Range 9.34 ms–11.36 ms</span></div></div><div class="progress-case-result"><span>110.9% more time in these runs.</span><span>Zero-based scale · compare bars within this card</span></div></figure></div><p class="progress-track-note">Both versions match the original expected output in 12/12 runs. That is an output oracle, not an independent mathematical proof. Median internal search is only about 0.02–0.18 ms; process startup, loading, parsing and output dominate these 4–11 ms wall times. The build-layout change prevents attributing the full difference to solver algorithms.</p></section><aside class="progress-caveat"><strong>What these timings establish</strong><p>The current route completed all five binary models in every repetition; the old route completed one. The smallest binary model and all four tiny CP fixtures took more wall time now. These observations support broader practical completion on this small binary panel, not a blanket speedup.</p><p>An earlier, separate eighth-to-ninth regression comparison also recorded one four-second native-test timeout. It is retained in the historical checkpoint record. The fresh pre-project comparison had twelve solver-limit outcomes in the old binary cohort and no external kills or process errors.</p></aside></section></details><section id="support" class="progress-section"><div class="progress-section-head"><div><p class="progress-eyebrow">02 / PROBLEM TYPES & API CAPABILITIES</p><h2>Existing strengths. Added reach. Clear limits.</h2></div></div><p class="progress-section-copy">Before means the enhanced Gecode 6.4 checkout at the start of this project. Now includes the latest capacity optimization; supported problem types are unchanged since the ninth checkpoint. “Added” describes the documented API or solver route, not every possible hand-written CP encoding.</p><div class="progress-support-key"><span class="support-badge retained">Already available</span><span class="support-badge added">Added or expanded</span><span class="support-badge partial">Supported subset</span><span class="support-badge absent">Still outside scope</span></div><div data-slot="table-container" class="relative w-full overflow-x-auto"><table data-slot="table" class="w-full caption-bottom text-sm progress-support-table"><thead data-slot="table-header" class="[&_tr]:border-b"><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Problem or workflow</th><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Before this project</th><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Now</th><th data-slot="table-head" class="text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0">Engine & boundary</th></tr></thead><tbody data-slot="table-body" class="[&_tr:last-child]:border-0"><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Binary & bounded-integer optimization</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Native CP; experimental binary LP hybrid</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge added">Expanded owning API</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Native exact integer route within activity limits; numerical integer models also use HiGHS. Binary problems were already supported.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Continuous linear programming (LP)</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">No general numerical LP route</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge added">Added: numerical LP</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">HiGHS backend. Original FloatVar interval constraints remain a separate CP facility, not this LP solver.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Mixed integer + continuous linear models</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">No general MILP route</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge added">Added: numerical MILP</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">HiGHS supplies MIP search. Includes integer, binary and continuous variables; numerical bounds and tolerances apply.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Semicontinuous & semi-integer domains</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Possible CP encodings; no retained MP type</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge partial">Explicit domain types</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Numerical adapter requires a finite positive nonzero lower bound and upper bound ≤100,000. Native route accepts supported finite semi-integer domains.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Global constraints & scheduling</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Native all-different, table, circuit, scheduling and more</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge retained">Already available + six retained globals</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Original Gecode CP remains available. The new facade retains all-different, element, table, cumulative, circuit and Regular; it does not expose every native global.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>FlatZinc & MiniZinc</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Native FlatZinc/MiniZinc route</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge retained">Existing route + opt-in new route</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Separate Optimize compiler/registration supports a documented integer/Boolean subset. Existing solver defaults and original route remain available.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Continuous convex quadratic objectives</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">No dedicated numerical QP API</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge partial">Added: weighted-square subset</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">HiGHS QP via a distinct API: bounded continuous variables, weighted affine squares, convex min/concave max. No arbitrary Hessian, QCP or integer QP.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>LP duals, bases & sensitivity</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">No unified original-model observation API</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge partial">Added: checked numerical data</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Owning duals, basis starts, rays/Farkas evidence and selected-basis coefficient/equality-RHS sensitivity. Sensitivity is not an exact certificate or a full vendor-equivalent range API.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Repeated solves & application workflows</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Application-managed models and search</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge partial">Added: explicit workflows</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Persistent numerical sessions, serial scenarios, ordered objectives, conflict diagnostics, weighted L1 repair and ranked pools; each has documented support and budget limits.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Native incumbent improvement</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Native branch-and-bound; application-defined heuristics</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge partial">Added: bounded neighborhood API</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">One explicit binary Hamming-distance attempt after a valid incumbent. Checked against the original model; C++ only; no full heuristic portfolio.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Owning optimization C & Python APIs</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">No matching Optimize C/Python package</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge added">Added: versioned owning bindings</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">C++ core, versioned C handles and Python ctypes, including LP sensitivity. Current installed libraries are tested; the older wheel has not been rebuilt.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Mixed-integer QP, QCP & general global nonlinear MP</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">No equivalent dedicated MP engine</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge absent">Still outside Optimize scope</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Existing finite-domain and FloatVar expression facilities are not equivalent to a general numerical/global MIQP, QCP or nonlinear engine.</td></tr><tr data-slot="table-row" class="hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50"><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><strong>Parallel optimization & learning</strong></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">Native parallel CP; no general learned hybrid</td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0"><span class="support-badge partial">Native CP retained; new hybrid work pending</span></td><td data-slot="table-cell" class="p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0">The added Optimize routes use one worker. Production learning, parallel hybrid search and general action callbacks remain unfinished.</td></tr></tbody></table></div><p class="progress-track-note">HiGHS supplies numerical LP/MILP/QP solving. Native Gecode supplies CP and the bounded exact integer route. Native CP parallelism already existed; the new optimization adapter currently allows one worker per solve. This is not a claim of CPLEX/Gurobi parity.</p></section><section id="checks" class="progress-section"><div class="progress-section-head"><div><p class="progress-eyebrow">03 / NEW FEATURE CHECKS</p><h2>Working now, with no old API equivalent.</h2></div></div><p class="progress-section-copy">These are historical ninth-checkpoint correctness fixtures, including their assertions and process startup. They demonstrate the new interfaces; their time is not a large-model performance benchmark.</p><div class="progress-new-features"><article><span class="support-badge added">New interface</span><h3>LP coefficient & equality sensitivity</h3><div class="progress-feature-timing"><span>Before<strong>No equivalent API</strong></span><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg><span>Ninth checkpoint<strong>14.82 ms</strong></span></div><p>63 checks passed · Analytic interval checks for both objective senses, quotas and historical ownership.</p></article><article><span class="support-badge added">New interface</span><h3>Bounded native incumbent improvement</h3><div class="progress-feature-timing"><span>Before<strong>No equivalent API</strong></span><svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg><span>Ninth checkpoint<strong>27.88 ms</strong></span></div><p>14 checks passed · A real local improvement and an independently enumerated global optimum of −29.</p></article></div><div class="progress-validation"><strong>35/35 current FAST cases passed</strong><span>5.84 s complete command · 28 s outer budget · timing excludes compilation</span></div></section><section id="method" class="progress-section"><div class="progress-section-head"><div><p class="progress-eyebrow">04 / REPRODUCIBILITY & DOCUMENTATION</p><h2>The evidence behind the page.</h2></div></div><div class="progress-method"><div><h3>What is measured</h3><p>The current curves time the complete solver call, including optional algorithm work. External times also include startup and loading. Results use repeated runs on the same machine; each successful answer is checked. These small panels are kept separate because they use different models and solver routes. They are not combined into an overall solver score.</p></div><div><h3>What is preserved</h3><p>Original binaries, input hashes, solver versions, commands, every run outcome, and time limits are retained. No benchmark result is replaced with a reference solution. The original checkout remains unchanged.</p></div><div><h3>How to interpret a change</h3><p>Reported percentage changes describe observed medians. Cache state, startup and ordinary desktop activity affect short runs. There is no claim of statistical significance, broad industrial speedup, memory improvement or commercial-solver parity.</p></div><div><h3>Documentation follows the code</h3><p>The API guide and native Doxygen documentation cover model support, backend selection, numerical versus exact guarantees, sensitivity, neighborhoods, exact capacity optimization and current restrictions.</p><a href="./documentation/api/PageOptimize.html" class="progress-doc-link">Read the current API guide <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="./documentation/api/md_docs_2solver-parity_2CONFIGURED-BENCHMARK.html" class="progress-doc-link">Read the benchmark method <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div><details class="progress-provenance"><summary>Source versions, run counts and all per-case results</summary><p>Size-scaling source: <code>95b54f2f5553fb078502bff483fb9067c4b37887</code>. Earlier algorithms: <code>5d533bcd4f66e9f065e24bac5ed7a7c976d715db</code>. Capability baseline: <code>e10562fd9</code>. Measurement details, support notes and per-case outcomes are available in the downloadable JSON.</p><a class="progress-doc-link" href="./downloads/gecode-progress.json" download="">Download historical results and support data <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down-to-line" aria-hidden="true"><path d="M12 17V3"></path><path d="m6 11 6 6 6-6"></path><path d="M19 21H5"></path></svg></a></details></section></main><footer class="progress-footer"><span>Gecode optimization preview · 5 September 2026</span><a href="#results">Back to benchmark results <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></footer></div></body></html>