From 8c3d18814d92cf94b64e347f4837d5e7edaca78f Mon Sep 17 00:00:00 2001 From: Isaac_Aracena Date: Fri, 5 Jun 2026 15:59:54 -0400 Subject: [PATCH] feat: agregar eliminacion y Walmart Connect multipais --- dist/assets/index-7ZtFhhZY.css | 1 + dist/assets/index-BEinrcZb.js | 341 ------------------------ dist/assets/index-DjXLQf1G.css | 1 - dist/assets/index-ZKG15NE5.js | 348 +++++++++++++++++++++++++ dist/index.html | 4 +- src/components/board/ProjectCard.tsx | 23 +- src/components/board/ProjectDialog.tsx | 272 +++++++++++++++---- src/context/AuthContext.tsx | 13 +- src/lib/store.ts | 76 +++++- src/pages/BoardPage.tsx | 45 +++- 10 files changed, 720 insertions(+), 404 deletions(-) create mode 100644 dist/assets/index-7ZtFhhZY.css delete mode 100644 dist/assets/index-BEinrcZb.js delete mode 100644 dist/assets/index-DjXLQf1G.css create mode 100644 dist/assets/index-ZKG15NE5.js diff --git a/dist/assets/index-7ZtFhhZY.css b/dist/assets/index-7ZtFhhZY.css new file mode 100644 index 0000000..13fc18a --- /dev/null +++ b/dist/assets/index-7ZtFhhZY.css @@ -0,0 +1 @@ +/*! tailwindcss v4.3.0 | 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)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-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-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-100:oklch(93.6% .032 17.717);--color-red-800:oklch(44.4% .177 26.899);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-800:oklch(43.2% .095 166.913);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--drop-shadow-sm:0 1px 2px #00000026;--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-md:12px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-background:var(--background);--color-foreground:var(--foreground);--color-border:var(--border)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;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;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;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-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(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.-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-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-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-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:calc(var(--spacing) * 0)}.-left-12{left:calc(var(--spacing) * -12)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[1\]{z-index:1}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mx-auto{margin-inline:auto}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:calc(var(--spacing) * 1)}.-mt-4{margin-top:calc(var(--spacing) * -4)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mt-auto{margin-top:auto}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-4{margin-left:calc(var(--spacing) * -4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.size-\(--cell-size\){width:var(--cell-size);height:var(--cell-size)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-\(--cell-size\){height:var(--cell-size)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-\(--radix-context-menu-content-available-height\){max-height:var(--radix-context-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-\[92vh\]{max-height:92vh}.max-h-\[300px\]{max-height:300px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-\[60px\]{min-height:60px}.min-h-\[230px\]{min-height:230px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-\(--cell-size\){width:var(--cell-size)}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-0{width:calc(var(--spacing) * 0)}.w-1{width:calc(var(--spacing) * 1)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-14{width:calc(var(--spacing) * 14)}.w-52{width:calc(var(--spacing) * 52)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[100px\]{width:100px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[1400px\]{max-width:1400px}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.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-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.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-\(--radix-context-menu-content-transform-origin\){transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-hover-card-content-transform-origin\){transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\(--radix-menubar-content-transform-origin\){transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\(--radix-popover-content-transform-origin\){transform-origin:var(--radix-popover-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;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-\[-50\%\]{--tw-translate-x:-50%;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: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-caret-blink{animation:1.25s ease-out infinite caret-blink}.animate-in{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)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,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}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:calc(var(--spacing) * 0)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-t-2xl{border-top-left-radius:calc(var(--radius) + 8px);border-top-right-radius:calc(var(--radius) + 8px)}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-\(--color-border\){border-color:var(--color-border)}.border-amber-300\/50{border-color:#ffd23680}@supports (color:color-mix(in lab,red,red)){.border-amber-300\/50{border-color:color-mix(in oklab,var(--color-amber-300) 50%,transparent)}}.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-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/70{border-color:color-mix(in oklab,var(--border) 70%,transparent)}}.border-destructive\/20{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.border-destructive\/50{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/50{border-color:color-mix(in oklab,var(--destructive) 50%,transparent)}}.border-input{border-color:var(--input)}.border-primary,.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.border-primary\/50{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/50{border-color:color-mix(in oklab,var(--primary) 50%,transparent)}}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\(--color-bg\){background-color:var(--color-bg)}.bg-accent{background-color:var(--accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-background,.bg-background\/85{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/85{background-color:color-mix(in oklab,var(--background) 85%,transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.bg-black\/80{background-color:color-mix(in oklab,var(--color-black) 80%,transparent)}}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/40{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/40{background-color:color-mix(in oklab,var(--card) 40%,transparent)}}.bg-card\/70{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/70{background-color:color-mix(in oklab,var(--card) 70%,transparent)}}.bg-destructive,.bg-destructive\/5{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--destructive) 5%,transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-foreground{background-color:var(--foreground)}.bg-muted,.bg-muted\/30{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/30{background-color:color-mix(in oklab,var(--muted) 30%,transparent)}}.bg-muted\/40{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/40{background-color:color-mix(in oklab,var(--muted) 40%,transparent)}}.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-muted\/60{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/60{background-color:color-mix(in oklab,var(--muted) 60%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary) 5%,transparent)}}.bg-primary\/10{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--primary) 10%,transparent)}}.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary) 20%,transparent)}}.bg-red-100{background-color:var(--color-red-100)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-\[1px\]{padding:1px}.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)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-24{padding-block:calc(var(--spacing) * 24)}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-1{padding-right:calc(var(--spacing) * 1)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-7{padding-bottom:calc(var(--spacing) * 7)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.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-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-accent-foreground{color:var(--accent-foreground)}.text-amber-900{color:var(--color-amber-900)}.text-amber-950{color:var(--color-amber-950)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-800{color:var(--color-emerald-800)}.text-foreground,.text-foreground\/70{color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.text-foreground\/70{color:color-mix(in oklab,var(--foreground) 70%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/70{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/70{color:color-mix(in oklab,var(--sidebar-foreground) 70%,transparent)}}.text-white{color:var(--color-white)}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-65{opacity:.65}.opacity-70{opacity:.7}.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-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);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-border{--tw-ring-color:var(--border)}.ring-foreground\/40{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab,red,red)){.ring-foreground\/40{--tw-ring-color:color-mix(in oklab, var(--foreground) 40%, transparent)}}.ring-ring{--tw-ring-color:var(--ring)}.ring-sidebar-ring{--tw-ring-color:var(--sidebar-ring)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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-\[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-\[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))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-1000{--tw-duration:1s;transition-duration:1s}.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}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.\[--cell-size\:2rem\]{--cell-size:2rem}.group-focus-within\/menu-item\:opacity-100:is(:where(.group\/menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *),.group-hover\/menu-item\:opacity-100:is(:where(.group\/menu-item):hover *){opacity:1}}.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-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\)_\+_theme\(spacing\.4\)\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + 1rem)}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + 1rem + 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\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}.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-\[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(--ring)}.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(--ring)}@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(--ring) 50%, transparent)}}.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-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[variant\=floating\]\:rounded-lg:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}.group-data-\[variant\=floating\]\:border:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[variant\=floating\]\:border-sidebar-border:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}.group-data-\[variant\=floating\]\:shadow: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-\[\.toast\]\:bg-muted:is(:where(.group).toast *){background-color:var(--muted)}.group-\[\.toast\]\:bg-primary:is(:where(.group).toast *){background-color:var(--primary)}.group-\[\.toast\]\:text-muted-foreground:is(:where(.group).toast *){color:var(--muted-foreground)}.group-\[\.toast\]\:text-primary-foreground:is(:where(.group).toast *){color:var(--primary-foreground)}.group-\[\.toaster\]\:border-border:is(:where(.group).toaster *){border-color:var(--border)}.group-\[\.toaster\]\:bg-background:is(:where(.group).toaster *){background-color:var(--background)}.group-\[\.toaster\]\:text-foreground:is(:where(.group).toaster *){color:var(--foreground)}.group-\[\.toaster\]\:shadow-lg:is(:where(.group).toaster *){--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)}@media(hover:hover){.peer-hover\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button):hover~*){color:var(--sidebar-accent-foreground)}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}.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)}.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)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}.after\:inset-y-0:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:calc(var(--spacing) * 1)}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.group-data-\[collapsible\=offcanvas\]\:after\:left-full:is(:where(.group)[data-collapsible=offcanvas] *):after{content:var(--tw-content);left:100%}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}@media(hover:hover){.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing) * -.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:bg-accent:hover,.hover\:bg-accent\/60:hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/60:hover{background-color:color-mix(in oklab,var(--accent) 60%,transparent)}}.hover\:bg-destructive\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab,var(--destructive) 80%,transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-emerald-100:hover{background-color:var(--color-emerald-100)}.hover\:bg-muted:hover,.hover\:bg-muted\/40:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/40:hover{background-color:color-mix(in oklab,var(--muted) 40%,transparent)}}.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\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.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)}.group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:is(:where(.group)[data-collapsible=offcanvas] *):hover{background-color:var(--sidebar)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:var(--sidebar-border)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:bg-destructive\/10:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus\:bg-destructive\/10:focus{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:text-destructive:focus{color:var(--destructive)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:border-border:focus-visible{border-color:var(--border)}.focus-visible\:bg-card:focus-visible{background-color:var(--card)}.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)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color:var(--sidebar-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-sidebar-accent:active{background-color:var(--sidebar-accent)}.active\:text-sidebar-accent-foreground:active{color:var(--sidebar-accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-focus\:border-ring:has(:focus){border-color:var(--ring)}.has-focus\:ring-\[3px\]:has(:focus){--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-focus\:ring-ring\/50:has(:focus){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.has-focus\:ring-ring\/50:has(:focus){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:var(--sidebar)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:var(--muted-foreground)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:var(--sidebar-accent)}.data-\[active\=true\]\:font-medium[data-active=true]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:var(--sidebar-accent-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.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-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:calc(var(--spacing) * 0)}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:calc(var(--spacing) * 1)}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.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(--primary-foreground)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:var(--accent)}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:var(--accent-foreground)}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.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(--primary-foreground)}.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(--primary-foreground)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{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-\[state\=closed\]\:animate-out[data-state=closed]{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\=closed\]\:duration-300[data-state=closed]{--tw-duration:.3s;transition-duration:.3s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.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\=on\]\:bg-accent[data-state=on]{background-color:var(--accent)}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:var(--accent-foreground)}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{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-\[state\=open\]\:animate-in[data-state=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\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:var(--secondary)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=open\]\:duration-500[data-state=open]{--tw-duration:.5s;transition-duration:.5s}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}@media(hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent)}.data-\[state\=open\]\:hover\:bg-sidebar-accent[data-state=open]:hover{background-color:var(--sidebar-accent)}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground[data-state=open]:hover{color:var(--sidebar-accent-foreground)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.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}@media(min-width:40rem){.sm\:mt-0{margin-top:calc(var(--spacing) * 0)}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}:where(.sm\: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)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:absolute{position:absolute}.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:flex-none{flex:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.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:calc(var(--radius) + 4px)}.md\:peer-data-\[variant\=inset\]\:shadow: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-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2:is(:where(.peer)[data-state=collapsed]~*):is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 2)}}.after\:md\:hidden:after{content:var(--tw-content)}@media(min-width:48rem){.after\:md\:hidden:after{display:none}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:border-destructive:is(.dark *){border-color:var(--destructive)}.\[\&_\.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-none .recharts-layer{--tw-outline-style:none;outline-style:none}.\[\&_\.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-none .recharts-sector{--tw-outline-style:none;outline-style:none}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:#0000}.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{--tw-outline-style:none;outline-style:none}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:var(--muted-foreground)}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:calc(var(--spacing) * 0)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:calc(var(--spacing) * 5)}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:calc(var(--spacing) * 12)}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-block:calc(var(--spacing) * 3)}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:calc(var(--spacing) * 5)}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:calc(var(--spacing) * 5)}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_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}.\[\&_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}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>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\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:top-4>svg{top:calc(var(--spacing) * 4)}.\[\&\>svg\]\:left-4>svg{left:calc(var(--spacing) * 4)}.\[\&\>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\]\:h-3\.5>svg{height:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:w-2\.5>svg{width:calc(var(--spacing) * 2.5)}.\[\&\>svg\]\:w-3>svg{width:calc(var(--spacing) * 3)}.\[\&\>svg\]\:w-3\.5>svg{width:calc(var(--spacing) * 3.5)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:var(--destructive)}.\[\&\>svg\]\:text-foreground>svg{color:var(--foreground)}.\[\&\>svg\]\:text-muted-foreground>svg{color:var(--muted-foreground)}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:var(--sidebar-accent-foreground)}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;translate:var(--tw-translate-x) var(--tw-translate-y)}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:calc(var(--spacing) * 7)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{rotate:90deg}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[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,[data-side=right] .\[\[data-side\=right\]_\&\]\: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-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}@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}:root{--radius:.875rem;--background:oklch(99% .003 280);--foreground:oklch(25% .02 280);--card:oklch(100% 0 0);--card-foreground:oklch(25% .02 280);--popover:oklch(100% 0 0);--popover-foreground:oklch(25% .02 280);--primary:oklch(55% .18 290);--primary-foreground:oklch(99% .005 280);--secondary:oklch(97% .005 280);--secondary-foreground:oklch(30% .02 280);--muted:oklch(96.5% .004 280);--muted-foreground:oklch(50% .015 280);--accent:oklch(96% .02 290);--accent-foreground:oklch(35% .05 290);--destructive:oklch(60% .22 27);--destructive-foreground:oklch(99% 0 0);--border:oklch(92.5% .005 280);--input:oklch(93% .005 280);--ring:oklch(65% .15 290);--chart-1:oklch(65% .18 250);--chart-2:oklch(65% .18 150);--chart-3:oklch(70% .16 80);--chart-4:oklch(60% .2 20);--chart-5:oklch(55% .18 290);--sidebar:oklch(98.5% .003 280);--sidebar-foreground:oklch(25% .02 280);--sidebar-primary:oklch(55% .18 290);--sidebar-primary-foreground:oklch(99% 0 0);--sidebar-accent:oklch(96% .02 290);--sidebar-accent-foreground:oklch(35% .05 290);--sidebar-border:oklch(92.5% .005 280);--sidebar-ring:oklch(65% .15 290);--shadow-soft:0 1px 2px oklch(50% .02 280/.06), 0 4px 12px oklch(50% .02 280/.05);--shadow-hover:0 4px 8px oklch(50% .02 280/.08), 0 12px 28px oklch(50% .02 280/.1)}.dark{--background:oklch(12.9% .042 264.695);--foreground:oklch(98.4% .003 247.858);--card:oklch(20.8% .042 265.755);--card-foreground:oklch(98.4% .003 247.858);--popover:oklch(20.8% .042 265.755);--popover-foreground:oklch(98.4% .003 247.858);--primary:oklch(92.9% .013 255.508);--primary-foreground:oklch(20.8% .042 265.755);--secondary:oklch(27.9% .041 260.031);--secondary-foreground:oklch(98.4% .003 247.858);--muted:oklch(27.9% .041 260.031);--muted-foreground:oklch(70.4% .04 256.788);--accent:oklch(27.9% .041 260.031);--accent-foreground:oklch(98.4% .003 247.858);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.4% .003 247.858);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.1% .027 264.364);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.8% .042 265.755);--sidebar-foreground:oklch(98.4% .003 247.858);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.4% .003 247.858);--sidebar-accent:oklch(27.9% .041 260.031);--sidebar-accent-foreground:oklch(98.4% .003 247.858);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.1% .027 264.364)}@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-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-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-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:"";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:"";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:"";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:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@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(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))))}to{height:0}}@keyframes caret-blink{0%,70%,to{opacity:1}20%,50%{opacity:0}} diff --git a/dist/assets/index-BEinrcZb.js b/dist/assets/index-BEinrcZb.js deleted file mode 100644 index 61c9f2c..0000000 --- a/dist/assets/index-BEinrcZb.js +++ /dev/null @@ -1,341 +0,0 @@ -function OT(e,t){for(var a=0;as[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const c of o)if(c.type==="childList")for(const u of c.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function a(o){const c={};return o.integrity&&(c.integrity=o.integrity),o.referrerPolicy&&(c.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?c.credentials="include":o.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function s(o){if(o.ep)return;o.ep=!0;const c=a(o);fetch(o.href,c)}})();function L0(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Jf={exports:{}},mo={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Vy;function kT(){if(Vy)return mo;Vy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(s,o,c){var u=null;if(c!==void 0&&(u=""+c),o.key!==void 0&&(u=""+o.key),"key"in o){c={};for(var d in o)d!=="key"&&(c[d]=o[d])}else c=o;return o=c.ref,{$$typeof:e,type:s,key:u,ref:o!==void 0?o:null,props:c}}return mo.Fragment=t,mo.jsx=a,mo.jsxs=a,mo}var Ky;function jT(){return Ky||(Ky=1,Jf.exports=kT()),Jf.exports}var b=jT(),Qf={exports:{}},Te={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Yy;function MT(){if(Yy)return Te;Yy=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),S=Symbol.iterator;function _(j){return j===null||typeof j!="object"?null:(j=S&&j[S]||j["@@iterator"],typeof j=="function"?j:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,R={};function C(j,G,F){this.props=j,this.context=G,this.refs=R,this.updater=F||E}C.prototype.isReactComponent={},C.prototype.setState=function(j,G){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,G,"setState")},C.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function N(){}N.prototype=C.prototype;function A(j,G,F){this.props=j,this.context=G,this.refs=R,this.updater=F||E}var D=A.prototype=new N;D.constructor=A,x(D,C.prototype),D.isPureReactComponent=!0;var V=Array.isArray;function q(){}var U={H:null,A:null,T:null,S:null},I=Object.prototype.hasOwnProperty;function ae(j,G,F){var ee=F.ref;return{$$typeof:e,type:j,key:G,ref:ee!==void 0?ee:null,props:F}}function me(j,G){return ae(j.type,G,j.props)}function ve(j){return typeof j=="object"&&j!==null&&j.$$typeof===e}function de(j){var G={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(F){return G[F]})}var pe=/\/+/g;function J(j,G){return typeof j=="object"&&j!==null&&j.key!=null?de(""+j.key):G.toString(36)}function ie(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(q,q):(j.status="pending",j.then(function(G){j.status==="pending"&&(j.status="fulfilled",j.value=G)},function(G){j.status==="pending"&&(j.status="rejected",j.reason=G)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function O(j,G,F,ee,ne){var se=typeof j;(se==="undefined"||se==="boolean")&&(j=null);var te=!1;if(j===null)te=!0;else switch(se){case"bigint":case"string":case"number":te=!0;break;case"object":switch(j.$$typeof){case e:case t:te=!0;break;case v:return te=j._init,O(te(j._payload),G,F,ee,ne)}}if(te)return ne=ne(j),te=ee===""?"."+J(j,0):ee,V(ne)?(F="",te!=null&&(F=te.replace(pe,"$&/")+"/"),O(ne,G,F,"",function(Ce){return Ce})):ne!=null&&(ve(ne)&&(ne=me(ne,F+(ne.key==null||j&&j.key===ne.key?"":(""+ne.key).replace(pe,"$&/")+"/")+te)),G.push(ne)),1;te=0;var ce=ee===""?".":ee+":";if(V(j))for(var le=0;le>>1,W=O[Z];if(0>>1;Zo(F,K))eeo(ne,F)?(O[Z]=ne,O[ee]=K,Z=ee):(O[Z]=F,O[G]=K,Z=G);else if(eeo(ne,K))O[Z]=ne,O[ee]=K,Z=ee;else break e}}return $}function o(O,$){var K=O.sortIndex-$.sortIndex;return K!==0?K:O.id-$.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var u=Date,d=u.now();e.unstable_now=function(){return u.now()-d}}var h=[],p=[],v=1,g=null,S=3,_=!1,E=!1,x=!1,R=!1,C=typeof setTimeout=="function"?setTimeout:null,N=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function D(O){for(var $=a(p);$!==null;){if($.callback===null)s(p);else if($.startTime<=O)s(p),$.sortIndex=$.expirationTime,t(h,$);else break;$=a(p)}}function V(O){if(x=!1,D(O),!E)if(a(h)!==null)E=!0,q||(q=!0,de());else{var $=a(p);$!==null&&ie(V,$.startTime-O)}}var q=!1,U=-1,I=5,ae=-1;function me(){return R?!0:!(e.unstable_now()-aeO&&me());){var Z=g.callback;if(typeof Z=="function"){g.callback=null,S=g.priorityLevel;var W=Z(g.expirationTime<=O);if(O=e.unstable_now(),typeof W=="function"){g.callback=W,D(O),$=!0;break t}g===a(h)&&s(h),D(O)}else s(h);g=a(h)}if(g!==null)$=!0;else{var j=a(p);j!==null&&ie(V,j.startTime-O),$=!1}}break e}finally{g=null,S=K,_=!1}$=void 0}}finally{$?de():q=!1}}}var de;if(typeof A=="function")de=function(){A(ve)};else if(typeof MessageChannel<"u"){var pe=new MessageChannel,J=pe.port2;pe.port1.onmessage=ve,de=function(){J.postMessage(null)}}else de=function(){C(ve,0)};function ie(O,$){U=C(function(){O(e.unstable_now())},$)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(O){O.callback=null},e.unstable_forceFrameRate=function(O){0>O||125Z?(O.sortIndex=K,t(p,O),a(h)===null&&O===a(p)&&(x?(N(U),U=-1):x=!0,ie(V,K-Z))):(O.sortIndex=W,t(h,O),E||_||(E=!0,q||(q=!0,de()))),O},e.unstable_shouldYield=me,e.unstable_wrapCallback=function(O){var $=S;return function(){var K=S;S=$;try{return O.apply(this,arguments)}finally{S=K}}}})(th)),th}var Xy;function LT(){return Xy||(Xy=1,eh.exports=DT()),eh.exports}var nh={exports:{}},kt={};/** - * @license React - * react-dom.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Jy;function UT(){if(Jy)return kt;Jy=1;var e=mu();function t(h){var p="https://react.dev/errors/"+h;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),nh.exports=UT(),nh.exports}/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Zy;function zT(){if(Zy)return po;Zy=1;var e=LT(),t=mu(),a=U0();function s(n){var r="https://react.dev/errors/"+n;if(1W||(n.current=Z[W],Z[W]=null,W--)}function F(n,r){W++,Z[W]=n.current,n.current=r}var ee=j(null),ne=j(null),se=j(null),te=j(null);function ce(n,r){switch(F(se,r),F(ne,n),F(ee,null),r.nodeType){case 9:case 11:n=(n=r.documentElement)&&(n=n.namespaceURI)?my(n):0;break;default:if(n=r.tagName,r=r.namespaceURI)r=my(r),n=py(r,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}G(ee),F(ee,n)}function le(){G(ee),G(ne),G(se)}function Ce(n){n.memoizedState!==null&&F(te,n);var r=ee.current,i=py(r,n.type);r!==i&&(F(ne,n),F(ee,i))}function Re(n){ne.current===n&&(G(ee),G(ne)),te.current===n&&(G(te),co._currentValue=K)}var Ee,rt;function Ke(n){if(Ee===void 0)try{throw Error()}catch(i){var r=i.stack.trim().match(/\n( *(at )?)/);Ee=r&&r[1]||"",rt=-1)":-1f||k[l]!==P[f]){var Y=` -`+k[l].replace(" at new "," at ");return n.displayName&&Y.includes("")&&(Y=Y.replace("",n.displayName)),Y}while(1<=l&&0<=f);break}}}finally{En=!1,Error.prepareStackTrace=i}return(i=n?n.displayName||n.name:"")?Ke(i):""}function Xt(n,r){switch(n.tag){case 26:case 27:case 5:return Ke(n.type);case 16:return Ke("Lazy");case 13:return n.child!==r&&r!==null?Ke("Suspense Fallback"):Ke("Suspense");case 19:return Ke("SuspenseList");case 0:case 15:return cn(n.type,!1);case 11:return cn(n.type.render,!1);case 1:return cn(n.type,!0);case 31:return Ke("Activity");default:return""}}function ya(n){try{var r="",i=null;do r+=Xt(n,i),i=n,n=n.return;while(n);return r}catch(l){return` -Error generating stack: `+l.message+` -`+l.stack}}var vt=Object.prototype.hasOwnProperty,wi=e.unstable_scheduleCallback,Si=e.unstable_cancelCallback,Mt=e.unstable_shouldYield,Dr=e.unstable_requestPaint,Dt=e.unstable_now,Pu=e.unstable_getCurrentPriorityLevel,ba=e.unstable_ImmediatePriority,nl=e.unstable_UserBlockingPriority,wa=e.unstable_NormalPriority,_i=e.unstable_LowPriority,nr=e.unstable_IdlePriority,rl=e.log,Lr=e.unstable_setDisableYieldValue,Sa=null,Lt=null;function Tn(n){if(typeof rl=="function"&&Lr(n),Lt&&typeof Lt.setStrictMode=="function")try{Lt.setStrictMode(Sa,n)}catch{}}var Nt=Math.clz32?Math.clz32:Bn,Bu=Math.log,xi=Math.LN2;function Bn(n){return n>>>=0,n===0?32:31-(Bu(n)/xi|0)|0}var rs=256,as=262144,_a=4194304;function In(n){var r=n&42;if(r!==0)return r;switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&261888;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function xe(n,r,i){var l=n.pendingLanes;if(l===0)return 0;var f=0,m=n.suspendedLanes,w=n.pingedLanes;n=n.warmLanes;var T=l&134217727;return T!==0?(l=T&~m,l!==0?f=In(l):(w&=T,w!==0?f=In(w):i||(i=T&~n,i!==0&&(f=In(i))))):(T=l&~m,T!==0?f=In(T):w!==0?f=In(w):i||(i=l&~n,i!==0&&(f=In(i)))),f===0?0:r!==0&&r!==f&&(r&m)===0&&(m=f&-f,i=r&-r,m>=i||m===32&&(i&4194048)!==0)?r:f}function Ze(n,r){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&r)===0}function yt(n,r){switch(n){case 1:case 2:case 4:case 8:case 64:return r+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ot(){var n=_a;return _a<<=1,(_a&62914560)===0&&(_a=4194304),n}function Ur(n){for(var r=[],i=0;31>i;i++)r.push(n);return r}function tt(n,r){n.pendingLanes|=r,r!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function Pt(n,r,i,l,f,m){var w=n.pendingLanes;n.pendingLanes=i,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=i,n.entangledLanes&=i,n.errorRecoveryDisabledLanes&=i,n.shellSuspendCounter=0;var T=n.entanglements,k=n.expirationTimes,P=n.hiddenUpdates;for(i=w&~i;0"u")return null;try{return n.activeElement||n.body}catch{return n.body}}var EE=/[\n"\\]/g;function dn(n){return n.replace(EE,function(r){return"\\"+r.charCodeAt(0).toString(16)+" "})}function Gu(n,r,i,l,f,m,w,T){n.name="",w!=null&&typeof w!="function"&&typeof w!="symbol"&&typeof w!="boolean"?n.type=w:n.removeAttribute("type"),r!=null?w==="number"?(r===0&&n.value===""||n.value!=r)&&(n.value=""+un(r)):n.value!==""+un(r)&&(n.value=""+un(r)):w!=="submit"&&w!=="reset"||n.removeAttribute("value"),r!=null?Vu(n,w,un(r)):i!=null?Vu(n,w,un(i)):l!=null&&n.removeAttribute("value"),f==null&&m!=null&&(n.defaultChecked=!!m),f!=null&&(n.checked=f&&typeof f!="function"&&typeof f!="symbol"),T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"?n.name=""+un(T):n.removeAttribute("name")}function lp(n,r,i,l,f,m,w,T){if(m!=null&&typeof m!="function"&&typeof m!="symbol"&&typeof m!="boolean"&&(n.type=m),r!=null||i!=null){if(!(m!=="submit"&&m!=="reset"||r!=null)){qu(n);return}i=i!=null?""+un(i):"",r=r!=null?""+un(r):i,T||r===n.value||(n.value=r),n.defaultValue=r}l=l??f,l=typeof l!="function"&&typeof l!="symbol"&&!!l,n.checked=T?n.checked:!!l,n.defaultChecked=!!l,w!=null&&typeof w!="function"&&typeof w!="symbol"&&typeof w!="boolean"&&(n.name=w),qu(n)}function Vu(n,r,i){r==="number"&&il(n.ownerDocument)===n||n.defaultValue===""+i||(n.defaultValue=""+i)}function ds(n,r,i,l){if(n=n.options,r){r={};for(var f=0;f"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Xu=!1;if(sr)try{var Ri={};Object.defineProperty(Ri,"passive",{get:function(){Xu=!0}}),window.addEventListener("test",Ri,Ri),window.removeEventListener("test",Ri,Ri)}catch{Xu=!1}var Pr=null,Ju=null,ll=null;function pp(){if(ll)return ll;var n,r=Ju,i=r.length,l,f="value"in Pr?Pr.value:Pr.textContent,m=f.length;for(n=0;n=Oi),Sp=" ",_p=!1;function xp(n,r){switch(n){case"keyup":return QE.indexOf(r.keyCode)!==-1;case"keydown":return r.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ep(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var ps=!1;function e1(n,r){switch(n){case"compositionend":return Ep(r);case"keypress":return r.which!==32?null:(_p=!0,Sp);case"textInput":return n=r.data,n===Sp&&_p?null:n;default:return null}}function t1(n,r){if(ps)return n==="compositionend"||!nd&&xp(n,r)?(n=pp(),ll=Ju=Pr=null,ps=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(r.ctrlKey||r.altKey||r.metaKey)||r.ctrlKey&&r.altKey){if(r.char&&1=r)return{node:i,offset:r-n};n=l}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=jp(i)}}function Dp(n,r){return n&&r?n===r?!0:n&&n.nodeType===3?!1:r&&r.nodeType===3?Dp(n,r.parentNode):"contains"in n?n.contains(r):n.compareDocumentPosition?!!(n.compareDocumentPosition(r)&16):!1:!1}function Lp(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var r=il(n.document);r instanceof n.HTMLIFrameElement;){try{var i=typeof r.contentWindow.location.href=="string"}catch{i=!1}if(i)n=r.contentWindow;else break;r=il(n.document)}return r}function sd(n){var r=n&&n.nodeName&&n.nodeName.toLowerCase();return r&&(r==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||r==="textarea"||n.contentEditable==="true")}var c1=sr&&"documentMode"in document&&11>=document.documentMode,gs=null,id=null,Di=null,od=!1;function Up(n,r,i){var l=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;od||gs==null||gs!==il(l)||(l=gs,"selectionStart"in l&&sd(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Di&&Mi(Di,l)||(Di=l,l=tc(id,"onSelect"),0>=w,f-=w,$n=1<<32-Nt(r)+f|i<Ne?(De=ye,ye=null):De=ye.sibling;var Be=B(L,ye,z[Ne],X);if(Be===null){ye===null&&(ye=De);break}n&&ye&&Be.alternate===null&&r(L,ye),M=m(Be,M,Ne),Pe===null?we=Be:Pe.sibling=Be,Pe=Be,ye=De}if(Ne===z.length)return i(L,ye),Ue&&or(L,Ne),we;if(ye===null){for(;NeNe?(De=ye,ye=null):De=ye.sibling;var ia=B(L,ye,Be.value,X);if(ia===null){ye===null&&(ye=De);break}n&&ye&&ia.alternate===null&&r(L,ye),M=m(ia,M,Ne),Pe===null?we=ia:Pe.sibling=ia,Pe=ia,ye=De}if(Be.done)return i(L,ye),Ue&&or(L,Ne),we;if(ye===null){for(;!Be.done;Ne++,Be=z.next())Be=Q(L,Be.value,X),Be!==null&&(M=m(Be,M,Ne),Pe===null?we=Be:Pe.sibling=Be,Pe=Be);return Ue&&or(L,Ne),we}for(ye=l(ye);!Be.done;Ne++,Be=z.next())Be=H(ye,L,Ne,Be.value,X),Be!==null&&(n&&Be.alternate!==null&&ye.delete(Be.key===null?Ne:Be.key),M=m(Be,M,Ne),Pe===null?we=Be:Pe.sibling=Be,Pe=Be);return n&&ye.forEach(function(NT){return r(L,NT)}),Ue&&or(L,Ne),we}function Ve(L,M,z,X){if(typeof z=="object"&&z!==null&&z.type===x&&z.key===null&&(z=z.props.children),typeof z=="object"&&z!==null){switch(z.$$typeof){case _:e:{for(var we=z.key;M!==null;){if(M.key===we){if(we=z.type,we===x){if(M.tag===7){i(L,M.sibling),X=f(M,z.props.children),X.return=L,L=X;break e}}else if(M.elementType===we||typeof we=="object"&&we!==null&&we.$$typeof===I&&Da(we)===M.type){i(L,M.sibling),X=f(M,z.props),Ii(X,z),X.return=L,L=X;break e}i(L,M);break}else r(L,M);M=M.sibling}z.type===x?(X=Na(z.props.children,L.mode,X,z.key),X.return=L,L=X):(X=yl(z.type,z.key,z.props,null,L.mode,X),Ii(X,z),X.return=L,L=X)}return w(L);case E:e:{for(we=z.key;M!==null;){if(M.key===we)if(M.tag===4&&M.stateNode.containerInfo===z.containerInfo&&M.stateNode.implementation===z.implementation){i(L,M.sibling),X=f(M,z.children||[]),X.return=L,L=X;break e}else{i(L,M);break}else r(L,M);M=M.sibling}X=md(z,L.mode,X),X.return=L,L=X}return w(L);case I:return z=Da(z),Ve(L,M,z,X)}if(ie(z))return he(L,M,z,X);if(de(z)){if(we=de(z),typeof we!="function")throw Error(s(150));return z=we.call(z),Se(L,M,z,X)}if(typeof z.then=="function")return Ve(L,M,Tl(z),X);if(z.$$typeof===A)return Ve(L,M,Sl(L,z),X);Cl(L,z)}return typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint"?(z=""+z,M!==null&&M.tag===6?(i(L,M.sibling),X=f(M,z),X.return=L,L=X):(i(L,M),X=hd(z,L.mode,X),X.return=L,L=X),w(L)):i(L,M)}return function(L,M,z,X){try{Bi=0;var we=Ve(L,M,z,X);return Rs=null,we}catch(ye){if(ye===Cs||ye===xl)throw ye;var Pe=Qt(29,ye,null,L.mode);return Pe.lanes=X,Pe.return=L,Pe}finally{}}}var Ua=sg(!0),ig=sg(!1),qr=!1;function Cd(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Rd(n,r){n=n.updateQueue,r.updateQueue===n&&(r.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function Gr(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function Vr(n,r,i){var l=n.updateQueue;if(l===null)return null;if(l=l.shared,(Ie&2)!==0){var f=l.pending;return f===null?r.next=r:(r.next=f.next,f.next=r),l.pending=r,r=vl(n),qp(n,null,i),r}return gl(n,l,r,i),vl(n)}function $i(n,r,i){if(r=r.updateQueue,r!==null&&(r=r.shared,(i&4194048)!==0)){var l=r.lanes;l&=n.pendingLanes,i|=l,r.lanes=i,Bt(n,i)}}function Ad(n,r){var i=n.updateQueue,l=n.alternate;if(l!==null&&(l=l.updateQueue,i===l)){var f=null,m=null;if(i=i.firstBaseUpdate,i!==null){do{var w={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};m===null?f=m=w:m=m.next=w,i=i.next}while(i!==null);m===null?f=m=r:m=m.next=r}else f=m=r;i={baseState:l.baseState,firstBaseUpdate:f,lastBaseUpdate:m,shared:l.shared,callbacks:l.callbacks},n.updateQueue=i;return}n=i.lastBaseUpdate,n===null?i.firstBaseUpdate=r:n.next=r,i.lastBaseUpdate=r}var Nd=!1;function Hi(){if(Nd){var n=Ts;if(n!==null)throw n}}function qi(n,r,i,l){Nd=!1;var f=n.updateQueue;qr=!1;var m=f.firstBaseUpdate,w=f.lastBaseUpdate,T=f.shared.pending;if(T!==null){f.shared.pending=null;var k=T,P=k.next;k.next=null,w===null?m=P:w.next=P,w=k;var Y=n.alternate;Y!==null&&(Y=Y.updateQueue,T=Y.lastBaseUpdate,T!==w&&(T===null?Y.firstBaseUpdate=P:T.next=P,Y.lastBaseUpdate=k))}if(m!==null){var Q=f.baseState;w=0,Y=P=k=null,T=m;do{var B=T.lane&-536870913,H=B!==T.lane;if(H?(Me&B)===B:(l&B)===B){B!==0&&B===Es&&(Nd=!0),Y!==null&&(Y=Y.next={lane:0,tag:T.tag,payload:T.payload,callback:null,next:null});e:{var he=n,Se=T;B=r;var Ve=i;switch(Se.tag){case 1:if(he=Se.payload,typeof he=="function"){Q=he.call(Ve,Q,B);break e}Q=he;break e;case 3:he.flags=he.flags&-65537|128;case 0:if(he=Se.payload,B=typeof he=="function"?he.call(Ve,Q,B):he,B==null)break e;Q=g({},Q,B);break e;case 2:qr=!0}}B=T.callback,B!==null&&(n.flags|=64,H&&(n.flags|=8192),H=f.callbacks,H===null?f.callbacks=[B]:H.push(B))}else H={lane:B,tag:T.tag,payload:T.payload,callback:T.callback,next:null},Y===null?(P=Y=H,k=Q):Y=Y.next=H,w|=B;if(T=T.next,T===null){if(T=f.shared.pending,T===null)break;H=T,T=H.next,H.next=null,f.lastBaseUpdate=H,f.shared.pending=null}}while(!0);Y===null&&(k=Q),f.baseState=k,f.firstBaseUpdate=P,f.lastBaseUpdate=Y,m===null&&(f.shared.lanes=0),Xr|=w,n.lanes=w,n.memoizedState=Q}}function og(n,r){if(typeof n!="function")throw Error(s(191,n));n.call(r)}function lg(n,r){var i=n.callbacks;if(i!==null)for(n.callbacks=null,n=0;nm?m:8;var w=O.T,T={};O.T=T,Fd(n,!1,r,i);try{var k=f(),P=O.S;if(P!==null&&P(T,k),k!==null&&typeof k=="object"&&typeof k.then=="function"){var Y=y1(k,l);Ki(n,r,Y,rn(n))}else Ki(n,r,l,rn(n))}catch(Q){Ki(n,r,{then:function(){},status:"rejected",reason:Q},rn())}finally{$.p=m,w!==null&&T.types!==null&&(w.types=T.types),O.T=w}}function E1(){}function Kd(n,r,i,l){if(n.tag!==5)throw Error(s(476));var f=Ig(n).queue;Bg(n,f,r,K,i===null?E1:function(){return $g(n),i(l)})}function Ig(n){var r=n.memoizedState;if(r!==null)return r;r={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dr,lastRenderedState:K},next:null};var i={};return r.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:dr,lastRenderedState:i},next:null},n.memoizedState=r,n=n.alternate,n!==null&&(n.memoizedState=r),r}function $g(n){var r=Ig(n);r.next===null&&(r=n.alternate.memoizedState),Ki(n,r.next.queue,{},rn())}function Yd(){return Et(co)}function Hg(){return lt().memoizedState}function qg(){return lt().memoizedState}function T1(n){for(var r=n.return;r!==null;){switch(r.tag){case 24:case 3:var i=rn();n=Gr(i);var l=Vr(r,n,i);l!==null&&(Yt(l,r,i),$i(l,r,i)),r={cache:_d()},n.payload=r;return}r=r.return}}function C1(n,r,i){var l=rn();i={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},Ul(n)?Vg(r,i):(i=dd(n,r,i,l),i!==null&&(Yt(i,n,l),Kg(i,r,l)))}function Gg(n,r,i){var l=rn();Ki(n,r,i,l)}function Ki(n,r,i,l){var f={lane:l,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(Ul(n))Vg(r,f);else{var m=n.alternate;if(n.lanes===0&&(m===null||m.lanes===0)&&(m=r.lastRenderedReducer,m!==null))try{var w=r.lastRenderedState,T=m(w,i);if(f.hasEagerState=!0,f.eagerState=T,Jt(T,w))return gl(n,r,f,0),Ye===null&&pl(),!1}catch{}finally{}if(i=dd(n,r,f,l),i!==null)return Yt(i,n,l),Kg(i,r,l),!0}return!1}function Fd(n,r,i,l){if(l={lane:2,revertLane:Rf(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Ul(n)){if(r)throw Error(s(479))}else r=dd(n,i,l,2),r!==null&&Yt(r,n,2)}function Ul(n){var r=n.alternate;return n===Ae||r!==null&&r===Ae}function Vg(n,r){Ns=Nl=!0;var i=n.pending;i===null?r.next=r:(r.next=i.next,i.next=r),n.pending=r}function Kg(n,r,i){if((i&4194048)!==0){var l=r.lanes;l&=n.pendingLanes,i|=l,r.lanes=i,Bt(n,i)}}var Yi={readContext:Et,use:jl,useCallback:at,useContext:at,useEffect:at,useImperativeHandle:at,useLayoutEffect:at,useInsertionEffect:at,useMemo:at,useReducer:at,useRef:at,useState:at,useDebugValue:at,useDeferredValue:at,useTransition:at,useSyncExternalStore:at,useId:at,useHostTransitionStatus:at,useFormState:at,useActionState:at,useOptimistic:at,useMemoCache:at,useCacheRefresh:at};Yi.useEffectEvent=at;var Yg={readContext:Et,use:jl,useCallback:function(n,r){return Ut().memoizedState=[n,r===void 0?null:r],n},useContext:Et,useEffect:Og,useImperativeHandle:function(n,r,i){i=i!=null?i.concat([n]):null,Dl(4194308,4,Dg.bind(null,r,n),i)},useLayoutEffect:function(n,r){return Dl(4194308,4,n,r)},useInsertionEffect:function(n,r){Dl(4,2,n,r)},useMemo:function(n,r){var i=Ut();r=r===void 0?null:r;var l=n();if(za){Tn(!0);try{n()}finally{Tn(!1)}}return i.memoizedState=[l,r],l},useReducer:function(n,r,i){var l=Ut();if(i!==void 0){var f=i(r);if(za){Tn(!0);try{i(r)}finally{Tn(!1)}}}else f=r;return l.memoizedState=l.baseState=f,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:f},l.queue=n,n=n.dispatch=C1.bind(null,Ae,n),[l.memoizedState,n]},useRef:function(n){var r=Ut();return n={current:n},r.memoizedState=n},useState:function(n){n=$d(n);var r=n.queue,i=Gg.bind(null,Ae,r);return r.dispatch=i,[n.memoizedState,i]},useDebugValue:Gd,useDeferredValue:function(n,r){var i=Ut();return Vd(i,n,r)},useTransition:function(){var n=$d(!1);return n=Bg.bind(null,Ae,n.queue,!0,!1),Ut().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,r,i){var l=Ae,f=Ut();if(Ue){if(i===void 0)throw Error(s(407));i=i()}else{if(i=r(),Ye===null)throw Error(s(349));(Me&127)!==0||mg(l,r,i)}f.memoizedState=i;var m={value:i,getSnapshot:r};return f.queue=m,Og(gg.bind(null,l,m,n),[n]),l.flags|=2048,ks(9,{destroy:void 0},pg.bind(null,l,m,i,r),null),i},useId:function(){var n=Ut(),r=Ye.identifierPrefix;if(Ue){var i=Hn,l=$n;i=(l&~(1<<32-Nt(l)-1)).toString(32)+i,r="_"+r+"R_"+i,i=Ol++,0<\/script>",m=m.removeChild(m.firstChild);break;case"select":m=typeof l.is=="string"?w.createElement("select",{is:l.is}):w.createElement("select"),l.multiple?m.multiple=!0:l.size&&(m.size=l.size);break;default:m=typeof l.is=="string"?w.createElement(f,{is:l.is}):w.createElement(f)}}m[_t]=r,m[$t]=l;e:for(w=r.child;w!==null;){if(w.tag===5||w.tag===6)m.appendChild(w.stateNode);else if(w.tag!==4&&w.tag!==27&&w.child!==null){w.child.return=w,w=w.child;continue}if(w===r)break e;for(;w.sibling===null;){if(w.return===null||w.return===r)break e;w=w.return}w.sibling.return=w.return,w=w.sibling}r.stateNode=m;e:switch(Ct(m,f,l),f){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&hr(r)}}return Je(r),cf(r,r.type,n===null?null:n.memoizedProps,r.pendingProps,i),null;case 6:if(n&&r.stateNode!=null)n.memoizedProps!==l&&hr(r);else{if(typeof l!="string"&&r.stateNode===null)throw Error(s(166));if(n=se.current,_s(r)){if(n=r.stateNode,i=r.memoizedProps,l=null,f=xt,f!==null)switch(f.tag){case 27:case 5:l=f.memoizedProps}n[_t]=r,n=!!(n.nodeValue===i||l!==null&&l.suppressHydrationWarning===!0||fy(n.nodeValue,i)),n||$r(r,!0)}else n=nc(n).createTextNode(l),n[_t]=r,r.stateNode=n}return Je(r),null;case 31:if(i=r.memoizedState,n===null||n.memoizedState!==null){if(l=_s(r),i!==null){if(n===null){if(!l)throw Error(s(318));if(n=r.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(s(557));n[_t]=r}else Oa(),(r.flags&128)===0&&(r.memoizedState=null),r.flags|=4;Je(r),n=!1}else i=yd(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=i),n=!0;if(!n)return r.flags&256?(en(r),r):(en(r),null);if((r.flags&128)!==0)throw Error(s(558))}return Je(r),null;case 13:if(l=r.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(f=_s(r),l!==null&&l.dehydrated!==null){if(n===null){if(!f)throw Error(s(318));if(f=r.memoizedState,f=f!==null?f.dehydrated:null,!f)throw Error(s(317));f[_t]=r}else Oa(),(r.flags&128)===0&&(r.memoizedState=null),r.flags|=4;Je(r),f=!1}else f=yd(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=f),f=!0;if(!f)return r.flags&256?(en(r),r):(en(r),null)}return en(r),(r.flags&128)!==0?(r.lanes=i,r):(i=l!==null,n=n!==null&&n.memoizedState!==null,i&&(l=r.child,f=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(f=l.alternate.memoizedState.cachePool.pool),m=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(m=l.memoizedState.cachePool.pool),m!==f&&(l.flags|=2048)),i!==n&&i&&(r.child.flags|=8192),$l(r,r.updateQueue),Je(r),null);case 4:return le(),n===null&&kf(r.stateNode.containerInfo),Je(r),null;case 10:return cr(r.type),Je(r),null;case 19:if(G(ot),l=r.memoizedState,l===null)return Je(r),null;if(f=(r.flags&128)!==0,m=l.rendering,m===null)if(f)Wi(l,!1);else{if(st!==0||n!==null&&(n.flags&128)!==0)for(n=r.child;n!==null;){if(m=Al(n),m!==null){for(r.flags|=128,Wi(l,!1),n=m.updateQueue,r.updateQueue=n,$l(r,n),r.subtreeFlags=0,n=i,i=r.child;i!==null;)Gp(i,n),i=i.sibling;return F(ot,ot.current&1|2),Ue&&or(r,l.treeForkCount),r.child}n=n.sibling}l.tail!==null&&Dt()>Kl&&(r.flags|=128,f=!0,Wi(l,!1),r.lanes=4194304)}else{if(!f)if(n=Al(m),n!==null){if(r.flags|=128,f=!0,n=n.updateQueue,r.updateQueue=n,$l(r,n),Wi(l,!0),l.tail===null&&l.tailMode==="hidden"&&!m.alternate&&!Ue)return Je(r),null}else 2*Dt()-l.renderingStartTime>Kl&&i!==536870912&&(r.flags|=128,f=!0,Wi(l,!1),r.lanes=4194304);l.isBackwards?(m.sibling=r.child,r.child=m):(n=l.last,n!==null?n.sibling=m:r.child=m,l.last=m)}return l.tail!==null?(n=l.tail,l.rendering=n,l.tail=n.sibling,l.renderingStartTime=Dt(),n.sibling=null,i=ot.current,F(ot,f?i&1|2:i&1),Ue&&or(r,l.treeForkCount),n):(Je(r),null);case 22:case 23:return en(r),kd(),l=r.memoizedState!==null,n!==null?n.memoizedState!==null!==l&&(r.flags|=8192):l&&(r.flags|=8192),l?(i&536870912)!==0&&(r.flags&128)===0&&(Je(r),r.subtreeFlags&6&&(r.flags|=8192)):Je(r),i=r.updateQueue,i!==null&&$l(r,i.retryQueue),i=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),l=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(l=r.memoizedState.cachePool.pool),l!==i&&(r.flags|=2048),n!==null&&G(Ma),null;case 24:return i=null,n!==null&&(i=n.memoizedState.cache),r.memoizedState.cache!==i&&(r.flags|=2048),cr(ct),Je(r),null;case 25:return null;case 30:return null}throw Error(s(156,r.tag))}function k1(n,r){switch(gd(r),r.tag){case 1:return n=r.flags,n&65536?(r.flags=n&-65537|128,r):null;case 3:return cr(ct),le(),n=r.flags,(n&65536)!==0&&(n&128)===0?(r.flags=n&-65537|128,r):null;case 26:case 27:case 5:return Re(r),null;case 31:if(r.memoizedState!==null){if(en(r),r.alternate===null)throw Error(s(340));Oa()}return n=r.flags,n&65536?(r.flags=n&-65537|128,r):null;case 13:if(en(r),n=r.memoizedState,n!==null&&n.dehydrated!==null){if(r.alternate===null)throw Error(s(340));Oa()}return n=r.flags,n&65536?(r.flags=n&-65537|128,r):null;case 19:return G(ot),null;case 4:return le(),null;case 10:return cr(r.type),null;case 22:case 23:return en(r),kd(),n!==null&&G(Ma),n=r.flags,n&65536?(r.flags=n&-65537|128,r):null;case 24:return cr(ct),null;case 25:return null;default:return null}}function vv(n,r){switch(gd(r),r.tag){case 3:cr(ct),le();break;case 26:case 27:case 5:Re(r);break;case 4:le();break;case 31:r.memoizedState!==null&&en(r);break;case 13:en(r);break;case 19:G(ot);break;case 10:cr(r.type);break;case 22:case 23:en(r),kd(),n!==null&&G(Ma);break;case 24:cr(ct)}}function Xi(n,r){try{var i=r.updateQueue,l=i!==null?i.lastEffect:null;if(l!==null){var f=l.next;i=f;do{if((i.tag&n)===n){l=void 0;var m=i.create,w=i.inst;l=m(),w.destroy=l}i=i.next}while(i!==f)}}catch(T){He(r,r.return,T)}}function Fr(n,r,i){try{var l=r.updateQueue,f=l!==null?l.lastEffect:null;if(f!==null){var m=f.next;l=m;do{if((l.tag&n)===n){var w=l.inst,T=w.destroy;if(T!==void 0){w.destroy=void 0,f=r;var k=i,P=T;try{P()}catch(Y){He(f,k,Y)}}}l=l.next}while(l!==m)}}catch(Y){He(r,r.return,Y)}}function yv(n){var r=n.updateQueue;if(r!==null){var i=n.stateNode;try{lg(r,i)}catch(l){He(n,n.return,l)}}}function bv(n,r,i){i.props=Pa(n.type,n.memoizedProps),i.state=n.memoizedState;try{i.componentWillUnmount()}catch(l){He(n,r,l)}}function Ji(n,r){try{var i=n.ref;if(i!==null){switch(n.tag){case 26:case 27:case 5:var l=n.stateNode;break;case 30:l=n.stateNode;break;default:l=n.stateNode}typeof i=="function"?n.refCleanup=i(l):i.current=l}}catch(f){He(n,r,f)}}function qn(n,r){var i=n.ref,l=n.refCleanup;if(i!==null)if(typeof l=="function")try{l()}catch(f){He(n,r,f)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(f){He(n,r,f)}else i.current=null}function wv(n){var r=n.type,i=n.memoizedProps,l=n.stateNode;try{e:switch(r){case"button":case"input":case"select":case"textarea":i.autoFocus&&l.focus();break e;case"img":i.src?l.src=i.src:i.srcSet&&(l.srcset=i.srcSet)}}catch(f){He(n,n.return,f)}}function uf(n,r,i){try{var l=n.stateNode;Z1(l,n.type,i,r),l[$t]=r}catch(f){He(n,n.return,f)}}function Sv(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&ta(n.type)||n.tag===4}function df(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||Sv(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&ta(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function ff(n,r,i){var l=n.tag;if(l===5||l===6)n=n.stateNode,r?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(n,r):(r=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,r.appendChild(n),i=i._reactRootContainer,i!=null||r.onclick!==null||(r.onclick=ar));else if(l!==4&&(l===27&&ta(n.type)&&(i=n.stateNode,r=null),n=n.child,n!==null))for(ff(n,r,i),n=n.sibling;n!==null;)ff(n,r,i),n=n.sibling}function Hl(n,r,i){var l=n.tag;if(l===5||l===6)n=n.stateNode,r?i.insertBefore(n,r):i.appendChild(n);else if(l!==4&&(l===27&&ta(n.type)&&(i=n.stateNode),n=n.child,n!==null))for(Hl(n,r,i),n=n.sibling;n!==null;)Hl(n,r,i),n=n.sibling}function _v(n){var r=n.stateNode,i=n.memoizedProps;try{for(var l=n.type,f=r.attributes;f.length;)r.removeAttributeNode(f[0]);Ct(r,l,i),r[_t]=n,r[$t]=i}catch(m){He(n,n.return,m)}}var mr=!1,ft=!1,hf=!1,xv=typeof WeakSet=="function"?WeakSet:Set,wt=null;function j1(n,r){if(n=n.containerInfo,Df=cc,n=Lp(n),sd(n)){if("selectionStart"in n)var i={start:n.selectionStart,end:n.selectionEnd};else e:{i=(i=n.ownerDocument)&&i.defaultView||window;var l=i.getSelection&&i.getSelection();if(l&&l.rangeCount!==0){i=l.anchorNode;var f=l.anchorOffset,m=l.focusNode;l=l.focusOffset;try{i.nodeType,m.nodeType}catch{i=null;break e}var w=0,T=-1,k=-1,P=0,Y=0,Q=n,B=null;t:for(;;){for(var H;Q!==i||f!==0&&Q.nodeType!==3||(T=w+f),Q!==m||l!==0&&Q.nodeType!==3||(k=w+l),Q.nodeType===3&&(w+=Q.nodeValue.length),(H=Q.firstChild)!==null;)B=Q,Q=H;for(;;){if(Q===n)break t;if(B===i&&++P===f&&(T=w),B===m&&++Y===l&&(k=w),(H=Q.nextSibling)!==null)break;Q=B,B=Q.parentNode}Q=H}i=T===-1||k===-1?null:{start:T,end:k}}else i=null}i=i||{start:0,end:0}}else i=null;for(Lf={focusedElem:n,selectionRange:i},cc=!1,wt=r;wt!==null;)if(r=wt,n=r.child,(r.subtreeFlags&1028)!==0&&n!==null)n.return=r,wt=n;else for(;wt!==null;){switch(r=wt,m=r.alternate,n=r.flags,r.tag){case 0:if((n&4)!==0&&(n=r.updateQueue,n=n!==null?n.events:null,n!==null))for(i=0;i title"))),Ct(m,l,i),m[_t]=n,bt(m),l=m;break e;case"link":var w=Ny("link","href",f).get(l+(i.href||""));if(w){for(var T=0;TVe&&(w=Ve,Ve=Se,Se=w);var L=Mp(T,Se),M=Mp(T,Ve);if(L&&M&&(H.rangeCount!==1||H.anchorNode!==L.node||H.anchorOffset!==L.offset||H.focusNode!==M.node||H.focusOffset!==M.offset)){var z=Q.createRange();z.setStart(L.node,L.offset),H.removeAllRanges(),Se>Ve?(H.addRange(z),H.extend(M.node,M.offset)):(z.setEnd(M.node,M.offset),H.addRange(z))}}}}for(Q=[],H=T;H=H.parentNode;)H.nodeType===1&&Q.push({element:H,left:H.scrollLeft,top:H.scrollTop});for(typeof T.focus=="function"&&T.focus(),T=0;Ti?32:i,O.T=null,i=wf,wf=null;var m=Qr,w=br;if(mt=0,Us=Qr=null,br=0,(Ie&6)!==0)throw Error(s(331));var T=Ie;if(Ie|=4,Dv(m.current),kv(m,m.current,w,i),Ie=T,ro(0,!1),Lt&&typeof Lt.onPostCommitFiberRoot=="function")try{Lt.onPostCommitFiberRoot(Sa,m)}catch{}return!0}finally{$.p=f,O.T=l,Qv(n,r)}}function ey(n,r,i){r=hn(i,r),r=Qd(n.stateNode,r,2),n=Vr(n,r,2),n!==null&&(tt(n,2),Gn(n))}function He(n,r,i){if(n.tag===3)ey(n,n,i);else for(;r!==null;){if(r.tag===3){ey(r,n,i);break}else if(r.tag===1){var l=r.stateNode;if(typeof r.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(Jr===null||!Jr.has(l))){n=hn(i,n),i=tv(2),l=Vr(r,i,2),l!==null&&(nv(i,l,r,n),tt(l,2),Gn(l));break}}r=r.return}}function Ef(n,r,i){var l=n.pingCache;if(l===null){l=n.pingCache=new L1;var f=new Set;l.set(r,f)}else f=l.get(r),f===void 0&&(f=new Set,l.set(r,f));f.has(i)||(gf=!0,f.add(i),n=I1.bind(null,n,r,i),r.then(n,n))}function I1(n,r,i){var l=n.pingCache;l!==null&&l.delete(r),n.pingedLanes|=n.suspendedLanes&i,n.warmLanes&=~i,Ye===n&&(Me&i)===i&&(st===4||st===3&&(Me&62914560)===Me&&300>Dt()-Vl?(Ie&2)===0&&zs(n,0):vf|=i,Ls===Me&&(Ls=0)),Gn(n)}function ty(n,r){r===0&&(r=Ot()),n=Aa(n,r),n!==null&&(tt(n,r),Gn(n))}function $1(n){var r=n.memoizedState,i=0;r!==null&&(i=r.retryLane),ty(n,i)}function H1(n,r){var i=0;switch(n.tag){case 31:case 13:var l=n.stateNode,f=n.memoizedState;f!==null&&(i=f.retryLane);break;case 19:l=n.stateNode;break;case 22:l=n.stateNode._retryCache;break;default:throw Error(s(314))}l!==null&&l.delete(r),ty(n,i)}function q1(n,r){return wi(n,r)}var Ql=null,Bs=null,Tf=!1,Zl=!1,Cf=!1,ea=0;function Gn(n){n!==Bs&&n.next===null&&(Bs===null?Ql=Bs=n:Bs=Bs.next=n),Zl=!0,Tf||(Tf=!0,V1())}function ro(n,r){if(!Cf&&Zl){Cf=!0;do for(var i=!1,l=Ql;l!==null;){if(n!==0){var f=l.pendingLanes;if(f===0)var m=0;else{var w=l.suspendedLanes,T=l.pingedLanes;m=(1<<31-Nt(42|n)+1)-1,m&=f&~(w&~T),m=m&201326741?m&201326741|1:m?m|2:0}m!==0&&(i=!0,sy(l,m))}else m=Me,m=xe(l,l===Ye?m:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(m&3)===0||Ze(l,m)||(i=!0,sy(l,m));l=l.next}while(i);Cf=!1}}function G1(){ny()}function ny(){Zl=Tf=!1;var n=0;ea!==0&&tT()&&(n=ea);for(var r=Dt(),i=null,l=Ql;l!==null;){var f=l.next,m=ry(l,r);m===0?(l.next=null,i===null?Ql=f:i.next=f,f===null&&(Bs=i)):(i=l,(n!==0||(m&3)!==0)&&(Zl=!0)),l=f}mt!==0&&mt!==5||ro(n),ea!==0&&(ea=0)}function ry(n,r){for(var i=n.suspendedLanes,l=n.pingedLanes,f=n.expirationTimes,m=n.pendingLanes&-62914561;0T)break;var Y=k.transferSize,Q=k.initiatorType;Y&&hy(Q)&&(k=k.responseEnd,w+=Y*(k"u"?null:document;function Ty(n,r,i){var l=Is;if(l&&typeof r=="string"&&r){var f=dn(r);f='link[rel="'+n+'"][href="'+f+'"]',typeof i=="string"&&(f+='[crossorigin="'+i+'"]'),Ey.has(f)||(Ey.add(f),n={rel:n,crossOrigin:i,href:r},l.querySelector(f)===null&&(r=l.createElement("link"),Ct(r,"link",n),bt(r),l.head.appendChild(r)))}}function uT(n){wr.D(n),Ty("dns-prefetch",n,null)}function dT(n,r){wr.C(n,r),Ty("preconnect",n,r)}function fT(n,r,i){wr.L(n,r,i);var l=Is;if(l&&n&&r){var f='link[rel="preload"][as="'+dn(r)+'"]';r==="image"&&i&&i.imageSrcSet?(f+='[imagesrcset="'+dn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(f+='[imagesizes="'+dn(i.imageSizes)+'"]')):f+='[href="'+dn(n)+'"]';var m=f;switch(r){case"style":m=$s(n);break;case"script":m=Hs(n)}bn.has(m)||(n=g({rel:"preload",href:r==="image"&&i&&i.imageSrcSet?void 0:n,as:r},i),bn.set(m,n),l.querySelector(f)!==null||r==="style"&&l.querySelector(oo(m))||r==="script"&&l.querySelector(lo(m))||(r=l.createElement("link"),Ct(r,"link",n),bt(r),l.head.appendChild(r)))}}function hT(n,r){wr.m(n,r);var i=Is;if(i&&n){var l=r&&typeof r.as=="string"?r.as:"script",f='link[rel="modulepreload"][as="'+dn(l)+'"][href="'+dn(n)+'"]',m=f;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":m=Hs(n)}if(!bn.has(m)&&(n=g({rel:"modulepreload",href:n},r),bn.set(m,n),i.querySelector(f)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(lo(m)))return}l=i.createElement("link"),Ct(l,"link",n),bt(l),i.head.appendChild(l)}}}function mT(n,r,i){wr.S(n,r,i);var l=Is;if(l&&n){var f=cs(l).hoistableStyles,m=$s(n);r=r||"default";var w=f.get(m);if(!w){var T={loading:0,preload:null};if(w=l.querySelector(oo(m)))T.loading=5;else{n=g({rel:"stylesheet",href:n,"data-precedence":r},i),(i=bn.get(m))&&Hf(n,i);var k=w=l.createElement("link");bt(k),Ct(k,"link",n),k._p=new Promise(function(P,Y){k.onload=P,k.onerror=Y}),k.addEventListener("load",function(){T.loading|=1}),k.addEventListener("error",function(){T.loading|=2}),T.loading|=4,ac(w,r,l)}w={type:"stylesheet",instance:w,count:1,state:T},f.set(m,w)}}}function pT(n,r){wr.X(n,r);var i=Is;if(i&&n){var l=cs(i).hoistableScripts,f=Hs(n),m=l.get(f);m||(m=i.querySelector(lo(f)),m||(n=g({src:n,async:!0},r),(r=bn.get(f))&&qf(n,r),m=i.createElement("script"),bt(m),Ct(m,"link",n),i.head.appendChild(m)),m={type:"script",instance:m,count:1,state:null},l.set(f,m))}}function gT(n,r){wr.M(n,r);var i=Is;if(i&&n){var l=cs(i).hoistableScripts,f=Hs(n),m=l.get(f);m||(m=i.querySelector(lo(f)),m||(n=g({src:n,async:!0,type:"module"},r),(r=bn.get(f))&&qf(n,r),m=i.createElement("script"),bt(m),Ct(m,"link",n),i.head.appendChild(m)),m={type:"script",instance:m,count:1,state:null},l.set(f,m))}}function Cy(n,r,i,l){var f=(f=se.current)?rc(f):null;if(!f)throw Error(s(446));switch(n){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(r=$s(i.href),i=cs(f).hoistableStyles,l=i.get(r),l||(l={type:"style",instance:null,count:0,state:null},i.set(r,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){n=$s(i.href);var m=cs(f).hoistableStyles,w=m.get(n);if(w||(f=f.ownerDocument||f,w={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},m.set(n,w),(m=f.querySelector(oo(n)))&&!m._p&&(w.instance=m,w.state.loading=5),bn.has(n)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},bn.set(n,i),m||vT(f,n,i,w.state))),r&&l===null)throw Error(s(528,""));return w}if(r&&l!==null)throw Error(s(529,""));return null;case"script":return r=i.async,i=i.src,typeof i=="string"&&r&&typeof r!="function"&&typeof r!="symbol"?(r=Hs(i),i=cs(f).hoistableScripts,l=i.get(r),l||(l={type:"script",instance:null,count:0,state:null},i.set(r,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,n))}}function $s(n){return'href="'+dn(n)+'"'}function oo(n){return'link[rel="stylesheet"]['+n+"]"}function Ry(n){return g({},n,{"data-precedence":n.precedence,precedence:null})}function vT(n,r,i,l){n.querySelector('link[rel="preload"][as="style"]['+r+"]")?l.loading=1:(r=n.createElement("link"),l.preload=r,r.addEventListener("load",function(){return l.loading|=1}),r.addEventListener("error",function(){return l.loading|=2}),Ct(r,"link",i),bt(r),n.head.appendChild(r))}function Hs(n){return'[src="'+dn(n)+'"]'}function lo(n){return"script[async]"+n}function Ay(n,r,i){if(r.count++,r.instance===null)switch(r.type){case"style":var l=n.querySelector('style[data-href~="'+dn(i.href)+'"]');if(l)return r.instance=l,bt(l),l;var f=g({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return l=(n.ownerDocument||n).createElement("style"),bt(l),Ct(l,"style",f),ac(l,i.precedence,n),r.instance=l;case"stylesheet":f=$s(i.href);var m=n.querySelector(oo(f));if(m)return r.state.loading|=4,r.instance=m,bt(m),m;l=Ry(i),(f=bn.get(f))&&Hf(l,f),m=(n.ownerDocument||n).createElement("link"),bt(m);var w=m;return w._p=new Promise(function(T,k){w.onload=T,w.onerror=k}),Ct(m,"link",l),r.state.loading|=4,ac(m,i.precedence,n),r.instance=m;case"script":return m=Hs(i.src),(f=n.querySelector(lo(m)))?(r.instance=f,bt(f),f):(l=i,(f=bn.get(m))&&(l=g({},i),qf(l,f)),n=n.ownerDocument||n,f=n.createElement("script"),bt(f),Ct(f,"link",l),n.head.appendChild(f),r.instance=f);case"void":return null;default:throw Error(s(443,r.type))}else r.type==="stylesheet"&&(r.state.loading&4)===0&&(l=r.instance,r.state.loading|=4,ac(l,i.precedence,n));return r.instance}function ac(n,r,i){for(var l=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),f=l.length?l[l.length-1]:null,m=f,w=0;w title"):null)}function yT(n,r,i){if(i===1||r.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof r.precedence!="string"||typeof r.href!="string"||r.href==="")break;return!0;case"link":if(typeof r.rel!="string"||typeof r.href!="string"||r.href===""||r.onLoad||r.onError)break;switch(r.rel){case"stylesheet":return n=r.disabled,typeof r.precedence=="string"&&n==null;default:return!0}case"script":if(r.async&&typeof r.async!="function"&&typeof r.async!="symbol"&&!r.onLoad&&!r.onError&&r.src&&typeof r.src=="string")return!0}return!1}function ky(n){return!(n.type==="stylesheet"&&(n.state.loading&3)===0)}function bT(n,r,i,l){if(i.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var f=$s(l.href),m=r.querySelector(oo(f));if(m){r=m._p,r!==null&&typeof r=="object"&&typeof r.then=="function"&&(n.count++,n=ic.bind(n),r.then(n,n)),i.state.loading|=4,i.instance=m,bt(m);return}m=r.ownerDocument||r,l=Ry(l),(f=bn.get(f))&&Hf(l,f),m=m.createElement("link"),bt(m);var w=m;w._p=new Promise(function(T,k){w.onload=T,w.onerror=k}),Ct(m,"link",l),i.instance=m}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(i,r),(r=i.state.preload)&&(i.state.loading&3)===0&&(n.count++,i=ic.bind(n),r.addEventListener("load",i),r.addEventListener("error",i))}}var Gf=0;function wT(n,r){return n.stylesheets&&n.count===0&&lc(n,n.stylesheets),0Gf?50:800)+r);return n.unsuspend=i,function(){n.unsuspend=null,clearTimeout(l),clearTimeout(f)}}:null}function ic(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)lc(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var oc=null;function lc(n,r){n.stylesheets=null,n.unsuspend!==null&&(n.count++,oc=new Map,r.forEach(ST,n),oc=null,ic.call(n))}function ST(n,r){if(!(r.state.loading&4)){var i=oc.get(n);if(i)var l=i.get(null);else{i=new Map,oc.set(n,i);for(var f=n.querySelectorAll("link[data-precedence],style[data-precedence]"),m=0;m"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Zf.exports=zT(),Zf.exports}var BT=PT();/** - * react-router v7.15.1 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */var tb="popstate";function nb(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function IT(e={}){function t(s,o){var p;let c=(p=o.state)==null?void 0:p.masked,{pathname:u,search:d,hash:h}=c||s.location;return Ch("",{pathname:u,search:d,hash:h},o.state&&o.state.usr||null,o.state&&o.state.key||"default",c?{pathname:s.location.pathname,search:s.location.search,hash:s.location.hash}:void 0)}function a(s,o){return typeof o=="string"?o:ko(o)}return HT(t,a,null,e)}function nt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function er(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function $T(){return Math.random().toString(36).substring(2,10)}function rb(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Ch(e,t,a=null,s,o){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?hi(t):t,state:a,key:t&&t.key||s||$T(),mask:o}}function ko({pathname:e="/",search:t="",hash:a=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),a&&a!=="#"&&(e+=a.charAt(0)==="#"?a:"#"+a),e}function hi(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substring(a),e=e.substring(0,a));let s=e.indexOf("?");s>=0&&(t.search=e.substring(s),e=e.substring(0,s)),e&&(t.pathname=e)}return t}function HT(e,t,a,s={}){let{window:o=document.defaultView,v5Compat:c=!1}=s,u=o.history,d="POP",h=null,p=v();p==null&&(p=0,u.replaceState({...u.state,idx:p},""));function v(){return(u.state||{idx:null}).idx}function g(){d="POP";let R=v(),C=R==null?null:R-p;p=R,h&&h({action:d,location:x.location,delta:C})}function S(R,C){d="PUSH";let N=nb(R)?R:Ch(x.location,R,C);p=v()+1;let A=rb(N,p),D=x.createHref(N.mask||N);try{u.pushState(A,"",D)}catch(V){if(V instanceof DOMException&&V.name==="DataCloneError")throw V;o.location.assign(D)}c&&h&&h({action:d,location:x.location,delta:1})}function _(R,C){d="REPLACE";let N=nb(R)?R:Ch(x.location,R,C);p=v();let A=rb(N,p),D=x.createHref(N.mask||N);u.replaceState(A,"",D),c&&h&&h({action:d,location:x.location,delta:0})}function E(R){return qT(R)}let x={get action(){return d},get location(){return e(o,u)},listen(R){if(h)throw new Error("A history only accepts one active listener");return o.addEventListener(tb,g),h=R,()=>{o.removeEventListener(tb,g),h=null}},createHref(R){return t(o,R)},createURL:E,encodeLocation(R){let C=E(R);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:S,replace:_,go(R){return u.go(R)}};return x}function qT(e,t=!1){let a="http://localhost";typeof window<"u"&&(a=window.location.origin!=="null"?window.location.origin:window.location.href),nt(a,"No window.location.(origin|href) available to create URL");let s=typeof e=="string"?e:ko(e);return s=s.replace(/ $/,"%20"),!t&&s.startsWith("//")&&(s=a+s),new URL(s,a)}function z0(e,t,a="/"){return GT(e,t,a,!1)}function GT(e,t,a,s,o){let c=typeof t=="string"?hi(t):t,u=Cr(c.pathname||"/",a);if(u==null)return null;let d=VT(e),h=null,p=rC(u);for(let v=0;h==null&&v{let v={relativePath:p===void 0?u.path||"":p,caseSensitive:u.caseSensitive===!0,childrenIndex:d,route:u};if(v.relativePath.startsWith("/")){if(!v.relativePath.startsWith(s)&&h)return;nt(v.relativePath.startsWith(s),`Absolute route path "${v.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),v.relativePath=v.relativePath.slice(s.length)}let g=Dn([s,v.relativePath]),S=a.concat(v);u.children&&u.children.length>0&&(nt(u.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${g}".`),P0(u.children,t,S,g,h)),!(u.path==null&&!u.index)&&t.push({path:g,score:ZT(g,u.index),routesMeta:S})};return e.forEach((u,d)=>{var h;if(u.path===""||!((h=u.path)!=null&&h.includes("?")))c(u,d);else for(let p of B0(u.path))c(u,d,!0,p)}),t}function B0(e){let t=e.split("/");if(t.length===0)return[];let[a,...s]=t,o=a.endsWith("?"),c=a.replace(/\?$/,"");if(s.length===0)return o?[c,""]:[c];let u=B0(s.join("/")),d=[];return d.push(...u.map(h=>h===""?c:[c,h].join("/"))),o&&d.push(...u),d.map(h=>e.startsWith("/")&&h===""?"/":h)}function KT(e){e.sort((t,a)=>t.score!==a.score?a.score-t.score:eC(t.routesMeta.map(s=>s.childrenIndex),a.routesMeta.map(s=>s.childrenIndex)))}var YT=/^:[\w-]+$/,FT=3,WT=2,XT=1,JT=10,QT=-2,ab=e=>e==="*";function ZT(e,t){let a=e.split("/"),s=a.length;return a.some(ab)&&(s+=QT),t&&(s+=WT),a.filter(o=>!ab(o)).reduce((o,c)=>o+(YT.test(c)?FT:c===""?XT:JT),s)}function eC(e,t){return e.length===t.length&&e.slice(0,-1).every((s,o)=>s===t[o])?e[e.length-1]-t[t.length-1]:0}function tC(e,t,a=!1){let{routesMeta:s}=e,o={},c="/",u=[];for(let d=0;d{if(v==="*"){let E=d[S]||"";u=c.slice(0,c.length-E.length).replace(/(.)\/+$/,"$1")}const _=d[S];return g&&!_?p[v]=void 0:p[v]=(_||"").replace(/%2F/g,"/"),p},{}),pathname:c,pathnameBase:u,pattern:e}}function nC(e,t=!1,a=!0){er(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let s=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(u,d,h,p,v)=>{if(s.push({paramName:d,isOptional:h!=null}),h){let g=v.charAt(p+u.length);return g&&g!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(s.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),s]}function rC(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return er(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function Cr(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,s=e.charAt(a);return s&&s!=="/"?null:e.slice(a)||"/"}var aC=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function sC(e,t="/"){let{pathname:a,search:s="",hash:o=""}=typeof e=="string"?hi(e):e,c;return a?(a=$0(a),a.startsWith("/")?c=sb(a.substring(1),"/"):c=sb(a,t)):c=t,{pathname:c,search:lC(s),hash:cC(o)}}function sb(e,t){let a=Jc(t).split("/");return e.split("/").forEach(o=>{o===".."?a.length>1&&a.pop():o!=="."&&a.push(o)}),a.length>1?a.join("/"):"/"}function rh(e,t,a,s){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(s)}]. Please separate it out to the \`to.${a}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function iC(e){return e.filter((t,a)=>a===0||t.route.path&&t.route.path.length>0)}function I0(e){let t=iC(e);return t.map((a,s)=>s===t.length-1?a.pathname:a.pathnameBase)}function lm(e,t,a,s=!1){let o;typeof e=="string"?o=hi(e):(o={...e},nt(!o.pathname||!o.pathname.includes("?"),rh("?","pathname","search",o)),nt(!o.pathname||!o.pathname.includes("#"),rh("#","pathname","hash",o)),nt(!o.search||!o.search.includes("#"),rh("#","search","hash",o)));let c=e===""||o.pathname==="",u=c?"/":o.pathname,d;if(u==null)d=a;else{let g=t.length-1;if(!s&&u.startsWith("..")){let S=u.split("/");for(;S[0]==="..";)S.shift(),g-=1;o.pathname=S.join("/")}d=g>=0?t[g]:"/"}let h=sC(o,d),p=u&&u!=="/"&&u.endsWith("/"),v=(c||u===".")&&a.endsWith("/");return!h.pathname.endsWith("/")&&(p||v)&&(h.pathname+="/"),h}var $0=e=>e.replace(/\/\/+/g,"/"),Dn=e=>$0(e.join("/")),Jc=e=>e.replace(/\/+$/,""),oC=e=>Jc(e).replace(/^\/*/,"/"),lC=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,cC=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,uC=class{constructor(e,t,a,s=!1){this.status=e,this.statusText=t||"",this.internal=s,a instanceof Error?(this.data=a.toString(),this.error=a):this.data=a}};function dC(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function fC(e){let t=e.map(a=>a.route.path).filter(Boolean);return Dn(t)||"/"}var H0=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function q0(e,t){let a=e;if(typeof a!="string"||!aC.test(a))return{absoluteURL:void 0,isExternal:!1,to:a};let s=a,o=!1;if(H0)try{let c=new URL(window.location.href),u=a.startsWith("//")?new URL(c.protocol+a):new URL(a),d=Cr(u.pathname,t);u.origin===c.origin&&d!=null?a=d+u.search+u.hash:o=!0}catch{er(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:s,isExternal:o,to:a}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var G0=["POST","PUT","PATCH","DELETE"];new Set(G0);var hC=["GET",...G0];new Set(hC);var mi=y.createContext(null);mi.displayName="DataRouter";var pu=y.createContext(null);pu.displayName="DataRouterState";var V0=y.createContext(!1);function mC(){return y.useContext(V0)}var K0=y.createContext({isTransitioning:!1});K0.displayName="ViewTransition";var pC=y.createContext(new Map);pC.displayName="Fetchers";var gC=y.createContext(null);gC.displayName="Await";var xn=y.createContext(null);xn.displayName="Navigation";var Ko=y.createContext(null);Ko.displayName="Location";var Nr=y.createContext({outlet:null,matches:[],isDataRoute:!1});Nr.displayName="Route";var cm=y.createContext(null);cm.displayName="RouteError";var Y0="REACT_ROUTER_ERROR",vC="REDIRECT",yC="ROUTE_ERROR_RESPONSE";function bC(e){if(e.startsWith(`${Y0}:${vC}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function wC(e){if(e.startsWith(`${Y0}:${yC}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new uC(t.status,t.statusText,t.data)}catch{}}function SC(e,{relative:t}={}){nt(Yo(),"useHref() may be used only in the context of a component.");let{basename:a,navigator:s}=y.useContext(xn),{hash:o,pathname:c,search:u}=Fo(e,{relative:t}),d=c;return a!=="/"&&(d=c==="/"?a:Dn([a,c])),s.createHref({pathname:d,search:u,hash:o})}function Yo(){return y.useContext(Ko)!=null}function Or(){return nt(Yo(),"useLocation() may be used only in the context of a component."),y.useContext(Ko).location}var F0="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function W0(e){y.useContext(xn).static||y.useLayoutEffect(e)}function _C(){let{isDataRoute:e}=y.useContext(Nr);return e?LC():xC()}function xC(){nt(Yo(),"useNavigate() may be used only in the context of a component.");let e=y.useContext(mi),{basename:t,navigator:a}=y.useContext(xn),{matches:s}=y.useContext(Nr),{pathname:o}=Or(),c=JSON.stringify(I0(s)),u=y.useRef(!1);return W0(()=>{u.current=!0}),y.useCallback((h,p={})=>{if(er(u.current,F0),!u.current)return;if(typeof h=="number"){a.go(h);return}let v=lm(h,JSON.parse(c),o,p.relative==="path");e==null&&t!=="/"&&(v.pathname=v.pathname==="/"?t:Dn([t,v.pathname])),(p.replace?a.replace:a.push)(v,p.state,p)},[t,a,c,o,e])}y.createContext(null);function Fo(e,{relative:t}={}){let{matches:a}=y.useContext(Nr),{pathname:s}=Or(),o=JSON.stringify(I0(a));return y.useMemo(()=>lm(e,JSON.parse(o),s,t==="path"),[e,o,s,t])}function EC(e,t){return X0(e,t)}function X0(e,t,a){var R;nt(Yo(),"useRoutes() may be used only in the context of a component.");let{navigator:s}=y.useContext(xn),{matches:o}=y.useContext(Nr),c=o[o.length-1],u=c?c.params:{},d=c?c.pathname:"/",h=c?c.pathnameBase:"/",p=c&&c.route;{let C=p&&p.path||"";Q0(d,!p||C.endsWith("*")||C.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${d}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. - -Please change the parent to .`)}let v=Or(),g;if(t){let C=typeof t=="string"?hi(t):t;nt(h==="/"||((R=C.pathname)==null?void 0:R.startsWith(h)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${C.pathname}" was given in the \`location\` prop.`),g=C}else g=v;let S=g.pathname||"/",_=S;if(h!=="/"){let C=h.replace(/^\//,"").split("/");_="/"+S.replace(/^\//,"").split("/").slice(C.length).join("/")}let E=a&&a.state.matches.length?a.state.matches.map(C=>Object.assign(C,{route:a.manifest[C.route.id]||C.route})):z0(e,{pathname:_});er(p||E!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),er(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.length-1].route.lazy!==void 0,`Matched leaf route at location "${g.pathname}${g.search}${g.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let x=NC(E&&E.map(C=>Object.assign({},C,{params:Object.assign({},u,C.params),pathname:Dn([h,s.encodeLocation?s.encodeLocation(C.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:C.pathname]),pathnameBase:C.pathnameBase==="/"?h:Dn([h,s.encodeLocation?s.encodeLocation(C.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:C.pathnameBase])})),o,a);return t&&x?y.createElement(Ko.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...g},navigationType:"POP"}},x):x}function TC(){let e=DC(),t=dC(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,s="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:s},c={padding:"2px 4px",backgroundColor:s},u=null;return console.error("Error handled by React Router default ErrorBoundary:",e),u=y.createElement(y.Fragment,null,y.createElement("p",null,"💿 Hey developer 👋"),y.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",y.createElement("code",{style:c},"ErrorBoundary")," or"," ",y.createElement("code",{style:c},"errorElement")," prop on your route.")),y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},t),a?y.createElement("pre",{style:o},a):null,u)}var CC=y.createElement(TC,null),J0=class extends y.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const a=wC(e.digest);a&&(e=a)}let t=e!==void 0?y.createElement(Nr.Provider,{value:this.props.routeContext},y.createElement(cm.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?y.createElement(RC,{error:e},t):t}};J0.contextType=V0;var ah=new WeakMap;function RC({children:e,error:t}){let{basename:a}=y.useContext(xn);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let s=bC(t.digest);if(s){let o=ah.get(t);if(o)throw o;let c=q0(s.location,a);if(H0&&!ah.get(t))if(c.isExternal||s.reloadDocument)window.location.href=c.absoluteURL||c.to;else{const u=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(c.to,{replace:s.replace}));throw ah.set(t,u),u}return y.createElement("meta",{httpEquiv:"refresh",content:`0;url=${c.absoluteURL||c.to}`})}}return e}function AC({routeContext:e,match:t,children:a}){let s=y.useContext(mi);return s&&s.static&&s.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=t.route.id),y.createElement(Nr.Provider,{value:e},a)}function NC(e,t=[],a){let s=a==null?void 0:a.state;if(e==null){if(!s)return null;if(s.errors)e=s.matches;else if(t.length===0&&!s.initialized&&s.matches.length>0)e=s.matches;else return null}let o=e,c=s==null?void 0:s.errors;if(c!=null){let v=o.findIndex(g=>g.route.id&&(c==null?void 0:c[g.route.id])!==void 0);nt(v>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(c).join(",")}`),o=o.slice(0,Math.min(o.length,v+1))}let u=!1,d=-1;if(a&&s){u=s.renderFallback;for(let v=0;v=0?o=o.slice(0,d+1):o=[o[0]];break}}}}let h=a==null?void 0:a.onError,p=s&&h?(v,g)=>{var S,_;h(v,{location:s.location,params:((_=(S=s.matches)==null?void 0:S[0])==null?void 0:_.params)??{},pattern:fC(s.matches),errorInfo:g})}:void 0;return o.reduceRight((v,g,S)=>{let _,E=!1,x=null,R=null;s&&(_=c&&g.route.id?c[g.route.id]:void 0,x=g.route.errorElement||CC,u&&(d<0&&S===0?(Q0("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,R=null):d===S&&(E=!0,R=g.route.hydrateFallbackElement||null)));let C=t.concat(o.slice(0,S+1)),N=()=>{let A;return _?A=x:E?A=R:g.route.Component?A=y.createElement(g.route.Component,null):g.route.element?A=g.route.element:A=v,y.createElement(AC,{match:g,routeContext:{outlet:v,matches:C,isDataRoute:s!=null},children:A})};return s&&(g.route.ErrorBoundary||g.route.errorElement||S===0)?y.createElement(J0,{location:s.location,revalidation:s.revalidation,component:x,error:_,children:N(),routeContext:{outlet:null,matches:C,isDataRoute:!0},onError:p}):N()},null)}function um(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function OC(e){let t=y.useContext(mi);return nt(t,um(e)),t}function kC(e){let t=y.useContext(pu);return nt(t,um(e)),t}function jC(e){let t=y.useContext(Nr);return nt(t,um(e)),t}function dm(e){let t=jC(e),a=t.matches[t.matches.length-1];return nt(a.route.id,`${e} can only be used on routes that contain a unique "id"`),a.route.id}function MC(){return dm("useRouteId")}function DC(){var s;let e=y.useContext(cm),t=kC("useRouteError"),a=dm("useRouteError");return e!==void 0?e:(s=t.errors)==null?void 0:s[a]}function LC(){let{router:e}=OC("useNavigate"),t=dm("useNavigate"),a=y.useRef(!1);return W0(()=>{a.current=!0}),y.useCallback(async(o,c={})=>{er(a.current,F0),a.current&&(typeof o=="number"?await e.navigate(o):await e.navigate(o,{fromRouteId:t,...c}))},[e,t])}var ib={};function Q0(e,t,a){!t&&!ib[e]&&(ib[e]=!0,er(!1,a))}y.memo(UC);function UC({routes:e,manifest:t,future:a,state:s,isStatic:o,onError:c}){return X0(e,void 0,{manifest:t,state:s,isStatic:o,onError:c})}function Z0(e){nt(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function zC({basename:e="/",children:t=null,location:a,navigationType:s="POP",navigator:o,static:c=!1,useTransitions:u}){nt(!Yo(),"You cannot render a inside another . You should never have more than one in your app.");let d=e.replace(/^\/*/,"/"),h=y.useMemo(()=>({basename:d,navigator:o,static:c,useTransitions:u,future:{}}),[d,o,c,u]);typeof a=="string"&&(a=hi(a));let{pathname:p="/",search:v="",hash:g="",state:S=null,key:_="default",mask:E}=a,x=y.useMemo(()=>{let R=Cr(p,d);return R==null?null:{location:{pathname:R,search:v,hash:g,state:S,key:_,mask:E},navigationType:s}},[d,p,v,g,S,_,s,E]);return er(x!=null,` is not able to match the URL "${p}${v}${g}" because it does not start with the basename, so the won't render anything.`),x==null?null:y.createElement(xn.Provider,{value:h},y.createElement(Ko.Provider,{children:t,value:x}))}function PC({children:e,location:t}){return EC(Rh(e),t)}function Rh(e,t=[]){let a=[];return y.Children.forEach(e,(s,o)=>{if(!y.isValidElement(s))return;let c=[...t,o];if(s.type===y.Fragment){a.push.apply(a,Rh(s.props.children,c));return}nt(s.type===Z0,`[${typeof s.type=="string"?s.type:s.type.name}] is not a component. All component children of must be a or `),nt(!s.props.index||!s.props.children,"An index route cannot have child routes.");let u={id:s.props.id||c.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(u.children=Rh(s.props.children,c)),a.push(u)}),a}var $c="get",Hc="application/x-www-form-urlencoded";function gu(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function BC(e){return gu(e)&&e.tagName.toLowerCase()==="button"}function IC(e){return gu(e)&&e.tagName.toLowerCase()==="form"}function $C(e){return gu(e)&&e.tagName.toLowerCase()==="input"}function HC(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function qC(e,t){return e.button===0&&(!t||t==="_self")&&!HC(e)}var gc=null;function GC(){if(gc===null)try{new FormData(document.createElement("form"),0),gc=!1}catch{gc=!0}return gc}var VC=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function sh(e){return e!=null&&!VC.has(e)?(er(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Hc}"`),null):e}function KC(e,t){let a,s,o,c,u;if(IC(e)){let d=e.getAttribute("action");s=d?Cr(d,t):null,a=e.getAttribute("method")||$c,o=sh(e.getAttribute("enctype"))||Hc,c=new FormData(e)}else if(BC(e)||$C(e)&&(e.type==="submit"||e.type==="image")){let d=e.form;if(d==null)throw new Error('Cannot submit a + ); } diff --git a/src/components/board/ProjectDialog.tsx b/src/components/board/ProjectDialog.tsx index 4aef211..4977b67 100644 --- a/src/components/board/ProjectDialog.tsx +++ b/src/components/board/ProjectDialog.tsx @@ -11,6 +11,7 @@ import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Button } from "@/components/ui/button"; +import { Checkbox } from "@/components/ui/checkbox"; import { Select, SelectContent, @@ -20,7 +21,7 @@ import { } from "@/components/ui/select"; import { Badge } from "@/components/ui/badge"; import { Separator } from "@/components/ui/separator"; -import { AlertCircle, Loader2, Lock, DollarSign, Calendar } from "lucide-react"; +import { AlertCircle, Loader2, Lock, DollarSign, Calendar, Trash2 } from "lucide-react"; import { ColorPicker } from "./ColorPicker"; import { LinkList } from "./LinkList"; import { MESES, type Status } from "@/data/lists"; @@ -41,6 +42,14 @@ interface Props { open: boolean; onOpenChange: (v: boolean) => void; project?: Project | null; // editar; vacío = crear + onDelete?: (project: Project) => void; + deleting?: boolean; +} + +const WALMART_CONNECT_CLIENT = "Walmart Connect WMC"; + +function isWalmartConnectClient(client: string | null | undefined) { + return normalizeOptionKey(client) === normalizeOptionKey(WALMART_CONNECT_CLIENT); } const empty = (): Omit => { @@ -64,13 +73,14 @@ const empty = (): Omit => { }; }; -export function ProjectDialog({ open, onOpenChange, project }: Props) { +export function ProjectDialog({ open, onOpenChange, project, onDelete, deleting = false }: Props) { const { add, update } = useProjects(); const { lists, loading: listsLoading, error: listsError, refresh: refreshLists } = useAppLists(); - const { isGerardo } = useAuth(); + const { isGerardo, canDeleteProjects } = useAuth(); const isEdit = !!project; const [form, setForm] = useState>(empty()); + const [selectedWmcCountries, setSelectedWmcCountries] = useState([]); const [saving, setSaving] = useState(false); const [savingStep, setSavingStep] = useState(null); const [formError, setFormError] = useState(null); @@ -86,12 +96,15 @@ export function ProjectDialog({ open, onOpenChange, project }: Props) { if (project) { const { id: _i, createdAt: _c, ...rest } = project; + const cleanBu = canonicalOptionLabel(rest.bu); setForm({ ...rest, - bu: canonicalOptionLabel(rest.bu), + bu: cleanBu, }); + setSelectedWmcCountries(cleanBu ? [cleanBu] : []); } else if (open) { setForm(empty()); + setSelectedWmcCountries([]); } }, [project, open]); @@ -114,8 +127,51 @@ export function ProjectDialog({ open, onOpenChange, project }: Props) { setForm((f) => ({ ...f, bu: cleanBu, cm: getCountryManager(cleanBu) })); }; + const onCliente = (cliente: string) => { + const cleanCliente = canonicalOptionLabel(cliente); + + setForm((f) => ({ + ...f, + cliente: cleanCliente, + ...(isWalmartConnectClient(cleanCliente) && !isEdit + ? { bu: "", cm: "" } + : f.cliente && isWalmartConnectClient(f.cliente) + ? { bu: "", cm: "" } + : {}), + })); + + if (!isWalmartConnectClient(cleanCliente)) { + setSelectedWmcCountries([]); + } + }; + + const isWalmartConnectCreate = !isEdit && isWalmartConnectClient(form.cliente); + + const toggleWmcCountry = (country: string, checked: boolean) => { + const cleanCountry = canonicalOptionLabel(country); + + setSelectedWmcCountries((current) => { + if (checked) { + return dedupeOptions([...current, cleanCountry]); + } + + return current.filter( + (item) => normalizeOptionKey(item) !== normalizeOptionKey(cleanCountry), + ); + }); + }; + + const selectedWmcCountryManagers = selectedWmcCountries.map((country) => ({ + country, + manager: getCountryManager(country), + })); + const requiredOk = - form.nombre.trim() && form.cliente && form.bu && form.marca && form.solicitante.trim(); + form.nombre.trim() && + form.cliente && + form.marca && + form.solicitante.trim() && + (isWalmartConnectCreate ? selectedWmcCountries.length > 0 : form.bu); const showSaveToast = (result: Awaited>) => { if (result.sheetSyncStatus === "synced") { @@ -153,12 +209,46 @@ export function ProjectDialog({ open, onOpenChange, project }: Props) { setFormError(null); setSavingStep("Guardando y sincronizando con Google Sheet…"); - const result = - isEdit && project - ? await update(project.id, safeForm) - : await add({ ...safeForm, id: crypto.randomUUID(), createdAt: Date.now() }); + if (isWalmartConnectCreate) { + const countries = selectedWmcCountries; + const results = []; + + for (const [index, country] of countries.entries()) { + setSavingStep( + `Guardando Walmart Connect WMC ${index + 1} de ${countries.length}: ${country}…`, + ); + + const countryProject = { + ...safeForm, + bu: country, + cm: getCountryManager(country), + id: crypto.randomUUID(), + createdAt: Date.now() + index, + }; + + results.push(await add(countryProject)); + } + + const failedSyncs = results.filter((result) => result.sheetSyncStatus !== "synced"); + + if (failedSyncs.length === 0) { + toast.success("Proyectos Walmart Connect creados", { + description: `Se crearon ${countries.length} proyectos y ${countries.length} filas en Google Sheet.`, + }); + } else { + toast.warning("Proyectos Walmart Connect creados con aviso", { + description: `${failedSyncs.length} de ${countries.length} sincronizaciones con Google Sheet requieren revisión.`, + }); + } + } else { + const result = + isEdit && project + ? await update(project.id, safeForm) + : await add({ ...safeForm, id: crypto.randomUUID(), createdAt: Date.now() }); + + showSaveToast(result); + } - showSaveToast(result); onOpenChange(false); } catch (error) { console.error("Error guardando proyecto:", error); @@ -270,7 +360,7 @@ export function ProjectDialog({ open, onOpenChange, project }: Props) { - @@ -304,36 +394,101 @@ export function ProjectDialog({ open, onOpenChange, project }: Props) { {/* BU */} -
- - -
+ {isWalmartConnectCreate ? ( +
+
+ + + {selectedWmcCountries.length} seleccionado(s) + +
+

+ Para Walmart Connect WMC puedes seleccionar varios países. La app creará un + proyecto y una fila del Sheet por cada país. +

+
+ {buOptions.map((b) => { + const checked = selectedWmcCountries.some( + (country) => normalizeOptionKey(country) === normalizeOptionKey(b), + ); + const manager = getCountryManager(b); + + return ( + + ); + })} +
+
+ ) : ( +
+ + +
+ )} {/* CM autocompletado */} -
+
- + {isWalmartConnectCreate ? ( +
+ {selectedWmcCountryManagers.length === 0 ? ( + Selecciona uno o más países. + ) : ( +
+ {selectedWmcCountryManagers.map(({ country, manager }) => ( + + {country}: {manager || "—"} + + ))} +
+ )} +
+ ) : ( + + )}
{/* Solicitante */} @@ -477,15 +632,42 @@ export function ProjectDialog({ open, onOpenChange, project }: Props) { )}
- -
- - + +
+
+ {isEdit && project && canDeleteProjects && onDelete && ( + + )} +
+ +
+ + +
diff --git a/src/context/AuthContext.tsx b/src/context/AuthContext.tsx index 3460f44..f6ff4fb 100644 --- a/src/context/AuthContext.tsx +++ b/src/context/AuthContext.tsx @@ -12,6 +12,7 @@ import { supabase } from "@/lib/supabase"; const ALLOWED_DOMAIN = "gomezleemarketing.com"; const GERARDO_EMAIL = "gmarrero@gomezleemarketing.com"; +const DELETE_ALLOWED_EMAILS = [GERARDO_EMAIL, "areyes@gomezleemarketing.com"]; function isAllowedEmail(email: string | null | undefined): boolean { if (!email) return false; @@ -59,6 +60,7 @@ interface AuthContextValue { loading: boolean; error: string | null; isGerardo: boolean; + canDeleteProjects: boolean; loginWithGoogle: () => Promise; logout: () => Promise; } @@ -158,10 +160,17 @@ export function AuthProvider({ children }: { children: ReactNode }) { setError(null); }, []); - const isGerardo = useMemo(() => !!user && user.email?.toLowerCase() === GERARDO_EMAIL, [user]); + const normalizedEmail = user?.email?.toLowerCase() || ""; + const isGerardo = useMemo(() => normalizedEmail === GERARDO_EMAIL, [normalizedEmail]); + const canDeleteProjects = useMemo( + () => DELETE_ALLOWED_EMAILS.includes(normalizedEmail), + [normalizedEmail], + ); return ( - + {children} ); diff --git a/src/lib/store.ts b/src/lib/store.ts index 56ab183..5df6089 100644 --- a/src/lib/store.ts +++ b/src/lib/store.ts @@ -57,6 +57,7 @@ type DbProject = { const DEFAULT_COLOR: ColorId = "blue"; const OPEN_STATUS = "Activo"; const GERARDO_EMAIL = "gmarrero@gomezleemarketing.com"; +const DELETE_ALLOWED_EMAILS = [GERARDO_EMAIL, "areyes@gomezleemarketing.com"]; let listeners: Array<() => void> = []; let cache: Project[] = []; @@ -146,6 +147,11 @@ async function currentUserIsGerardo(): Promise { return user.email?.toLowerCase() === GERARDO_EMAIL; } +async function currentUserCanDeleteProjects(): Promise { + const user = await getCurrentUser(); + return DELETE_ALLOWED_EMAILS.includes(user.email?.toLowerCase() || ""); +} + function toProjectRow(project: Omit | Partial) { return { title: project.nombre, @@ -207,7 +213,7 @@ function getSyncWebhookUrl() { async function syncProjectToSheet( projectId: string, - action: "create" | "update", + action: "create" | "update" | "delete", ): Promise> { const webhookUrl = getSyncWebhookUrl(); @@ -215,7 +221,10 @@ async function syncProjectToSheet( console.info("No se configuró VITE_WEBHOOK_URL; se omite sincronización con Google Sheet."); return { sheetSyncStatus: "skipped", - sheetSyncMessage: "Proyecto guardado. No hay webhook configurado para sincronizar el Sheet.", + sheetSyncMessage: + action === "delete" + ? "No hay webhook configurado para eliminar el proyecto del Google Sheet." + : "Proyecto guardado. No hay webhook configurado para sincronizar el Sheet.", }; } @@ -249,13 +258,19 @@ async function syncProjectToSheet( return { sheetSyncStatus: "failed", - sheetSyncMessage: `Proyecto guardado, pero el Sheet no se pudo sincronizar: ${message}`, + sheetSyncMessage: + action === "delete" + ? `No se pudo eliminar el proyecto del Google Sheet: ${message}` + : `Proyecto guardado, pero el Sheet no se pudo sincronizar: ${message}`, }; } return { sheetSyncStatus: "synced", - sheetSyncMessage: "Proyecto guardado y sincronizado con el Google Sheet.", + sheetSyncMessage: + action === "delete" + ? "Proyecto eliminado del Google Sheet." + : "Proyecto guardado y sincronizado con el Google Sheet.", }; } catch (error) { const isTimeout = error instanceof DOMException && error.name === "AbortError"; @@ -265,8 +280,12 @@ async function syncProjectToSheet( return { sheetSyncStatus: isTimeout ? "timeout" : "failed", sheetSyncMessage: isTimeout - ? "Proyecto guardado, pero n8n tardó demasiado en responder. Revisa el workflow si el Sheet no se actualizó." - : "Proyecto guardado, pero no se pudo sincronizar con Google Sheet.", + ? action === "delete" + ? "n8n tardó demasiado en responder. No se eliminó el proyecto para evitar inconsistencias." + : "Proyecto guardado, pero n8n tardó demasiado en responder. Revisa el workflow si el Sheet no se actualizó." + : action === "delete" + ? "No se pudo eliminar el proyecto del Google Sheet. No se eliminó el proyecto para evitar inconsistencias." + : "Proyecto guardado, pero no se pudo sincronizar con Google Sheet.", }; } finally { window.clearTimeout(timeout); @@ -465,6 +484,50 @@ async function updateProject(id: string, patch: Partial) { } +async function deleteProject(id: string) { + setError(null); + + const canDelete = await currentUserCanDeleteProjects(); + + if (!canDelete) { + const message = "No tienes permiso para eliminar proyectos."; + setError(message); + throw new Error(message); + } + + const sheetSync = await syncProjectToSheet(id, "delete"); + + if (sheetSync.sheetSyncStatus !== "synced") { + const message = sheetSync.sheetSyncMessage || "No se pudo eliminar el proyecto del Google Sheet."; + setError(message); + throw new Error(message); + } + + const { error: linksError } = await supabase + .from("tablero_cdc_project_links") + .delete() + .eq("project_id", id); + + if (linksError) { + setError(linksError.message); + throw linksError; + } + + const { error: projectError } = await supabase + .from("tablero_cdc_projects") + .delete() + .eq("id", id); + + if (projectError) { + setError(projectError.message); + throw projectError; + } + + setCache(cache.filter((project) => project.id !== id)); + await loadProjects(); +} + + export function useProjects() { const [, force] = useState(0); @@ -496,6 +559,7 @@ export function useProjects() { refresh: loadProjects, add: addProject, update: updateProject, + remove: deleteProject, }; } diff --git a/src/pages/BoardPage.tsx b/src/pages/BoardPage.tsx index d46a9ac..430db86 100644 --- a/src/pages/BoardPage.tsx +++ b/src/pages/BoardPage.tsx @@ -39,7 +39,7 @@ function initials(name: string | null | undefined, email: string | null | undefi } export default function BoardPage() { - const { projects, loading, error, refresh } = useProjects(); + const { projects, loading, error, refresh, remove } = useProjects(); const { user, isGerardo, logout } = useAuth(); const projectsTopRef = useRef(null); @@ -53,6 +53,7 @@ export default function BoardPage() { abiertos: 1, cerrados: 1, }); + const [deletingProjectId, setDeletingProjectId] = useState(null); const filtered = useMemo(() => { const q = query.trim().toLowerCase(); @@ -105,6 +106,34 @@ export default function BoardPage() { setOpen(true); }; + const deleteProject = async (project: Project) => { + const confirmed = window.confirm( + `¿Seguro que deseas eliminar el proyecto "${project.nombre || "Sin título"}"?\n\nEsta acción eliminará el proyecto del tablero y del Google Sheet.`, + ); + + if (!confirmed) return; + + setDeletingProjectId(project.id); + + try { + await remove(project.id); + + if (editing?.id === project.id) { + setOpen(false); + setEditing(null); + } + } catch (err) { + console.error("Error eliminando proyecto:", err); + const message = + err instanceof Error + ? err.message + : "No se pudo eliminar el proyecto. Revisa n8n, Supabase o permisos."; + window.alert(message); + } finally { + setDeletingProjectId(null); + } + }; + const displayName = user?.displayName ?? user?.email ?? "Usuario"; const userRole = isGerardo ? "Jefe CDC" : "Usuario CDC"; const userInitials = initials(user?.displayName, user?.email); @@ -256,7 +285,11 @@ export default function BoardPage() { ) : (
{paginatedProjects.map((p) => ( - openEdit(p)} /> + openEdit(p)} + /> ))}
)} @@ -273,7 +306,13 @@ export default function BoardPage() { )} - +
); }