From 4e6e9e30212bd3019cb3970b48bda2577ba7a546 Mon Sep 17 00:00:00 2001 From: legop3 Date: Fri, 17 Jul 2026 21:01:48 -0400 Subject: [PATCH] new themeses!! --- server/public/assets/index-9ecW8jwy.css | 1 - server/public/assets/index-BHMHSpML.css | 1 + .../{index-IknCIkGO.js => index-DC2T_UQE.js} | 28 +-- server/public/assets/index-DC2T_UQE.js.map | 1 + server/public/assets/index-IknCIkGO.js.map | 1 - server/public/index.html | 4 +- to-do.md | 13 +- webui/src/App.jsx | 13 +- webui/src/components/PtzCamera/index.jsx | 23 +- webui/src/components/RightPaneTabs/index.jsx | 2 +- webui/src/components/SettingsPanel/index.jsx | 133 ++++++++++- webui/src/components/Tabs/index.jsx | 2 +- webui/src/database/DatabaseAdminApp.jsx | 9 +- webui/src/index.css | 20 -- webui/src/main.jsx | 3 + webui/src/themeFlags.js | 9 - webui/src/themes/catalog.js | 55 +++++ webui/src/themes/index.js | 12 + webui/src/themes/layout.js | 6 + webui/src/themes/styles/base.css | 26 +++ webui/src/themes/styles/index.css | 8 + webui/src/themes/styles/patterns.css | 207 ++++++++++++++++++ webui/src/themes/styles/pride.css | 124 +++++++++++ 23 files changed, 636 insertions(+), 65 deletions(-) delete mode 100644 server/public/assets/index-9ecW8jwy.css create mode 100644 server/public/assets/index-BHMHSpML.css rename server/public/assets/{index-IknCIkGO.js => index-DC2T_UQE.js} (73%) create mode 100644 server/public/assets/index-DC2T_UQE.js.map delete mode 100644 server/public/assets/index-IknCIkGO.js.map delete mode 100644 webui/src/themeFlags.js create mode 100644 webui/src/themes/catalog.js create mode 100644 webui/src/themes/index.js create mode 100644 webui/src/themes/layout.js create mode 100644 webui/src/themes/styles/base.css create mode 100644 webui/src/themes/styles/index.css create mode 100644 webui/src/themes/styles/patterns.css create mode 100644 webui/src/themes/styles/pride.css diff --git a/server/public/assets/index-9ecW8jwy.css b/server/public/assets/index-9ecW8jwy.css deleted file mode 100644 index a47815e7..00000000 --- a/server/public/assets/index-9ecW8jwy.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.inter-instance-overlay-frame{max-width:calc(100vw - .5rem)}.inter-instance-overlay-body{max-height:82vh}@media(min-width:1024px){.inter-instance-overlay-scale{zoom:1.5}.inter-instance-overlay-frame{max-width:calc((100vw - .5rem) / 1.5)}.inter-instance-overlay-body{max-height:54.6667vh}}.pride-page-bg{background-color:#050505;background-image:linear-gradient(#0000,#0000),repeating-linear-gradient(45deg,#5bcefa 0 1.818%,#f5a9b8 1.818% 3.636%,#fff 3.636% 5.455%,#f5a9b8 5.455% 7.273%,#5bcefa 7.273% 9.091%,#e40303 9.091% 10.909%,#ff8c00 10.909% 12.727%,#ffed00 12.727% 14.545%,#00a651 14.545% 16.364%,#06f 16.364% 18.182%,#9b2fae 18.182% 20%);background-attachment:fixed}.\!panel,.panel{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:0;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.panel-section{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity));padding:0;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.panel-muted{border-radius:.375rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.surface{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.surface-muted{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.field-input{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.field-input::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.field-input::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.field-input:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity))}.button-dark{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity));padding:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-dark:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.button-danger{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity));padding:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-danger:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.chat-composer{container-type:inline-size;display:flex;flex-wrap:wrap;align-items:stretch;gap:.125rem;min-width:0;overflow:hidden}.chat-composer-nickname{flex:0 0 5rem;min-width:0;order:1}.chat-composer-input{flex:1 1 0%;min-width:0;order:2}.chat-composer-send{flex:0 0 auto;align-self:stretch;order:3}.chat-composer-tts{display:flex;flex:1 1 100%;align-items:center;gap:.125rem;min-width:0;overflow:hidden;order:4}@container (min-width: 44rem){.chat-composer{flex-wrap:nowrap}.chat-composer-nickname{flex-basis:7rem;order:1}.chat-composer-input{order:2}.chat-composer-tts{flex:0 1 auto;order:3}.chat-composer-send{order:4}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-x-1{left:.25rem;right:.25rem}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.bottom-\[calc\(100\%\+0\.125rem\)\]{bottom:calc(100% + .125rem)}.left-0{left:0}.left-0\.5{left:.125rem}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-4{left:1rem}.right-0{right:0}.right-0\.5{right:.125rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-6{top:1.5rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[110\]{z-index:110}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[2000\]{z-index:2000}.z-\[70\]{z-index:70}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}.m-0{margin:0}.-mx-0\.5{margin-left:-.125rem;margin-right:-.125rem}.mx-auto{margin-left:auto;margin-right:auto}.my-\[-0\.125rem\]{margin-top:-.125rem;margin-bottom:-.125rem}.-mt-0\.5{margin-top:-.125rem}.mb-0\.5{margin-bottom:.125rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.mr-0{margin-right:0}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-\[0\.35vh\]{margin-top:.35vh}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-52{height:13rem}.h-64{height:16rem}.h-8{height:2rem}.h-\[100dvh\]{height:100dvh}.h-\[2px\]{height:2px}.h-\[3\.5rem\]{height:3.5rem}.h-\[70\%\]{height:70%}.h-\[7rem\]{height:7rem}.h-\[8vh\]{height:8vh}.h-\[calc\(100dvh-0\.25rem\)\]{height:calc(100dvh - .25rem)}.h-\[calc\(1rem\+0\.25rem\)\]{height:1.25rem}.h-\[min\(100svh\,32rem\)\]{height:min(100svh,32rem)}.h-\[min\(60svh\,24rem\)\]{height:min(60svh,24rem)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-36{max-height:9rem}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[14rem\]{max-height:14rem}.max-h-\[36rem\]{max-height:36rem}.max-h-\[70vh\]{max-height:70vh}.max-h-\[72vh\]{max-height:72vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[min\(60vh\,36rem\)\]{max-height:min(60vh,36rem)}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-14{min-height:3.5rem}.min-h-5{min-height:1.25rem}.min-h-7{min-height:1.75rem}.min-h-9{min-height:2.25rem}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[10rem\]{min-height:10rem}.min-h-\[12rem\]{min-height:12rem}.min-h-\[14rem\]{min-height:14rem}.min-h-\[16rem\]{min-height:16rem}.min-h-\[18rem\]{min-height:18rem}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[4rem\]{min-height:4rem}.min-h-\[5rem\]{min-height:5rem}.min-h-\[7rem\]{min-height:7rem}.min-h-\[calc\(100dvh-0\.25rem\)\]{min-height:calc(100dvh - .25rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[100vw\]{width:100vw}.w-\[12\.5rem\]{width:12.5rem}.w-\[12rem\]{width:12rem}.w-\[14rem\]{width:14rem}.w-\[22rem\]{width:22rem}.w-\[2px\]{width:2px}.w-\[3\.25rem\]{width:3.25rem}.w-\[4\.5rem\]{width:4.5rem}.w-\[5\.5rem\]{width:5.5rem}.w-\[5rem\]{width:5rem}.w-\[9rem\]{width:9rem}.w-\[calc\(1rem\+0\.25rem\)\]{width:1.25rem}.w-\[min\(20rem\,calc\(100vw-1rem\)\)\]{width:min(20rem,calc(100vw - 1rem))}.w-\[min\(34vw\,34rem\)\]{width:min(34vw,34rem)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-28{min-width:7rem}.min-w-56{min-width:14rem}.min-w-\[0\]{min-width:0}.min-w-\[3\.7rem\]{min-width:3.7rem}.min-w-\[5\.5rem\]{min-width:5.5rem}.min-w-\[9\.5rem\]{min-width:9.5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-40{max-width:10rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[24rem\]{max-width:24rem}.max-w-\[40vw\]{max-width:40vw}.max-w-\[70vw\]{max-width:70vw}.max-w-\[80vw\]{max-width:80vw}.max-w-\[92\%\]{max-width:92%}.max-w-\[92vw\]{max-width:92vw}.max-w-\[94\%\]{max-width:94%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[0\.72\]{flex:.72}.flex-\[1\.1\]{flex:1.1}.flex-\[1\.22\]{flex:1.22}.flex-\[1\.28\]{flex:1.28}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-\[0\.75\]{flex-grow:.75}.grow-\[0\.9\]{flex-grow:.9}.grow-\[1\]{flex-grow:1}.basis-0{flex-basis:0px}.origin-center{transform-origin:center}.origin-top-left{transform-origin:top left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1\.5rem_minmax\(0\,1fr\)_3rem\]{grid-template-columns:1.5rem minmax(0,1fr) 3rem}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[minmax\(0\,0\.7fr\)_minmax\(0\,2\.1fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,.7fr) minmax(0,2.1fr) minmax(0,.7fr)}.grid-cols-\[minmax\(0\,1\.2fr\)_repeat\(4\,minmax\(0\,1fr\)\)\]{grid-template-columns:minmax(0,1.2fr) repeat(4,minmax(0,1fr))}.grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,0\.95fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,.95fr)}.grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(0\,0\.22fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(0,.22fr)}.grid-cols-\[minmax\(0\,1\.45fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr)}.grid-cols-\[minmax\(0\,1\.6fr\)_minmax\(16rem\,0\.7fr\)\]{grid-template-columns:minmax(0,1.6fr) minmax(16rem,.7fr)}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_13rem\]{grid-template-columns:minmax(0,1fr) 13rem}.grid-cols-\[minmax\(0\,1fr\)_14rem\]{grid-template-columns:minmax(0,1fr) 14rem}.grid-cols-\[minmax\(0\,1fr\)_2\.5rem\]{grid-template-columns:minmax(0,1fr) 2.5rem}.grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.grid-cols-\[minmax\(0\,1fr\)_4\.75rem\]{grid-template-columns:minmax(0,1fr) 4.75rem}.grid-cols-\[minmax\(0\,1fr\)_8rem\]{grid-template-columns:minmax(0,1fr) 8rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.7fr\)_minmax\(0\,1\.9fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1.9fr) minmax(0,.7fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_auto_1fr\]{grid-template-rows:auto auto 1fr}.grid-rows-\[auto_auto_1fr_auto\]{grid-template-rows:auto auto 1fr auto}.grid-rows-\[auto_auto_auto_1fr\]{grid-template-rows:auto auto auto 1fr}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_auto\]{grid-template-rows:minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_minmax\(7rem\,0\.22fr\)\]{grid-template-rows:minmax(0,1fr) minmax(7rem,.22fr)}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-stretch{justify-content:stretch}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-\[0\.4vh\]{gap:.4vh}.gap-\[0\.55vh\]{gap:.55vh}.gap-\[0\.8vw\]{gap:.8vw}.gap-\[1vh\]{gap:1vh}.gap-\[1vw\]{gap:1vw}.gap-\[3vh\]{gap:3vh}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity))}.border-amber-200\/30{border-color:#fde68a4d}.border-amber-200\/70{border-color:#fde68ab3}.border-amber-200\/90{border-color:#fde68ae6}.border-amber-300\/60{border-color:#fcd34d99}.border-amber-300\/70{border-color:#fcd34db3}.border-amber-300\/80{border-color:#fcd34dcc}.border-amber-400\/30{border-color:#fbbf244d}.border-amber-400\/60{border-color:#fbbf2499}.border-amber-500\/50{border-color:#f59e0b80}.border-amber-600\/60{border-color:#d9770699}.border-amber-700\/60{border-color:#b4530999}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity))}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity))}.border-cyan-200\/90{border-color:#a5f3fce6}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.border-cyan-300\/60{border-color:#67e8f999}.border-cyan-300\/70{border-color:#67e8f9b3}.border-cyan-300\/80{border-color:#67e8f9cc}.border-cyan-500\/40{border-color:#06b6d466}.border-emerald-100\/80{border-color:#d1fae5cc}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity))}.border-emerald-200\/70{border-color:#a7f3d0b3}.border-emerald-200\/90{border-color:#a7f3d0e6}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity))}.border-emerald-300\/70{border-color:#6ee7b7b3}.border-emerald-400\/60{border-color:#34d39999}.border-emerald-500\/40{border-color:#10b98166}.border-emerald-700\/60{border-color:#04785799}.border-emerald-700\/70{border-color:#047857b3}.border-emerald-950{--tw-border-opacity: 1;border-color:rgb(2 44 34 / var(--tw-border-opacity))}.border-fuchsia-300\/70{border-color:#f0abfcb3}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity))}.border-indigo-200\/70{border-color:#c7d2feb3}.border-indigo-200\/95{border-color:#c7d2fef2}.border-indigo-300\/70{border-color:#a5b4fcb3}.border-indigo-400\/30{border-color:#818cf84d}.border-indigo-700{--tw-border-opacity: 1;border-color:rgb(67 56 202 / var(--tw-border-opacity))}.border-indigo-700\/60{border-color:#4338ca99}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-neutral-500\/50{border-color:#73737380}.border-neutral-500\/60{border-color:#73737399}.border-neutral-600{--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity))}.border-neutral-600\/60{border-color:#52525299}.border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.border-neutral-700\/70{border-color:#404040b3}.border-pink-200{--tw-border-opacity: 1;border-color:rgb(251 207 232 / var(--tw-border-opacity))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.border-red-300\/90{border-color:#fca5a5e6}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-red-400\/60{border-color:#f8717199}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity))}.border-sky-400\/50{border-color:#38bdf880}.border-sky-400\/70{border-color:#38bdf8b3}.border-slate-200\/30{border-color:#e2e8f04d}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity))}.border-slate-400\/60{border-color:#94a3b899}.border-slate-500\/70{border-color:#64748bb3}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity))}.border-slate-600\/40{border-color:#47556966}.border-slate-600\/60{border-color:#47556999}.border-slate-600\/70{border-color:#475569b3}.border-slate-600\/80{border-color:#475569cc}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.border-slate-700\/60{border-color:#33415599}.border-slate-700\/70{border-color:#334155b3}.border-slate-700\/80{border-color:#334155cc}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.border-slate-800\/60{border-color:#1e293b99}.border-slate-800\/80{border-color:#1e293bcc}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-white\/10{border-color:#ffffff1a}.border-white\/40{border-color:#fff6}.border-white\/80{border-color:#fffc}.border-l-neutral-600{--tw-border-opacity: 1;border-left-color:rgb(82 82 82 / var(--tw-border-opacity))}.\!bg-black{--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.bg-amber-100\/95{background-color:#fef3c7f2}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.bg-amber-400\/80{background-color:#fbbf24cc}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity))}.bg-amber-500\/30{background-color:#f59e0b4d}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.bg-amber-600\/70{background-color:#d97706b3}.bg-amber-600\/80{background-color:#d97706cc}.bg-amber-700\/20{background-color:#b4530933}.bg-amber-700\/30{background-color:#b453094d}.bg-amber-700\/35{background-color:#b4530959}.bg-amber-700\/50{background-color:#b4530980}.bg-amber-700\/80{background-color:#b45309cc}.bg-amber-800{--tw-bg-opacity: 1;background-color:rgb(146 64 14 / var(--tw-bg-opacity))}.bg-amber-900{--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity))}.bg-amber-900\/40{background-color:#78350f66}.bg-amber-900\/60{background-color:#78350f99}.bg-amber-900\/90{background-color:#78350fe6}.bg-amber-950\/35{background-color:#451a0359}.bg-amber-950\/40{background-color:#451a0366}.bg-amber-950\/70{background-color:#451a03b3}.bg-amber-950\/75{background-color:#451a03bf}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/45{background-color:#00000073}.bg-black\/50{background-color:#00000080}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-black\/75{background-color:#000000bf}.bg-black\/80{background-color:#000c}.bg-black\/95{background-color:#000000f2}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-cyan-300{--tw-bg-opacity: 1;background-color:rgb(103 232 249 / var(--tw-bg-opacity))}.bg-cyan-300\/20{background-color:#67e8f933}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity))}.bg-cyan-500\/80{background-color:#06b6d4cc}.bg-cyan-900{--tw-bg-opacity: 1;background-color:rgb(22 78 99 / var(--tw-bg-opacity))}.bg-cyan-900\/45{background-color:#164e6373}.bg-cyan-900\/90{background-color:#164e63e6}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.bg-emerald-500\/45{background-color:#10b98173}.bg-emerald-500\/80{background-color:#10b981cc}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity))}.bg-emerald-600\/70{background-color:#059669b3}.bg-emerald-600\/80{background-color:#059669cc}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.bg-emerald-700\/20{background-color:#04785733}.bg-emerald-700\/60{background-color:#04785799}.bg-emerald-700\/70{background-color:#047857b3}.bg-emerald-800{--tw-bg-opacity: 1;background-color:rgb(6 95 70 / var(--tw-bg-opacity))}.bg-emerald-900{--tw-bg-opacity: 1;background-color:rgb(6 78 59 / var(--tw-bg-opacity))}.bg-emerald-900\/60{background-color:#064e3b99}.bg-emerald-900\/90{background-color:#064e3be6}.bg-emerald-950{--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity))}.bg-emerald-950\/50{background-color:#022c2280}.bg-fuchsia-200{--tw-bg-opacity: 1;background-color:rgb(245 208 254 / var(--tw-bg-opacity))}.bg-fuchsia-600{--tw-bg-opacity: 1;background-color:rgb(192 38 211 / var(--tw-bg-opacity))}.bg-fuchsia-700{--tw-bg-opacity: 1;background-color:rgb(162 28 175 / var(--tw-bg-opacity))}.bg-fuchsia-800{--tw-bg-opacity: 1;background-color:rgb(134 25 143 / var(--tw-bg-opacity))}.bg-fuchsia-900\/45{background-color:#701a7573}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity))}.bg-indigo-600\/70{background-color:#4f46e5b3}.bg-indigo-900{--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity))}.bg-indigo-900\/60{background-color:#312e8199}.bg-indigo-950{--tw-bg-opacity: 1;background-color:rgb(30 27 75 / var(--tw-bg-opacity))}.bg-indigo-950\/90{background-color:#1e1b4be6}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-800\/80{background-color:#262626cc}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-neutral-900\/100{background-color:#171717}.bg-neutral-900\/60{background-color:#17171799}.bg-neutral-900\/70{background-color:#171717b3}.bg-neutral-900\/95{background-color:#171717f2}.bg-neutral-950{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity))}.bg-neutral-950\/90{background-color:#0a0a0ae6}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-500\/45{background-color:#ef444473}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-red-600\/70{background-color:#dc2626b3}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-red-700\/20{background-color:#b91c1c33}.bg-red-700\/60{background-color:#b91c1c99}.bg-red-700\/80{background-color:#b91c1ccc}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-red-900\/35{background-color:#7f1d1d59}.bg-red-900\/40{background-color:#7f1d1d66}.bg-red-900\/45{background-color:#7f1d1d73}.bg-red-900\/80{background-color:#7f1d1dcc}.bg-red-950\/70{background-color:#450a0ab3}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity))}.bg-sky-700{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity))}.bg-sky-700\/20{background-color:#0369a133}.bg-sky-700\/70{background-color:#0369a1b3}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}.bg-slate-600\/70{background-color:#475569b3}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-700\/30{background-color:#3341554d}.bg-slate-700\/60{background-color:#33415599}.bg-slate-700\/70{background-color:#334155b3}.bg-slate-700\/80{background-color:#334155cc}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-slate-800\/60{background-color:#1e293b99}.bg-slate-800\/70{background-color:#1e293bb3}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.bg-slate-900\/35{background-color:#0f172a59}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/70{background-color:#0f172ab3}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity))}.bg-slate-950\/35{background-color:#02061759}.bg-slate-950\/80{background-color:#020617cc}.bg-slate-950\/85{background-color:#020617d9}.bg-slate-950\/90{background-color:#020617e6}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity))}.bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.bg-zinc-900\/90{background-color:#18181be6}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-lime-800{--tw-gradient-from: #3f6212 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 98 18 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-neutral-800{--tw-gradient-from: #262626 var(--tw-gradient-from-position);--tw-gradient-to: rgb(38 38 38 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-neutral-950{--tw-gradient-from: #0a0a0a var(--tw-gradient-from-position);--tw-gradient-to: rgb(10 10 10 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-neutral-700{--tw-gradient-to: rgb(64 64 64 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #404040 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-neutral-950\/90{--tw-gradient-to: rgb(10 10 10 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(10 10 10 / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-neutral-600{--tw-gradient-to: #525252 var(--tw-gradient-to-position)}.to-teal-800{--tw-gradient-to: #115e59 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-slate-100{fill:#f1f5f9}.fill-slate-200{fill:#e2e8f0}.fill-slate-400{fill:#94a3b8}.fill-white{fill:#fff}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-\[0\.85vw\]{padding:.85vw}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[1\.2vw\]{padding-left:1.2vw;padding-right:1.2vw}.px-\[1\.6vw\]{padding-left:1.6vw;padding-right:1.6vw}.px-\[1vw\]{padding-left:1vw;padding-right:1vw}.px-\[3vw\]{padding-left:3vw;padding-right:3vw}.px-\[4vw\]{padding-left:4vw;padding-right:4vw}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-\[0\.55vh\]{padding-top:.55vh;padding-bottom:.55vh}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[2\.5vh\]{padding-top:2.5vh;padding-bottom:2.5vh}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[4vh\]{padding-top:4vh;padding-bottom:4vh}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.45rem\]{font-size:.45rem}.text-\[0\.48rem\]{font-size:.48rem}.text-\[0\.52rem\]{font-size:.52rem}.text-\[0\.55em\]{font-size:.55em}.text-\[0\.55rem\]{font-size:.55rem}.text-\[0\.58rem\]{font-size:.58rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.62rem\]{font-size:.62rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.82rem\]{font-size:.82rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[17vw\]{font-size:17vw}.text-\[1rem\]{font-size:1rem}.text-\[2\.5vw\]{font-size:2.5vw}.text-\[2\.6vw\]{font-size:2.6vw}.text-\[3\.1vw\]{font-size:3.1vw}.text-\[3vw\]{font-size:3vw}.text-\[4vw\]{font-size:4vw}.text-\[6vw\]{font-size:6vw}.text-\[7vw\]{font-size:7vw}.text-\[clamp\(1\.25rem\,2\.5vh\,2\.6rem\)\]{font-size:clamp(1.25rem,2.5vh,2.6rem)}.text-\[clamp\(1\.2rem\,2\.9vh\,3rem\)\]{font-size:clamp(1.2rem,2.9vh,3rem)}.text-\[clamp\(2\.1rem\,5\.1vh\,5\.6rem\)\]{font-size:clamp(2.1rem,5.1vh,5.6rem)}.text-\[clamp\(2\.5rem\,5\.3vh\,5\.8rem\)\]{font-size:clamp(2.5rem,5.3vh,5.8rem)}.text-\[clamp\(2\.5rem\,7vh\,7rem\)\]{font-size:clamp(2.5rem,7vh,7rem)}.text-\[clamp\(2\.5rem\,8vh\,8rem\)\]{font-size:clamp(2.5rem,8vh,8rem)}.text-\[clamp\(2rem\,5vh\,5\.2rem\)\]{font-size:clamp(2rem,5vh,5.2rem)}.text-\[clamp\(3\.2rem\,11vh\,11rem\)\]{font-size:clamp(3.2rem,11vh,11rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-\[0\.95\]{line-height:.95}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-100{--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity))}.text-amber-200\/80{color:#fde68acc}.text-amber-200\/85{color:#fde68ad9}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity))}.text-amber-50{--tw-text-opacity: 1;color:rgb(255 251 235 / var(--tw-text-opacity))}.text-amber-50\/90{color:#fffbebe6}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-cyan-100{--tw-text-opacity: 1;color:rgb(207 250 254 / var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-50{--tw-text-opacity: 1;color:rgb(236 254 255 / var(--tw-text-opacity))}.text-cyan-950{--tw-text-opacity: 1;color:rgb(8 51 68 / var(--tw-text-opacity))}.text-emerald-100{--tw-text-opacity: 1;color:rgb(209 250 229 / var(--tw-text-opacity))}.text-emerald-100\/80{color:#d1fae5cc}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity))}.text-emerald-50{--tw-text-opacity: 1;color:rgb(236 253 245 / var(--tw-text-opacity))}.text-emerald-50\/90{color:#ecfdf5e6}.text-emerald-950{--tw-text-opacity: 1;color:rgb(2 44 34 / var(--tw-text-opacity))}.text-fuchsia-50{--tw-text-opacity: 1;color:rgb(253 244 255 / var(--tw-text-opacity))}.text-fuchsia-900{--tw-text-opacity: 1;color:rgb(112 26 117 / var(--tw-text-opacity))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity))}.text-indigo-50{--tw-text-opacity: 1;color:rgb(238 242 255 / var(--tw-text-opacity))}.text-indigo-50\/90{color:#eef2ffe6}.text-lime-300{--tw-text-opacity: 1;color:rgb(190 242 100 / var(--tw-text-opacity))}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity))}.text-neutral-100{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-neutral-300{--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.text-neutral-50{--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity))}.text-red-100\/90{color:#fee2e2e6}.text-red-100\/95{color:#fee2e2f2}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-red-50{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity))}.text-rose-200{--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity))}.text-rose-300{--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity))}.text-sky-100{--tw-text-opacity: 1;color:rgb(224 242 254 / var(--tw-text-opacity))}.text-sky-200{--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity))}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity))}.text-sky-50{--tw-text-opacity: 1;color:rgb(240 249 255 / var(--tw-text-opacity))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-400\/60{color:#94a3b899}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity))}.accent-cyan-500{accent-color:#06b6d4}.accent-emerald-400{accent-color:#34d399}.accent-emerald-500{accent-color:#10b981}.accent-red-500{accent-color:#ef4444}.accent-sky-500{accent-color:#0ea5e9}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_0_rgba\(255\,255\,255\,0\.05\)_inset\,0_10px_24px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow: 0 1px 0 rgba(255,255,255,.05) inset,0 10px 24px rgba(0,0,0,.28);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 10px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/40{--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-950\/50{--tw-shadow-color: rgb(8 51 68 / .5);--tw-shadow: var(--tw-shadow-colored)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-amber-200\/60{--tw-ring-color: rgb(253 230 138 / .6)}.ring-amber-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity))}.ring-amber-300\/80{--tw-ring-color: rgb(252 211 77 / .8)}.ring-emerald-300\/50{--tw-ring-color: rgb(110 231 183 / .5)}.ring-emerald-300\/70{--tw-ring-color: rgb(110 231 183 / .7)}.ring-red-300\/60{--tw-ring-color: rgb(252 165 165 / .6)}.ring-red-500\/70{--tw-ring-color: rgb(239 68 68 / .7)}.ring-red-500\/80{--tw-ring-color: rgb(239 68 68 / .8)}.ring-red-500\/90{--tw-ring-color: rgb(239 68 68 / .9)}.ring-sky-300\/50{--tw-ring-color: rgb(125 211 252 / .5)}.ring-sky-400\/80{--tw-ring-color: rgb(56 189 248 / .8)}.ring-slate-400\/40{--tw-ring-color: rgb(148 163 184 / .4)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,opacity\]{transition-property:width,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes batteryTickWarn{0%,49%{background-color:#fffffff2}50%,to{background-color:#ef4444f2}}.battery-tick-warn{animation:batteryTickWarn .4s steps(2,end) infinite}@keyframes batteryUrgentFlash{0%,49%{opacity:1}50%,to{opacity:.25}}.battery-urgent-flash{animation:batteryUrgentFlash .4s steps(2,end) infinite}.no-touch-select{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.mobile-touch-control{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:contain}.mobile-drag-control{touch-action:none}.mobile-text-entry{font-size:16px;-webkit-text-size-adjust:100%;touch-action:manipulation}.\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}body{margin:0;min-height:100vh;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}html,body,*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.55) transparent}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*::-webkit-scrollbar{width:2px;height:2px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#94a3b88c;border-radius:9999px}@supports (scrollbar-width: thin){@media(pointer:coarse){html,body,*{scrollbar-width:none}}}.placeholder\:text-slate-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.placeholder\:text-slate-400::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-green-100:hover{--tw-border-opacity: 1;border-color:rgb(220 252 231 / var(--tw-border-opacity))}.hover\:border-rose-500:hover{--tw-border-opacity: 1;border-color:rgb(244 63 94 / var(--tw-border-opacity))}.hover\:border-sky-500:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity))}.hover\:border-white:hover{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.hover\:border-white\/60:hover{border-color:#fff9}.hover\:bg-amber-400:hover{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.hover\:bg-amber-600:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.hover\:bg-amber-800:hover{--tw-bg-opacity: 1;background-color:rgb(146 64 14 / var(--tw-bg-opacity))}.hover\:bg-cyan-400:hover{--tw-bg-opacity: 1;background-color:rgb(34 211 238 / var(--tw-bg-opacity))}.hover\:bg-cyan-800:hover{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity))}.hover\:bg-emerald-400:hover{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity))}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.hover\:bg-fuchsia-500:hover{--tw-bg-opacity: 1;background-color:rgb(217 70 239 / var(--tw-bg-opacity))}.hover\:bg-green-400:hover{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity))}.hover\:bg-indigo-800:hover{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity))}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:bg-pink-400:hover{--tw-bg-opacity: 1;background-color:rgb(244 114 182 / var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.hover\:bg-rose-500:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.hover\:bg-sky-500:hover{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}.hover\:bg-slate-700\/70:hover{background-color:#334155b3}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-zinc-900:hover{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}.focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-emerald-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-slate-500:focus-visible{outline-color:#64748b}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-amber-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity))}.focus-visible\:ring-cyan-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity))}.focus-visible\:ring-emerald-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity))}.focus-visible\:ring-emerald-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity))}.focus-visible\:ring-indigo-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.99\]:active{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:brightness-125:active{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}@media(max-width:520px){.max-\[520px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-\[520px\]\:justify-start{justify-content:flex-start}}@media(max-width:420px){.max-\[420px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-\[420px\]\:grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.max-\[420px\]\:justify-start{justify-content:flex-start}}@media(min-width:640px){.sm\:block{display:block}.sm\:min-h-\[18rem\]{min-height:18rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media(min-width:768px){.md\:h-full{height:100%}.md\:h-screen{height:100vh}.md\:min-h-0{min-height:0px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[0\.9fr_1fr_1\.3fr\]{grid-template-columns:.9fr 1fr 1.3fr}.md\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1fr\)_10rem\]{grid-template-columns:minmax(0,1fr) 10rem}.md\:grid-cols-\[minmax\(0\,1fr\)_18rem\]{grid-template-columns:minmax(0,1fr) 18rem}.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.md\:grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}.md\:grid-cols-\[minmax\(16rem\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.2fr)}.md\:items-start{align-items:flex-start}.md\:overflow-hidden{overflow:hidden}.md\:overflow-y-auto{overflow-y:auto}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media(min-width:1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[24rem_minmax\(0\,1fr\)\]{grid-template-columns:24rem minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.25fr\)_minmax\(0\,0\.9fr\)\]{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.lg\:grid-cols-\[minmax\(0\,1fr\)_9rem_10rem\]{grid-template-columns:minmax(0,1fr) 9rem 10rem}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:text-right{text-align:right}}@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}} diff --git a/server/public/assets/index-BHMHSpML.css b/server/public/assets/index-BHMHSpML.css new file mode 100644 index 00000000..6a736821 --- /dev/null +++ b/server/public/assets/index-BHMHSpML.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.inter-instance-overlay-frame{max-width:calc(100vw - .5rem)}.inter-instance-overlay-body{max-height:82vh}@media(min-width:1024px){.inter-instance-overlay-scale{zoom:1.5}.inter-instance-overlay-frame{max-width:calc((100vw - .5rem) / 1.5)}.inter-instance-overlay-body{max-height:54.6667vh}}.\!panel,.panel{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));padding:0;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.panel-section{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity));padding:0;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.panel-muted{border-radius:.375rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.surface{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.surface-muted{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.field-input{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:.125rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.field-input::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.field-input::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.field-input:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(14 165 233 / var(--tw-ring-opacity))}.button-dark{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity));padding:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-dark:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.button-danger{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity));padding:.125rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.button-danger:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.chat-composer{container-type:inline-size;display:flex;flex-wrap:wrap;align-items:stretch;gap:.125rem;min-width:0;overflow:hidden}.chat-composer-nickname{flex:0 0 5rem;min-width:0;order:1}.chat-composer-input{flex:1 1 0%;min-width:0;order:2}.chat-composer-send{flex:0 0 auto;align-self:stretch;order:3}.chat-composer-tts{display:flex;flex:1 1 100%;align-items:center;gap:.125rem;min-width:0;overflow:hidden;order:4}@container (min-width: 44rem){.chat-composer{flex-wrap:nowrap}.chat-composer-nickname{flex-basis:7rem;order:1}.chat-composer-input{order:2}.chat-composer-tts{flex:0 1 auto;order:3}.chat-composer-send{order:4}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-x-1{left:.25rem;right:.25rem}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-0\.5{bottom:.125rem}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.bottom-\[calc\(100\%\+0\.125rem\)\]{bottom:calc(100% + .125rem)}.left-0{left:0}.left-0\.5{left:.125rem}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-4{left:1rem}.right-0{right:0}.right-0\.5{right:.125rem}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1{top:.25rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-6{top:1.5rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[110\]{z-index:110}.z-\[120\]{z-index:120}.z-\[130\]{z-index:130}.z-\[2000\]{z-index:2000}.z-\[70\]{z-index:70}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}.row-span-2{grid-row:span 2 / span 2}.m-0{margin:0}.-mx-0\.5{margin-left:-.125rem;margin-right:-.125rem}.mx-auto{margin-left:auto;margin-right:auto}.my-\[-0\.125rem\]{margin-top:-.125rem;margin-bottom:-.125rem}.-mt-0\.5{margin-top:-.125rem}.mb-0\.5{margin-bottom:.125rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.mr-0{margin-right:0}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-\[0\.35vh\]{margin-top:.35vh}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-44{height:11rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-52{height:13rem}.h-64{height:16rem}.h-8{height:2rem}.h-\[100dvh\]{height:100dvh}.h-\[2px\]{height:2px}.h-\[3\.5rem\]{height:3.5rem}.h-\[70\%\]{height:70%}.h-\[7rem\]{height:7rem}.h-\[8vh\]{height:8vh}.h-\[calc\(100dvh-0\.25rem\)\]{height:calc(100dvh - .25rem)}.h-\[calc\(1rem\+0\.25rem\)\]{height:1.25rem}.h-\[min\(100svh\,32rem\)\]{height:min(100svh,32rem)}.h-\[min\(60svh\,24rem\)\]{height:min(60svh,24rem)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:6rem}.max-h-32{max-height:8rem}.max-h-36{max-height:9rem}.max-h-40{max-height:10rem}.max-h-52{max-height:13rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-\[14rem\]{max-height:14rem}.max-h-\[36rem\]{max-height:36rem}.max-h-\[70vh\]{max-height:70vh}.max-h-\[72vh\]{max-height:72vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[min\(60vh\,36rem\)\]{max-height:min(60vh,36rem)}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-14{min-height:3.5rem}.min-h-5{min-height:1.25rem}.min-h-7{min-height:1.75rem}.min-h-9{min-height:2.25rem}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[10rem\]{min-height:10rem}.min-h-\[12rem\]{min-height:12rem}.min-h-\[14rem\]{min-height:14rem}.min-h-\[16rem\]{min-height:16rem}.min-h-\[18rem\]{min-height:18rem}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[4rem\]{min-height:4rem}.min-h-\[5rem\]{min-height:5rem}.min-h-\[7rem\]{min-height:7rem}.min-h-\[calc\(100dvh-0\.25rem\)\]{min-height:calc(100dvh - .25rem)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-2{width:.5rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/5{width:60%}.w-4{width:1rem}.w-4\/5{width:80%}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[100vw\]{width:100vw}.w-\[12\.5rem\]{width:12.5rem}.w-\[12rem\]{width:12rem}.w-\[14rem\]{width:14rem}.w-\[22rem\]{width:22rem}.w-\[2px\]{width:2px}.w-\[3\.25rem\]{width:3.25rem}.w-\[4\.5rem\]{width:4.5rem}.w-\[5\.5rem\]{width:5.5rem}.w-\[5rem\]{width:5rem}.w-\[9rem\]{width:9rem}.w-\[calc\(1rem\+0\.25rem\)\]{width:1.25rem}.w-\[min\(20rem\,calc\(100vw-1rem\)\)\]{width:min(20rem,calc(100vw - 1rem))}.w-\[min\(34vw\,34rem\)\]{width:min(34vw,34rem)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-16{min-width:4rem}.min-w-24{min-width:6rem}.min-w-28{min-width:7rem}.min-w-56{min-width:14rem}.min-w-\[0\]{min-width:0}.min-w-\[3\.7rem\]{min-width:3.7rem}.min-w-\[5\.5rem\]{min-width:5.5rem}.min-w-\[9\.5rem\]{min-width:9.5rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-40{max-width:10rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[24rem\]{max-width:24rem}.max-w-\[40vw\]{max-width:40vw}.max-w-\[70vw\]{max-width:70vw}.max-w-\[80vw\]{max-width:80vw}.max-w-\[92\%\]{max-width:92%}.max-w-\[92vw\]{max-width:92vw}.max-w-\[94\%\]{max-width:94%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[0\.72\]{flex:.72}.flex-\[1\.1\]{flex:1.1}.flex-\[1\.22\]{flex:1.22}.flex-\[1\.28\]{flex:1.28}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-\[0\.75\]{flex-grow:.75}.grow-\[0\.9\]{flex-grow:.9}.grow-\[1\]{flex-grow:1}.basis-0{flex-basis:0px}.origin-center{transform-origin:center}.origin-top-left{transform-origin:top left}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[1\.5rem_minmax\(0\,1fr\)_3rem\]{grid-template-columns:1.5rem minmax(0,1fr) 3rem}.grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.grid-cols-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-columns:auto minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,0\.7fr\)_minmax\(0\,2\.1fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,.7fr) minmax(0,2.1fr) minmax(0,.7fr)}.grid-cols-\[minmax\(0\,1\.15fr\)_minmax\(0\,0\.85fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) minmax(0,.85fr)}.grid-cols-\[minmax\(0\,1\.2fr\)_repeat\(4\,minmax\(0\,1fr\)\)\]{grid-template-columns:minmax(0,1.2fr) repeat(4,minmax(0,1fr))}.grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(0\,0\.95fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(0,.95fr)}.grid-cols-\[minmax\(0\,1\.3fr\)_minmax\(0\,0\.22fr\)\]{grid-template-columns:minmax(0,1.3fr) minmax(0,.22fr)}.grid-cols-\[minmax\(0\,1\.45fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr)}.grid-cols-\[minmax\(0\,1\.6fr\)_minmax\(16rem\,0\.7fr\)\]{grid-template-columns:minmax(0,1.6fr) minmax(16rem,.7fr)}.grid-cols-\[minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr)}.grid-cols-\[minmax\(0\,1fr\)_13rem\]{grid-template-columns:minmax(0,1fr) 13rem}.grid-cols-\[minmax\(0\,1fr\)_14rem\]{grid-template-columns:minmax(0,1fr) 14rem}.grid-cols-\[minmax\(0\,1fr\)_2\.5rem\]{grid-template-columns:minmax(0,1fr) 2.5rem}.grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.grid-cols-\[minmax\(0\,1fr\)_4\.75rem\]{grid-template-columns:minmax(0,1fr) 4.75rem}.grid-cols-\[minmax\(0\,1fr\)_8rem\]{grid-template-columns:minmax(0,1fr) 8rem}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.7fr\)_minmax\(0\,1\.9fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1.9fr) minmax(0,.7fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.4fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_auto_1fr\]{grid-template-rows:auto auto 1fr}.grid-rows-\[auto_auto_1fr_auto\]{grid-template-rows:auto auto 1fr auto}.grid-rows-\[auto_auto_auto_1fr\]{grid-template-rows:auto auto auto 1fr}.grid-rows-\[auto_minmax\(0\,1fr\)\]{grid-template-rows:auto minmax(0,1fr)}.grid-rows-\[auto_minmax\(0\,1fr\)_auto\]{grid-template-rows:auto minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_auto\]{grid-template-rows:minmax(0,1fr) auto}.grid-rows-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)\]{grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.grid-rows-\[minmax\(0\,1fr\)_minmax\(7rem\,0\.22fr\)\]{grid-template-rows:minmax(0,1fr) minmax(7rem,.22fr)}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-stretch{justify-content:stretch}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-\[0\.4vh\]{gap:.4vh}.gap-\[0\.55vh\]{gap:.55vh}.gap-\[0\.8vw\]{gap:.8vw}.gap-\[1vh\]{gap:1vh}.gap-\[1vw\]{gap:1vw}.gap-\[3vh\]{gap:3vh}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity))}.border-amber-200\/30{border-color:#fde68a4d}.border-amber-200\/70{border-color:#fde68ab3}.border-amber-200\/90{border-color:#fde68ae6}.border-amber-300\/60{border-color:#fcd34d99}.border-amber-300\/70{border-color:#fcd34db3}.border-amber-300\/80{border-color:#fcd34dcc}.border-amber-400\/30{border-color:#fbbf244d}.border-amber-400\/60{border-color:#fbbf2499}.border-amber-500\/50{border-color:#f59e0b80}.border-amber-600\/60{border-color:#d9770699}.border-amber-700\/60{border-color:#b4530999}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity))}.border-cyan-200{--tw-border-opacity: 1;border-color:rgb(165 243 252 / var(--tw-border-opacity))}.border-cyan-200\/90{border-color:#a5f3fce6}.border-cyan-300{--tw-border-opacity: 1;border-color:rgb(103 232 249 / var(--tw-border-opacity))}.border-cyan-300\/60{border-color:#67e8f999}.border-cyan-300\/70{border-color:#67e8f9b3}.border-cyan-300\/80{border-color:#67e8f9cc}.border-cyan-500\/40{border-color:#06b6d466}.border-emerald-100\/80{border-color:#d1fae5cc}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity))}.border-emerald-200\/70{border-color:#a7f3d0b3}.border-emerald-200\/90{border-color:#a7f3d0e6}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity))}.border-emerald-300\/70{border-color:#6ee7b7b3}.border-emerald-400\/60{border-color:#34d39999}.border-emerald-500\/40{border-color:#10b98166}.border-emerald-700\/60{border-color:#04785799}.border-emerald-700\/70{border-color:#047857b3}.border-emerald-950{--tw-border-opacity: 1;border-color:rgb(2 44 34 / var(--tw-border-opacity))}.border-fuchsia-300\/70{border-color:#f0abfcb3}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity))}.border-indigo-200\/70{border-color:#c7d2feb3}.border-indigo-200\/95{border-color:#c7d2fef2}.border-indigo-300\/70{border-color:#a5b4fcb3}.border-indigo-400\/30{border-color:#818cf84d}.border-indigo-700{--tw-border-opacity: 1;border-color:rgb(67 56 202 / var(--tw-border-opacity))}.border-indigo-700\/60{border-color:#4338ca99}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-neutral-500\/50{border-color:#73737380}.border-neutral-500\/60{border-color:#73737399}.border-neutral-500\/70{border-color:#737373b3}.border-neutral-600{--tw-border-opacity: 1;border-color:rgb(82 82 82 / var(--tw-border-opacity))}.border-neutral-600\/60{border-color:#52525299}.border-neutral-700{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity))}.border-neutral-700\/70{border-color:#404040b3}.border-pink-200{--tw-border-opacity: 1;border-color:rgb(251 207 232 / var(--tw-border-opacity))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity))}.border-red-300\/90{border-color:#fca5a5e6}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-red-400\/60{border-color:#f8717199}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity))}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity))}.border-sky-400\/50{border-color:#38bdf880}.border-sky-400\/70{border-color:#38bdf8b3}.border-slate-200\/30{border-color:#e2e8f04d}.border-slate-400{--tw-border-opacity: 1;border-color:rgb(148 163 184 / var(--tw-border-opacity))}.border-slate-400\/60{border-color:#94a3b899}.border-slate-500\/70{border-color:#64748bb3}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity))}.border-slate-600\/40{border-color:#47556966}.border-slate-600\/60{border-color:#47556999}.border-slate-600\/70{border-color:#475569b3}.border-slate-600\/80{border-color:#475569cc}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity))}.border-slate-700\/60{border-color:#33415599}.border-slate-700\/70{border-color:#334155b3}.border-slate-700\/80{border-color:#334155cc}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.border-slate-800\/60{border-color:#1e293b99}.border-slate-800\/80{border-color:#1e293bcc}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.border-white\/10{border-color:#ffffff1a}.border-white\/40{border-color:#fff6}.border-white\/80{border-color:#fffc}.border-l-neutral-600{--tw-border-opacity: 1;border-left-color:rgb(82 82 82 / var(--tw-border-opacity))}.\!bg-black{--tw-bg-opacity: 1 !important;background-color:rgb(0 0 0 / var(--tw-bg-opacity))!important}.bg-amber-100\/95{background-color:#fef3c7f2}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.bg-amber-400\/80{background-color:#fbbf24cc}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity))}.bg-amber-500\/30{background-color:#f59e0b4d}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.bg-amber-600\/70{background-color:#d97706b3}.bg-amber-600\/80{background-color:#d97706cc}.bg-amber-700\/20{background-color:#b4530933}.bg-amber-700\/30{background-color:#b453094d}.bg-amber-700\/35{background-color:#b4530959}.bg-amber-700\/50{background-color:#b4530980}.bg-amber-700\/80{background-color:#b45309cc}.bg-amber-800{--tw-bg-opacity: 1;background-color:rgb(146 64 14 / var(--tw-bg-opacity))}.bg-amber-900{--tw-bg-opacity: 1;background-color:rgb(120 53 15 / var(--tw-bg-opacity))}.bg-amber-900\/40{background-color:#78350f66}.bg-amber-900\/60{background-color:#78350f99}.bg-amber-900\/90{background-color:#78350fe6}.bg-amber-950\/35{background-color:#451a0359}.bg-amber-950\/40{background-color:#451a0366}.bg-amber-950\/70{background-color:#451a03b3}.bg-amber-950\/75{background-color:#451a03bf}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/45{background-color:#00000073}.bg-black\/50{background-color:#00000080}.bg-black\/55{background-color:#0000008c}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-black\/75{background-color:#000000bf}.bg-black\/80{background-color:#000c}.bg-black\/95{background-color:#000000f2}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-cyan-300{--tw-bg-opacity: 1;background-color:rgb(103 232 249 / var(--tw-bg-opacity))}.bg-cyan-300\/20{background-color:#67e8f933}.bg-cyan-500{--tw-bg-opacity: 1;background-color:rgb(6 182 212 / var(--tw-bg-opacity))}.bg-cyan-500\/80{background-color:#06b6d4cc}.bg-cyan-900{--tw-bg-opacity: 1;background-color:rgb(22 78 99 / var(--tw-bg-opacity))}.bg-cyan-900\/45{background-color:#164e6373}.bg-cyan-900\/90{background-color:#164e63e6}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.bg-emerald-500\/45{background-color:#10b98173}.bg-emerald-500\/80{background-color:#10b981cc}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity))}.bg-emerald-600\/70{background-color:#059669b3}.bg-emerald-600\/80{background-color:#059669cc}.bg-emerald-700{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.bg-emerald-700\/20{background-color:#04785733}.bg-emerald-700\/60{background-color:#04785799}.bg-emerald-700\/70{background-color:#047857b3}.bg-emerald-800{--tw-bg-opacity: 1;background-color:rgb(6 95 70 / var(--tw-bg-opacity))}.bg-emerald-900{--tw-bg-opacity: 1;background-color:rgb(6 78 59 / var(--tw-bg-opacity))}.bg-emerald-900\/60{background-color:#064e3b99}.bg-emerald-900\/90{background-color:#064e3be6}.bg-emerald-950{--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity))}.bg-emerald-950\/50{background-color:#022c2280}.bg-fuchsia-200{--tw-bg-opacity: 1;background-color:rgb(245 208 254 / var(--tw-bg-opacity))}.bg-fuchsia-600{--tw-bg-opacity: 1;background-color:rgb(192 38 211 / var(--tw-bg-opacity))}.bg-fuchsia-700{--tw-bg-opacity: 1;background-color:rgb(162 28 175 / var(--tw-bg-opacity))}.bg-fuchsia-800{--tw-bg-opacity: 1;background-color:rgb(134 25 143 / var(--tw-bg-opacity))}.bg-fuchsia-900\/45{background-color:#701a7573}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity))}.bg-indigo-600\/70{background-color:#4f46e5b3}.bg-indigo-900{--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity))}.bg-indigo-900\/60{background-color:#312e8199}.bg-indigo-950{--tw-bg-opacity: 1;background-color:rgb(30 27 75 / var(--tw-bg-opacity))}.bg-indigo-950\/90{background-color:#1e1b4be6}.bg-neutral-600{--tw-bg-opacity: 1;background-color:rgb(82 82 82 / var(--tw-bg-opacity))}.bg-neutral-600\/80{background-color:#525252cc}.bg-neutral-700{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.bg-neutral-700\/90{background-color:#404040e6}.bg-neutral-800{--tw-bg-opacity: 1;background-color:rgb(38 38 38 / var(--tw-bg-opacity))}.bg-neutral-800\/80{background-color:#262626cc}.bg-neutral-900{--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.bg-neutral-900\/100{background-color:#171717}.bg-neutral-900\/60{background-color:#17171799}.bg-neutral-900\/70{background-color:#171717b3}.bg-neutral-900\/95{background-color:#171717f2}.bg-neutral-950{--tw-bg-opacity: 1;background-color:rgb(10 10 10 / var(--tw-bg-opacity))}.bg-neutral-950\/90{background-color:#0a0a0ae6}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-500\/45{background-color:#ef444473}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.bg-red-600\/70{background-color:#dc2626b3}.bg-red-700{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity))}.bg-red-700\/20{background-color:#b91c1c33}.bg-red-700\/60{background-color:#b91c1c99}.bg-red-700\/80{background-color:#b91c1ccc}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-red-900\/35{background-color:#7f1d1d59}.bg-red-900\/40{background-color:#7f1d1d66}.bg-red-900\/45{background-color:#7f1d1d73}.bg-red-900\/80{background-color:#7f1d1dcc}.bg-red-950\/70{background-color:#450a0ab3}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity))}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.bg-sky-600{--tw-bg-opacity: 1;background-color:rgb(2 132 199 / var(--tw-bg-opacity))}.bg-sky-700{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity))}.bg-sky-700\/20{background-color:#0369a133}.bg-sky-700\/70{background-color:#0369a1b3}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity))}.bg-slate-500{--tw-bg-opacity: 1;background-color:rgb(100 116 139 / var(--tw-bg-opacity))}.bg-slate-600{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}.bg-slate-600\/70{background-color:#475569b3}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity))}.bg-slate-700\/30{background-color:#3341554d}.bg-slate-700\/60{background-color:#33415599}.bg-slate-700\/70{background-color:#334155b3}.bg-slate-700\/80{background-color:#334155cc}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-slate-800\/60{background-color:#1e293b99}.bg-slate-800\/70{background-color:#1e293bb3}.bg-slate-800\/80{background-color:#1e293bcc}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity))}.bg-slate-900\/35{background-color:#0f172a59}.bg-slate-900\/40{background-color:#0f172a66}.bg-slate-900\/70{background-color:#0f172ab3}.bg-slate-950{--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity))}.bg-slate-950\/35{background-color:#02061759}.bg-slate-950\/80{background-color:#020617cc}.bg-slate-950\/85{background-color:#020617d9}.bg-slate-950\/90{background-color:#020617e6}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-white\/10{background-color:#ffffff1a}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity))}.bg-zinc-900{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.bg-zinc-900\/90{background-color:#18181be6}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-lime-800{--tw-gradient-from: #3f6212 var(--tw-gradient-from-position);--tw-gradient-to: rgb(63 98 18 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-neutral-800{--tw-gradient-from: #262626 var(--tw-gradient-from-position);--tw-gradient-to: rgb(38 38 38 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-neutral-950{--tw-gradient-from: #0a0a0a var(--tw-gradient-from-position);--tw-gradient-to: rgb(10 10 10 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-neutral-700{--tw-gradient-to: rgb(64 64 64 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #404040 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-neutral-950\/90{--tw-gradient-to: rgb(10 10 10 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(10 10 10 / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-neutral-600{--tw-gradient-to: #525252 var(--tw-gradient-to-position)}.to-teal-800{--tw-gradient-to: #115e59 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.fill-slate-100{fill:#f1f5f9}.fill-slate-200{fill:#e2e8f0}.fill-slate-400{fill:#94a3b8}.fill-white{fill:#fff}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-\[0\.85vw\]{padding:.85vw}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[1\.2vw\]{padding-left:1.2vw;padding-right:1.2vw}.px-\[1\.6vw\]{padding-left:1.6vw;padding-right:1.6vw}.px-\[1vw\]{padding-left:1vw;padding-right:1vw}.px-\[3vw\]{padding-left:3vw;padding-right:3vw}.px-\[4vw\]{padding-left:4vw;padding-right:4vw}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-\[0\.55vh\]{padding-top:.55vh;padding-bottom:.55vh}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[2\.5vh\]{padding-top:2.5vh;padding-bottom:2.5vh}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-\[4vh\]{padding-top:4vh;padding-bottom:4vh}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pr-0{padding-right:0}.pr-1{padding-right:.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.45rem\]{font-size:.45rem}.text-\[0\.48rem\]{font-size:.48rem}.text-\[0\.52rem\]{font-size:.52rem}.text-\[0\.55em\]{font-size:.55em}.text-\[0\.55rem\]{font-size:.55rem}.text-\[0\.58rem\]{font-size:.58rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.62rem\]{font-size:.62rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.68rem\]{font-size:.68rem}.text-\[0\.6rem\]{font-size:.6rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.82rem\]{font-size:.82rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.5rem\]{font-size:1.5rem}.text-\[17vw\]{font-size:17vw}.text-\[1rem\]{font-size:1rem}.text-\[2\.5vw\]{font-size:2.5vw}.text-\[2\.6vw\]{font-size:2.6vw}.text-\[3\.1vw\]{font-size:3.1vw}.text-\[3vw\]{font-size:3vw}.text-\[4vw\]{font-size:4vw}.text-\[6vw\]{font-size:6vw}.text-\[7vw\]{font-size:7vw}.text-\[clamp\(1\.25rem\,2\.5vh\,2\.6rem\)\]{font-size:clamp(1.25rem,2.5vh,2.6rem)}.text-\[clamp\(1\.2rem\,2\.9vh\,3rem\)\]{font-size:clamp(1.2rem,2.9vh,3rem)}.text-\[clamp\(2\.1rem\,5\.1vh\,5\.6rem\)\]{font-size:clamp(2.1rem,5.1vh,5.6rem)}.text-\[clamp\(2\.5rem\,5\.3vh\,5\.8rem\)\]{font-size:clamp(2.5rem,5.3vh,5.8rem)}.text-\[clamp\(2\.5rem\,7vh\,7rem\)\]{font-size:clamp(2.5rem,7vh,7rem)}.text-\[clamp\(2\.5rem\,8vh\,8rem\)\]{font-size:clamp(2.5rem,8vh,8rem)}.text-\[clamp\(2rem\,5vh\,5\.2rem\)\]{font-size:clamp(2rem,5vh,5.2rem)}.text-\[clamp\(3\.2rem\,11vh\,11rem\)\]{font-size:clamp(3.2rem,11vh,11rem)}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-\[0\.95\]{line-height:.95}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-100{--tw-text-opacity: 1;color:rgb(254 243 199 / var(--tw-text-opacity))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity))}.text-amber-200\/80{color:#fde68acc}.text-amber-200\/85{color:#fde68ad9}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity))}.text-amber-50{--tw-text-opacity: 1;color:rgb(255 251 235 / var(--tw-text-opacity))}.text-amber-50\/90{color:#fffbebe6}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity))}.text-cyan-100{--tw-text-opacity: 1;color:rgb(207 250 254 / var(--tw-text-opacity))}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-50{--tw-text-opacity: 1;color:rgb(236 254 255 / var(--tw-text-opacity))}.text-cyan-950{--tw-text-opacity: 1;color:rgb(8 51 68 / var(--tw-text-opacity))}.text-emerald-100{--tw-text-opacity: 1;color:rgb(209 250 229 / var(--tw-text-opacity))}.text-emerald-100\/80{color:#d1fae5cc}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity))}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity))}.text-emerald-50{--tw-text-opacity: 1;color:rgb(236 253 245 / var(--tw-text-opacity))}.text-emerald-50\/90{color:#ecfdf5e6}.text-emerald-950{--tw-text-opacity: 1;color:rgb(2 44 34 / var(--tw-text-opacity))}.text-fuchsia-50{--tw-text-opacity: 1;color:rgb(253 244 255 / var(--tw-text-opacity))}.text-fuchsia-900{--tw-text-opacity: 1;color:rgb(112 26 117 / var(--tw-text-opacity))}.text-indigo-200{--tw-text-opacity: 1;color:rgb(199 210 254 / var(--tw-text-opacity))}.text-indigo-50{--tw-text-opacity: 1;color:rgb(238 242 255 / var(--tw-text-opacity))}.text-indigo-50\/90{color:#eef2ffe6}.text-lime-300{--tw-text-opacity: 1;color:rgb(190 242 100 / var(--tw-text-opacity))}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity))}.text-neutral-100{--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.text-neutral-200{--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.text-neutral-300{--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.text-neutral-400{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.text-neutral-50{--tw-text-opacity: 1;color:rgb(250 250 250 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity))}.text-red-100\/90{color:#fee2e2e6}.text-red-100\/95{color:#fee2e2f2}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-red-50{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity))}.text-rose-200{--tw-text-opacity: 1;color:rgb(254 205 211 / var(--tw-text-opacity))}.text-rose-300{--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity))}.text-sky-100{--tw-text-opacity: 1;color:rgb(224 242 254 / var(--tw-text-opacity))}.text-sky-200{--tw-text-opacity: 1;color:rgb(186 230 253 / var(--tw-text-opacity))}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity))}.text-sky-50{--tw-text-opacity: 1;color:rgb(240 249 255 / var(--tw-text-opacity))}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.text-slate-400\/60{color:#94a3b899}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity))}.accent-cyan-500{accent-color:#06b6d4}.accent-emerald-400{accent-color:#34d399}.accent-emerald-500{accent-color:#10b981}.accent-red-500{accent-color:#ef4444}.accent-sky-500{accent-color:#0ea5e9}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-85{opacity:.85}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_1px_0_rgba\(255\,255\,255\,0\.05\)_inset\,0_10px_24px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow: 0 1px 0 rgba(255,255,255,.05) inset,0 10px 24px rgba(0,0,0,.28);--tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color), 0 10px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/40{--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-950\/50{--tw-shadow-color: rgb(8 51 68 / .5);--tw-shadow: var(--tw-shadow-colored)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-4{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-amber-200\/60{--tw-ring-color: rgb(253 230 138 / .6)}.ring-amber-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity))}.ring-amber-300\/80{--tw-ring-color: rgb(252 211 77 / .8)}.ring-emerald-300\/50{--tw-ring-color: rgb(110 231 183 / .5)}.ring-emerald-300\/70{--tw-ring-color: rgb(110 231 183 / .7)}.ring-red-300\/60{--tw-ring-color: rgb(252 165 165 / .6)}.ring-red-500\/70{--tw-ring-color: rgb(239 68 68 / .7)}.ring-red-500\/80{--tw-ring-color: rgb(239 68 68 / .8)}.ring-red-500\/90{--tw-ring-color: rgb(239 68 68 / .9)}.ring-sky-300\/50{--tw-ring-color: rgb(125 211 252 / .5)}.ring-sky-400\/80{--tw-ring-color: rgb(56 189 248 / .8)}.ring-slate-400\/40{--tw-ring-color: rgb(148 163 184 / .4)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.sepia{--tw-sepia: sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,opacity\]{transition-property:width,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes batteryTickWarn{0%,49%{background-color:#fffffff2}50%,to{background-color:#ef4444f2}}.battery-tick-warn{animation:batteryTickWarn .4s steps(2,end) infinite}@keyframes batteryUrgentFlash{0%,49%{opacity:1}50%,to{opacity:.25}}.battery-urgent-flash{animation:batteryUrgentFlash .4s steps(2,end) infinite}.no-touch-select{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.mobile-touch-control{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:contain}.mobile-drag-control{touch-action:none}.mobile-text-entry{font-size:16px;-webkit-text-size-adjust:100%;touch-action:manipulation}.\[writing-mode\:vertical-rl\]{writing-mode:vertical-rl}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}body{margin:0;min-height:100vh;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}html,body,*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.55) transparent}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*::-webkit-scrollbar{width:2px;height:2px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#94a3b88c;border-radius:9999px}@supports (scrollbar-width: thin){@media(pointer:coarse){html,body,*{scrollbar-width:none}}}.placeholder\:text-slate-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.placeholder\:text-slate-400::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity))}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-green-100:hover{--tw-border-opacity: 1;border-color:rgb(220 252 231 / var(--tw-border-opacity))}.hover\:border-rose-500:hover{--tw-border-opacity: 1;border-color:rgb(244 63 94 / var(--tw-border-opacity))}.hover\:border-sky-500:hover{--tw-border-opacity: 1;border-color:rgb(14 165 233 / var(--tw-border-opacity))}.hover\:border-white:hover{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.hover\:border-white\/60:hover{border-color:#fff9}.hover\:bg-amber-400:hover{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity))}.hover\:bg-amber-600:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity))}.hover\:bg-amber-800:hover{--tw-bg-opacity: 1;background-color:rgb(146 64 14 / var(--tw-bg-opacity))}.hover\:bg-cyan-400:hover{--tw-bg-opacity: 1;background-color:rgb(34 211 238 / var(--tw-bg-opacity))}.hover\:bg-cyan-800:hover{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity))}.hover\:bg-emerald-400:hover{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity))}.hover\:bg-emerald-500:hover{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity))}.hover\:bg-fuchsia-500:hover{--tw-bg-opacity: 1;background-color:rgb(217 70 239 / var(--tw-bg-opacity))}.hover\:bg-green-400:hover{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity))}.hover\:bg-indigo-800:hover{--tw-bg-opacity: 1;background-color:rgb(55 48 163 / var(--tw-bg-opacity))}.hover\:bg-neutral-700:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity))}.hover\:bg-pink-400:hover{--tw-bg-opacity: 1;background-color:rgb(244 114 182 / var(--tw-bg-opacity))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity))}.hover\:bg-rose-500:hover{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity))}.hover\:bg-sky-500:hover{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity))}.hover\:bg-slate-600:hover{--tw-bg-opacity: 1;background-color:rgb(71 85 105 / var(--tw-bg-opacity))}.hover\:bg-slate-700\/70:hover{background-color:#334155b3}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-zinc-900:hover{--tw-bg-opacity: 1;background-color:rgb(24 24 27 / var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}.focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-emerald-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(16 185 129 / var(--tw-ring-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-offset-1:focus-visible{outline-offset:1px}.focus-visible\:outline-slate-500:focus-visible{outline-color:#64748b}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-amber-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity))}.focus-visible\:ring-cyan-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(103 232 249 / var(--tw-ring-opacity))}.focus-visible\:ring-emerald-200:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity))}.focus-visible\:ring-emerald-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(110 231 183 / var(--tw-ring-opacity))}.focus-visible\:ring-indigo-300:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.99\]:active{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:brightness-125:active{--tw-brightness: brightness(1.25);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}@media(max-width:520px){.max-\[520px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-\[520px\]\:justify-start{justify-content:flex-start}}@media(max-width:420px){.max-\[420px\]\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-\[420px\]\:grid-cols-\[auto_minmax\(0\,1fr\)\]{grid-template-columns:auto minmax(0,1fr)}.max-\[420px\]\:justify-start{justify-content:flex-start}}@media(min-width:640px){.sm\:block{display:block}.sm\:min-h-\[18rem\]{min-height:18rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media(min-width:768px){.md\:h-full{height:100%}.md\:h-screen{height:100vh}.md\:min-h-0{min-height:0px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[0\.9fr_1fr_1\.3fr\]{grid-template-columns:.9fr 1fr 1.3fr}.md\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1\.5fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.md\:grid-cols-\[minmax\(0\,1fr\)_10rem\]{grid-template-columns:minmax(0,1fr) 10rem}.md\:grid-cols-\[minmax\(0\,1fr\)_18rem\]{grid-template-columns:minmax(0,1fr) 18rem}.md\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.md\:grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.7fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.7fr)}.md\:grid-cols-\[minmax\(16rem\,0\.8fr\)_minmax\(0\,1\.2fr\)\]{grid-template-columns:minmax(16rem,.8fr) minmax(0,1.2fr)}.md\:items-start{align-items:flex-start}.md\:overflow-hidden{overflow:hidden}.md\:overflow-y-auto{overflow-y:auto}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media(min-width:1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-\[24rem_minmax\(0\,1fr\)\]{grid-template-columns:24rem minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.25fr\)_minmax\(0\,0\.9fr\)\]{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_20rem\]{grid-template-columns:minmax(0,1fr) 20rem}.lg\:grid-cols-\[minmax\(0\,1fr\)_9rem_10rem\]{grid-template-columns:minmax(0,1fr) 9rem 10rem}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:text-right{text-align:right}}@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-theme{background-color:#050505;background-attachment:fixed}.page-theme-preview{background-attachment:scroll;background-position:center}.page-theme-black{background-color:#000;background-image:none}.page-theme-pride-mix{background-image:repeating-linear-gradient(45deg,#5bcefa 0 48px,#f5a9b8 48px 96px,#fff 96px 144px,#f5a9b8 144px 192px,#5bcefa 192px 240px,#e40303 240px 288px,#ff8c00 288px 336px,#ffed00 336px 384px,#00a651 384px 432px,#06f 432px 480px,#9b2fae 480px 528px)}.page-theme-rainbow{background-image:repeating-linear-gradient(45deg,#e40303 0 48px,#ff8c00 48px 96px,#ffed00 96px 144px,#008026 144px 192px,#004dff 192px 240px,#750787 240px 288px)}.page-theme-progress-pride{background-image:repeating-linear-gradient(45deg,#000 0 48px,#784f17 48px 96px,#5bcefa 96px 144px,#f5a9b8 144px 192px,#fff 192px 240px,#e40303 240px 288px,#ff8c00 288px 336px,#ffed00 336px 384px,#008026 384px 432px,#004dff 432px 480px,#750787 480px 528px)}.page-theme-transgender{background-image:repeating-linear-gradient(45deg,#5bcefa 0 48px,#f5a9b8 48px 96px,#fff 96px 144px,#f5a9b8 144px 192px,#5bcefa 192px 240px)}.page-theme-bisexual{background-image:repeating-linear-gradient(45deg,#d60270 0 48px,#9b4f96 48px 96px,#0038a8 96px 144px)}.page-theme-lesbian{background-image:repeating-linear-gradient(45deg,#d52d00 0 48px,#ef7627 48px 96px,#ff9a56 96px 144px,#fff 144px 192px,#d162a4 192px 240px,#b55690 240px 288px,#a30262 288px 336px)}.page-theme-nonbinary{background-image:repeating-linear-gradient(45deg,#fff430 0 48px,#fff 48px 96px,#9c59d1 96px 144px,#2d2d2d 144px 192px)}.page-theme-pansexual{background-image:repeating-linear-gradient(45deg,#ff218c 0 48px,#ffd800 48px 96px,#21b1ff 96px 144px)}.page-theme-asexual{background-image:repeating-linear-gradient(45deg,#111 0 48px,#a3a3a3 48px 96px,#fff 96px 144px,purple 144px 192px)}.page-theme-aurora{background-color:#03120f;background-image:radial-gradient(circle at 18% 24%,rgba(45,212,191,.95),transparent 34%),radial-gradient(circle at 76% 18%,rgba(168,85,247,.9),transparent 38%),radial-gradient(circle at 56% 82%,rgba(34,197,94,.88),transparent 42%),linear-gradient(125deg,#020617,#0f172a 45%,#082f49);background-size:34rem 28rem,38rem 32rem,42rem 36rem,auto}.page-theme-synthwave-grid{background-color:#090018;background-image:linear-gradient(rgba(34,211,238,.7) 2px,transparent 2px),linear-gradient(90deg,rgba(236,72,153,.72) 2px,transparent 2px),radial-gradient(ellipse at 50% 100%,#7e22ce 0,#1e1b4b 38%,#090018 72%);background-size:54px 54px,54px 54px,auto}.page-theme-neon-checker{background-color:#111827;background-image:conic-gradient(from 45deg,#06b6d4 0 25%,#7c3aed 0 50%,#ec4899 0 75%,#111827 0);background-size:84px 84px}.page-theme-ocean-current{background-color:#082f49;background-image:repeating-linear-gradient(35deg,rgba(103,232,249,.72) 0 12px,transparent 12px 54px),repeating-linear-gradient(-35deg,rgba(14,116,144,.72) 0 21px,transparent 21px 72px),linear-gradient(90deg,#0c4a6e,#0891b2,#164e63)}.page-theme-ember-lattice{background-color:#1c0704;background-image:repeating-linear-gradient(45deg,transparent 0 36px,rgba(251,146,60,.9) 36px 45px),repeating-linear-gradient(-45deg,transparent 0 48px,rgba(239,68,68,.78) 48px 57px),radial-gradient(circle at center,#7c2d12,#1c0704 70%)}.page-theme-starfield{background-color:#020617;background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 2px,transparent 3px),radial-gradient(circle,rgba(125,211,252,.9) 0 3px,transparent 4px),radial-gradient(circle,rgba(216,180,254,.8) 0 2px,transparent 3px),linear-gradient(135deg,#020617,#172554 55%,#3b0764);background-position:0 0,57px 81px,123px 33px,0 0;background-size:111px 111px,183px 183px,237px 237px,auto}.page-theme-vaporwave-sunset{background-color:#2e1065;background-image:repeating-linear-gradient(0deg,transparent 0 24px,rgba(103,232,249,.48) 24px 27px,transparent 27px 54px),radial-gradient(circle at 50% 78%,#fda4af 0 14%,#f97316 14% 25%,transparent 25.5%),linear-gradient(180deg,#172554,#6b21a8 48%,#db2777 72%,#f97316);background-size:auto,48rem 34rem,auto}.page-theme-electric-circuit{background-color:#020617;background-image:repeating-linear-gradient(90deg,transparent 0 48px,rgba(34,211,238,.9) 48px 52px,transparent 52px 96px),repeating-linear-gradient(0deg,transparent 0 68px,rgba(168,85,247,.86) 68px 72px,transparent 72px 124px),radial-gradient(circle at center,#312e81 0,#0f172a 45%,#020617 78%)}.page-theme-lava-flow{background-color:#180503;background-image:radial-gradient(ellipse at 18% 28%,#facc15 0 8%,#f97316 9% 18%,#991b1b 24%,transparent 39%),radial-gradient(ellipse at 76% 64%,#fb923c 0 10%,#dc2626 18%,#7f1d1d 29%,transparent 44%),radial-gradient(ellipse at 48% 92%,#fde047 0 7%,#ea580c 17%,transparent 36%),linear-gradient(135deg,#180503,#450a0a 50%,#1c0704);background-size:42rem 34rem,48rem 39rem,37rem 31rem,auto}.page-theme-deep-space-nebula{background-color:#020617;background-image:radial-gradient(ellipse at 22% 38%,rgba(217,70,239,.92),transparent 34%),radial-gradient(ellipse at 72% 24%,rgba(59,130,246,.9),transparent 38%),radial-gradient(ellipse at 58% 82%,rgba(14,165,233,.72),transparent 36%),radial-gradient(circle,rgba(255,255,255,.9) 0 2px,transparent 3px),linear-gradient(125deg,#020617,#1e1b4b 52%,#3b0764);background-position:center,center,center,17px 31px,center;background-size:42rem 34rem,48rem 38rem,39rem 35rem,173px 173px,auto}.page-theme-holographic-waves{background-color:#164e63;background-image:repeating-linear-gradient(32deg,rgba(255,255,255,.4) 0 14px,transparent 14px 82px),repeating-linear-gradient(-38deg,rgba(216,180,254,.38) 0 18px,transparent 18px 104px),linear-gradient(110deg,#67e8f9,#c4b5fd 32%,#f9a8d4 60%,#86efac)}.page-theme-hazard-stripes{background-color:#111;background-image:repeating-linear-gradient(45deg,#facc15 0 48px,#171717 48px 96px)}.page-theme-mint-mosaic{background-color:#064e3b;background-image:conic-gradient(from 45deg,#a7f3d0 0 25%,#0f766e 0 50%,#fef3c7 0 75%,#164e63 0);background-size:96px 96px}.page-theme-candy-swirl{background-color:#fdf2f8;background-image:repeating-radial-gradient(circle at 28% 34%,#f9a8d4 0 28px,#fef3c7 28px 56px,#93c5fd 56px 84px,#c4b5fd 84px 112px,#f9a8d4 112px 140px)} diff --git a/server/public/assets/index-IknCIkGO.js b/server/public/assets/index-DC2T_UQE.js similarity index 73% rename from server/public/assets/index-IknCIkGO.js rename to server/public/assets/index-DC2T_UQE.js index 38d269e3..914e5cb5 100644 --- a/server/public/assets/index-IknCIkGO.js +++ b/server/public/assets/index-DC2T_UQE.js @@ -1,15 +1,15 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OrbitControls-BJ-UXxdt.js","assets/three.module--MGUDD-H.js"])))=>i.map(i=>d[i]); -(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))i(u);new MutationObserver(u=>{for(const h of u)if(h.type==="childList")for(const d of h.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function n(u){const h={};return u.integrity&&(h.integrity=u.integrity),u.referrerPolicy&&(h.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?h.credentials="include":u.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function i(u){if(u.ep)return;u.ep=!0;const h=n(u);fetch(u.href,h)}})();function Iv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var hc={exports:{}},R8={};var Ss;function Pv(){if(Ss)return R8;Ss=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function n(i,u,h){var d=null;if(h!==void 0&&(d=""+h),u.key!==void 0&&(d=""+u.key),"key"in u){h={};for(var m in u)m!=="key"&&(h[m]=u[m])}else h=u;return u=h.ref,{$$typeof:t,type:i,key:d,ref:u!==void 0?u:null,props:h}}return R8.Fragment=c,R8.jsx=n,R8.jsxs=n,R8}var As;function $v(){return As||(As=1,hc.exports=Pv()),hc.exports}var r=$v(),dc={exports:{}},P1={};var Hs;function Zv(){if(Hs)return P1;Hs=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),d=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),y=Symbol.iterator;function M(_){return _===null||typeof _!="object"?null:(_=y&&_[y]||_["@@iterator"],typeof _=="function"?_:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L=Object.assign,w={};function V(_,D,Y){this.props=_,this.context=D,this.refs=w,this.updater=Y||H}V.prototype.isReactComponent={},V.prototype.setState=function(_,D){if(typeof _!="object"&&typeof _!="function"&&_!=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,_,D,"setState")},V.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function S(){}S.prototype=V.prototype;function C(_,D,Y){this.props=_,this.context=D,this.refs=w,this.updater=Y||H}var j=C.prototype=new S;j.constructor=C,L(j,V.prototype),j.isPureReactComponent=!0;var E=Array.isArray;function F(){}var R={H:null,A:null,T:null,S:null},B=Object.prototype.hasOwnProperty;function N(_,D,Y){var i1=Y.ref;return{$$typeof:t,type:_,key:D,ref:i1!==void 0?i1:null,props:Y}}function P(_,D){return N(_.type,D,_.props)}function q(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function I(_){var D={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(Y){return D[Y]})}var W=/\/+/g;function J(_,D){return typeof _=="object"&&_!==null&&_.key!=null?I(""+_.key):D.toString(36)}function O(_){switch(_.status){case"fulfilled":return _.value;case"rejected":throw _.reason;default:switch(typeof _.status=="string"?_.then(F,F):(_.status="pending",_.then(function(D){_.status==="pending"&&(_.status="fulfilled",_.value=D)},function(D){_.status==="pending"&&(_.status="rejected",_.reason=D)})),_.status){case"fulfilled":return _.value;case"rejected":throw _.reason}}throw _}function T(_,D,Y,i1,n1){var o1=typeof _;(o1==="undefined"||o1==="boolean")&&(_=null);var z1=!1;if(_===null)z1=!0;else switch(o1){case"bigint":case"string":case"number":z1=!0;break;case"object":switch(_.$$typeof){case t:case c:z1=!0;break;case g:return z1=_._init,T(z1(_._payload),D,Y,i1,n1)}}if(z1)return n1=n1(_),z1=i1===""?"."+J(_,0):i1,E(n1)?(Y="",z1!=null&&(Y=z1.replace(W,"$&/")+"/"),T(n1,D,Y,"",function(_1){return _1})):n1!=null&&(q(n1)&&(n1=P(n1,Y+(n1.key==null||_&&_.key===n1.key?"":(""+n1.key).replace(W,"$&/")+"/")+z1)),D.push(n1)),1;z1=0;var B1=i1===""?".":i1+":";if(E(_))for(var F1=0;F1<_.length;F1++)i1=_[F1],o1=B1+J(i1,F1),z1+=T(i1,D,Y,o1,n1);else if(F1=M(_),typeof F1=="function")for(_=F1.call(_),F1=0;!(i1=_.next()).done;)i1=i1.value,o1=B1+J(i1,F1++),z1+=T(i1,D,Y,o1,n1);else if(o1==="object"){if(typeof _.then=="function")return T(O(_),D,Y,i1,n1);throw D=String(_),Error("Objects are not valid as a React child (found: "+(D==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":D)+"). If you meant to render a collection of children, use an array instead.")}return z1}function $(_,D,Y){if(_==null)return _;var i1=[],n1=0;return T(_,i1,"","",function(o1){return D.call(Y,o1,n1++)}),i1}function Z(_){if(_._status===-1){var D=_._result;D=D(),D.then(function(Y){(_._status===0||_._status===-1)&&(_._status=1,_._result=Y)},function(Y){(_._status===0||_._status===-1)&&(_._status=2,_._result=Y)}),_._status===-1&&(_._status=0,_._result=D)}if(_._status===1)return _._result.default;throw _._result}var c1=typeof reportError=="function"?reportError:function(_){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var D=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof _=="object"&&_!==null&&typeof _.message=="string"?String(_.message):String(_),error:_});if(!window.dispatchEvent(D))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",_);return}console.error(_)},u1={map:$,forEach:function(_,D,Y){$(_,function(){D.apply(this,arguments)},Y)},count:function(_){var D=0;return $(_,function(){D++}),D},toArray:function(_){return $(_,function(D){return D})||[]},only:function(_){if(!q(_))throw Error("React.Children.only expected to receive a single React element child.");return _}};return P1.Activity=b,P1.Children=u1,P1.Component=V,P1.Fragment=n,P1.Profiler=u,P1.PureComponent=C,P1.StrictMode=i,P1.Suspense=v,P1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=R,P1.__COMPILER_RUNTIME={__proto__:null,c:function(_){return R.H.useMemoCache(_)}},P1.cache=function(_){return function(){return _.apply(null,arguments)}},P1.cacheSignal=function(){return null},P1.cloneElement=function(_,D,Y){if(_==null)throw Error("The argument must be a React element, but you passed "+_+".");var i1=L({},_.props),n1=_.key;if(D!=null)for(o1 in D.key!==void 0&&(n1=""+D.key),D)!B.call(D,o1)||o1==="key"||o1==="__self"||o1==="__source"||o1==="ref"&&D.ref===void 0||(i1[o1]=D[o1]);var o1=arguments.length-2;if(o1===1)i1.children=Y;else if(1>>1,u1=T[c1];if(0>>1;c1<_;){var D=2*(c1+1)-1,Y=T[D],i1=D+1,n1=T[i1];if(0>u(Y,Z))i1u(n1,Y)?(T[c1]=n1,T[i1]=Z,c1=i1):(T[c1]=Y,T[D]=Z,c1=D);else if(i1u(n1,Z))T[c1]=n1,T[i1]=Z,c1=i1;else break t}}return $}function u(T,$){var Z=T.sortIndex-$.sortIndex;return Z!==0?Z:T.id-$.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;t.unstable_now=function(){return h.now()}}else{var d=Date,m=d.now();t.unstable_now=function(){return d.now()-m}}var v=[],x=[],g=1,b=null,y=3,M=!1,H=!1,L=!1,w=!1,V=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function j(T){for(var $=n(x);$!==null;){if($.callback===null)i(x);else if($.startTime<=T)i(x),$.sortIndex=$.expirationTime,c(v,$);else break;$=n(x)}}function E(T){if(L=!1,j(T),!H)if(n(v)!==null)H=!0,F||(F=!0,I());else{var $=n(x);$!==null&&O(E,$.startTime-T)}}var F=!1,R=-1,B=5,N=-1;function P(){return w?!0:!(t.unstable_now()-NT&&P());){var c1=b.callback;if(typeof c1=="function"){b.callback=null,y=b.priorityLevel;var u1=c1(b.expirationTime<=T);if(T=t.unstable_now(),typeof u1=="function"){b.callback=u1,j(T),$=!0;break e}b===n(v)&&i(v),j(T)}else i(v);b=n(v)}if(b!==null)$=!0;else{var _=n(x);_!==null&&O(E,_.startTime-T),$=!1}}break t}finally{b=null,y=Z,M=!1}$=void 0}}finally{$?I():F=!1}}}var I;if(typeof C=="function")I=function(){C(q)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,J=W.port2;W.port1.onmessage=q,I=function(){J.postMessage(null)}}else I=function(){V(q,0)};function O(T,$){R=V(function(){T(t.unstable_now())},$)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(T){T.callback=null},t.unstable_forceFrameRate=function(T){0>T||125c1?(T.sortIndex=Z,c(x,T),n(v)===null&&T===n(x)&&(L?(S(R),R=-1):L=!0,O(E,Z-c1))):(T.sortIndex=u1,c(v,T),H||M||(H=!0,F||(F=!0,I()))),T},t.unstable_shouldYield=P,t.unstable_wrapCallback=function(T){var $=y;return function(){var Z=y;y=$;try{return T.apply(this,arguments)}finally{y=Z}}}})(vc)),vc}var Bs;function Yv(){return Bs||(Bs=1,mc.exports=Gv()),mc.exports}var pc={exports:{}},W2={};var js;function Kv(){if(js)return W2;js=1;var t=Ea();function c(v){var x="https://react.dev/errors/"+v;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),pc.exports=Kv(),pc.exports}var ks;function Qv(){if(ks)return E8;ks=1;var t=Yv(),c=Ea(),n=Eu();function i(e){var a="https://react.dev/errors/"+e;if(1u1||(e.current=c1[u1],c1[u1]=null,u1--)}function Y(e,a){u1++,c1[u1]=e.current,e.current=a}var i1=_(null),n1=_(null),o1=_(null),z1=_(null);function B1(e,a){switch(Y(o1,a),Y(n1,e),Y(i1,null),a.nodeType){case 9:case 11:e=(e=a.documentElement)&&(e=e.namespaceURI)?Yi(e):0;break;default:if(e=a.tagName,a=a.namespaceURI)a=Yi(a),e=Ki(a,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}D(i1),Y(i1,e)}function F1(){D(i1),D(n1),D(o1)}function _1(e){e.memoizedState!==null&&Y(z1,e);var a=i1.current,l=Ki(a,e.type);a!==l&&(Y(n1,e),Y(i1,l))}function D1(e){n1.current===e&&(D(i1),D(n1)),z1.current===e&&(D(z1),j8._currentValue=Z)}var q1,Q1;function $1(e){if(q1===void 0)try{throw Error()}catch(l){var a=l.stack.trim().match(/\n( *(at )?)/);q1=a&&a[1]||"",Q1=-1{for(const h of u)if(h.type==="childList")for(const d of h.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function n(u){const h={};return u.integrity&&(h.integrity=u.integrity),u.referrerPolicy&&(h.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?h.credentials="include":u.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function i(u){if(u.ep)return;u.ep=!0;const h=n(u);fetch(u.href,h)}})();function Yv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var vc={exports:{}},E8={};var js;function Kv(){if(js)return E8;js=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function n(i,u,h){var d=null;if(h!==void 0&&(d=""+h),u.key!==void 0&&(d=""+u.key),"key"in u){h={};for(var m in u)m!=="key"&&(h[m]=u[m])}else h=u;return u=h.ref,{$$typeof:t,type:i,key:d,ref:u!==void 0?u:null,props:h}}return E8.Fragment=c,E8.jsx=n,E8.jsxs=n,E8}var Ns;function Qv(){return Ns||(Ns=1,vc.exports=Kv()),vc.exports}var r=Qv(),pc={exports:{}},P1={};var ks;function Xv(){if(ks)return P1;ks=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),d=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),v=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),y=Symbol.iterator;function M(_){return _===null||typeof _!="object"?null:(_=y&&_[y]||_["@@iterator"],typeof _=="function"?_:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L=Object.assign,w={};function V(_,D,G){this.props=_,this.context=D,this.refs=w,this.updater=G||H}V.prototype.isReactComponent={},V.prototype.setState=function(_,D){if(typeof _!="object"&&typeof _!="function"&&_!=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,_,D,"setState")},V.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function S(){}S.prototype=V.prototype;function C(_,D,G){this.props=_,this.context=D,this.refs=w,this.updater=G||H}var j=C.prototype=new S;j.constructor=C,L(j,V.prototype),j.isPureReactComponent=!0;var E=Array.isArray;function k(){}var R={H:null,A:null,T:null,S:null},B=Object.prototype.hasOwnProperty;function N(_,D,G){var l1=G.ref;return{$$typeof:t,type:_,key:D,ref:l1!==void 0?l1:null,props:G}}function I(_,D){return N(_.type,D,_.props)}function q(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function P(_){var D={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(G){return D[G]})}var W=/\/+/g;function J(_,D){return typeof _=="object"&&_!==null&&_.key!=null?P(""+_.key):D.toString(36)}function O(_){switch(_.status){case"fulfilled":return _.value;case"rejected":throw _.reason;default:switch(typeof _.status=="string"?_.then(k,k):(_.status="pending",_.then(function(D){_.status==="pending"&&(_.status="fulfilled",_.value=D)},function(D){_.status==="pending"&&(_.status="rejected",_.reason=D)})),_.status){case"fulfilled":return _.value;case"rejected":throw _.reason}}throw _}function T(_,D,G,l1,a1){var u1=typeof _;(u1==="undefined"||u1==="boolean")&&(_=null);var i1=!1;if(_===null)i1=!0;else switch(u1){case"bigint":case"string":case"number":i1=!0;break;case"object":switch(_.$$typeof){case t:case c:i1=!0;break;case g:return i1=_._init,T(i1(_._payload),D,G,l1,a1)}}if(i1)return a1=a1(_),i1=l1===""?"."+J(_,0):l1,E(a1)?(G="",i1!=null&&(G=i1.replace(W,"$&/")+"/"),T(a1,D,G,"",function(E1){return E1})):a1!=null&&(q(a1)&&(a1=I(a1,G+(a1.key==null||_&&_.key===a1.key?"":(""+a1.key).replace(W,"$&/")+"/")+i1)),D.push(a1)),1;i1=0;var y1=l1===""?".":l1+":";if(E(_))for(var S1=0;S1<_.length;S1++)l1=_[S1],u1=y1+J(l1,S1),i1+=T(l1,D,G,u1,a1);else if(S1=M(_),typeof S1=="function")for(_=S1.call(_),S1=0;!(l1=_.next()).done;)l1=l1.value,u1=y1+J(l1,S1++),i1+=T(l1,D,G,u1,a1);else if(u1==="object"){if(typeof _.then=="function")return T(O(_),D,G,l1,a1);throw D=String(_),Error("Objects are not valid as a React child (found: "+(D==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":D)+"). If you meant to render a collection of children, use an array instead.")}return i1}function $(_,D,G){if(_==null)return _;var l1=[],a1=0;return T(_,l1,"","",function(u1){return D.call(G,u1,a1++)}),l1}function K(_){if(_._status===-1){var D=_._result;D=D(),D.then(function(G){(_._status===0||_._status===-1)&&(_._status=1,_._result=G)},function(G){(_._status===0||_._status===-1)&&(_._status=2,_._result=G)}),_._status===-1&&(_._status=0,_._result=D)}if(_._status===1)return _._result.default;throw _._result}var s1=typeof reportError=="function"?reportError:function(_){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var D=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof _=="object"&&_!==null&&typeof _.message=="string"?String(_.message):String(_),error:_});if(!window.dispatchEvent(D))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",_);return}console.error(_)},g1={map:$,forEach:function(_,D,G){$(_,function(){D.apply(this,arguments)},G)},count:function(_){var D=0;return $(_,function(){D++}),D},toArray:function(_){return $(_,function(D){return D})||[]},only:function(_){if(!q(_))throw Error("React.Children.only expected to receive a single React element child.");return _}};return P1.Activity=b,P1.Children=g1,P1.Component=V,P1.Fragment=n,P1.Profiler=u,P1.PureComponent=C,P1.StrictMode=i,P1.Suspense=v,P1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=R,P1.__COMPILER_RUNTIME={__proto__:null,c:function(_){return R.H.useMemoCache(_)}},P1.cache=function(_){return function(){return _.apply(null,arguments)}},P1.cacheSignal=function(){return null},P1.cloneElement=function(_,D,G){if(_==null)throw Error("The argument must be a React element, but you passed "+_+".");var l1=L({},_.props),a1=_.key;if(D!=null)for(u1 in D.key!==void 0&&(a1=""+D.key),D)!B.call(D,u1)||u1==="key"||u1==="__self"||u1==="__source"||u1==="ref"&&D.ref===void 0||(l1[u1]=D[u1]);var u1=arguments.length-2;if(u1===1)l1.children=G;else if(1>>1,g1=T[s1];if(0>>1;s1<_;){var D=2*(s1+1)-1,G=T[D],l1=D+1,a1=T[l1];if(0>u(G,K))l1u(a1,G)?(T[s1]=a1,T[l1]=K,s1=l1):(T[s1]=G,T[D]=K,s1=D);else if(l1u(a1,K))T[s1]=a1,T[l1]=K,s1=l1;else break t}}return $}function u(T,$){var K=T.sortIndex-$.sortIndex;return K!==0?K:T.id-$.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;t.unstable_now=function(){return h.now()}}else{var d=Date,m=d.now();t.unstable_now=function(){return d.now()-m}}var v=[],x=[],g=1,b=null,y=3,M=!1,H=!1,L=!1,w=!1,V=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function j(T){for(var $=n(x);$!==null;){if($.callback===null)i(x);else if($.startTime<=T)i(x),$.sortIndex=$.expirationTime,c(v,$);else break;$=n(x)}}function E(T){if(L=!1,j(T),!H)if(n(v)!==null)H=!0,k||(k=!0,P());else{var $=n(x);$!==null&&O(E,$.startTime-T)}}var k=!1,R=-1,B=5,N=-1;function I(){return w?!0:!(t.unstable_now()-NT&&I());){var s1=b.callback;if(typeof s1=="function"){b.callback=null,y=b.priorityLevel;var g1=s1(b.expirationTime<=T);if(T=t.unstable_now(),typeof g1=="function"){b.callback=g1,j(T),$=!0;break e}b===n(v)&&i(v),j(T)}else i(v);b=n(v)}if(b!==null)$=!0;else{var _=n(x);_!==null&&O(E,_.startTime-T),$=!1}}break t}finally{b=null,y=K,M=!1}$=void 0}}finally{$?P():k=!1}}}var P;if(typeof C=="function")P=function(){C(q)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,J=W.port2;W.port1.onmessage=q,P=function(){J.postMessage(null)}}else P=function(){V(q,0)};function O(T,$){R=V(function(){T(t.unstable_now())},$)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(T){T.callback=null},t.unstable_forceFrameRate=function(T){0>T||125s1?(T.sortIndex=K,c(x,T),n(v)===null&&T===n(x)&&(L?(S(R),R=-1):L=!0,O(E,K-s1))):(T.sortIndex=g1,c(v,T),H||M||(H=!0,k||(k=!0,P()))),T},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(T){var $=y;return function(){var K=y;y=$;try{return T.apply(this,arguments)}finally{y=K}}}})(zc)),zc}var Es;function Jv(){return Es||(Es=1,xc.exports=Wv()),xc.exports}var bc={exports:{}},W2={};var Ts;function tp(){if(Ts)return W2;Ts=1;var t=Ua();function c(v){var x="https://react.dev/errors/"+v;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),bc.exports=tp(),bc.exports}var qs;function ep(){if(qs)return T8;qs=1;var t=Jv(),c=Ua(),n=Uu();function i(e){var a="https://react.dev/errors/"+e;if(1g1||(e.current=s1[g1],s1[g1]=null,g1--)}function G(e,a){g1++,s1[g1]=e.current,e.current=a}var l1=_(null),a1=_(null),u1=_(null),i1=_(null);function y1(e,a){switch(G(u1,a),G(a1,e),G(l1,null),a.nodeType){case 9:case 11:e=(e=a.documentElement)&&(e=e.namespaceURI)?ts(e):0;break;default:if(e=a.tagName,a=a.namespaceURI)a=ts(a),e=es(a,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}D(l1),G(l1,e)}function S1(){D(l1),D(a1),D(u1)}function E1(e){e.memoizedState!==null&&G(i1,e);var a=l1.current,l=es(a,e.type);a!==l&&(G(a1,e),G(l1,l))}function _1(e){a1.current===e&&(D(l1),D(a1)),i1.current===e&&(D(i1),N8._currentValue=K)}var O1,Q1;function $1(e){if(O1===void 0)try{throw Error()}catch(l){var a=l.stack.trim().match(/\n( *(at )?)/);O1=a&&a[1]||"",Q1=-1)":-1p||U[o]!==e1[p]){var s1=` -`+U[o].replace(" at new "," at ");return e.displayName&&s1.includes("")&&(s1=s1.replace("",e.displayName)),s1}while(1<=o&&0<=p);break}}}finally{L1=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?$1(l):""}function M1(e,a){switch(e.tag){case 26:case 27:case 5:return $1(e.type);case 16:return $1("Lazy");case 13:return e.child!==a&&a!==null?$1("Suspense Fallback"):$1("Suspense");case 19:return $1("SuspenseList");case 0:case 15:return x1(e.type,!1);case 11:return x1(e.type.render,!1);case 1:return x1(e.type,!0);case 31:return $1("Activity");default:return""}}function O1(e){try{var a="",l=null;do a+=M1(e,l),l=e,e=e.return;while(e);return a}catch(o){return` +`+O1+e+Q1}var B1=!1;function z1(e,a){if(!e||B1)return"";B1=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(a){var f1=function(){throw Error()};if(Object.defineProperty(f1.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f1,[])}catch(r1){var c1=r1}Reflect.construct(e,[],f1)}else{try{f1.call()}catch(r1){c1=r1}e.call(f1.prototype)}}else{try{throw Error()}catch(r1){c1=r1}(f1=e())&&typeof f1.catch=="function"&&f1.catch(function(){})}}catch(r1){if(r1&&c1&&typeof r1.stack=="string")return[r1.stack,c1.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var p=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");p&&p.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var z=o.DetermineComponentFrameRoot(),A=z[0],F=z[1];if(A&&F){var U=A.split(` +`),e1=F.split(` +`);for(p=o=0;op||U[o]!==e1[p]){var o1=` +`+U[o].replace(" at new "," at ");return e.displayName&&o1.includes("")&&(o1=o1.replace("",e.displayName)),o1}while(1<=o&&0<=p);break}}}finally{B1=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?$1(l):""}function w1(e,a){switch(e.tag){case 26:case 27:case 5:return $1(e.type);case 16:return $1("Lazy");case 13:return e.child!==a&&a!==null?$1("Suspense Fallback"):$1("Suspense");case 19:return $1("SuspenseList");case 0:case 15:return z1(e.type,!1);case 11:return z1(e.type.render,!1);case 1:return z1(e.type,!0);case 31:return $1("Activity");default:return""}}function U1(e){try{var a="",l=null;do a+=w1(e,l),l=e,e=e.return;while(e);return a}catch(o){return` Error generating stack: `+o.message+` -`+o.stack}}var K1=Object.prototype.hasOwnProperty,S1=t.unstable_scheduleCallback,v1=t.unstable_cancelCallback,y1=t.unstable_shouldYield,E1=t.unstable_requestPaint,r1=t.unstable_now,d1=t.unstable_getCurrentPriorityLevel,w1=t.unstable_ImmediatePriority,Q=t.unstable_UserBlockingPriority,g1=t.unstable_NormalPriority,b1=t.unstable_LowPriority,j1=t.unstable_IdlePriority,s2=t.log,p2=t.unstable_setDisableYieldValue,p1=null,H1=null;function N1(e){if(typeof s2=="function"&&p2(e),H1&&typeof H1.setStrictMode=="function")try{H1.setStrictMode(p1,e)}catch{}}var A1=Math.clz32?Math.clz32:a2,c2=Math.log,o2=Math.LN2;function a2(e){return e>>>=0,e===0?32:31-(c2(e)/o2|0)|0}var n2=256,X2=262144,P4=4194304;function p4(e){var a=e&42;if(a!==0)return a;switch(e&-e){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 e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function A2(e,a,l){var o=e.pendingLanes;if(o===0)return 0;var p=0,z=e.suspendedLanes,A=e.pingedLanes;e=e.warmLanes;var k=o&134217727;return k!==0?(o=k&~z,o!==0?p=p4(o):(A&=k,A!==0?p=p4(A):l||(l=k&~e,l!==0&&(p=p4(l))))):(k=o&~z,k!==0?p=p4(k):A!==0?p=p4(A):l||(l=o&~e,l!==0&&(p=p4(l)))),p===0?0:a!==0&&a!==p&&(a&z)===0&&(z=p&-p,l=a&-a,z>=l||z===32&&(l&4194048)!==0)?a:p}function F4(e,a){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&a)===0}function Bf(e,a){switch(e){case 1:case 2:case 4:case 8:case 64:return a+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 a+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 Vn(){var e=P4;return P4<<=1,(P4&62914560)===0&&(P4=4194304),e}function Je(e){for(var a=[],l=0;31>l;l++)a.push(e);return a}function $0(e,a){e.pendingLanes|=a,a!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function jf(e,a,l,o,p,z){var A=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var k=e.entanglements,U=e.expirationTimes,e1=e.hiddenUpdates;for(l=A&~l;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Tf=/[\n"\\]/g;function x4(e){return e.replace(Tf,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function r7(e,a,l,o,p,z,A,k){e.name="",A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"?e.type=A:e.removeAttribute("type"),a!=null?A==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+g4(a)):e.value!==""+g4(a)&&(e.value=""+g4(a)):A!=="submit"&&A!=="reset"||e.removeAttribute("value"),a!=null?l7(e,A,g4(a)):l!=null?l7(e,A,g4(l)):o!=null&&e.removeAttribute("value"),p==null&&z!=null&&(e.defaultChecked=!!z),p!=null&&(e.checked=p&&typeof p!="function"&&typeof p!="symbol"),k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"?e.name=""+g4(k):e.removeAttribute("name")}function Un(e,a,l,o,p,z,A,k){if(z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"&&(e.type=z),a!=null||l!=null){if(!(z!=="submit"&&z!=="reset"||a!=null)){n7(e);return}l=l!=null?""+g4(l):"",a=a!=null?""+g4(a):l,k||a===e.value||(e.value=a),e.defaultValue=a}o=o??p,o=typeof o!="function"&&typeof o!="symbol"&&!!o,e.checked=k?e.checked:!!o,e.defaultChecked=!!o,A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"&&(e.name=A),n7(e)}function l7(e,a,l){a==="number"&&C5(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function q6(e,a,l,o){if(e=e.options,a){a={};for(var p=0;p"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h7=!1;if(t3)try{var K0={};Object.defineProperty(K0,"passive",{get:function(){h7=!0}}),window.addEventListener("test",K0,K0),window.removeEventListener("test",K0,K0)}catch{h7=!1}var C3=null,d7=null,A5=null;function Kn(){if(A5)return A5;var e,a=d7,l=a.length,o,p="value"in C3?C3.value:C3.textContent,z=p.length;for(e=0;e=W0),er=" ",cr=!1;function ar(e,a){switch(e){case"keyup":return hm.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function nr(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var I6=!1;function fm(e,a){switch(e){case"compositionend":return nr(a);case"keypress":return a.which!==32?null:(cr=!0,er);case"textInput":return e=a.data,e===er&&cr?null:e;default:return null}}function mm(e,a){if(I6)return e==="compositionend"||!g7&&ar(e,a)?(e=Kn(),A5=d7=C3=null,I6=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1=a)return{node:l,offset:a-e};e=o}t:{for(;l;){if(l.nextSibling){l=l.nextSibling;break t}l=l.parentNode}l=void 0}l=dr(l)}}function mr(e,a){return e&&a?e===a?!0:e&&e.nodeType===3?!1:a&&a.nodeType===3?mr(e,a.parentNode):"contains"in e?e.contains(a):e.compareDocumentPosition?!!(e.compareDocumentPosition(a)&16):!1:!1}function vr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var a=C5(e.document);a instanceof e.HTMLIFrameElement;){try{var l=typeof a.contentWindow.location.href=="string"}catch{l=!1}if(l)e=a.contentWindow;else break;a=C5(e.document)}return a}function b7(e){var a=e&&e.nodeName&&e.nodeName.toLowerCase();return a&&(a==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||a==="textarea"||e.contentEditable==="true")}var Mm=t3&&"documentMode"in document&&11>=document.documentMode,P6=null,y7=null,c8=null,M7=!1;function pr(e,a,l){var o=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;M7||P6==null||P6!==C5(o)||(o=P6,"selectionStart"in o&&b7(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),c8&&e8(c8,o)||(c8=o,o=zt(y7,"onSelect"),0>=A,p-=A,$4=1<<32-A1(a)+p|l<G1?(t2=k1,k1=null):t2=k1.sibling;var l2=a1(K,k1,t1[G1],h1);if(l2===null){k1===null&&(k1=t2);break}e&&k1&&l2.alternate===null&&a(K,k1),G=z(l2,G,G1),r2===null?R1=l2:r2.sibling=l2,r2=l2,k1=t2}if(G1===t1.length)return l(K,k1),e2&&c3(K,G1),R1;if(k1===null){for(;G1G1?(t2=k1,k1=null):t2=k1.sibling;var Z3=a1(K,k1,l2.value,h1);if(Z3===null){k1===null&&(k1=t2);break}e&&k1&&Z3.alternate===null&&a(K,k1),G=z(Z3,G,G1),r2===null?R1=Z3:r2.sibling=Z3,r2=Z3,k1=t2}if(l2.done)return l(K,k1),e2&&c3(K,G1),R1;if(k1===null){for(;!l2.done;G1++,l2=t1.next())l2=f1(K,l2.value,h1),l2!==null&&(G=z(l2,G,G1),r2===null?R1=l2:r2.sibling=l2,r2=l2);return e2&&c3(K,G1),R1}for(k1=o(k1);!l2.done;G1++,l2=t1.next())l2=l1(k1,K,G1,l2.value,h1),l2!==null&&(e&&l2.alternate!==null&&k1.delete(l2.key===null?G1:l2.key),G=z(l2,G,G1),r2===null?R1=l2:r2.sibling=l2,r2=l2);return e&&k1.forEach(function(Uv){return a(K,Uv)}),e2&&c3(K,G1),R1}function v2(K,G,t1,h1){if(typeof t1=="object"&&t1!==null&&t1.type===L&&t1.key===null&&(t1=t1.props.children),typeof t1=="object"&&t1!==null){switch(t1.$$typeof){case M:t:{for(var R1=t1.key;G!==null;){if(G.key===R1){if(R1=t1.type,R1===L){if(G.tag===7){l(K,G.sibling),h1=p(G,t1.props.children),h1.return=K,K=h1;break t}}else if(G.elementType===R1||typeof R1=="object"&&R1!==null&&R1.$$typeof===B&&d6(R1)===G.type){l(K,G.sibling),h1=p(G,t1.props),s8(h1,t1),h1.return=K,K=h1;break t}l(K,G);break}else a(K,G);G=G.sibling}t1.type===L?(h1=i6(t1.props.children,K.mode,h1,t1.key),h1.return=K,K=h1):(h1=E5(t1.type,t1.key,t1.props,null,K.mode,h1),s8(h1,t1),h1.return=K,K=h1)}return A(K);case H:t:{for(R1=t1.key;G!==null;){if(G.key===R1)if(G.tag===4&&G.stateNode.containerInfo===t1.containerInfo&&G.stateNode.implementation===t1.implementation){l(K,G.sibling),h1=p(G,t1.children||[]),h1.return=K,K=h1;break t}else{l(K,G);break}else a(K,G);G=G.sibling}h1=V7(t1,K.mode,h1),h1.return=K,K=h1}return A(K);case B:return t1=d6(t1),v2(K,G,t1,h1)}if(O(t1))return V1(K,G,t1,h1);if(I(t1)){if(R1=I(t1),typeof R1!="function")throw Error(i(150));return t1=R1.call(t1),T1(K,G,t1,h1)}if(typeof t1.then=="function")return v2(K,G,I5(t1),h1);if(t1.$$typeof===C)return v2(K,G,q5(K,t1),h1);P5(K,t1)}return typeof t1=="string"&&t1!==""||typeof t1=="number"||typeof t1=="bigint"?(t1=""+t1,G!==null&&G.tag===6?(l(K,G.sibling),h1=p(G,t1),h1.return=K,K=h1):(l(K,G),h1=L7(t1,K.mode,h1),h1.return=K,K=h1),A(K)):l(K,G)}return function(K,G,t1,h1){try{i8=0;var R1=v2(K,G,t1,h1);return e0=null,R1}catch(k1){if(k1===t0||k1===O5)throw k1;var r2=u4(29,k1,null,K.mode);return r2.lanes=h1,r2.return=K,r2}finally{}}}var m6=qr(!0),Dr=qr(!1),V3=!1;function O7(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function U7(e,a){e=e.updateQueue,a.updateQueue===e&&(a.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function B3(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function j3(e,a,l){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(u2&2)!==0){var p=o.pending;return p===null?a.next=a:(a.next=p.next,p.next=a),o.pending=a,a=R5(e),wr(e,null,l),a}return F5(e,o,a,l),R5(e)}function o8(e,a,l){if(a=a.updateQueue,a!==null&&(a=a.shared,(l&4194048)!==0)){var o=a.lanes;o&=e.pendingLanes,l|=o,a.lanes=l,jn(e,l)}}function I7(e,a){var l=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,l===o)){var p=null,z=null;if(l=l.firstBaseUpdate,l!==null){do{var A={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};z===null?p=z=A:z=z.next=A,l=l.next}while(l!==null);z===null?p=z=a:z=z.next=a}else p=z=a;l={baseState:o.baseState,firstBaseUpdate:p,lastBaseUpdate:z,shared:o.shared,callbacks:o.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=a:e.next=a,l.lastBaseUpdate=a}var P7=!1;function u8(){if(P7){var e=J6;if(e!==null)throw e}}function h8(e,a,l,o){P7=!1;var p=e.updateQueue;V3=!1;var z=p.firstBaseUpdate,A=p.lastBaseUpdate,k=p.shared.pending;if(k!==null){p.shared.pending=null;var U=k,e1=U.next;U.next=null,A===null?z=e1:A.next=e1,A=U;var s1=e.alternate;s1!==null&&(s1=s1.updateQueue,k=s1.lastBaseUpdate,k!==A&&(k===null?s1.firstBaseUpdate=e1:k.next=e1,s1.lastBaseUpdate=U))}if(z!==null){var f1=p.baseState;A=0,s1=e1=U=null,k=z;do{var a1=k.lane&-536870913,l1=a1!==k.lane;if(l1?(J1&a1)===a1:(o&a1)===a1){a1!==0&&a1===W6&&(P7=!0),s1!==null&&(s1=s1.next={lane:0,tag:k.tag,payload:k.payload,callback:null,next:null});t:{var V1=e,T1=k;a1=a;var v2=l;switch(T1.tag){case 1:if(V1=T1.payload,typeof V1=="function"){f1=V1.call(v2,f1,a1);break t}f1=V1;break t;case 3:V1.flags=V1.flags&-65537|128;case 0:if(V1=T1.payload,a1=typeof V1=="function"?V1.call(v2,f1,a1):V1,a1==null)break t;f1=b({},f1,a1);break t;case 2:V3=!0}}a1=k.callback,a1!==null&&(e.flags|=64,l1&&(e.flags|=8192),l1=p.callbacks,l1===null?p.callbacks=[a1]:l1.push(a1))}else l1={lane:a1,tag:k.tag,payload:k.payload,callback:k.callback,next:null},s1===null?(e1=s1=l1,U=f1):s1=s1.next=l1,A|=a1;if(k=k.next,k===null){if(k=p.shared.pending,k===null)break;l1=k,k=l1.next,l1.next=null,p.lastBaseUpdate=l1,p.shared.pending=null}}while(!0);s1===null&&(U=f1),p.baseState=U,p.firstBaseUpdate=e1,p.lastBaseUpdate=s1,z===null&&(p.shared.lanes=0),E3|=A,e.lanes=A,e.memoizedState=f1}}function Or(e,a){if(typeof e!="function")throw Error(i(191,e));e.call(a)}function Ur(e,a){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;ez?z:8;var A=T.T,k={};T.T=k,o9(e,!1,a,l);try{var U=p(),e1=T.S;if(e1!==null&&e1(k,U),U!==null&&typeof U=="object"&&typeof U.then=="function"){var s1=jm(U,o);m8(e,a,s1,v4(e))}else m8(e,a,o,v4(e))}catch(f1){m8(e,a,{then:function(){},status:"rejected",reason:f1},v4())}finally{$.p=z,A!==null&&k.types!==null&&(A.types=k.types),T.T=A}}function Tm(){}function i9(e,a,l,o){if(e.tag!==5)throw Error(i(476));var p=bl(e).queue;zl(e,p,a,Z,l===null?Tm:function(){return yl(e),l(o)})}function bl(e){var a=e.memoizedState;if(a!==null)return a;a={memoizedState:Z,baseState:Z,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:l3,lastRenderedState:Z},next:null};var l={};return a.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:l3,lastRenderedState:l},next:null},e.memoizedState=a,e=e.alternate,e!==null&&(e.memoizedState=a),a}function yl(e){var a=bl(e);a.next===null&&(a=e.alternate.memoizedState),m8(e,a.next.queue,{},v4())}function s9(){return Y2(j8)}function Ml(){return j2().memoizedState}function wl(){return j2().memoizedState}function _m(e){for(var a=e.return;a!==null;){switch(a.tag){case 24:case 3:var l=v4();e=B3(l);var o=j3(a,e,l);o!==null&&(i4(o,a,l),o8(o,a,l)),a={cache:T7()},e.payload=a;return}a=a.return}}function qm(e,a,l){var o=v4();l={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},tt(e)?Sl(a,l):(l=A7(e,a,l,o),l!==null&&(i4(l,e,o),Al(l,a,o)))}function Cl(e,a,l){var o=v4();m8(e,a,l,o)}function m8(e,a,l,o){var p={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(tt(e))Sl(a,p);else{var z=e.alternate;if(e.lanes===0&&(z===null||z.lanes===0)&&(z=a.lastRenderedReducer,z!==null))try{var A=a.lastRenderedState,k=z(A,l);if(p.hasEagerState=!0,p.eagerState=k,o4(k,A))return F5(e,a,p,0),g2===null&&k5(),!1}catch{}finally{}if(l=A7(e,a,p,o),l!==null)return i4(l,e,o),Al(l,a,o),!0}return!1}function o9(e,a,l,o){if(o={lane:2,revertLane:O9(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},tt(e)){if(a)throw Error(i(479))}else a=A7(e,l,o,2),a!==null&&i4(a,e,2)}function tt(e){var a=e.alternate;return e===Z1||a!==null&&a===Z1}function Sl(e,a){a0=G5=!0;var l=e.pending;l===null?a.next=a:(a.next=l.next,l.next=a),e.pending=a}function Al(e,a,l){if((l&4194048)!==0){var o=a.lanes;o&=e.pendingLanes,l|=o,a.lanes=l,jn(e,l)}}var v8={readContext:Y2,use:Q5,useCallback:H2,useContext:H2,useEffect:H2,useImperativeHandle:H2,useLayoutEffect:H2,useInsertionEffect:H2,useMemo:H2,useReducer:H2,useRef:H2,useState:H2,useDebugValue:H2,useDeferredValue:H2,useTransition:H2,useSyncExternalStore:H2,useId:H2,useHostTransitionStatus:H2,useFormState:H2,useActionState:H2,useOptimistic:H2,useMemoCache:H2,useCacheRefresh:H2};v8.useEffectEvent=H2;var Hl={readContext:Y2,use:Q5,useCallback:function(e,a){return t4().memoizedState=[e,a===void 0?null:a],e},useContext:Y2,useEffect:ul,useImperativeHandle:function(e,a,l){l=l!=null?l.concat([e]):null,W5(4194308,4,ml.bind(null,a,e),l)},useLayoutEffect:function(e,a){return W5(4194308,4,e,a)},useInsertionEffect:function(e,a){W5(4,2,e,a)},useMemo:function(e,a){var l=t4();a=a===void 0?null:a;var o=e();if(v6){N1(!0);try{e()}finally{N1(!1)}}return l.memoizedState=[o,a],o},useReducer:function(e,a,l){var o=t4();if(l!==void 0){var p=l(a);if(v6){N1(!0);try{l(a)}finally{N1(!1)}}}else p=a;return o.memoizedState=o.baseState=p,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:p},o.queue=e,e=e.dispatch=qm.bind(null,Z1,e),[o.memoizedState,e]},useRef:function(e){var a=t4();return e={current:e},a.memoizedState=e},useState:function(e){e=c9(e);var a=e.queue,l=Cl.bind(null,Z1,a);return a.dispatch=l,[e.memoizedState,l]},useDebugValue:r9,useDeferredValue:function(e,a){var l=t4();return l9(l,e,a)},useTransition:function(){var e=c9(!1);return e=zl.bind(null,Z1,e.queue,!0,!1),t4().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,a,l){var o=Z1,p=t4();if(e2){if(l===void 0)throw Error(i(407));l=l()}else{if(l=a(),g2===null)throw Error(i(349));(J1&127)!==0||Yr(o,a,l)}p.memoizedState=l;var z={value:l,getSnapshot:a};return p.queue=z,ul(Qr.bind(null,o,z,e),[e]),o.flags|=2048,r0(9,{destroy:void 0},Kr.bind(null,o,z,l,a),null),l},useId:function(){var e=t4(),a=g2.identifierPrefix;if(e2){var l=Z4,o=$4;l=(o&~(1<<32-A1(o)-1)).toString(32)+l,a="_"+a+"R_"+l,l=Y5++,0<\/script>",z=z.removeChild(z.firstChild);break;case"select":z=typeof o.is=="string"?A.createElement("select",{is:o.is}):A.createElement("select"),o.multiple?z.multiple=!0:o.size&&(z.size=o.size);break;default:z=typeof o.is=="string"?A.createElement(p,{is:o.is}):A.createElement(p)}}z[Z2]=a,z[e4]=o;t:for(A=a.child;A!==null;){if(A.tag===5||A.tag===6)z.appendChild(A.stateNode);else if(A.tag!==4&&A.tag!==27&&A.child!==null){A.child.return=A,A=A.child;continue}if(A===a)break t;for(;A.sibling===null;){if(A.return===null||A.return===a)break t;A=A.return}A.sibling.return=A.return,A=A.sibling}a.stateNode=z;t:switch(Q2(z,p,o),p){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break t;case"img":o=!0;break t;default:o=!1}o&&s3(a)}}return z2(a),w9(a,a.type,e===null?null:e.memoizedProps,a.pendingProps,l),null;case 6:if(e&&a.stateNode!=null)e.memoizedProps!==o&&s3(a);else{if(typeof o!="string"&&a.stateNode===null)throw Error(i(166));if(e=o1.current,Q6(a)){if(e=a.stateNode,l=a.memoizedProps,o=null,p=G2,p!==null)switch(p.tag){case 27:case 5:o=p.memoizedProps}e[Z2]=a,e=!!(e.nodeValue===l||o!==null&&o.suppressHydrationWarning===!0||Zi(e.nodeValue,l)),e||H3(a,!0)}else e=bt(e).createTextNode(o),e[Z2]=a,a.stateNode=e}return z2(a),null;case 31:if(l=a.memoizedState,e===null||e.memoizedState!==null){if(o=Q6(a),l!==null){if(e===null){if(!o)throw Error(i(318));if(e=a.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(557));e[Z2]=a}else s6(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;z2(a),e=!1}else l=k7(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return a.flags&256?(d4(a),a):(d4(a),null);if((a.flags&128)!==0)throw Error(i(558))}return z2(a),null;case 13:if(o=a.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(p=Q6(a),o!==null&&o.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=a.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[Z2]=a}else s6(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;z2(a),p=!1}else p=k7(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=p),p=!0;if(!p)return a.flags&256?(d4(a),a):(d4(a),null)}return d4(a),(a.flags&128)!==0?(a.lanes=l,a):(l=o!==null,e=e!==null&&e.memoizedState!==null,l&&(o=a.child,p=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(p=o.alternate.memoizedState.cachePool.pool),z=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(z=o.memoizedState.cachePool.pool),z!==p&&(o.flags|=2048)),l!==e&&l&&(a.child.flags|=8192),rt(a,a.updateQueue),z2(a),null);case 4:return F1(),e===null&&$9(a.stateNode.containerInfo),z2(a),null;case 10:return n3(a.type),z2(a),null;case 19:if(D(B2),o=a.memoizedState,o===null)return z2(a),null;if(p=(a.flags&128)!==0,z=o.rendering,z===null)if(p)g8(o,!1);else{if(L2!==0||e!==null&&(e.flags&128)!==0)for(e=a.child;e!==null;){if(z=Z5(e),z!==null){for(a.flags|=128,g8(o,!1),e=z.updateQueue,a.updateQueue=e,rt(a,e),a.subtreeFlags=0,e=l,l=a.child;l!==null;)Cr(l,e),l=l.sibling;return Y(B2,B2.current&1|2),e2&&c3(a,o.treeForkCount),a.child}e=e.sibling}o.tail!==null&&r1()>ut&&(a.flags|=128,p=!0,g8(o,!1),a.lanes=4194304)}else{if(!p)if(e=Z5(z),e!==null){if(a.flags|=128,p=!0,e=e.updateQueue,a.updateQueue=e,rt(a,e),g8(o,!0),o.tail===null&&o.tailMode==="hidden"&&!z.alternate&&!e2)return z2(a),null}else 2*r1()-o.renderingStartTime>ut&&l!==536870912&&(a.flags|=128,p=!0,g8(o,!1),a.lanes=4194304);o.isBackwards?(z.sibling=a.child,a.child=z):(e=o.last,e!==null?e.sibling=z:a.child=z,o.last=z)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=r1(),e.sibling=null,l=B2.current,Y(B2,p?l&1|2:l&1),e2&&c3(a,o.treeForkCount),e):(z2(a),null);case 22:case 23:return d4(a),Z7(),o=a.memoizedState!==null,e!==null?e.memoizedState!==null!==o&&(a.flags|=8192):o&&(a.flags|=8192),o?(l&536870912)!==0&&(a.flags&128)===0&&(z2(a),a.subtreeFlags&6&&(a.flags|=8192)):z2(a),l=a.updateQueue,l!==null&&rt(a,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==l&&(a.flags|=2048),e!==null&&D(h6),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),a.memoizedState.cache!==l&&(a.flags|=2048),n3(k2),z2(a),null;case 25:return null;case 30:return null}throw Error(i(156,a.tag))}function Pm(e,a){switch(j7(a),a.tag){case 1:return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 3:return n3(k2),F1(),e=a.flags,(e&65536)!==0&&(e&128)===0?(a.flags=e&-65537|128,a):null;case 26:case 27:case 5:return D1(a),null;case 31:if(a.memoizedState!==null){if(d4(a),a.alternate===null)throw Error(i(340));s6()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 13:if(d4(a),e=a.memoizedState,e!==null&&e.dehydrated!==null){if(a.alternate===null)throw Error(i(340));s6()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 19:return D(B2),null;case 4:return F1(),null;case 10:return n3(a.type),null;case 22:case 23:return d4(a),Z7(),e!==null&&D(h6),e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 24:return n3(k2),null;case 25:return null;default:return null}}function Xl(e,a){switch(j7(a),a.tag){case 3:n3(k2),F1();break;case 26:case 27:case 5:D1(a);break;case 4:F1();break;case 31:a.memoizedState!==null&&d4(a);break;case 13:d4(a);break;case 19:D(B2);break;case 10:n3(a.type);break;case 22:case 23:d4(a),Z7(),e!==null&&D(h6);break;case 24:n3(k2)}}function x8(e,a){try{var l=a.updateQueue,o=l!==null?l.lastEffect:null;if(o!==null){var p=o.next;l=p;do{if((l.tag&e)===e){o=void 0;var z=l.create,A=l.inst;o=z(),A.destroy=o}l=l.next}while(l!==p)}}catch(k){d2(a,a.return,k)}}function F3(e,a,l){try{var o=a.updateQueue,p=o!==null?o.lastEffect:null;if(p!==null){var z=p.next;o=z;do{if((o.tag&e)===e){var A=o.inst,k=A.destroy;if(k!==void 0){A.destroy=void 0,p=a;var U=l,e1=k;try{e1()}catch(s1){d2(p,U,s1)}}}o=o.next}while(o!==z)}}catch(s1){d2(a,a.return,s1)}}function Wl(e){var a=e.updateQueue;if(a!==null){var l=e.stateNode;try{Ur(a,l)}catch(o){d2(e,e.return,o)}}}function Jl(e,a,l){l.props=p6(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(o){d2(e,a,o)}}function z8(e,a){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var o=e.stateNode;break;case 30:o=e.stateNode;break;default:o=e.stateNode}typeof l=="function"?e.refCleanup=l(o):l.current=o}}catch(p){d2(e,a,p)}}function G4(e,a){var l=e.ref,o=e.refCleanup;if(l!==null)if(typeof o=="function")try{o()}catch(p){d2(e,a,p)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(p){d2(e,a,p)}else l.current=null}function ti(e){var a=e.type,l=e.memoizedProps,o=e.stateNode;try{t:switch(a){case"button":case"input":case"select":case"textarea":l.autoFocus&&o.focus();break t;case"img":l.src?o.src=l.src:l.srcSet&&(o.srcset=l.srcSet)}}catch(p){d2(e,e.return,p)}}function C9(e,a,l){try{var o=e.stateNode;dv(o,e.type,l,a),o[e4]=a}catch(p){d2(e,e.return,p)}}function ei(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&O3(e.type)||e.tag===4}function S9(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||ei(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&O3(e.type)||e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function A9(e,a,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,a?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(e,a):(a=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,a.appendChild(e),l=l._reactRootContainer,l!=null||a.onclick!==null||(a.onclick=J4));else if(o!==4&&(o===27&&O3(e.type)&&(l=e.stateNode,a=null),e=e.child,e!==null))for(A9(e,a,l),e=e.sibling;e!==null;)A9(e,a,l),e=e.sibling}function lt(e,a,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,a?l.insertBefore(e,a):l.appendChild(e);else if(o!==4&&(o===27&&O3(e.type)&&(l=e.stateNode),e=e.child,e!==null))for(lt(e,a,l),e=e.sibling;e!==null;)lt(e,a,l),e=e.sibling}function ci(e){var a=e.stateNode,l=e.memoizedProps;try{for(var o=e.type,p=a.attributes;p.length;)a.removeAttributeNode(p[0]);Q2(a,o,l),a[Z2]=e,a[e4]=l}catch(z){d2(e,e.return,z)}}var o3=!1,E2=!1,H9=!1,ai=typeof WeakSet=="function"?WeakSet:Set,P2=null;function $m(e,a){if(e=e.containerInfo,Y9=Ht,e=vr(e),b7(e)){if("selectionStart"in e)var l={start:e.selectionStart,end:e.selectionEnd};else t:{l=(l=e.ownerDocument)&&l.defaultView||window;var o=l.getSelection&&l.getSelection();if(o&&o.rangeCount!==0){l=o.anchorNode;var p=o.anchorOffset,z=o.focusNode;o=o.focusOffset;try{l.nodeType,z.nodeType}catch{l=null;break t}var A=0,k=-1,U=-1,e1=0,s1=0,f1=e,a1=null;e:for(;;){for(var l1;f1!==l||p!==0&&f1.nodeType!==3||(k=A+p),f1!==z||o!==0&&f1.nodeType!==3||(U=A+o),f1.nodeType===3&&(A+=f1.nodeValue.length),(l1=f1.firstChild)!==null;)a1=f1,f1=l1;for(;;){if(f1===e)break e;if(a1===l&&++e1===p&&(k=A),a1===z&&++s1===o&&(U=A),(l1=f1.nextSibling)!==null)break;f1=a1,a1=f1.parentNode}f1=l1}l=k===-1||U===-1?null:{start:k,end:U}}else l=null}l=l||{start:0,end:0}}else l=null;for(K9={focusedElem:e,selectionRange:l},Ht=!1,P2=a;P2!==null;)if(a=P2,e=a.child,(a.subtreeFlags&1028)!==0&&e!==null)e.return=a,P2=e;else for(;P2!==null;){switch(a=P2,z=a.alternate,e=a.flags,a.tag){case 0:if((e&4)!==0&&(e=a.updateQueue,e=e!==null?e.events:null,e!==null))for(l=0;l title"))),Q2(z,o,l),z[Z2]=e,I2(z),o=z;break t;case"link":var A=os("link","href",p).get(o+(l.href||""));if(A){for(var k=0;kv2&&(A=v2,v2=T1,T1=A);var K=fr(k,T1),G=fr(k,v2);if(K&&G&&(l1.rangeCount!==1||l1.anchorNode!==K.node||l1.anchorOffset!==K.offset||l1.focusNode!==G.node||l1.focusOffset!==G.offset)){var t1=f1.createRange();t1.setStart(K.node,K.offset),l1.removeAllRanges(),T1>v2?(l1.addRange(t1),l1.extend(G.node,G.offset)):(t1.setEnd(G.node,G.offset),l1.addRange(t1))}}}}for(f1=[],l1=k;l1=l1.parentNode;)l1.nodeType===1&&f1.push({element:l1,left:l1.scrollLeft,top:l1.scrollTop});for(typeof k.focus=="function"&&k.focus(),k=0;kl?32:l,T.T=null,l=F9,F9=null;var z=_3,A=m3;if(D2=0,u0=_3=null,m3=0,(u2&6)!==0)throw Error(i(331));var k=u2;if(u2|=4,mi(z.current),hi(z,z.current,A,l),u2=k,S8(0,!1),H1&&typeof H1.onPostCommitFiberRoot=="function")try{H1.onPostCommitFiberRoot(p1,z)}catch{}return!0}finally{$.p=p,T.T=o,Ni(e,a)}}function Fi(e,a,l){a=b4(l,a),a=f9(e.stateNode,a,2),e=j3(e,a,2),e!==null&&($0(e,2),Y4(e))}function d2(e,a,l){if(e.tag===3)Fi(e,e,l);else for(;a!==null;){if(a.tag===3){Fi(a,e,l);break}else if(a.tag===1){var o=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(T3===null||!T3.has(o))){e=b4(l,e),l=Rl(2),o=j3(a,l,2),o!==null&&(El(l,o,a,e),$0(o,2),Y4(o));break}}a=a.return}}function _9(e,a,l){var o=e.pingCache;if(o===null){o=e.pingCache=new Ym;var p=new Set;o.set(a,p)}else p=o.get(a),p===void 0&&(p=new Set,o.set(a,p));p.has(l)||(B9=!0,p.add(l),e=Jm.bind(null,e,a,l),a.then(e,e))}function Jm(e,a,l){var o=e.pingCache;o!==null&&o.delete(a),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,g2===e&&(J1&l)===l&&(L2===4||L2===3&&(J1&62914560)===J1&&300>r1()-ot?(u2&2)===0&&h0(e,0):j9|=l,o0===J1&&(o0=0)),Y4(e)}function Ri(e,a){a===0&&(a=Vn()),e=l6(e,a),e!==null&&($0(e,a),Y4(e))}function tv(e){var a=e.memoizedState,l=0;a!==null&&(l=a.retryLane),Ri(e,l)}function ev(e,a){var l=0;switch(e.tag){case 31:case 13:var o=e.stateNode,p=e.memoizedState;p!==null&&(l=p.retryLane);break;case 19:o=e.stateNode;break;case 22:o=e.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(a),Ri(e,l)}function cv(e,a){return S1(e,a)}var pt=null,f0=null,q9=!1,gt=!1,D9=!1,D3=0;function Y4(e){e!==f0&&e.next===null&&(f0===null?pt=f0=e:f0=f0.next=e),gt=!0,q9||(q9=!0,nv())}function S8(e,a){if(!D9&>){D9=!0;do for(var l=!1,o=pt;o!==null;){if(e!==0){var p=o.pendingLanes;if(p===0)var z=0;else{var A=o.suspendedLanes,k=o.pingedLanes;z=(1<<31-A1(42|e)+1)-1,z&=p&~(A&~k),z=z&201326741?z&201326741|1:z?z|2:0}z!==0&&(l=!0,qi(o,z))}else z=J1,z=A2(o,o===g2?z:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(z&3)===0||F4(o,z)||(l=!0,qi(o,z));o=o.next}while(l);D9=!1}}function av(){Ei()}function Ei(){gt=q9=!1;var e=0;D3!==0&&mv()&&(e=D3);for(var a=r1(),l=null,o=pt;o!==null;){var p=o.next,z=Ti(o,a);z===0?(o.next=null,l===null?pt=p:l.next=p,p===null&&(f0=l)):(l=o,(e!==0||(z&3)!==0)&&(gt=!0)),o=p}D2!==0&&D2!==5||S8(e),D3!==0&&(D3=0)}function Ti(e,a){for(var l=e.suspendedLanes,o=e.pingedLanes,p=e.expirationTimes,z=e.pendingLanes&-62914561;0k)break;var s1=U.transferSize,f1=U.initiatorType;s1&&Gi(f1)&&(U=U.responseEnd,A+=s1*(U"u"?null:document;function rs(e,a,l){var o=m0;if(o&&typeof a=="string"&&a){var p=x4(a);p='link[rel="'+e+'"][href="'+p+'"]',typeof l=="string"&&(p+='[crossorigin="'+l+'"]'),ns.has(p)||(ns.add(p),e={rel:e,crossOrigin:l,href:a},o.querySelector(p)===null&&(a=o.createElement("link"),Q2(a,"link",e),I2(a),o.head.appendChild(a)))}}function wv(e){v3.D(e),rs("dns-prefetch",e,null)}function Cv(e,a){v3.C(e,a),rs("preconnect",e,a)}function Sv(e,a,l){v3.L(e,a,l);var o=m0;if(o&&e&&a){var p='link[rel="preload"][as="'+x4(a)+'"]';a==="image"&&l&&l.imageSrcSet?(p+='[imagesrcset="'+x4(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(p+='[imagesizes="'+x4(l.imageSizes)+'"]')):p+='[href="'+x4(e)+'"]';var z=p;switch(a){case"style":z=v0(e);break;case"script":z=p0(e)}A4.has(z)||(e=b({rel:"preload",href:a==="image"&&l&&l.imageSrcSet?void 0:e,as:a},l),A4.set(z,e),o.querySelector(p)!==null||a==="style"&&o.querySelector(V8(z))||a==="script"&&o.querySelector(B8(z))||(a=o.createElement("link"),Q2(a,"link",e),I2(a),o.head.appendChild(a)))}}function Av(e,a){v3.m(e,a);var l=m0;if(l&&e){var o=a&&typeof a.as=="string"?a.as:"script",p='link[rel="modulepreload"][as="'+x4(o)+'"][href="'+x4(e)+'"]',z=p;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":z=p0(e)}if(!A4.has(z)&&(e=b({rel:"modulepreload",href:e},a),A4.set(z,e),l.querySelector(p)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(B8(z)))return}o=l.createElement("link"),Q2(o,"link",e),I2(o),l.head.appendChild(o)}}}function Hv(e,a,l){v3.S(e,a,l);var o=m0;if(o&&e){var p=T6(o).hoistableStyles,z=v0(e);a=a||"default";var A=p.get(z);if(!A){var k={loading:0,preload:null};if(A=o.querySelector(V8(z)))k.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":a},l),(l=A4.get(z))&&cc(e,l);var U=A=o.createElement("link");I2(U),Q2(U,"link",e),U._p=new Promise(function(e1,s1){U.onload=e1,U.onerror=s1}),U.addEventListener("load",function(){k.loading|=1}),U.addEventListener("error",function(){k.loading|=2}),k.loading|=4,Mt(A,a,o)}A={type:"stylesheet",instance:A,count:1,state:k},p.set(z,A)}}}function Lv(e,a){v3.X(e,a);var l=m0;if(l&&e){var o=T6(l).hoistableScripts,p=p0(e),z=o.get(p);z||(z=l.querySelector(B8(p)),z||(e=b({src:e,async:!0},a),(a=A4.get(p))&&ac(e,a),z=l.createElement("script"),I2(z),Q2(z,"link",e),l.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},o.set(p,z))}}function Vv(e,a){v3.M(e,a);var l=m0;if(l&&e){var o=T6(l).hoistableScripts,p=p0(e),z=o.get(p);z||(z=l.querySelector(B8(p)),z||(e=b({src:e,async:!0,type:"module"},a),(a=A4.get(p))&&ac(e,a),z=l.createElement("script"),I2(z),Q2(z,"link",e),l.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},o.set(p,z))}}function ls(e,a,l,o){var p=(p=o1.current)?yt(p):null;if(!p)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(a=v0(l.href),l=T6(p).hoistableStyles,o=l.get(a),o||(o={type:"style",instance:null,count:0,state:null},l.set(a,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=v0(l.href);var z=T6(p).hoistableStyles,A=z.get(e);if(A||(p=p.ownerDocument||p,A={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},z.set(e,A),(z=p.querySelector(V8(e)))&&!z._p&&(A.instance=z,A.state.loading=5),A4.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},A4.set(e,l),z||Bv(p,e,l,A.state))),a&&o===null)throw Error(i(528,""));return A}if(a&&o!==null)throw Error(i(529,""));return null;case"script":return a=l.async,l=l.src,typeof l=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=p0(l),l=T6(p).hoistableScripts,o=l.get(a),o||(o={type:"script",instance:null,count:0,state:null},l.set(a,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function v0(e){return'href="'+x4(e)+'"'}function V8(e){return'link[rel="stylesheet"]['+e+"]"}function is(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Bv(e,a,l,o){e.querySelector('link[rel="preload"][as="style"]['+a+"]")?o.loading=1:(a=e.createElement("link"),o.preload=a,a.addEventListener("load",function(){return o.loading|=1}),a.addEventListener("error",function(){return o.loading|=2}),Q2(a,"link",l),I2(a),e.head.appendChild(a))}function p0(e){return'[src="'+x4(e)+'"]'}function B8(e){return"script[async]"+e}function ss(e,a,l){if(a.count++,a.instance===null)switch(a.type){case"style":var o=e.querySelector('style[data-href~="'+x4(l.href)+'"]');if(o)return a.instance=o,I2(o),o;var p=b({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return o=(e.ownerDocument||e).createElement("style"),I2(o),Q2(o,"style",p),Mt(o,l.precedence,e),a.instance=o;case"stylesheet":p=v0(l.href);var z=e.querySelector(V8(p));if(z)return a.state.loading|=4,a.instance=z,I2(z),z;o=is(l),(p=A4.get(p))&&cc(o,p),z=(e.ownerDocument||e).createElement("link"),I2(z);var A=z;return A._p=new Promise(function(k,U){A.onload=k,A.onerror=U}),Q2(z,"link",o),a.state.loading|=4,Mt(z,l.precedence,e),a.instance=z;case"script":return z=p0(l.src),(p=e.querySelector(B8(z)))?(a.instance=p,I2(p),p):(o=l,(p=A4.get(z))&&(o=b({},l),ac(o,p)),e=e.ownerDocument||e,p=e.createElement("script"),I2(p),Q2(p,"link",o),e.head.appendChild(p),a.instance=p);case"void":return null;default:throw Error(i(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(o=a.instance,a.state.loading|=4,Mt(o,l.precedence,e));return a.instance}function Mt(e,a,l){for(var o=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),p=o.length?o[o.length-1]:null,z=p,A=0;A title"):null)}function jv(e,a,l){if(l===1||a.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;switch(a.rel){case"stylesheet":return e=a.disabled,typeof a.precedence=="string"&&e==null;default:return!0}case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function hs(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Nv(e,a,l,o){if(l.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var p=v0(o.href),z=a.querySelector(V8(p));if(z){a=z._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(e.count++,e=Ct.bind(e),a.then(e,e)),l.state.loading|=4,l.instance=z,I2(z);return}z=a.ownerDocument||a,o=is(o),(p=A4.get(p))&&cc(o,p),z=z.createElement("link"),I2(z);var A=z;A._p=new Promise(function(k,U){A.onload=k,A.onerror=U}),Q2(z,"link",o),l.instance=z}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,a),(a=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=Ct.bind(e),a.addEventListener("load",l),a.addEventListener("error",l))}}var nc=0;function kv(e,a){return e.stylesheets&&e.count===0&&At(e,e.stylesheets),0nc?50:800)+a);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(o),clearTimeout(p)}}:null}function Ct(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)At(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var St=null;function At(e,a){e.stylesheets=null,e.unsuspend!==null&&(e.count++,St=new Map,a.forEach(Fv,e),St=null,Ct.call(e))}function Fv(e,a){if(!(a.state.loading&4)){var l=St.get(e);if(l)var o=l.get(null);else{l=new Map,St.set(e,l);for(var p=e.querySelectorAll("link[data-precedence],style[data-precedence]"),z=0;z"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),fc.exports=Qv(),fc.exports}var Wv=Xv();var Rs="popstate";function Jv(t={}){function c(i,u){let{pathname:h,search:d,hash:m}=i.location;return ea("",{pathname:h,search:d,hash:m},u.state&&u.state.usr||null,u.state&&u.state.key||"default")}function n(i,u){return typeof u=="string"?u:a5(u)}return ep(c,n,null,t)}function C2(t,c){if(t===!1||t===null||typeof t>"u")throw new Error(c)}function U4(t,c){if(!t){typeof console<"u"&&console.warn(c);try{throw new Error(c)}catch{}}}function tp(){return Math.random().toString(36).substring(2,10)}function Es(t,c){return{usr:t.state,key:t.key,idx:c}}function ea(t,c,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof c=="string"?E0(c):c,state:n,key:c&&c.key||i||tp()}}function a5({pathname:t="/",search:c="",hash:n=""}){return c&&c!=="?"&&(t+=c.charAt(0)==="?"?c:"?"+c),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function E0(t){let c={};if(t){let n=t.indexOf("#");n>=0&&(c.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(c.search=t.substring(i),t=t.substring(0,i)),t&&(c.pathname=t)}return c}function ep(t,c,n,i={}){let{window:u=document.defaultView,v5Compat:h=!1}=i,d=u.history,m="POP",v=null,x=g();x==null&&(x=0,d.replaceState({...d.state,idx:x},""));function g(){return(d.state||{idx:null}).idx}function b(){m="POP";let w=g(),V=w==null?null:w-x;x=w,v&&v({action:m,location:L.location,delta:V})}function y(w,V){m="PUSH";let S=ea(L.location,w,V);x=g()+1;let C=Es(S,x),j=L.createHref(S);try{d.pushState(C,"",j)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;u.location.assign(j)}h&&v&&v({action:m,location:L.location,delta:1})}function M(w,V){m="REPLACE";let S=ea(L.location,w,V);x=g();let C=Es(S,x),j=L.createHref(S);d.replaceState(C,"",j),h&&v&&v({action:m,location:L.location,delta:0})}function H(w){return cp(w)}let L={get action(){return m},get location(){return t(u,d)},listen(w){if(v)throw new Error("A history only accepts one active listener");return u.addEventListener(Rs,b),v=w,()=>{u.removeEventListener(Rs,b),v=null}},createHref(w){return c(u,w)},createURL:H,encodeLocation(w){let V=H(w);return{pathname:V.pathname,search:V.search,hash:V.hash}},push:y,replace:M,go(w){return d.go(w)}};return L}function cp(t,c=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),C2(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:a5(t);return i=i.replace(/ $/,"%20"),!c&&i.startsWith("//")&&(i=n+i),new URL(i,n)}function Tu(t,c,n="/"){return ap(t,c,n,!1)}function ap(t,c,n,i){let u=typeof c=="string"?E0(c):c,h=y3(u.pathname||"/",n);if(h==null)return null;let d=_u(t);np(d);let m=null;for(let v=0;m==null&&v{let g={relativePath:x===void 0?d.path||"":x,caseSensitive:d.caseSensitive===!0,childrenIndex:m,route:d};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(i)&&v)return;C2(g.relativePath.startsWith(i),`Absolute route path "${g.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),g.relativePath=g.relativePath.slice(i.length)}let b=z3([i,g.relativePath]),y=n.concat(g);d.children&&d.children.length>0&&(C2(d.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),_u(d.children,c,y,b,v)),!(d.path==null&&!d.index)&&c.push({path:b,score:hp(b,d.index),routesMeta:y})};return t.forEach((d,m)=>{if(d.path===""||!d.path?.includes("?"))h(d,m);else for(let v of qu(d.path))h(d,m,!0,v)}),c}function qu(t){let c=t.split("/");if(c.length===0)return[];let[n,...i]=c,u=n.endsWith("?"),h=n.replace(/\?$/,"");if(i.length===0)return u?[h,""]:[h];let d=qu(i.join("/")),m=[];return m.push(...d.map(v=>v===""?h:[h,v].join("/"))),u&&m.push(...d),m.map(v=>t.startsWith("/")&&v===""?"/":v)}function np(t){t.sort((c,n)=>c.score!==n.score?n.score-c.score:dp(c.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var rp=/^:[\w-]+$/,lp=3,ip=2,sp=1,op=10,up=-2,Ts=t=>t==="*";function hp(t,c){let n=t.split("/"),i=n.length;return n.some(Ts)&&(i+=up),c&&(i+=ip),n.filter(u=>!Ts(u)).reduce((u,h)=>u+(rp.test(h)?lp:h===""?sp:op),i)}function dp(t,c){return t.length===c.length&&t.slice(0,-1).every((i,u)=>i===c[u])?t[t.length-1]-c[c.length-1]:0}function fp(t,c,n=!1){let{routesMeta:i}=t,u={},h="/",d=[];for(let m=0;m{if(g==="*"){let H=m[y]||"";d=h.slice(0,h.length-H.length).replace(/(.)\/+$/,"$1")}const M=m[y];return b&&!M?x[g]=void 0:x[g]=(M||"").replace(/%2F/g,"/"),x},{}),pathname:h,pathnameBase:d,pattern:t}}function mp(t,c=!1,n=!0){U4(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],u="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,m,v)=>(i.push({paramName:m,isOptional:v!=null}),v?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),u+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?u+="\\/*$":t!==""&&t!=="/"&&(u+="(?:(?=\\/|$))"),[new RegExp(u,c?void 0:"i"),i]}function vp(t){try{return t.split("/").map(c=>decodeURIComponent(c).replace(/\//g,"%2F")).join("/")}catch(c){return U4(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${c}).`),t}}function y3(t,c){if(c==="/")return t;if(!t.toLowerCase().startsWith(c.toLowerCase()))return null;let n=c.endsWith("/")?c.length-1:c.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}var pp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,gp=t=>pp.test(t);function xp(t,c="/"){let{pathname:n,search:i="",hash:u=""}=typeof t=="string"?E0(t):t,h;if(n)if(gp(n))h=n;else{if(n.includes("//")){let d=n;n=n.replace(/\/\/+/g,"/"),U4(!1,`Pathnames cannot have embedded double slashes - normalizing ${d} -> ${n}`)}n.startsWith("/")?h=_s(n.substring(1),"/"):h=_s(n,c)}else h=c;return{pathname:h,search:yp(i),hash:Mp(u)}}function _s(t,c){let n=c.replace(/\/+$/,"").split("/");return t.split("/").forEach(u=>{u===".."?n.length>1&&n.pop():u!=="."&&n.push(u)}),n.length>1?n.join("/"):"/"}function gc(t,c,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${c}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function zp(t){return t.filter((c,n)=>n===0||c.route.path&&c.route.path.length>0)}function Du(t){let c=zp(t);return c.map((n,i)=>i===c.length-1?n.pathname:n.pathnameBase)}function Ou(t,c,n,i=!1){let u;typeof t=="string"?u=E0(t):(u={...t},C2(!u.pathname||!u.pathname.includes("?"),gc("?","pathname","search",u)),C2(!u.pathname||!u.pathname.includes("#"),gc("#","pathname","hash",u)),C2(!u.search||!u.search.includes("#"),gc("#","search","hash",u)));let h=t===""||u.pathname==="",d=h?"/":u.pathname,m;if(d==null)m=n;else{let b=c.length-1;if(!i&&d.startsWith("..")){let y=d.split("/");for(;y[0]==="..";)y.shift(),b-=1;u.pathname=y.join("/")}m=b>=0?c[b]:"/"}let v=xp(u,m),x=d&&d!=="/"&&d.endsWith("/"),g=(h||d===".")&&n.endsWith("/");return!v.pathname.endsWith("/")&&(x||g)&&(v.pathname+="/"),v}var z3=t=>t.join("/").replace(/\/\/+/g,"/"),bp=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),yp=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Mp=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function wp(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Uu=["POST","PUT","PATCH","DELETE"];new Set(Uu);var Cp=["GET",...Uu];new Set(Cp);var T0=f.createContext(null);T0.displayName="DataRouter";var Fe=f.createContext(null);Fe.displayName="DataRouterState";f.createContext(!1);var Iu=f.createContext({isTransitioning:!1});Iu.displayName="ViewTransition";var Sp=f.createContext(new Map);Sp.displayName="Fetchers";var Ap=f.createContext(null);Ap.displayName="Await";var X4=f.createContext(null);X4.displayName="Navigation";var v5=f.createContext(null);v5.displayName="Location";var M3=f.createContext({outlet:null,matches:[],isDataRoute:!1});M3.displayName="Route";var Ta=f.createContext(null);Ta.displayName="RouteError";function Hp(t,{relative:c}={}){C2(p5(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:i}=f.useContext(X4),{hash:u,pathname:h,search:d}=g5(t,{relative:c}),m=h;return n!=="/"&&(m=h==="/"?n:z3([n,h])),i.createHref({pathname:m,search:d,hash:u})}function p5(){return f.useContext(v5)!=null}function J3(){return C2(p5(),"useLocation() may be used only in the context of a component."),f.useContext(v5).location}var Pu="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function $u(t){f.useContext(X4).static||f.useLayoutEffect(t)}function _a(){let{isDataRoute:t}=f.useContext(M3);return t?Dp():Lp()}function Lp(){C2(p5(),"useNavigate() may be used only in the context of a component.");let t=f.useContext(T0),{basename:c,navigator:n}=f.useContext(X4),{matches:i}=f.useContext(M3),{pathname:u}=J3(),h=JSON.stringify(Du(i)),d=f.useRef(!1);return $u(()=>{d.current=!0}),f.useCallback((v,x={})=>{if(U4(d.current,Pu),!d.current)return;if(typeof v=="number"){n.go(v);return}let g=Ou(v,JSON.parse(h),u,x.relative==="path");t==null&&c!=="/"&&(g.pathname=g.pathname==="/"?c:z3([c,g.pathname])),(x.replace?n.replace:n.push)(g,x.state,x)},[c,n,h,u,t])}f.createContext(null);function g5(t,{relative:c}={}){let{matches:n}=f.useContext(M3),{pathname:i}=J3(),u=JSON.stringify(Du(n));return f.useMemo(()=>Ou(t,JSON.parse(u),i,c==="path"),[t,u,i,c])}function Vp(t,c){return Zu(t,c)}function Zu(t,c,n,i,u){C2(p5(),"useRoutes() may be used only in the context of a component.");let{navigator:h}=f.useContext(X4),{matches:d}=f.useContext(M3),m=d[d.length-1],v=m?m.params:{},x=m?m.pathname:"/",g=m?m.pathnameBase:"/",b=m&&m.route;{let S=b&&b.path||"";Gu(x,!b||S.endsWith("*")||S.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${x}" (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. +`+o.stack}}var K1=Object.prototype.hasOwnProperty,H1=t.unstable_scheduleCallback,v1=t.unstable_cancelCallback,M1=t.unstable_shouldYield,T1=t.unstable_requestPaint,n1=t.unstable_now,d1=t.unstable_getCurrentPriorityLevel,C1=t.unstable_ImmediatePriority,Q=t.unstable_UserBlockingPriority,x1=t.unstable_NormalPriority,b1=t.unstable_LowPriority,N1=t.unstable_IdlePriority,s2=t.log,p2=t.unstable_setDisableYieldValue,p1=null,V1=null;function k1(e){if(typeof s2=="function"&&p2(e),V1&&typeof V1.setStrictMode=="function")try{V1.setStrictMode(p1,e)}catch{}}var L1=Math.clz32?Math.clz32:a2,c2=Math.log,o2=Math.LN2;function a2(e){return e>>>=0,e===0?32:31-(c2(e)/o2|0)|0}var n2=256,X2=262144,P4=4194304;function p4(e){var a=e&42;if(a!==0)return a;switch(e&-e){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 e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function A2(e,a,l){var o=e.pendingLanes;if(o===0)return 0;var p=0,z=e.suspendedLanes,A=e.pingedLanes;e=e.warmLanes;var F=o&134217727;return F!==0?(o=F&~z,o!==0?p=p4(o):(A&=F,A!==0?p=p4(A):l||(l=F&~e,l!==0&&(p=p4(l))))):(F=o&~z,F!==0?p=p4(F):A!==0?p=p4(A):l||(l=o&~e,l!==0&&(p=p4(l)))),p===0?0:a!==0&&a!==p&&(a&z)===0&&(z=p&-p,l=a&-a,z>=l||z===32&&(l&4194048)!==0)?a:p}function F4(e,a){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&a)===0}function Rf(e,a){switch(e){case 1:case 2:case 4:case 8:case 64:return a+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 a+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 Rn(){var e=P4;return P4<<=1,(P4&62914560)===0&&(P4=4194304),e}function a7(e){for(var a=[],l=0;31>l;l++)a.push(e);return a}function Z0(e,a){e.pendingLanes|=a,a!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ef(e,a,l,o,p,z){var A=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var F=e.entanglements,U=e.expirationTimes,e1=e.hiddenUpdates;for(l=A&~l;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Uf=/[\n"\\]/g;function x4(e){return e.replace(Uf,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function o7(e,a,l,o,p,z,A,F){e.name="",A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"?e.type=A:e.removeAttribute("type"),a!=null?A==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+g4(a)):e.value!==""+g4(a)&&(e.value=""+g4(a)):A!=="submit"&&A!=="reset"||e.removeAttribute("value"),a!=null?u7(e,A,g4(a)):l!=null?u7(e,A,g4(l)):o!=null&&e.removeAttribute("value"),p==null&&z!=null&&(e.defaultChecked=!!z),p!=null&&(e.checked=p&&typeof p!="function"&&typeof p!="symbol"),F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?e.name=""+g4(F):e.removeAttribute("name")}function Yn(e,a,l,o,p,z,A,F){if(z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"&&(e.type=z),a!=null||l!=null){if(!(z!=="submit"&&z!=="reset"||a!=null)){s7(e);return}l=l!=null?""+g4(l):"",a=a!=null?""+g4(a):l,F||a===e.value||(e.value=a),e.defaultValue=a}o=o??p,o=typeof o!="function"&&typeof o!="symbol"&&!!o,e.checked=F?e.checked:!!o,e.defaultChecked=!!o,A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"&&(e.name=A),s7(e)}function u7(e,a,l){a==="number"&&A5(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function D6(e,a,l,o){if(e=e.options,a){a={};for(var p=0;p"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),v7=!1;if(t3)try{var Q0={};Object.defineProperty(Q0,"passive",{get:function(){v7=!0}}),window.addEventListener("test",Q0,Q0),window.removeEventListener("test",Q0,Q0)}catch{v7=!1}var C3=null,p7=null,L5=null;function er(){if(L5)return L5;var e,a=p7,l=a.length,o,p="value"in C3?C3.value:C3.textContent,z=p.length;for(e=0;e=J0),ir=" ",sr=!1;function or(e,a){switch(e){case"keyup":return pm.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ur(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var P6=!1;function xm(e,a){switch(e){case"compositionend":return ur(a);case"keypress":return a.which!==32?null:(sr=!0,ir);case"textInput":return e=a.data,e===ir&&sr?null:e;default:return null}}function zm(e,a){if(P6)return e==="compositionend"||!y7&&or(e,a)?(e=er(),L5=p7=C3=null,P6=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1=a)return{node:l,offset:a-e};e=o}t:{for(;l;){if(l.nextSibling){l=l.nextSibling;break t}l=l.parentNode}l=void 0}l=xr(l)}}function br(e,a){return e&&a?e===a?!0:e&&e.nodeType===3?!1:a&&a.nodeType===3?br(e,a.parentNode):"contains"in e?e.contains(a):e.compareDocumentPosition?!!(e.compareDocumentPosition(a)&16):!1:!1}function yr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var a=A5(e.document);a instanceof e.HTMLIFrameElement;){try{var l=typeof a.contentWindow.location.href=="string"}catch{l=!1}if(l)e=a.contentWindow;else break;a=A5(e.document)}return a}function C7(e){var a=e&&e.nodeName&&e.nodeName.toLowerCase();return a&&(a==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||a==="textarea"||e.contentEditable==="true")}var Hm=t3&&"documentMode"in document&&11>=document.documentMode,$6=null,S7=null,a8=null,A7=!1;function Mr(e,a,l){var o=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;A7||$6==null||$6!==A5(o)||(o=$6,"selectionStart"in o&&C7(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),a8&&c8(a8,o)||(a8=o,o=yt(S7,"onSelect"),0>=A,p-=A,$4=1<<32-L1(a)+p|l<G1?(t2=F1,F1=null):t2=F1.sibling;var l2=c1(Y,F1,t1[G1],h1);if(l2===null){F1===null&&(F1=t2);break}e&&F1&&l2.alternate===null&&a(Y,F1),Z=z(l2,Z,G1),r2===null?R1=l2:r2.sibling=l2,r2=l2,F1=t2}if(G1===t1.length)return l(Y,F1),e2&&c3(Y,G1),R1;if(F1===null){for(;G1G1?(t2=F1,F1=null):t2=F1.sibling;var Z3=c1(Y,F1,l2.value,h1);if(Z3===null){F1===null&&(F1=t2);break}e&&F1&&Z3.alternate===null&&a(Y,F1),Z=z(Z3,Z,G1),r2===null?R1=Z3:r2.sibling=Z3,r2=Z3,F1=t2}if(l2.done)return l(Y,F1),e2&&c3(Y,G1),R1;if(F1===null){for(;!l2.done;G1++,l2=t1.next())l2=f1(Y,l2.value,h1),l2!==null&&(Z=z(l2,Z,G1),r2===null?R1=l2:r2.sibling=l2,r2=l2);return e2&&c3(Y,G1),R1}for(F1=o(F1);!l2.done;G1++,l2=t1.next())l2=r1(F1,Y,G1,l2.value,h1),l2!==null&&(e&&l2.alternate!==null&&F1.delete(l2.key===null?G1:l2.key),Z=z(l2,Z,G1),r2===null?R1=l2:r2.sibling=l2,r2=l2);return e&&F1.forEach(function(Gv){return a(Y,Gv)}),e2&&c3(Y,G1),R1}function v2(Y,Z,t1,h1){if(typeof t1=="object"&&t1!==null&&t1.type===L&&t1.key===null&&(t1=t1.props.children),typeof t1=="object"&&t1!==null){switch(t1.$$typeof){case M:t:{for(var R1=t1.key;Z!==null;){if(Z.key===R1){if(R1=t1.type,R1===L){if(Z.tag===7){l(Y,Z.sibling),h1=p(Z,t1.props.children),h1.return=Y,Y=h1;break t}}else if(Z.elementType===R1||typeof R1=="object"&&R1!==null&&R1.$$typeof===B&&f6(R1)===Z.type){l(Y,Z.sibling),h1=p(Z,t1.props),o8(h1,t1),h1.return=Y,Y=h1;break t}l(Y,Z);break}else a(Y,Z);Z=Z.sibling}t1.type===L?(h1=s6(t1.props.children,Y.mode,h1,t1.key),h1.return=Y,Y=h1):(h1=_5(t1.type,t1.key,t1.props,null,Y.mode,h1),o8(h1,t1),h1.return=Y,Y=h1)}return A(Y);case H:t:{for(R1=t1.key;Z!==null;){if(Z.key===R1)if(Z.tag===4&&Z.stateNode.containerInfo===t1.containerInfo&&Z.stateNode.implementation===t1.implementation){l(Y,Z.sibling),h1=p(Z,t1.children||[]),h1.return=Y,Y=h1;break t}else{l(Y,Z);break}else a(Y,Z);Z=Z.sibling}h1=k7(t1,Y.mode,h1),h1.return=Y,Y=h1}return A(Y);case B:return t1=f6(t1),v2(Y,Z,t1,h1)}if(O(t1))return j1(Y,Z,t1,h1);if(P(t1)){if(R1=P(t1),typeof R1!="function")throw Error(i(150));return t1=R1.call(t1),q1(Y,Z,t1,h1)}if(typeof t1.then=="function")return v2(Y,Z,$5(t1),h1);if(t1.$$typeof===C)return v2(Y,Z,O5(Y,t1),h1);Z5(Y,t1)}return typeof t1=="string"&&t1!==""||typeof t1=="number"||typeof t1=="bigint"?(t1=""+t1,Z!==null&&Z.tag===6?(l(Y,Z.sibling),h1=p(Z,t1),h1.return=Y,Y=h1):(l(Y,Z),h1=N7(t1,Y.mode,h1),h1.return=Y,Y=h1),A(Y)):l(Y,Z)}return function(Y,Z,t1,h1){try{s8=0;var R1=v2(Y,Z,t1,h1);return c0=null,R1}catch(F1){if(F1===e0||F1===I5)throw F1;var r2=u4(29,F1,null,Y.mode);return r2.lanes=h1,r2.return=Y,r2}finally{}}}var v6=$r(!0),Zr=$r(!1),V3=!1;function $7(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Z7(e,a){e=e.updateQueue,a.updateQueue===e&&(a.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function B3(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function j3(e,a,l){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(u2&2)!==0){var p=o.pending;return p===null?a.next=a:(a.next=p.next,p.next=a),o.pending=a,a=T5(e),Vr(e,null,l),a}return E5(e,o,a,l),T5(e)}function u8(e,a,l){if(a=a.updateQueue,a!==null&&(a=a.shared,(l&4194048)!==0)){var o=a.lanes;o&=e.pendingLanes,l|=o,a.lanes=l,Tn(e,l)}}function G7(e,a){var l=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,l===o)){var p=null,z=null;if(l=l.firstBaseUpdate,l!==null){do{var A={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};z===null?p=z=A:z=z.next=A,l=l.next}while(l!==null);z===null?p=z=a:z=z.next=a}else p=z=a;l={baseState:o.baseState,firstBaseUpdate:p,lastBaseUpdate:z,shared:o.shared,callbacks:o.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=a:e.next=a,l.lastBaseUpdate=a}var Y7=!1;function h8(){if(Y7){var e=t0;if(e!==null)throw e}}function d8(e,a,l,o){Y7=!1;var p=e.updateQueue;V3=!1;var z=p.firstBaseUpdate,A=p.lastBaseUpdate,F=p.shared.pending;if(F!==null){p.shared.pending=null;var U=F,e1=U.next;U.next=null,A===null?z=e1:A.next=e1,A=U;var o1=e.alternate;o1!==null&&(o1=o1.updateQueue,F=o1.lastBaseUpdate,F!==A&&(F===null?o1.firstBaseUpdate=e1:F.next=e1,o1.lastBaseUpdate=U))}if(z!==null){var f1=p.baseState;A=0,o1=e1=U=null,F=z;do{var c1=F.lane&-536870913,r1=c1!==F.lane;if(r1?(J1&c1)===c1:(o&c1)===c1){c1!==0&&c1===J6&&(Y7=!0),o1!==null&&(o1=o1.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});t:{var j1=e,q1=F;c1=a;var v2=l;switch(q1.tag){case 1:if(j1=q1.payload,typeof j1=="function"){f1=j1.call(v2,f1,c1);break t}f1=j1;break t;case 3:j1.flags=j1.flags&-65537|128;case 0:if(j1=q1.payload,c1=typeof j1=="function"?j1.call(v2,f1,c1):j1,c1==null)break t;f1=b({},f1,c1);break t;case 2:V3=!0}}c1=F.callback,c1!==null&&(e.flags|=64,r1&&(e.flags|=8192),r1=p.callbacks,r1===null?p.callbacks=[c1]:r1.push(c1))}else r1={lane:c1,tag:F.tag,payload:F.payload,callback:F.callback,next:null},o1===null?(e1=o1=r1,U=f1):o1=o1.next=r1,A|=c1;if(F=F.next,F===null){if(F=p.shared.pending,F===null)break;r1=F,F=r1.next,r1.next=null,p.lastBaseUpdate=r1,p.shared.pending=null}}while(!0);o1===null&&(U=f1),p.baseState=U,p.firstBaseUpdate=e1,p.lastBaseUpdate=o1,z===null&&(p.shared.lanes=0),E3|=A,e.lanes=A,e.memoizedState=f1}}function Gr(e,a){if(typeof e!="function")throw Error(i(191,e));e.call(a)}function Yr(e,a){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;ez?z:8;var A=T.T,F={};T.T=F,f9(e,!1,a,l);try{var U=p(),e1=T.S;if(e1!==null&&e1(F,U),U!==null&&typeof U=="object"&&typeof U.then=="function"){var o1=Em(U,o);v8(e,a,o1,v4(e))}else v8(e,a,o,v4(e))}catch(f1){v8(e,a,{then:function(){},status:"rejected",reason:f1},v4())}finally{$.p=z,A!==null&&F.types!==null&&(A.types=F.types),T.T=A}}function Um(){}function h9(e,a,l,o){if(e.tag!==5)throw Error(i(476));var p=Al(e).queue;Sl(e,p,a,K,l===null?Um:function(){return Hl(e),l(o)})}function Al(e){var a=e.memoizedState;if(a!==null)return a;a={memoizedState:K,baseState:K,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:l3,lastRenderedState:K},next:null};var l={};return a.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:l3,lastRenderedState:l},next:null},e.memoizedState=a,e=e.alternate,e!==null&&(e.memoizedState=a),a}function Hl(e){var a=Al(e);a.next===null&&(a=e.alternate.memoizedState),v8(e,a.next.queue,{},v4())}function d9(){return Y2(N8)}function Ll(){return j2().memoizedState}function Vl(){return j2().memoizedState}function Im(e){for(var a=e.return;a!==null;){switch(a.tag){case 24:case 3:var l=v4();e=B3(l);var o=j3(a,e,l);o!==null&&(i4(o,a,l),u8(o,a,l)),a={cache:O7()},e.payload=a;return}a=a.return}}function Pm(e,a,l){var o=v4();l={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ct(e)?jl(a,l):(l=B7(e,a,l,o),l!==null&&(i4(l,e,o),Nl(l,a,o)))}function Bl(e,a,l){var o=v4();v8(e,a,l,o)}function v8(e,a,l,o){var p={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(ct(e))jl(a,p);else{var z=e.alternate;if(e.lanes===0&&(z===null||z.lanes===0)&&(z=a.lastRenderedReducer,z!==null))try{var A=a.lastRenderedState,F=z(A,l);if(p.hasEagerState=!0,p.eagerState=F,o4(F,A))return E5(e,a,p,0),g2===null&&R5(),!1}catch{}finally{}if(l=B7(e,a,p,o),l!==null)return i4(l,e,o),Nl(l,a,o),!0}return!1}function f9(e,a,l,o){if(o={lane:2,revertLane:$9(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},ct(e)){if(a)throw Error(i(479))}else a=B7(e,l,o,2),a!==null&&i4(a,e,2)}function ct(e){var a=e.alternate;return e===Z1||a!==null&&a===Z1}function jl(e,a){n0=K5=!0;var l=e.pending;l===null?a.next=a:(a.next=l.next,l.next=a),e.pending=a}function Nl(e,a,l){if((l&4194048)!==0){var o=a.lanes;o&=e.pendingLanes,l|=o,a.lanes=l,Tn(e,l)}}var p8={readContext:Y2,use:W5,useCallback:H2,useContext:H2,useEffect:H2,useImperativeHandle:H2,useLayoutEffect:H2,useInsertionEffect:H2,useMemo:H2,useReducer:H2,useRef:H2,useState:H2,useDebugValue:H2,useDeferredValue:H2,useTransition:H2,useSyncExternalStore:H2,useId:H2,useHostTransitionStatus:H2,useFormState:H2,useActionState:H2,useOptimistic:H2,useMemoCache:H2,useCacheRefresh:H2};p8.useEffectEvent=H2;var kl={readContext:Y2,use:W5,useCallback:function(e,a){return t4().memoizedState=[e,a===void 0?null:a],e},useContext:Y2,useEffect:pl,useImperativeHandle:function(e,a,l){l=l!=null?l.concat([e]):null,tt(4194308,4,bl.bind(null,a,e),l)},useLayoutEffect:function(e,a){return tt(4194308,4,e,a)},useInsertionEffect:function(e,a){tt(4,2,e,a)},useMemo:function(e,a){var l=t4();a=a===void 0?null:a;var o=e();if(p6){k1(!0);try{e()}finally{k1(!1)}}return l.memoizedState=[o,a],o},useReducer:function(e,a,l){var o=t4();if(l!==void 0){var p=l(a);if(p6){k1(!0);try{l(a)}finally{k1(!1)}}}else p=a;return o.memoizedState=o.baseState=p,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:p},o.queue=e,e=e.dispatch=Pm.bind(null,Z1,e),[o.memoizedState,e]},useRef:function(e){var a=t4();return e={current:e},a.memoizedState=e},useState:function(e){e=l9(e);var a=e.queue,l=Bl.bind(null,Z1,a);return a.dispatch=l,[e.memoizedState,l]},useDebugValue:o9,useDeferredValue:function(e,a){var l=t4();return u9(l,e,a)},useTransition:function(){var e=l9(!1);return e=Sl.bind(null,Z1,e.queue,!0,!1),t4().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,a,l){var o=Z1,p=t4();if(e2){if(l===void 0)throw Error(i(407));l=l()}else{if(l=a(),g2===null)throw Error(i(349));(J1&127)!==0||tl(o,a,l)}p.memoizedState=l;var z={value:l,getSnapshot:a};return p.queue=z,pl(cl.bind(null,o,z,e),[e]),o.flags|=2048,l0(9,{destroy:void 0},el.bind(null,o,z,l,a),null),l},useId:function(){var e=t4(),a=g2.identifierPrefix;if(e2){var l=Z4,o=$4;l=(o&~(1<<32-L1(o)-1)).toString(32)+l,a="_"+a+"R_"+l,l=Q5++,0<\/script>",z=z.removeChild(z.firstChild);break;case"select":z=typeof o.is=="string"?A.createElement("select",{is:o.is}):A.createElement("select"),o.multiple?z.multiple=!0:o.size&&(z.size=o.size);break;default:z=typeof o.is=="string"?A.createElement(p,{is:o.is}):A.createElement(p)}}z[Z2]=a,z[e4]=o;t:for(A=a.child;A!==null;){if(A.tag===5||A.tag===6)z.appendChild(A.stateNode);else if(A.tag!==4&&A.tag!==27&&A.child!==null){A.child.return=A,A=A.child;continue}if(A===a)break t;for(;A.sibling===null;){if(A.return===null||A.return===a)break t;A=A.return}A.sibling.return=A.return,A=A.sibling}a.stateNode=z;t:switch(Q2(z,p,o),p){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break t;case"img":o=!0;break t;default:o=!1}o&&s3(a)}}return z2(a),H9(a,a.type,e===null?null:e.memoizedProps,a.pendingProps,l),null;case 6:if(e&&a.stateNode!=null)e.memoizedProps!==o&&s3(a);else{if(typeof o!="string"&&a.stateNode===null)throw Error(i(166));if(e=u1.current,X6(a)){if(e=a.stateNode,l=a.memoizedProps,o=null,p=G2,p!==null)switch(p.tag){case 27:case 5:o=p.memoizedProps}e[Z2]=a,e=!!(e.nodeValue===l||o!==null&&o.suppressHydrationWarning===!0||Wi(e.nodeValue,l)),e||H3(a,!0)}else e=Mt(e).createTextNode(o),e[Z2]=a,a.stateNode=e}return z2(a),null;case 31:if(l=a.memoizedState,e===null||e.memoizedState!==null){if(o=X6(a),l!==null){if(e===null){if(!o)throw Error(i(318));if(e=a.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(557));e[Z2]=a}else o6(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;z2(a),e=!1}else l=T7(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return a.flags&256?(d4(a),a):(d4(a),null);if((a.flags&128)!==0)throw Error(i(558))}return z2(a),null;case 13:if(o=a.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(p=X6(a),o!==null&&o.dehydrated!==null){if(e===null){if(!p)throw Error(i(318));if(p=a.memoizedState,p=p!==null?p.dehydrated:null,!p)throw Error(i(317));p[Z2]=a}else o6(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;z2(a),p=!1}else p=T7(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=p),p=!0;if(!p)return a.flags&256?(d4(a),a):(d4(a),null)}return d4(a),(a.flags&128)!==0?(a.lanes=l,a):(l=o!==null,e=e!==null&&e.memoizedState!==null,l&&(o=a.child,p=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(p=o.alternate.memoizedState.cachePool.pool),z=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(z=o.memoizedState.cachePool.pool),z!==p&&(o.flags|=2048)),l!==e&&l&&(a.child.flags|=8192),it(a,a.updateQueue),z2(a),null);case 4:return S1(),e===null&&K9(a.stateNode.containerInfo),z2(a),null;case 10:return n3(a.type),z2(a),null;case 19:if(D(B2),o=a.memoizedState,o===null)return z2(a),null;if(p=(a.flags&128)!==0,z=o.rendering,z===null)if(p)x8(o,!1);else{if(L2!==0||e!==null&&(e.flags&128)!==0)for(e=a.child;e!==null;){if(z=Y5(e),z!==null){for(a.flags|=128,x8(o,!1),e=z.updateQueue,a.updateQueue=e,it(a,e),a.subtreeFlags=0,e=l,l=a.child;l!==null;)Br(l,e),l=l.sibling;return G(B2,B2.current&1|2),e2&&c3(a,o.treeForkCount),a.child}e=e.sibling}o.tail!==null&&n1()>dt&&(a.flags|=128,p=!0,x8(o,!1),a.lanes=4194304)}else{if(!p)if(e=Y5(z),e!==null){if(a.flags|=128,p=!0,e=e.updateQueue,a.updateQueue=e,it(a,e),x8(o,!0),o.tail===null&&o.tailMode==="hidden"&&!z.alternate&&!e2)return z2(a),null}else 2*n1()-o.renderingStartTime>dt&&l!==536870912&&(a.flags|=128,p=!0,x8(o,!1),a.lanes=4194304);o.isBackwards?(z.sibling=a.child,a.child=z):(e=o.last,e!==null?e.sibling=z:a.child=z,o.last=z)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=n1(),e.sibling=null,l=B2.current,G(B2,p?l&1|2:l&1),e2&&c3(a,o.treeForkCount),e):(z2(a),null);case 22:case 23:return d4(a),Q7(),o=a.memoizedState!==null,e!==null?e.memoizedState!==null!==o&&(a.flags|=8192):o&&(a.flags|=8192),o?(l&536870912)!==0&&(a.flags&128)===0&&(z2(a),a.subtreeFlags&6&&(a.flags|=8192)):z2(a),l=a.updateQueue,l!==null&&it(a,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==l&&(a.flags|=2048),e!==null&&D(d6),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),a.memoizedState.cache!==l&&(a.flags|=2048),n3(k2),z2(a),null;case 25:return null;case 30:return null}throw Error(i(156,a.tag))}function Km(e,a){switch(R7(a),a.tag){case 1:return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 3:return n3(k2),S1(),e=a.flags,(e&65536)!==0&&(e&128)===0?(a.flags=e&-65537|128,a):null;case 26:case 27:case 5:return _1(a),null;case 31:if(a.memoizedState!==null){if(d4(a),a.alternate===null)throw Error(i(340));o6()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 13:if(d4(a),e=a.memoizedState,e!==null&&e.dehydrated!==null){if(a.alternate===null)throw Error(i(340));o6()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 19:return D(B2),null;case 4:return S1(),null;case 10:return n3(a.type),null;case 22:case 23:return d4(a),Q7(),e!==null&&D(d6),e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 24:return n3(k2),null;case 25:return null;default:return null}}function ai(e,a){switch(R7(a),a.tag){case 3:n3(k2),S1();break;case 26:case 27:case 5:_1(a);break;case 4:S1();break;case 31:a.memoizedState!==null&&d4(a);break;case 13:d4(a);break;case 19:D(B2);break;case 10:n3(a.type);break;case 22:case 23:d4(a),Q7(),e!==null&&D(d6);break;case 24:n3(k2)}}function z8(e,a){try{var l=a.updateQueue,o=l!==null?l.lastEffect:null;if(o!==null){var p=o.next;l=p;do{if((l.tag&e)===e){o=void 0;var z=l.create,A=l.inst;o=z(),A.destroy=o}l=l.next}while(l!==p)}}catch(F){d2(a,a.return,F)}}function F3(e,a,l){try{var o=a.updateQueue,p=o!==null?o.lastEffect:null;if(p!==null){var z=p.next;o=z;do{if((o.tag&e)===e){var A=o.inst,F=A.destroy;if(F!==void 0){A.destroy=void 0,p=a;var U=l,e1=F;try{e1()}catch(o1){d2(p,U,o1)}}}o=o.next}while(o!==z)}}catch(o1){d2(a,a.return,o1)}}function ni(e){var a=e.updateQueue;if(a!==null){var l=e.stateNode;try{Yr(a,l)}catch(o){d2(e,e.return,o)}}}function ri(e,a,l){l.props=g6(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(o){d2(e,a,o)}}function b8(e,a){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var o=e.stateNode;break;case 30:o=e.stateNode;break;default:o=e.stateNode}typeof l=="function"?e.refCleanup=l(o):l.current=o}}catch(p){d2(e,a,p)}}function G4(e,a){var l=e.ref,o=e.refCleanup;if(l!==null)if(typeof o=="function")try{o()}catch(p){d2(e,a,p)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(p){d2(e,a,p)}else l.current=null}function li(e){var a=e.type,l=e.memoizedProps,o=e.stateNode;try{t:switch(a){case"button":case"input":case"select":case"textarea":l.autoFocus&&o.focus();break t;case"img":l.src?o.src=l.src:l.srcSet&&(o.srcset=l.srcSet)}}catch(p){d2(e,e.return,p)}}function L9(e,a,l){try{var o=e.stateNode;gv(o,e.type,l,a),o[e4]=a}catch(p){d2(e,e.return,p)}}function ii(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&O3(e.type)||e.tag===4}function V9(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||ii(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&O3(e.type)||e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function B9(e,a,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,a?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(e,a):(a=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,a.appendChild(e),l=l._reactRootContainer,l!=null||a.onclick!==null||(a.onclick=J4));else if(o!==4&&(o===27&&O3(e.type)&&(l=e.stateNode,a=null),e=e.child,e!==null))for(B9(e,a,l),e=e.sibling;e!==null;)B9(e,a,l),e=e.sibling}function st(e,a,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,a?l.insertBefore(e,a):l.appendChild(e);else if(o!==4&&(o===27&&O3(e.type)&&(l=e.stateNode),e=e.child,e!==null))for(st(e,a,l),e=e.sibling;e!==null;)st(e,a,l),e=e.sibling}function si(e){var a=e.stateNode,l=e.memoizedProps;try{for(var o=e.type,p=a.attributes;p.length;)a.removeAttributeNode(p[0]);Q2(a,o,l),a[Z2]=e,a[e4]=l}catch(z){d2(e,e.return,z)}}var o3=!1,E2=!1,j9=!1,oi=typeof WeakSet=="function"?WeakSet:Set,P2=null;function Qm(e,a){if(e=e.containerInfo,W9=Vt,e=yr(e),C7(e)){if("selectionStart"in e)var l={start:e.selectionStart,end:e.selectionEnd};else t:{l=(l=e.ownerDocument)&&l.defaultView||window;var o=l.getSelection&&l.getSelection();if(o&&o.rangeCount!==0){l=o.anchorNode;var p=o.anchorOffset,z=o.focusNode;o=o.focusOffset;try{l.nodeType,z.nodeType}catch{l=null;break t}var A=0,F=-1,U=-1,e1=0,o1=0,f1=e,c1=null;e:for(;;){for(var r1;f1!==l||p!==0&&f1.nodeType!==3||(F=A+p),f1!==z||o!==0&&f1.nodeType!==3||(U=A+o),f1.nodeType===3&&(A+=f1.nodeValue.length),(r1=f1.firstChild)!==null;)c1=f1,f1=r1;for(;;){if(f1===e)break e;if(c1===l&&++e1===p&&(F=A),c1===z&&++o1===o&&(U=A),(r1=f1.nextSibling)!==null)break;f1=c1,c1=f1.parentNode}f1=r1}l=F===-1||U===-1?null:{start:F,end:U}}else l=null}l=l||{start:0,end:0}}else l=null;for(J9={focusedElem:e,selectionRange:l},Vt=!1,P2=a;P2!==null;)if(a=P2,e=a.child,(a.subtreeFlags&1028)!==0&&e!==null)e.return=a,P2=e;else for(;P2!==null;){switch(a=P2,z=a.alternate,e=a.flags,a.tag){case 0:if((e&4)!==0&&(e=a.updateQueue,e=e!==null?e.events:null,e!==null))for(l=0;l title"))),Q2(z,o,l),z[Z2]=e,I2(z),o=z;break t;case"link":var A=vs("link","href",p).get(o+(l.href||""));if(A){for(var F=0;Fv2&&(A=v2,v2=q1,q1=A);var Y=zr(F,q1),Z=zr(F,v2);if(Y&&Z&&(r1.rangeCount!==1||r1.anchorNode!==Y.node||r1.anchorOffset!==Y.offset||r1.focusNode!==Z.node||r1.focusOffset!==Z.offset)){var t1=f1.createRange();t1.setStart(Y.node,Y.offset),r1.removeAllRanges(),q1>v2?(r1.addRange(t1),r1.extend(Z.node,Z.offset)):(t1.setEnd(Z.node,Z.offset),r1.addRange(t1))}}}}for(f1=[],r1=F;r1=r1.parentNode;)r1.nodeType===1&&f1.push({element:r1,left:r1.scrollLeft,top:r1.scrollTop});for(typeof F.focus=="function"&&F.focus(),F=0;Fl?32:l,T.T=null,l=_9,_9=null;var z=_3,A=m3;if(D2=0,h0=_3=null,m3=0,(u2&6)!==0)throw Error(i(331));var F=u2;if(u2|=4,bi(z.current),gi(z,z.current,A,l),u2=F,A8(0,!1),V1&&typeof V1.onPostCommitFiberRoot=="function")try{V1.onPostCommitFiberRoot(p1,z)}catch{}return!0}finally{$.p=p,T.T=o,_i(e,a)}}function Di(e,a,l){a=b4(l,a),a=g9(e.stateNode,a,2),e=j3(e,a,2),e!==null&&(Z0(e,2),Y4(e))}function d2(e,a,l){if(e.tag===3)Di(e,e,l);else for(;a!==null;){if(a.tag===3){Di(a,e,l);break}else if(a.tag===1){var o=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(T3===null||!T3.has(o))){e=b4(l,e),l=Ol(2),o=j3(a,l,2),o!==null&&(Ul(l,o,a,e),Z0(o,2),Y4(o));break}}a=a.return}}function U9(e,a,l){var o=e.pingCache;if(o===null){o=e.pingCache=new Jm;var p=new Set;o.set(a,p)}else p=o.get(a),p===void 0&&(p=new Set,o.set(a,p));p.has(l)||(F9=!0,p.add(l),e=nv.bind(null,e,a,l),a.then(e,e))}function nv(e,a,l){var o=e.pingCache;o!==null&&o.delete(a),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,g2===e&&(J1&l)===l&&(L2===4||L2===3&&(J1&62914560)===J1&&300>n1()-ht?(u2&2)===0&&d0(e,0):R9|=l,u0===J1&&(u0=0)),Y4(e)}function Oi(e,a){a===0&&(a=Rn()),e=i6(e,a),e!==null&&(Z0(e,a),Y4(e))}function rv(e){var a=e.memoizedState,l=0;a!==null&&(l=a.retryLane),Oi(e,l)}function lv(e,a){var l=0;switch(e.tag){case 31:case 13:var o=e.stateNode,p=e.memoizedState;p!==null&&(l=p.retryLane);break;case 19:o=e.stateNode;break;case 22:o=e.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(a),Oi(e,l)}function iv(e,a){return H1(e,a)}var xt=null,m0=null,I9=!1,zt=!1,P9=!1,D3=0;function Y4(e){e!==m0&&e.next===null&&(m0===null?xt=m0=e:m0=m0.next=e),zt=!0,I9||(I9=!0,ov())}function A8(e,a){if(!P9&&zt){P9=!0;do for(var l=!1,o=xt;o!==null;){if(e!==0){var p=o.pendingLanes;if(p===0)var z=0;else{var A=o.suspendedLanes,F=o.pingedLanes;z=(1<<31-L1(42|e)+1)-1,z&=p&~(A&~F),z=z&201326741?z&201326741|1:z?z|2:0}z!==0&&(l=!0,$i(o,z))}else z=J1,z=A2(o,o===g2?z:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(z&3)===0||F4(o,z)||(l=!0,$i(o,z));o=o.next}while(l);P9=!1}}function sv(){Ui()}function Ui(){zt=I9=!1;var e=0;D3!==0&&zv()&&(e=D3);for(var a=n1(),l=null,o=xt;o!==null;){var p=o.next,z=Ii(o,a);z===0?(o.next=null,l===null?xt=p:l.next=p,p===null&&(m0=l)):(l=o,(e!==0||(z&3)!==0)&&(zt=!0)),o=p}D2!==0&&D2!==5||A8(e),D3!==0&&(D3=0)}function Ii(e,a){for(var l=e.suspendedLanes,o=e.pingedLanes,p=e.expirationTimes,z=e.pendingLanes&-62914561;0F)break;var o1=U.transferSize,f1=U.initiatorType;o1&&Ji(f1)&&(U=U.responseEnd,A+=o1*(U"u"?null:document;function hs(e,a,l){var o=v0;if(o&&typeof a=="string"&&a){var p=x4(a);p='link[rel="'+e+'"][href="'+p+'"]',typeof l=="string"&&(p+='[crossorigin="'+l+'"]'),us.has(p)||(us.add(p),e={rel:e,crossOrigin:l,href:a},o.querySelector(p)===null&&(a=o.createElement("link"),Q2(a,"link",e),I2(a),o.head.appendChild(a)))}}function Lv(e){v3.D(e),hs("dns-prefetch",e,null)}function Vv(e,a){v3.C(e,a),hs("preconnect",e,a)}function Bv(e,a,l){v3.L(e,a,l);var o=v0;if(o&&e&&a){var p='link[rel="preload"][as="'+x4(a)+'"]';a==="image"&&l&&l.imageSrcSet?(p+='[imagesrcset="'+x4(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(p+='[imagesizes="'+x4(l.imageSizes)+'"]')):p+='[href="'+x4(e)+'"]';var z=p;switch(a){case"style":z=p0(e);break;case"script":z=g0(e)}A4.has(z)||(e=b({rel:"preload",href:a==="image"&&l&&l.imageSrcSet?void 0:e,as:a},l),A4.set(z,e),o.querySelector(p)!==null||a==="style"&&o.querySelector(B8(z))||a==="script"&&o.querySelector(j8(z))||(a=o.createElement("link"),Q2(a,"link",e),I2(a),o.head.appendChild(a)))}}function jv(e,a){v3.m(e,a);var l=v0;if(l&&e){var o=a&&typeof a.as=="string"?a.as:"script",p='link[rel="modulepreload"][as="'+x4(o)+'"][href="'+x4(e)+'"]',z=p;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":z=g0(e)}if(!A4.has(z)&&(e=b({rel:"modulepreload",href:e},a),A4.set(z,e),l.querySelector(p)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(j8(z)))return}o=l.createElement("link"),Q2(o,"link",e),I2(o),l.head.appendChild(o)}}}function Nv(e,a,l){v3.S(e,a,l);var o=v0;if(o&&e){var p=_6(o).hoistableStyles,z=p0(e);a=a||"default";var A=p.get(z);if(!A){var F={loading:0,preload:null};if(A=o.querySelector(B8(z)))F.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":a},l),(l=A4.get(z))&&lc(e,l);var U=A=o.createElement("link");I2(U),Q2(U,"link",e),U._p=new Promise(function(e1,o1){U.onload=e1,U.onerror=o1}),U.addEventListener("load",function(){F.loading|=1}),U.addEventListener("error",function(){F.loading|=2}),F.loading|=4,Ct(A,a,o)}A={type:"stylesheet",instance:A,count:1,state:F},p.set(z,A)}}}function kv(e,a){v3.X(e,a);var l=v0;if(l&&e){var o=_6(l).hoistableScripts,p=g0(e),z=o.get(p);z||(z=l.querySelector(j8(p)),z||(e=b({src:e,async:!0},a),(a=A4.get(p))&&ic(e,a),z=l.createElement("script"),I2(z),Q2(z,"link",e),l.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},o.set(p,z))}}function Fv(e,a){v3.M(e,a);var l=v0;if(l&&e){var o=_6(l).hoistableScripts,p=g0(e),z=o.get(p);z||(z=l.querySelector(j8(p)),z||(e=b({src:e,async:!0,type:"module"},a),(a=A4.get(p))&&ic(e,a),z=l.createElement("script"),I2(z),Q2(z,"link",e),l.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},o.set(p,z))}}function ds(e,a,l,o){var p=(p=u1.current)?wt(p):null;if(!p)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(a=p0(l.href),l=_6(p).hoistableStyles,o=l.get(a),o||(o={type:"style",instance:null,count:0,state:null},l.set(a,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=p0(l.href);var z=_6(p).hoistableStyles,A=z.get(e);if(A||(p=p.ownerDocument||p,A={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},z.set(e,A),(z=p.querySelector(B8(e)))&&!z._p&&(A.instance=z,A.state.loading=5),A4.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},A4.set(e,l),z||Rv(p,e,l,A.state))),a&&o===null)throw Error(i(528,""));return A}if(a&&o!==null)throw Error(i(529,""));return null;case"script":return a=l.async,l=l.src,typeof l=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=g0(l),l=_6(p).hoistableScripts,o=l.get(a),o||(o={type:"script",instance:null,count:0,state:null},l.set(a,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function p0(e){return'href="'+x4(e)+'"'}function B8(e){return'link[rel="stylesheet"]['+e+"]"}function fs(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Rv(e,a,l,o){e.querySelector('link[rel="preload"][as="style"]['+a+"]")?o.loading=1:(a=e.createElement("link"),o.preload=a,a.addEventListener("load",function(){return o.loading|=1}),a.addEventListener("error",function(){return o.loading|=2}),Q2(a,"link",l),I2(a),e.head.appendChild(a))}function g0(e){return'[src="'+x4(e)+'"]'}function j8(e){return"script[async]"+e}function ms(e,a,l){if(a.count++,a.instance===null)switch(a.type){case"style":var o=e.querySelector('style[data-href~="'+x4(l.href)+'"]');if(o)return a.instance=o,I2(o),o;var p=b({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return o=(e.ownerDocument||e).createElement("style"),I2(o),Q2(o,"style",p),Ct(o,l.precedence,e),a.instance=o;case"stylesheet":p=p0(l.href);var z=e.querySelector(B8(p));if(z)return a.state.loading|=4,a.instance=z,I2(z),z;o=fs(l),(p=A4.get(p))&&lc(o,p),z=(e.ownerDocument||e).createElement("link"),I2(z);var A=z;return A._p=new Promise(function(F,U){A.onload=F,A.onerror=U}),Q2(z,"link",o),a.state.loading|=4,Ct(z,l.precedence,e),a.instance=z;case"script":return z=g0(l.src),(p=e.querySelector(j8(z)))?(a.instance=p,I2(p),p):(o=l,(p=A4.get(z))&&(o=b({},l),ic(o,p)),e=e.ownerDocument||e,p=e.createElement("script"),I2(p),Q2(p,"link",o),e.head.appendChild(p),a.instance=p);case"void":return null;default:throw Error(i(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(o=a.instance,a.state.loading|=4,Ct(o,l.precedence,e));return a.instance}function Ct(e,a,l){for(var o=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),p=o.length?o[o.length-1]:null,z=p,A=0;A title"):null)}function Ev(e,a,l){if(l===1||a.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;switch(a.rel){case"stylesheet":return e=a.disabled,typeof a.precedence=="string"&&e==null;default:return!0}case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function gs(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Tv(e,a,l,o){if(l.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var p=p0(o.href),z=a.querySelector(B8(p));if(z){a=z._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(e.count++,e=At.bind(e),a.then(e,e)),l.state.loading|=4,l.instance=z,I2(z);return}z=a.ownerDocument||a,o=fs(o),(p=A4.get(p))&&lc(o,p),z=z.createElement("link"),I2(z);var A=z;A._p=new Promise(function(F,U){A.onload=F,A.onerror=U}),Q2(z,"link",o),l.instance=z}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,a),(a=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=At.bind(e),a.addEventListener("load",l),a.addEventListener("error",l))}}var sc=0;function _v(e,a){return e.stylesheets&&e.count===0&&Lt(e,e.stylesheets),0sc?50:800)+a);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(o),clearTimeout(p)}}:null}function At(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Lt(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Ht=null;function Lt(e,a){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Ht=new Map,a.forEach(qv,e),Ht=null,At.call(e))}function qv(e,a){if(!(a.state.loading&4)){var l=Ht.get(e);if(l)var o=l.get(null);else{l=new Map,Ht.set(e,l);for(var p=e.querySelectorAll("link[data-precedence],style[data-precedence]"),z=0;z"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),gc.exports=ep(),gc.exports}var ap=cp();var Os="popstate";function np(t={}){function c(i,u){let{pathname:h,search:d,hash:m}=i.location;return ra("",{pathname:h,search:d,hash:m},u.state&&u.state.usr||null,u.state&&u.state.key||"default")}function n(i,u){return typeof u=="string"?u:n5(u)}return lp(c,n,null,t)}function C2(t,c){if(t===!1||t===null||typeof t>"u")throw new Error(c)}function U4(t,c){if(!t){typeof console<"u"&&console.warn(c);try{throw new Error(c)}catch{}}}function rp(){return Math.random().toString(36).substring(2,10)}function Us(t,c){return{usr:t.state,key:t.key,idx:c}}function ra(t,c,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof c=="string"?T0(c):c,state:n,key:c&&c.key||i||rp()}}function n5({pathname:t="/",search:c="",hash:n=""}){return c&&c!=="?"&&(t+=c.charAt(0)==="?"?c:"?"+c),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function T0(t){let c={};if(t){let n=t.indexOf("#");n>=0&&(c.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(c.search=t.substring(i),t=t.substring(0,i)),t&&(c.pathname=t)}return c}function lp(t,c,n,i={}){let{window:u=document.defaultView,v5Compat:h=!1}=i,d=u.history,m="POP",v=null,x=g();x==null&&(x=0,d.replaceState({...d.state,idx:x},""));function g(){return(d.state||{idx:null}).idx}function b(){m="POP";let w=g(),V=w==null?null:w-x;x=w,v&&v({action:m,location:L.location,delta:V})}function y(w,V){m="PUSH";let S=ra(L.location,w,V);x=g()+1;let C=Us(S,x),j=L.createHref(S);try{d.pushState(C,"",j)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;u.location.assign(j)}h&&v&&v({action:m,location:L.location,delta:1})}function M(w,V){m="REPLACE";let S=ra(L.location,w,V);x=g();let C=Us(S,x),j=L.createHref(S);d.replaceState(C,"",j),h&&v&&v({action:m,location:L.location,delta:0})}function H(w){return ip(w)}let L={get action(){return m},get location(){return t(u,d)},listen(w){if(v)throw new Error("A history only accepts one active listener");return u.addEventListener(Os,b),v=w,()=>{u.removeEventListener(Os,b),v=null}},createHref(w){return c(u,w)},createURL:H,encodeLocation(w){let V=H(w);return{pathname:V.pathname,search:V.search,hash:V.hash}},push:y,replace:M,go(w){return d.go(w)}};return L}function ip(t,c=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),C2(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:n5(t);return i=i.replace(/ $/,"%20"),!c&&i.startsWith("//")&&(i=n+i),new URL(i,n)}function Iu(t,c,n="/"){return sp(t,c,n,!1)}function sp(t,c,n,i){let u=typeof c=="string"?T0(c):c,h=y3(u.pathname||"/",n);if(h==null)return null;let d=Pu(t);op(d);let m=null;for(let v=0;m==null&&v{let g={relativePath:x===void 0?d.path||"":x,caseSensitive:d.caseSensitive===!0,childrenIndex:m,route:d};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(i)&&v)return;C2(g.relativePath.startsWith(i),`Absolute route path "${g.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),g.relativePath=g.relativePath.slice(i.length)}let b=z3([i,g.relativePath]),y=n.concat(g);d.children&&d.children.length>0&&(C2(d.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),Pu(d.children,c,y,b,v)),!(d.path==null&&!d.index)&&c.push({path:b,score:pp(b,d.index),routesMeta:y})};return t.forEach((d,m)=>{if(d.path===""||!d.path?.includes("?"))h(d,m);else for(let v of $u(d.path))h(d,m,!0,v)}),c}function $u(t){let c=t.split("/");if(c.length===0)return[];let[n,...i]=c,u=n.endsWith("?"),h=n.replace(/\?$/,"");if(i.length===0)return u?[h,""]:[h];let d=$u(i.join("/")),m=[];return m.push(...d.map(v=>v===""?h:[h,v].join("/"))),u&&m.push(...d),m.map(v=>t.startsWith("/")&&v===""?"/":v)}function op(t){t.sort((c,n)=>c.score!==n.score?n.score-c.score:gp(c.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var up=/^:[\w-]+$/,hp=3,dp=2,fp=1,mp=10,vp=-2,Is=t=>t==="*";function pp(t,c){let n=t.split("/"),i=n.length;return n.some(Is)&&(i+=vp),c&&(i+=dp),n.filter(u=>!Is(u)).reduce((u,h)=>u+(up.test(h)?hp:h===""?fp:mp),i)}function gp(t,c){return t.length===c.length&&t.slice(0,-1).every((i,u)=>i===c[u])?t[t.length-1]-c[c.length-1]:0}function xp(t,c,n=!1){let{routesMeta:i}=t,u={},h="/",d=[];for(let m=0;m{if(g==="*"){let H=m[y]||"";d=h.slice(0,h.length-H.length).replace(/(.)\/+$/,"$1")}const M=m[y];return b&&!M?x[g]=void 0:x[g]=(M||"").replace(/%2F/g,"/"),x},{}),pathname:h,pathnameBase:d,pattern:t}}function zp(t,c=!1,n=!0){U4(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],u="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,m,v)=>(i.push({paramName:m,isOptional:v!=null}),v?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),u+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?u+="\\/*$":t!==""&&t!=="/"&&(u+="(?:(?=\\/|$))"),[new RegExp(u,c?void 0:"i"),i]}function bp(t){try{return t.split("/").map(c=>decodeURIComponent(c).replace(/\//g,"%2F")).join("/")}catch(c){return U4(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${c}).`),t}}function y3(t,c){if(c==="/")return t;if(!t.toLowerCase().startsWith(c.toLowerCase()))return null;let n=c.endsWith("/")?c.length-1:c.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}var yp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Mp=t=>yp.test(t);function wp(t,c="/"){let{pathname:n,search:i="",hash:u=""}=typeof t=="string"?T0(t):t,h;if(n)if(Mp(n))h=n;else{if(n.includes("//")){let d=n;n=n.replace(/\/\/+/g,"/"),U4(!1,`Pathnames cannot have embedded double slashes - normalizing ${d} -> ${n}`)}n.startsWith("/")?h=Ps(n.substring(1),"/"):h=Ps(n,c)}else h=c;return{pathname:h,search:Ap(i),hash:Hp(u)}}function Ps(t,c){let n=c.replace(/\/+$/,"").split("/");return t.split("/").forEach(u=>{u===".."?n.length>1&&n.pop():u!=="."&&n.push(u)}),n.length>1?n.join("/"):"/"}function yc(t,c,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${c}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Cp(t){return t.filter((c,n)=>n===0||c.route.path&&c.route.path.length>0)}function Zu(t){let c=Cp(t);return c.map((n,i)=>i===c.length-1?n.pathname:n.pathnameBase)}function Gu(t,c,n,i=!1){let u;typeof t=="string"?u=T0(t):(u={...t},C2(!u.pathname||!u.pathname.includes("?"),yc("?","pathname","search",u)),C2(!u.pathname||!u.pathname.includes("#"),yc("#","pathname","hash",u)),C2(!u.search||!u.search.includes("#"),yc("#","search","hash",u)));let h=t===""||u.pathname==="",d=h?"/":u.pathname,m;if(d==null)m=n;else{let b=c.length-1;if(!i&&d.startsWith("..")){let y=d.split("/");for(;y[0]==="..";)y.shift(),b-=1;u.pathname=y.join("/")}m=b>=0?c[b]:"/"}let v=wp(u,m),x=d&&d!=="/"&&d.endsWith("/"),g=(h||d===".")&&n.endsWith("/");return!v.pathname.endsWith("/")&&(x||g)&&(v.pathname+="/"),v}var z3=t=>t.join("/").replace(/\/\/+/g,"/"),Sp=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Ap=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Hp=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Lp(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Yu=["POST","PUT","PATCH","DELETE"];new Set(Yu);var Vp=["GET",...Yu];new Set(Vp);var _0=f.createContext(null);_0.displayName="DataRouter";var Te=f.createContext(null);Te.displayName="DataRouterState";f.createContext(!1);var Ku=f.createContext({isTransitioning:!1});Ku.displayName="ViewTransition";var Bp=f.createContext(new Map);Bp.displayName="Fetchers";var jp=f.createContext(null);jp.displayName="Await";var X4=f.createContext(null);X4.displayName="Navigation";var p5=f.createContext(null);p5.displayName="Location";var M3=f.createContext({outlet:null,matches:[],isDataRoute:!1});M3.displayName="Route";var Ia=f.createContext(null);Ia.displayName="RouteError";function Np(t,{relative:c}={}){C2(g5(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:i}=f.useContext(X4),{hash:u,pathname:h,search:d}=x5(t,{relative:c}),m=h;return n!=="/"&&(m=h==="/"?n:z3([n,h])),i.createHref({pathname:m,search:d,hash:u})}function g5(){return f.useContext(p5)!=null}function t6(){return C2(g5(),"useLocation() may be used only in the context of a component."),f.useContext(p5).location}var Qu="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Xu(t){f.useContext(X4).static||f.useLayoutEffect(t)}function Pa(){let{isDataRoute:t}=f.useContext(M3);return t?$p():kp()}function kp(){C2(g5(),"useNavigate() may be used only in the context of a component.");let t=f.useContext(_0),{basename:c,navigator:n}=f.useContext(X4),{matches:i}=f.useContext(M3),{pathname:u}=t6(),h=JSON.stringify(Zu(i)),d=f.useRef(!1);return Xu(()=>{d.current=!0}),f.useCallback((v,x={})=>{if(U4(d.current,Qu),!d.current)return;if(typeof v=="number"){n.go(v);return}let g=Gu(v,JSON.parse(h),u,x.relative==="path");t==null&&c!=="/"&&(g.pathname=g.pathname==="/"?c:z3([c,g.pathname])),(x.replace?n.replace:n.push)(g,x.state,x)},[c,n,h,u,t])}f.createContext(null);function x5(t,{relative:c}={}){let{matches:n}=f.useContext(M3),{pathname:i}=t6(),u=JSON.stringify(Zu(n));return f.useMemo(()=>Gu(t,JSON.parse(u),i,c==="path"),[t,u,i,c])}function Fp(t,c){return Wu(t,c)}function Wu(t,c,n,i,u){C2(g5(),"useRoutes() may be used only in the context of a component.");let{navigator:h}=f.useContext(X4),{matches:d}=f.useContext(M3),m=d[d.length-1],v=m?m.params:{},x=m?m.pathname:"/",g=m?m.pathnameBase:"/",b=m&&m.route;{let S=b&&b.path||"";Ju(x,!b||S.endsWith("*")||S.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${x}" (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 y=J3(),M;if(c){let S=typeof c=="string"?E0(c):c;C2(g==="/"||S.pathname?.startsWith(g),`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 "${g}" but pathname "${S.pathname}" was given in the \`location\` prop.`),M=S}else M=y;let H=M.pathname||"/",L=H;if(g!=="/"){let S=g.replace(/^\//,"").split("/");L="/"+H.replace(/^\//,"").split("/").slice(S.length).join("/")}let w=Tu(t,{pathname:L});U4(b||w!=null,`No routes matched location "${M.pathname}${M.search}${M.hash}" `),U4(w==null||w[w.length-1].route.element!==void 0||w[w.length-1].route.Component!==void 0||w[w.length-1].route.lazy!==void 0,`Matched leaf route at location "${M.pathname}${M.search}${M.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 V=Fp(w&&w.map(S=>Object.assign({},S,{params:Object.assign({},v,S.params),pathname:z3([g,h.encodeLocation?h.encodeLocation(S.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?g:z3([g,h.encodeLocation?h.encodeLocation(S.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:S.pathnameBase])})),d,n,i,u);return c&&V?f.createElement(v5.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...M},navigationType:"POP"}},V):V}function Bp(){let t=qp(),c=wp(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",u={padding:"0.5rem",backgroundColor:i},h={padding:"2px 4px",backgroundColor:i},d=null;return console.error("Error handled by React Router default ErrorBoundary:",t),d=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:h},"ErrorBoundary")," or"," ",f.createElement("code",{style:h},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},c),n?f.createElement("pre",{style:u},n):null,d)}var jp=f.createElement(Bp,null),Np=class extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,c){return c.location!==t.location||c.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:c.error,location:c.location,revalidation:t.revalidation||c.revalidation}}componentDidCatch(t,c){this.props.onError?this.props.onError(t,c):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?f.createElement(M3.Provider,{value:this.props.routeContext},f.createElement(Ta.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function kp({routeContext:t,match:c,children:n}){let i=f.useContext(T0);return i&&i.static&&i.staticContext&&(c.route.errorElement||c.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=c.route.id),f.createElement(M3.Provider,{value:t},n)}function Fp(t,c=[],n=null,i=null,u=null){if(t==null){if(!n)return null;if(n.errors)t=n.matches;else if(c.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let h=t,d=n?.errors;if(d!=null){let g=h.findIndex(b=>b.route.id&&d?.[b.route.id]!==void 0);C2(g>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(d).join(",")}`),h=h.slice(0,Math.min(h.length,g+1))}let m=!1,v=-1;if(n)for(let g=0;g=0?h=h.slice(0,v+1):h=[h[0]];break}}}let x=n&&i?(g,b)=>{i(g,{location:n.location,params:n.matches?.[0]?.params??{},errorInfo:b})}:void 0;return h.reduceRight((g,b,y)=>{let M,H=!1,L=null,w=null;n&&(M=d&&b.route.id?d[b.route.id]:void 0,L=b.route.errorElement||jp,m&&(v<0&&y===0?(Gu("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),H=!0,w=null):v===y&&(H=!0,w=b.route.hydrateFallbackElement||null)));let V=c.concat(h.slice(0,y+1)),S=()=>{let C;return M?C=L:H?C=w:b.route.Component?C=f.createElement(b.route.Component,null):b.route.element?C=b.route.element:C=g,f.createElement(kp,{match:b,routeContext:{outlet:g,matches:V,isDataRoute:n!=null},children:C})};return n&&(b.route.ErrorBoundary||b.route.errorElement||y===0)?f.createElement(Np,{location:n.location,revalidation:n.revalidation,component:L,error:M,children:S(),routeContext:{outlet:null,matches:V,isDataRoute:!0},onError:x}):S()},null)}function qa(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Rp(t){let c=f.useContext(T0);return C2(c,qa(t)),c}function Ep(t){let c=f.useContext(Fe);return C2(c,qa(t)),c}function Tp(t){let c=f.useContext(M3);return C2(c,qa(t)),c}function Da(t){let c=Tp(t),n=c.matches[c.matches.length-1];return C2(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function _p(){return Da("useRouteId")}function qp(){let t=f.useContext(Ta),c=Ep("useRouteError"),n=Da("useRouteError");return t!==void 0?t:c.errors?.[n]}function Dp(){let{router:t}=Rp("useNavigate"),c=Da("useNavigate"),n=f.useRef(!1);return $u(()=>{n.current=!0}),f.useCallback(async(u,h={})=>{U4(n.current,Pu),n.current&&(typeof u=="number"?t.navigate(u):await t.navigate(u,{fromRouteId:c,...h}))},[t,c])}var qs={};function Gu(t,c,n){!c&&!qs[t]&&(qs[t]=!0,U4(!1,n))}f.memo(Op);function Op({routes:t,future:c,state:n,unstable_onError:i}){return Zu(t,void 0,n,i,c)}function Y3(t){C2(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Up({basename:t="/",children:c=null,location:n,navigationType:i="POP",navigator:u,static:h=!1}){C2(!p5(),"You cannot render a inside another . You should never have more than one in your app.");let d=t.replace(/^\/*/,"/"),m=f.useMemo(()=>({basename:d,navigator:u,static:h,future:{}}),[d,u,h]);typeof n=="string"&&(n=E0(n));let{pathname:v="/",search:x="",hash:g="",state:b=null,key:y="default"}=n,M=f.useMemo(()=>{let H=y3(v,d);return H==null?null:{location:{pathname:H,search:x,hash:g,state:b,key:y},navigationType:i}},[d,v,x,g,b,y,i]);return U4(M!=null,` is not able to match the URL "${v}${x}${g}" because it does not start with the basename, so the won't render anything.`),M==null?null:f.createElement(X4.Provider,{value:m},f.createElement(v5.Provider,{children:c,value:M}))}function Ip({children:t,location:c}){return Vp(ca(t),c)}function ca(t,c=[]){let n=[];return f.Children.forEach(t,(i,u)=>{if(!f.isValidElement(i))return;let h=[...c,u];if(i.type===f.Fragment){n.push.apply(n,ca(i.props.children,h));return}C2(i.type===Y3,`[${typeof i.type=="string"?i.type:i.type.name}] is not a component. All component children of must be a or `),C2(!i.props.index||!i.props.children,"An index route cannot have child routes.");let d={id:i.props.id||h.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,middleware:i.props.middleware,loader:i.props.loader,action:i.props.action,hydrateFallbackElement:i.props.hydrateFallbackElement,HydrateFallback:i.props.HydrateFallback,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.hasErrorBoundary===!0||i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(d.children=ca(i.props.children,h)),n.push(d)}),n}var ce="get",ae="application/x-www-form-urlencoded";function Re(t){return t!=null&&typeof t.tagName=="string"}function Pp(t){return Re(t)&&t.tagName.toLowerCase()==="button"}function $p(t){return Re(t)&&t.tagName.toLowerCase()==="form"}function Zp(t){return Re(t)&&t.tagName.toLowerCase()==="input"}function Gp(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Yp(t,c){return t.button===0&&(!c||c==="_self")&&!Gp(t)}var Ft=null;function Kp(){if(Ft===null)try{new FormData(document.createElement("form"),0),Ft=!1}catch{Ft=!0}return Ft}var Qp=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function xc(t){return t!=null&&!Qp.has(t)?(U4(!1,`"${t}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${ae}"`),null):t}function Xp(t,c){let n,i,u,h,d;if($p(t)){let m=t.getAttribute("action");i=m?y3(m,c):null,n=t.getAttribute("method")||ce,u=xc(t.getAttribute("enctype"))||ae,h=new FormData(t)}else if(Pp(t)||Zp(t)&&(t.type==="submit"||t.type==="image")){let m=t.form;if(m==null)throw new Error('Cannot submit a @@ -835,7 +847,10 @@ export function PtzControllerPage({ layout = 'desktop' }) { } return ( -
+
+ {/* The fullscreen CardFrame remains the structural shell. Painting its otherwise + transparent body is what lets every desktop and mobile PTZ composition share one + continuous pattern without threading theme props into each individual child panel. */} {isMobile ? ( layout === 'mobile-landscape' ? ( diff --git a/webui/src/components/RightPaneTabs/index.jsx b/webui/src/components/RightPaneTabs/index.jsx index 3e150a55..22a5b2d8 100644 --- a/webui/src/components/RightPaneTabs/index.jsx +++ b/webui/src/components/RightPaneTabs/index.jsx @@ -34,7 +34,7 @@ import OverseerPreferencePanel from '../OverseerPreferencePanel/index.jsx'; import CardFrame from '../CardFrame/index.jsx'; import { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react'; import { useManualDockAssist } from '../../features/manualDockAssist/useManualDockAssist.js'; -import { themeGapClass, themeStackClass } from '../../themeFlags.js'; +import { themeGapClass, themeStackClass } from '../../themes/index.js'; import { trackAnalyticsEvent } from '../../analytics/index.js'; const CHAT_DOCK_INITIAL_HEIGHT = 224; diff --git a/webui/src/components/SettingsPanel/index.jsx b/webui/src/components/SettingsPanel/index.jsx index e2adbfe5..16c790e1 100644 --- a/webui/src/components/SettingsPanel/index.jsx +++ b/webui/src/components/SettingsPanel/index.jsx @@ -1,7 +1,7 @@ // Settings Panel // Purpose: Defines the Settings Panel module and the local helpers/components used in this file. // Scope: Keeps behavior unchanged while isolating this concern into a clear, single-responsibility unit. -import { useMemo } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { useControlActions, useControlSelector } from '../../controls/index.js'; import AuthPanel from '../AuthPanel/index.jsx'; import AdminPanel from '../AdminPanel/index.jsx'; @@ -19,6 +19,13 @@ import { useSocket } from '../../context/SocketContext.jsx'; import { AUDIO_SETTINGS_DEFAULTS, VIDEO_SETTINGS_DEFAULTS } from '../../settings/namespaces.js'; import { formatKeyLabel } from '../../controls/keymapUtils.js'; import { trackAnalyticsEvent, trackAnalyticsEventThrottled } from '../../analytics/index.js'; +import { + DEFAULT_PAGE_THEME_KEY, + PAGE_THEME_OPTIONS, + getPageTheme, + getPageThemeClass, + normalizePageThemeKey, +} from '../../themes/index.js'; const manualTabs = [ { key: 'start', label: 'Start OI' }, @@ -66,6 +73,24 @@ function SettingHelp({ children }) { return

{children}

; } +function ThemePreviewCard({ title, className = '' }) { + // Use the production CardFrame rather than a lookalike rectangle. This makes the demonstration + // honest about borders, opaque card surfaces, and the exact amount of theme visible in a gap. + return ( + + {/* Neutral placeholder lines suggest real panel content without making the preview look like + an interactive control surface or tying it to any one driver/PTZ layout. */} +
+
+ + ); +} + function RangeSetting({ label, value, disabled = false, onChange }) { // Range settings need enough horizontal room for accurate pointer input, so the slider spans // the row while the percentage value stays beside the label for quick feedback. @@ -116,6 +141,7 @@ export default function SettingsPanel() { swapMobileControlColumns: false, driveMacroBackoffEnabled: true, interInstanceTransferSettings: true, + backgroundTheme: DEFAULT_PAGE_THEME_KEY, }); const { value: audioSettings, save: saveAudioSettings } = useSettingsNamespace('audio', AUDIO_SETTINGS_DEFAULTS); const { value: videoSettings, save: saveVideoSettings } = useSettingsNamespace('video', VIDEO_SETTINGS_DEFAULTS); @@ -126,6 +152,11 @@ export default function SettingsPanel() { ? pageSettings.driveMacroBackoffEnabled : true; const interInstanceTransferSettings = pageSettings?.interInstanceTransferSettings !== false; + const savedPageThemeKey = normalizePageThemeKey(pageSettings?.backgroundTheme); + const [previewPageThemeKey, setPreviewPageThemeKey] = useState(savedPageThemeKey); + const previewPageTheme = getPageTheme(previewPageThemeKey); + const savedPageTheme = getPageTheme(savedPageThemeKey); + const hasUnsavedPageTheme = previewPageThemeKey !== savedPageThemeKey; const masterVolume = Number.isFinite(audioSettings?.masterVolume) ? audioSettings.masterVolume : AUDIO_SETTINGS_DEFAULTS.masterVolume; const alertVolume = Number.isFinite(audioSettings?.alertVolume) ? audioSettings.alertVolume : AUDIO_SETTINGS_DEFAULTS.alertVolume; const roverVolume = Number.isFinite(audioSettings?.roverVolume) ? audioSettings.roverVolume : AUDIO_SETTINGS_DEFAULTS.roverVolume; @@ -141,6 +172,13 @@ export default function SettingsPanel() { const videoColorFilter = normalizeVideoFilter(videoSettings?.colorFilter); const videoFilterCycleKeyLabel = formatKeyLabel(keymap?.videoFilterCycle?.[0]); + useEffect(() => { + // Settings load after the provider mounts and can also be replaced by an incoming inter-instance + // transfer. Resynchronize only when the persisted key changes; browsing the local preview does + // not touch pageSettings, so Previous/Next choices are not accidentally reset. + setPreviewPageThemeKey(savedPageThemeKey); + }, [savedPageThemeKey]); + const sensorButtons = useMemo( () => [ { key: 'start', label: 'Enable stream', enable: true }, @@ -202,6 +240,32 @@ export default function SettingsPanel() { trackAnalyticsEvent('settings_change', { setting: 'interInstanceTransferSettings', value: checked }); }; + const movePageThemePreview = (direction) => { + const currentIndex = PAGE_THEME_OPTIONS.findIndex((theme) => theme.key === previewPageThemeKey); + const safeIndex = currentIndex >= 0 ? currentIndex : 0; + // Theme browsing wraps in both directions so the Back and Next buttons remain useful at the + // ends of the catalog instead of forcing the user to reverse through every previous option. + const nextIndex = (safeIndex + direction + PAGE_THEME_OPTIONS.length) % PAGE_THEME_OPTIONS.length; + setPreviewPageThemeKey(PAGE_THEME_OPTIONS[nextIndex].key); + }; + + const handlePageThemeSelect = (event) => { + setPreviewPageThemeKey(normalizePageThemeKey(event.target.value)); + }; + + const handlePageThemeSave = () => { + // Browsing is intentionally local. Persist only this explicit choice so opening Page settings + // and experimenting with patterns cannot unexpectedly alter the driver or PTZ page background. + savePageSettings((current) => ({ + ...(current ?? {}), + backgroundTheme: previewPageThemeKey, + })); + trackAnalyticsEvent('settings_change', { + setting: 'backgroundTheme', + value: previewPageThemeKey, + }); + }; + const handleVideoFilterChange = (event) => { const nextFilter = normalizeVideoFilter(event.target.value); @@ -238,6 +302,73 @@ export default function SettingsPanel() { stretched column. Audio spans both columns because volume sliders need extra width for comfortable pointer control. */}
+ + {/* Back/Next provide fast visual browsing, while the dropdown remains the direct + route to a known theme in a growing catalog. Neither control saves implicitly. */} +
+ + + +
+ + {/* This miniature layout contains both a full-height vertical seam and horizontal + seams between stacked cards. It exercises the exact gap directions the artwork + must serve on the driver and PTZ pages. */} +
+ + + + +
+ +
+

+ Previewing {previewPageTheme.label} + {hasUnsavedPageTheme ? ( + ; saved theme is {savedPageTheme.label}. + ) : ( + ; this is your saved theme. + )} +

+ +
+
state.session?.role || null); const connected = useSessionSelector((state) => state.connected); + const { value: pageSettings } = useSettingsNamespace('page', { + backgroundTheme: DEFAULT_PAGE_THEME_KEY, + }); + // Database cards use the same narrow seams as the driver page, so honoring the shared browser + // preference here keeps the existing route-level background behavior while making it dynamic. + const pageBackgroundClass = getPageThemeClass(pageSettings?.backgroundTheme); const isLockdownAdmin = isLockdownAdminRole(role); const isLoggedInAdmin = role === 'admin' || isLockdownAdmin; diff --git a/webui/src/index.css b/webui/src/index.css index 6f846d31..5ff916e0 100644 --- a/webui/src/index.css +++ b/webui/src/index.css @@ -92,26 +92,6 @@ body { } } - .pride-page-bg { - background-color: #050505; - background-image: - linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0)), - repeating-linear-gradient( - 45deg, - #5bcefa 0 1.818%, - #f5a9b8 1.818% 3.636%, - #ffffff 3.636% 5.455%, - #f5a9b8 5.455% 7.273%, - #5bcefa 7.273% 9.091%, - #e40303 9.091% 10.909%, - #ff8c00 10.909% 12.727%, - #ffed00 12.727% 14.545%, - #00a651 14.545% 16.364%, - #0066ff 16.364% 18.182%, - #9b2fae 18.182% 20% - ); - background-attachment: fixed; - } .panel { @apply bg-black text-white p-0 rounded-md; diff --git a/webui/src/main.jsx b/webui/src/main.jsx index d35be499..14d81075 100644 --- a/webui/src/main.jsx +++ b/webui/src/main.jsx @@ -4,6 +4,9 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import { BrowserRouter, Route, Routes } from 'react-router-dom' import './index.css' +// Theme artwork is a separate style concern from global component utilities. Loading its dedicated +// entrypoint here keeps every route consistent without returning theme definitions to index.css. +import './themes/styles/index.css' import App from './App.jsx' import { SocketProvider } from './context/SocketContext.jsx' import { SessionProvider } from './context/SessionContext.jsx' diff --git a/webui/src/themeFlags.js b/webui/src/themeFlags.js deleted file mode 100644 index 983c41de..00000000 --- a/webui/src/themeFlags.js +++ /dev/null @@ -1,9 +0,0 @@ -export const PRIDE_THEME_ENABLED = true; - -export const pageBackgroundClass = PRIDE_THEME_ENABLED ? 'pride-page-bg' : 'bg-black'; -// export const themeGapClass = PRIDE_THEME_ENABLED ? 'gap-1' : 'gap-0.5'; -// export const themeStackClass = PRIDE_THEME_ENABLED ? 'space-y-1' : 'space-y-0.5'; - -// permanent smaller gaps i think is better probably -export const themeGapClass = 'gap-0.5'; -export const themeStackClass = 'space-y-0.5'; diff --git a/webui/src/themes/catalog.js b/webui/src/themes/catalog.js new file mode 100644 index 00000000..ac7bfecc --- /dev/null +++ b/webui/src/themes/catalog.js @@ -0,0 +1,55 @@ +// Page Theme Catalog +// Purpose: Defines persisted theme identities and their presentation order. +// Scope: Shared by the settings picker and every route that resolves a saved page theme. + +export const DEFAULT_PAGE_THEME_KEY = 'progress-pride'; + +export const PAGE_THEME_OPTIONS = [ + // Stable keys are stored in the browser settings cookie. Keeping presentation labels separate + // lets the UI wording improve later without invalidating anybody's saved preference. + { key: 'progress-pride', label: 'Progress pride', className: 'page-theme-progress-pride' }, + // Keep the high-contrast caution-stripe option near the default so it is reachable with one + // Next click as well as directly through the dropdown. + { key: 'hazard-stripes', label: 'Hazard stripes', className: 'page-theme-hazard-stripes' }, + { key: 'pride-mix', label: 'Pride mix', className: 'page-theme-pride-mix' }, + { key: 'rainbow', label: 'Rainbow', className: 'page-theme-rainbow' }, + { key: 'transgender', label: 'Transgender', className: 'page-theme-transgender' }, + { key: 'bisexual', label: 'Bisexual', className: 'page-theme-bisexual' }, + { key: 'lesbian', label: 'Lesbian', className: 'page-theme-lesbian' }, + { key: 'nonbinary', label: 'Nonbinary', className: 'page-theme-nonbinary' }, + { key: 'pansexual', label: 'Pansexual', className: 'page-theme-pansexual' }, + { key: 'asexual', label: 'Asexual', className: 'page-theme-asexual' }, + { key: 'aurora', label: 'Aurora', className: 'page-theme-aurora' }, + { key: 'synthwave-grid', label: 'Synthwave grid', className: 'page-theme-synthwave-grid' }, + { key: 'neon-checker', label: 'Neon checker', className: 'page-theme-neon-checker' }, + { key: 'ocean-current', label: 'Ocean current', className: 'page-theme-ocean-current' }, + { key: 'ember-lattice', label: 'Ember lattice', className: 'page-theme-ember-lattice' }, + { key: 'starfield', label: 'Starfield', className: 'page-theme-starfield' }, + { key: 'vaporwave-sunset', label: 'Vaporwave sunset', className: 'page-theme-vaporwave-sunset' }, + { key: 'electric-circuit', label: 'Electric circuit', className: 'page-theme-electric-circuit' }, + { key: 'lava-flow', label: 'Lava flow', className: 'page-theme-lava-flow' }, + { key: 'deep-space-nebula', label: 'Deep-space nebula', className: 'page-theme-deep-space-nebula' }, + { key: 'holographic-waves', label: 'Holographic waves', className: 'page-theme-holographic-waves' }, + { key: 'mint-mosaic', label: 'Mint mosaic', className: 'page-theme-mint-mosaic' }, + { key: 'candy-swirl', label: 'Candy swirl', className: 'page-theme-candy-swirl' }, + { key: 'black', label: 'Black', className: 'page-theme-black' }, +]; + +export function normalizePageThemeKey(value) { + // Cookie contents can outlive catalog changes or be edited by hand. Always resolve them to a + // known entry so the page, preview, and dropdown cannot disagree about the active selection. + return PAGE_THEME_OPTIONS.some((theme) => theme.key === value) + ? value + : DEFAULT_PAGE_THEME_KEY; +} + +export function getPageTheme(value) { + const normalizedKey = normalizePageThemeKey(value); + return PAGE_THEME_OPTIONS.find((theme) => theme.key === normalizedKey) || PAGE_THEME_OPTIONS[0]; +} + +export function getPageThemeClass(value) { + // The shared base class owns page-level behavior such as fixed positioning. The modifier only + // supplies artwork, which also lets the settings demonstration reuse the exact same theme. + return `page-theme ${getPageTheme(value).className}`; +} diff --git a/webui/src/themes/index.js b/webui/src/themes/index.js new file mode 100644 index 00000000..af16e124 --- /dev/null +++ b/webui/src/themes/index.js @@ -0,0 +1,12 @@ +// Theme Public API +// Purpose: Gives UI consumers one stable import path for catalog resolution and layout constants. +// Scope: Re-exports theme behavior while CSS remains independently loaded by the app entrypoint. + +export { + DEFAULT_PAGE_THEME_KEY, + PAGE_THEME_OPTIONS, + getPageTheme, + getPageThemeClass, + normalizePageThemeKey, +} from './catalog.js'; +export { themeGapClass, themeStackClass } from './layout.js'; diff --git a/webui/src/themes/layout.js b/webui/src/themes/layout.js new file mode 100644 index 00000000..450966d5 --- /dev/null +++ b/webui/src/themes/layout.js @@ -0,0 +1,6 @@ +// Theme-Aware Layout Constants +// Purpose: Keeps the narrow gap geometry used to reveal page themes consistent across layouts. +// Scope: Layout-only values; selecting a theme never changes panel dimensions or input placement. + +export const themeGapClass = 'gap-0.5'; +export const themeStackClass = 'space-y-0.5'; diff --git a/webui/src/themes/styles/base.css b/webui/src/themes/styles/base.css new file mode 100644 index 00000000..6da2dae7 --- /dev/null +++ b/webui/src/themes/styles/base.css @@ -0,0 +1,26 @@ +/* Page Theme Surfaces + * Purpose: Defines behavior shared by every page theme and by the settings demonstration. + * Scope: Canvas positioning and the explicit no-artwork fallback; individual artwork lives elsewhere. + */ + +/* These selectors intentionally remain ordinary CSS. This stylesheet is processed separately from + * index.css, so placing them in a Tailwind layer would require duplicating Tailwind's directives. */ + .page-theme { + /* A fixed canvas makes separated card gaps look like windows onto one continuous design. + Individual theme classes below supply only their artwork and fallback color. */ + background-color: #050505; + background-attachment: fixed; + } + + .page-theme-preview { + /* Preview artwork belongs to the demonstration box, not the browser viewport. Overriding the + page behavior here keeps the swatch representative while it moves inside a scroll panel. */ + background-attachment: scroll; + background-position: center; + } + + .page-theme-black { + /* An explicit quiet option belongs in the catalog rather than being a special-case toggle. */ + background-color: #000000; + background-image: none; + } diff --git a/webui/src/themes/styles/index.css b/webui/src/themes/styles/index.css new file mode 100644 index 00000000..47a2925d --- /dev/null +++ b/webui/src/themes/styles/index.css @@ -0,0 +1,8 @@ +/* Page Theme Stylesheet Entry + * Purpose: Loads theme surfaces and artwork as one explicit bundle from main.jsx. + * Scope: Import order keeps shared behavior first, followed by the two artwork families. + */ + +@import './base.css'; +@import './pride.css'; +@import './patterns.css'; diff --git a/webui/src/themes/styles/patterns.css b/webui/src/themes/styles/patterns.css new file mode 100644 index 00000000..a38b1629 --- /dev/null +++ b/webui/src/themes/styles/patterns.css @@ -0,0 +1,207 @@ +/* Pattern Page Themes + * Purpose: Contains decorative non-pride artwork optimized for narrow horizontal and vertical gaps. + * Scope: Static gradients and repeating patterns only; theme identity and ordering live in catalog.js. + */ + +/* Ordinary CSS keeps the artwork independent of Tailwind's global component layer. main.jsx loads + * this theme bundle after index.css, giving the theme modifiers their original cascade position. */ + .page-theme-aurora { + /* Overlapping oversized glows create slow color movement across the page without animation, + avoiding distracting motion and continuous painting behind live video. */ + background-color: #03120f; + background-image: + radial-gradient(circle at 18% 24%, rgba(45, 212, 191, 0.95), transparent 34%), + radial-gradient(circle at 76% 18%, rgba(168, 85, 247, 0.9), transparent 38%), + radial-gradient(circle at 56% 82%, rgba(34, 197, 94, 0.88), transparent 42%), + linear-gradient(125deg, #020617, #0f172a 45%, #082f49); + background-size: 34rem 28rem, 38rem 32rem, 42rem 36rem, auto; + } + + .page-theme-synthwave-grid { + /* Two repeating line layers form a broad grid; the magenta horizon glow prevents horizontal + gaps from reading as a single flat color when they cross between grid lines. Two-pixel grid + strokes remain crisp without bringing back the previous tiny graph-paper appearance. */ + background-color: #090018; + background-image: + linear-gradient(rgba(34, 211, 238, 0.7) 2px, transparent 2px), + linear-gradient(90deg, rgba(236, 72, 153, 0.72) 2px, transparent 2px), + radial-gradient(ellipse at 50% 100%, #7e22ce 0, #1e1b4b 38%, #090018 72%); + background-size: 54px 54px, 54px 54px, auto; + } + + .page-theme-neon-checker { + /* A conic gradient makes a crisp checker with no image asset and keeps intersections equally + interesting when exposed through horizontal or vertical card seams. The large tile size + turns each color into a strong block instead of a rapidly alternating micro-pattern. */ + background-color: #111827; + background-image: conic-gradient( + from 45deg, + #06b6d4 0 25%, + #7c3aed 0 50%, + #ec4899 0 75%, + #111827 0 + ); + background-size: 84px 84px; + } + + .page-theme-ocean-current { + /* Crossing translucent diagonals suggest moving water while remaining completely static. The + broad transparent intervals create long currents instead of tightly packed hatch marks. */ + background-color: #082f49; + background-image: + repeating-linear-gradient(35deg, rgba(103, 232, 249, 0.72) 0 12px, transparent 12px 54px), + repeating-linear-gradient(-35deg, rgba(14, 116, 144, 0.72) 0 21px, transparent 21px 72px), + linear-gradient(90deg, #0c4a6e, #0891b2, #164e63); + } + + .page-theme-ember-lattice { + /* Opposing narrow diagonals create bright crossings, with a dark red base keeping the theme + readable instead of overpowering the neutral cards around it. The enlarged repeat creates + occasional strong crossings rather than a dense mesh along every seam. */ + background-color: #1c0704; + background-image: + repeating-linear-gradient(45deg, transparent 0 36px, rgba(251, 146, 60, 0.9) 36px 45px), + repeating-linear-gradient(-45deg, transparent 0 48px, rgba(239, 68, 68, 0.78) 48px 57px), + radial-gradient(circle at center, #7c2d12, #1c0704 70%); + } + + .page-theme-starfield { + /* Offset radial layers provide stars at three scales. All layers repeat, so long PTZ and + driver pages never reveal an unpainted region while scrolling. Larger spacing and dots make + this read as a sparse starfield rather than fine visual noise inside the narrow gaps. */ + background-color: #020617; + background-image: + radial-gradient(circle, rgba(255, 255, 255, 0.95) 0 2px, transparent 3px), + radial-gradient(circle, rgba(125, 211, 252, 0.9) 0 3px, transparent 4px), + radial-gradient(circle, rgba(216, 180, 254, 0.8) 0 2px, transparent 3px), + linear-gradient(135deg, #020617, #172554 55%, #3b0764); + background-position: 0 0, 57px 81px, 123px 33px, 0 0; + background-size: 111px 111px, 183px 183px, 237px 237px, auto; + } + + .page-theme-vaporwave-sunset { + /* A large horizon glow supplies the sunset while widely spaced scan lines add retro structure. + Both layers span enough distance to remain recognizable through narrow card seams instead of + collapsing into the fine television-static texture common to smaller vaporwave patterns. */ + background-color: #2e1065; + background-image: + repeating-linear-gradient( + 0deg, + transparent 0 24px, + rgba(103, 232, 249, 0.48) 24px 27px, + transparent 27px 54px + ), + radial-gradient(circle at 50% 78%, #fda4af 0 14%, #f97316 14% 25%, transparent 25.5%), + linear-gradient(180deg, #172554 0%, #6b21a8 48%, #db2777 72%, #f97316 100%); + background-size: auto, 48rem 34rem, auto; + } + + .page-theme-electric-circuit { + /* Offset horizontal and vertical traces form large circuit-like routes. Separate repeat sizes + keep their intersections irregular, while the dark navy base prevents the cyan and violet + traces from overpowering the cards that the pattern is meant to separate. */ + background-color: #020617; + background-image: + repeating-linear-gradient( + 90deg, + transparent 0 48px, + rgba(34, 211, 238, 0.9) 48px 52px, + transparent 52px 96px + ), + repeating-linear-gradient( + 0deg, + transparent 0 68px, + rgba(168, 85, 247, 0.86) 68px 72px, + transparent 72px 124px + ), + radial-gradient(circle at center, #312e81 0, #0f172a 45%, #020617 78%); + } + + .page-theme-lava-flow { + /* Oversized overlapping pools create broad molten channels without animation. Their offset + positions ensure horizontal and vertical seams cross different hot and cooled regions as + they travel around the page. */ + background-color: #180503; + background-image: + radial-gradient(ellipse at 18% 28%, #facc15 0 8%, #f97316 9% 18%, #991b1b 24%, transparent 39%), + radial-gradient(ellipse at 76% 64%, #fb923c 0 10%, #dc2626 18%, #7f1d1d 29%, transparent 44%), + radial-gradient(ellipse at 48% 92%, #fde047 0 7%, #ea580c 17%, transparent 36%), + linear-gradient(135deg, #180503, #450a0a 50%, #1c0704); + background-size: 42rem 34rem, 48rem 39rem, 37rem 31rem, auto; + } + + .page-theme-deep-space-nebula { + /* Large soft clouds distinguish this from the sparse Starfield theme. A few broad nebulae are + more useful in thin gaps than many tiny stars, and the static layers avoid continuous paint + work behind the live rover and PTZ video surfaces. */ + background-color: #020617; + background-image: + radial-gradient(ellipse at 22% 38%, rgba(217, 70, 239, 0.92), transparent 34%), + radial-gradient(ellipse at 72% 24%, rgba(59, 130, 246, 0.9), transparent 38%), + radial-gradient(ellipse at 58% 82%, rgba(14, 165, 233, 0.72), transparent 36%), + radial-gradient(circle, rgba(255, 255, 255, 0.9) 0 2px, transparent 3px), + linear-gradient(125deg, #020617, #1e1b4b 52%, #3b0764); + background-position: center, center, center, 17px 31px, center; + background-size: 42rem 34rem, 48rem 38rem, 39rem 35rem, 173px 173px, auto; + } + + .page-theme-holographic-waves { + /* Broad translucent diagonals cross over an iridescent base. Using two directions means both + horizontal and vertical gaps encounter gradual color shifts without resorting to small, + noisy rainbow repetitions. */ + background-color: #164e63; + background-image: + repeating-linear-gradient( + 32deg, + rgba(255, 255, 255, 0.4) 0 14px, + transparent 14px 82px + ), + repeating-linear-gradient( + -38deg, + rgba(216, 180, 254, 0.38) 0 18px, + transparent 18px 104px + ), + linear-gradient(110deg, #67e8f9, #c4b5fd 32%, #f9a8d4 60%, #86efac 100%); + } + + .page-theme-hazard-stripes { + /* This intentionally uses a simple, very wide two-color repeat. The large bands make the + industrial warning motif immediately readable even though only a two-pixel slice is visible + between neighboring cards. Its bands use the same shared width as every pride stripe theme. */ + background-color: #111111; + background-image: repeating-linear-gradient( + 45deg, + #facc15 0 48px, + #171717 48px 96px + ); + } + + .page-theme-mint-mosaic { + /* A large conic tile creates chunky geometric blocks in cool mint, teal, navy, and cream. The + restrained palette offers a calmer alternative to Neon checker while retaining clear color + changes along both seam directions. */ + background-color: #064e3b; + background-image: conic-gradient( + from 45deg, + #a7f3d0 0 25%, + #0f766e 0 50%, + #fef3c7 0 75%, + #164e63 0 + ); + background-size: 96px 96px; + } + + .page-theme-candy-swirl { + /* Large repeating rings provide curved movement that the otherwise line-oriented catalog does + not have. Wide color stops keep the pastel rings bold and prevent them from turning into a + dense target pattern in the preview or real page gaps. */ + background-color: #fdf2f8; + background-image: repeating-radial-gradient( + circle at 28% 34%, + #f9a8d4 0 28px, + #fef3c7 28px 56px, + #93c5fd 56px 84px, + #c4b5fd 84px 112px, + #f9a8d4 112px 140px + ); + } diff --git a/webui/src/themes/styles/pride.css b/webui/src/themes/styles/pride.css new file mode 100644 index 00000000..ff22d00e --- /dev/null +++ b/webui/src/themes/styles/pride.css @@ -0,0 +1,124 @@ +/* Pride Page Themes + * Purpose: Contains the broad, equal-width flag-inspired stripe artwork. + * Scope: Pride color sequences only; shared canvas behavior lives in base.css. + */ + +/* Ordinary CSS keeps the artwork independent of Tailwind's global component layer. main.jsx loads + * this theme bundle after index.css, giving the theme modifiers their original cascade position. */ + .page-theme-pride-mix { + /* Every solid stripe theme uses the same forty-eight-pixel band width. Keeping that measurement + shared makes browsing predictable: only the colors and sequence change, never the visual + density of the card-gap artwork. */ + background-image: repeating-linear-gradient( + 45deg, + #5bcefa 0 48px, + #f5a9b8 48px 96px, + #ffffff 96px 144px, + #f5a9b8 144px 192px, + #5bcefa 192px 240px, + #e40303 240px 288px, + #ff8c00 288px 336px, + #ffed00 336px 384px, + #00a651 384px 432px, + #0066ff 432px 480px, + #9b2fae 480px 528px + ); + } + + .page-theme-rainbow { + /* Equal broad diagonal bands keep the familiar six-color flag readable as color fields rather + than a dense ribbon when exposed through either horizontal or vertical card gaps. */ + background-image: repeating-linear-gradient( + 45deg, + #e40303 0 48px, + #ff8c00 48px 96px, + #ffed00 96px 144px, + #008026 144px 192px, + #004dff 192px 240px, + #750787 240px 288px + ); + } + + .page-theme-progress-pride { + /* The inclusive chevron colors are interleaved with the rainbow because a literal large + chevron would disappear inside narrow seams. Using the shared stripe width keeps this longer + sequence just as bold as the shorter flag themes instead of compressing it to fit one cycle. */ + background-image: repeating-linear-gradient( + 45deg, + #000000 0 48px, + #784f17 48px 96px, + #5bcefa 96px 144px, + #f5a9b8 144px 192px, + #ffffff 192px 240px, + #e40303 240px 288px, + #ff8c00 288px 336px, + #ffed00 336px 384px, + #008026 384px 432px, + #004dff 432px 480px, + #750787 480px 528px + ); + } + + .page-theme-transgender { + background-image: repeating-linear-gradient( + 45deg, + #5bcefa 0 48px, + #f5a9b8 48px 96px, + #ffffff 96px 144px, + #f5a9b8 144px 192px, + #5bcefa 192px 240px + ); + } + + .page-theme-bisexual { + /* Equal bands deliberately prioritize consistency with the other selectable stripe themes. + The three-color identity remains clear while browsing no longer changes stripe density. */ + background-image: repeating-linear-gradient( + 45deg, + #d60270 0 48px, + #9b4f96 48px 96px, + #0038a8 96px 144px + ); + } + + .page-theme-lesbian { + background-image: repeating-linear-gradient( + 45deg, + #d52d00 0 48px, + #ef7627 48px 96px, + #ff9a56 96px 144px, + #ffffff 144px 192px, + #d162a4 192px 240px, + #b55690 240px 288px, + #a30262 288px 336px + ); + } + + .page-theme-nonbinary { + background-image: repeating-linear-gradient( + 45deg, + #fff430 0 48px, + #ffffff 48px 96px, + #9c59d1 96px 144px, + #2d2d2d 144px 192px + ); + } + + .page-theme-pansexual { + background-image: repeating-linear-gradient( + 45deg, + #ff218c 0 48px, + #ffd800 48px 96px, + #21b1ff 96px 144px + ); + } + + .page-theme-asexual { + background-image: repeating-linear-gradient( + 45deg, + #111111 0 48px, + #a3a3a3 48px 96px, + #ffffff 96px 144px, + #800080 144px 192px + ); + }