@growgroup/visual-editor 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/editor.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-space-x-reverse:0}}}:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-orange-400:oklch(75% .183 55.934);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--drop-shadow-md:0 3px 3px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--radius:.5rem;--color-background:#fff;--color-foreground:#0a0a0a;--color-card:#fff;--color-card-foreground:#0a0a0a;--color-popover:#fff;--color-popover-foreground:#0a0a0a;--color-primary:#171717;--color-primary-foreground:#fafafa;--color-secondary:#f5f5f5;--color-secondary-foreground:#171717;--color-muted:#f5f5f5;--color-muted-foreground:#737373;--color-accent:#f5f5f5;--color-accent-foreground:#171717;--color-destructive:#ef4444;--color-destructive-foreground:#fafafa;--color-border:#e5e5e5;--color-input:#e5e5e5;--color-ring:#0a0a0a;--color-gg-green:#316a40;--color-ink:#2e2e2e;--color-mark-green:#cfe6d6}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-7{top:calc(var(--spacing) * -7)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.top-auto{top:auto}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-1\/2{right:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-\[24px\]{right:24px}.right-auto{right:auto}.right-full{right:100%}.bottom-0{bottom:0}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1\/2{bottom:50%}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-\[24px\]{bottom:24px}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.left-\[96px\]{left:96px}.left-\[142px\]{left:142px}.left-auto{left:auto}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[100\]{z-index:100}.z-\[1000\]{z-index:1000}.z-\[9999\]{z-index:9999}.z-\[10000\]{z-index:10000}.z-\[10001\]{z-index:10001}.z-auto{z-index:auto}.-order-1{order:calc(1 * -1)}.order-1{order:1}.order-2{order:2}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.col-span-7{grid-column:span 7/span 7}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-0\.5{margin:calc(var(--spacing) * -.5)}.m-0{margin:0}.m-3{margin:calc(var(--spacing) * 3)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-\[22px\]{margin-top:22px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.list-item{display:list-item}.table{display:table}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-1\/3{height:33.3333%}.h-1\/4{height:25%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-2\/3{height:66.6667%}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-3\/4{height:75%}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\[1px\]{height:1px}.h-\[2\.5px\]{height:2.5px}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[4px\]{height:4px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[56px\]{height:56px}.h-\[58px\]{height:58px}.h-\[64px\]{height:64px}.h-\[72px\]{height:72px}.h-\[80px\]{height:80px}.h-\[82vh\]{height:82vh}.h-\[90vh\]{height:90vh}.h-\[104px\]{height:104px}.h-\[240px\]{height:240px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-fit{height:fit-content}.h-full{height:100%}.h-max{height:max-content}.h-min{height:min-content}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[--radix-context-menu-content-available-height\]{max-height:--radix-context-menu-content-available-height}.max-h-\[--radix-select-content-available-height\]{max-height:--radix-select-content-available-height}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[420px\]{max-height:420px}.max-h-\[860px\]{max-height:860px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-dvh{max-height:100dvh}.max-h-fit{max-height:fit-content}.max-h-full{max-height:100%}.max-h-max{max-height:max-content}.max-h-min{max-height:min-content}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-\[40px\]{min-height:40px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[100px\]{min-height:100px}.min-h-\[150px\]{min-height:150px}.min-h-dvh{min-height:100dvh}.min-h-fit{min-height:fit-content}.min-h-full{min-height:100%}.min-h-max{min-height:max-content}.min-h-min{min-height:min-content}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[16px\]{width:16px}.w-\[22px\]{width:22px}.w-\[38px\]{width:38px}.w-\[52px\]{width:52px}.w-\[54px\]{width:54px}.w-\[56px\]{width:56px}.w-\[62px\]{width:62px}.w-\[64px\]{width:64px}.w-\[68px\]{width:68px}.w-\[72px\]{width:72px}.w-\[90vw\]{width:90vw}.w-\[95vw\]{width:95vw}.w-\[136px\]{width:136px}.w-\[176px\]{width:176px}.w-\[180px\]{width:180px}.w-\[212px\]{width:212px}.w-\[220px\]{width:220px}.w-\[264px\]{width:264px}.w-\[280px\]{width:280px}.w-\[292px\]{width:292px}.w-\[300px\]{width:300px}.w-\[min\(1080px\,94vw\)\]{width:min(1080px,94vw)}.w-\[min\(1100px\,95vw\)\]{width:min(1100px,95vw)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-min{width:min-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[40px\]{max-width:40px}.max-w-\[80px\]{max-width:80px}.max-w-\[90px\]{max-width:90px}.max-w-\[200px\]{max-width:200px}.max-w-\[420px\]{max-width:420px}.max-w-\[calc\(100\%-5rem\)\]{max-width:calc(100% - 5rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-min{max-width:min-content}.max-w-none{max-width:none}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-\[3\.5rem\]{min-width:3.5rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[40px\]{min-width:40px}.min-w-\[52px\]{min-width:52px}.min-w-\[60px\]{min-width:60px}.min-w-\[176px\]{min-width:176px}.min-w-\[180px\]{min-width:180px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-fit{min-width:fit-content}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-min{min-width:min-content}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-0{flex-basis:0}.basis-1\/2{flex-basis:50%}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:--radix-context-menu-content-transform-origin}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:--radix-dropdown-menu-content-transform-origin}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:--radix-popover-content-transform-origin}.origin-\[--radix-select-content-transform-origin\]{transform-origin:--radix-select-content-transform-origin}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-col-resize{cursor:col-resize}.cursor-context-menu{cursor:context-menu}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-vertical-text{cursor:vertical-text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row{grid-auto-flow:row}.grid-flow-row-dense{grid-auto-flow:dense}.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-rows-none{grid-template-rows:none}.grid-rows-subgrid{grid-template-rows:subgrid}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-around{align-content:space-around}.content-baseline{align-content:baseline}.content-between{align-content:space-between}.content-center{align-content:center}.content-end{align-content:flex-end}.content-evenly{align-content:space-evenly}.content-start{align-content:flex-start}.content-stretch{align-content:stretch}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[3px\]{gap:3px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-0{column-gap:0}.gap-y-0{row-gap:0}.self-auto{align-self:auto}.self-baseline{align-self:baseline}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-visible{overflow-x:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-clip{overflow-y:clip}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-visible{overflow-y:visible}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:var(--radius)}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-l{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-tl{border-top-left-radius:var(--radius)}.rounded-r{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-tr{border-top-right-radius:var(--radius)}.rounded-br{border-bottom-right-radius:var(--radius)}.rounded-bl{border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-double{--tw-border-style:double;border-style:double}.border-hidden{--tw-border-style:hidden;border-style:hidden}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#0d99ff\]{border-color:#0d99ff}.border-\[\#0d99ff\]\/30{border-color:oklab(66.9841% -.0648249 -.170866/.3)}.border-\[\#0d99ff\]\/50{border-color:oklab(66.9841% -.0648249 -.170866/.5)}.border-\[\#0d99ff\]\/60{border-color:oklab(66.9841% -.0648249 -.170866/.6)}.border-\[\#4a4a4a\]{border-color:#4a4a4a}.border-\[\#5d5d5d\]{border-color:#5d5d5d}.border-\[\#404040\]{border-color:#404040}.border-\[\#444444\]{border-color:#444}.border-\[\#444444\]\/50{border-color:oklab(38.6654% 0 0/.5)}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/60{border-color:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.border-blue-600\/30{border-color:#155dfc4d}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/30{border-color:color-mix(in oklab, var(--color-blue-600) 30%, transparent)}}.border-blue-600\/40{border-color:#155dfc66}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/40{border-color:color-mix(in oklab, var(--color-blue-600) 40%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-green-600{border-color:var(--color-green-600)}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.border-primary\/50{border-color:#17171780}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/50{border-color:color-mix(in oklab, var(--color-purple-500) 50%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/30{border-color:color-mix(in oklab, var(--color-yellow-500) 30%, transparent)}}.border-t-blue-500{border-top-color:var(--color-blue-500)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\[\#0F6CBD\]{background-color:#0f6cbd}.bg-\[\#0d99ff\]{background-color:#0d99ff}.bg-\[\#0d99ff\]\/10{background-color:oklab(66.9841% -.0648249 -.170866/.1)}.bg-\[\#0d99ff\]\/15{background-color:oklab(66.9841% -.0648249 -.170866/.15)}.bg-\[\#0d99ff\]\/20{background-color:oklab(66.9841% -.0648249 -.170866/.2)}.bg-\[\#0d99ff\]\/25{background-color:oklab(66.9841% -.0648249 -.170866/.25)}.bg-\[\#0d99ff\]\/30{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.bg-\[\#0d99ff\]\/40{background-color:oklab(66.9841% -.0648249 -.170866/.4)}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#2a2a2a\]{background-color:#2a2a2a}.bg-\[\#2c2c2c\]{background-color:#2c2c2c}.bg-\[\#2c2c2c\]\/95{background-color:oklab(29.3128% -2.98023e-8 1.49012e-8/.95)}.bg-\[\#2e2e2e\]{background-color:#2e2e2e}.bg-\[\#4a4a4a\]{background-color:#4a4a4a}.bg-\[\#5a5a5a\]{background-color:#5a5a5a}.bg-\[\#37373d\]{background-color:#37373d}.bg-\[\#383838\]{background-color:#383838}.bg-\[\#404040\]{background-color:#404040}.bg-\[\#444444\]{background-color:#444}.bg-\[\#444444\]\/20{background-color:oklab(38.6654% 0 0/.2)}.bg-\[\#C43E1C\]{background-color:#c43e1c}.bg-\[\#ff0000\]{background-color:red}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/15{background-color:#fcbb0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/15{background-color:color-mix(in oklab, var(--color-amber-400) 15%, transparent)}}.bg-amber-600{background-color:var(--color-amber-600)}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-400\/10{background-color:#00d2941a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-400\/10{background-color:color-mix(in oklab, var(--color-emerald-400) 10%, transparent)}}.bg-gg-green{background-color:var(--color-gg-green)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-mark-green{background-color:var(--color-mark-green)}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/20{background-color:#17171733}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/20{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-600\/30{background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-600\/30{background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/30{background-color:color-mix(in oklab, var(--color-purple-900) 30%, transparent)}}.bg-purple-900\/50{background-color:#59168b80}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/50{background-color:color-mix(in oklab, var(--color-purple-900) 50%, transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/20{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.bg-red-500\/90{background-color:#fb2c36e6}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/90{background-color:color-mix(in oklab, var(--color-red-500) 90%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/15{background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-sky-400{background-color:var(--color-sky-400)}.bg-sky-400\/15{background-color:#00bcfe26}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/15{background-color:color-mix(in oklab, var(--color-sky-400) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-none{object-fit:none}.object-scale-down{object-fit:scale-down}.object-bottom{object-position:bottom}.object-center{object-position:center}.object-left{object-position:left}.object-left-bottom{object-position:left bottom}.object-left-top{object-position:left top}.object-right{object-position:right}.object-right-bottom{object-position:right bottom}.object-right-top{object-position:right top}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[1px\]{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[6px\]{padding-inline:6px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\[3px\]{padding-block:3px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0{padding-right:0}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-0{padding-left:0}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-\[-2px\]{vertical-align:-2px}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[2em\]{font-size:2em}.text-\[6px\]{font-size:6px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-\[14px\]{--tw-leading:14px;line-height:14px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-normal{overflow-wrap:normal;word-break:normal}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#4fb8ff\]{color:#4fb8ff}.text-\[\#7cc4ff\]{color:#7cc4ff}.text-\[hsl\(\.\.\.\)\]{color:hsl(...)}.text-\[rgb\(\)\]{color:rgb()}.text-\[数値\]{color:数値}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/90{color:color-mix(in oklab, var(--color-amber-400) 90%, transparent)}}.text-amber-600{color:var(--color-amber-600)}.text-black{color:var(--color-black)}.text-blue-100{color:var(--color-blue-100)}.text-blue-200{color:var(--color-blue-200)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--color-card-foreground)}.text-current{color:currentColor}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-emerald-300{color:var(--color-emerald-300)}.text-foreground{color:var(--color-foreground)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.text-inherit{color:inherit}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-orange-400{color:var(--color-orange-400)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-purple-200{color:var(--color-purple-200)}.text-purple-300{color:var(--color-purple-300)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-rose-300{color:var(--color-rose-300)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-sky-300{color:var(--color-sky-300)}.text-sky-400{color:var(--color-sky-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-\[\#0F6CBD\]{accent-color:#0f6cbd}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.bg-blend-color{background-blend-mode:color}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-darken{background-blend-mode:darken}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-hue{background-blend-mode:hue}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-luminosity{background-blend-mode:luminosity}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-normal{background-blend-mode:normal}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-screen{background-blend-mode:screen}.bg-blend-soft-light{background-blend-mode:soft-light}.mix-blend-color{mix-blend-mode:color}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-plus-darker{mix-blend-mode:plus-darker}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-soft-light{mix-blend-mode:soft-light}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\/60{--tw-shadow-color:#0009}@supports (color:color-mix(in lab, red, red)){.shadow-black\/60{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 60%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-blue-500\/20{--tw-shadow-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.shadow-blue-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[\#0d99ff\]{--tw-ring-color:#0d99ff}.ring-\[\#0d99ff\]\/50{--tw-ring-color:oklab(66.9841% -.0648249 -.170866/.5)}.ring-amber-400\/30{--tw-ring-color:#fcbb004d}@supports (color:color-mix(in lab, red, red)){.ring-amber-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 30%, transparent)}}.ring-emerald-400\/25{--tw-ring-color:#00d29440}@supports (color:color-mix(in lab, red, red)){.ring-emerald-400\/25{--tw-ring-color:color-mix(in oklab, var(--color-emerald-400) 25%, transparent)}}.ring-rose-400\/30{--tw-ring-color:#ff667f4d}@supports (color:color-mix(in lab, red, red)){.ring-rose-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-rose-400) 30%, transparent)}}.ring-sky-400\/30{--tw-ring-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.ring-sky-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));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{--tw-backdrop-blur:blur(8px);-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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:scale-\[1\.04\]:is(:where(.group):hover *){scale:1.04}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:ring-\[\#0d99ff\]\/50:is(:where(.group):hover *){--tw-ring-color:oklab(66.9841% -.0648249 -.170866/.5)}.group-hover\/fill\:block:is(:where(.group\/fill):hover *){display:block}.group-hover\/var-input\:opacity-100:is(:where(.group\/var-input):hover *){opacity:1}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-transparent ::selection{background-color:#0000}.selection\:bg-transparent::selection{background-color:#0000}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-gray-500::placeholder{color:var(--color-gray-500)}.placeholder\:text-gray-600::placeholder{color:var(--color-gray-600)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.focus-within\:border-\[\#0d99ff\]:focus-within{border-color:#0d99ff}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[\#0d99ff\]:focus-within{--tw-ring-color:#0d99ff}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#0d99ff\]:hover{border-color:#0d99ff}.hover\:border-\[\#5d5d5d\]:hover{border-color:#5d5d5d}.hover\:border-\[\#555\]:hover{border-color:#555}.hover\:border-gray-500:hover{border-color:var(--color-gray-500)}.hover\:bg-\[\#0c8ce9\]:hover{background-color:#0c8ce9}.hover\:bg-\[\#0d99ff\]:hover{background-color:#0d99ff}.hover\:bg-\[\#0d99ff\]\/30:hover{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.hover\:bg-\[\#2c2c2c\]:hover{background-color:#2c2c2c}.hover\:bg-\[\#4a4a4a\]:hover{background-color:#4a4a4a}.hover\:bg-\[\#4c4c4c\]:hover{background-color:#4c4c4c}.hover\:bg-\[\#5d5d5d\]:hover{background-color:#5d5d5d}.hover\:bg-\[\#6a6a6a\]:hover{background-color:#6a6a6a}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#353535\]:hover{background-color:#353535}.hover\:bg-\[\#383838\]:hover{background-color:#383838}.hover\:bg-\[\#404040\]:hover{background-color:#404040}.hover\:bg-\[\#444444\]:hover{background-color:#444}.hover\:bg-\[\#444444\]\/30:hover{background-color:oklab(38.6654% 0 0/.3)}.hover\:bg-\[\#444444\]\/50:hover{background-color:oklab(38.6654% 0 0/.5)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500\/50:hover{background-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-500\/50:hover{background-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.hover\:bg-destructive\/80:hover{background-color:#ef4444cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#ef4444e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-primary\/80:hover{background-color:#171717cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#171717e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-purple-500\/20:hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/20:hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/30:hover{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/30:hover{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-blue-400:hover{color:var(--color-blue-400)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:text-green-400:hover{color:var(--color-green-400)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-\[\#0d99ff\]:hover{--tw-ring-color:#0d99ff}}.focus\:border-\[\#0d99ff\]:focus{border-color:#0d99ff}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:bg-\[\#383838\]:focus{background-color:#383838}.focus\:bg-\[\#444444\]:focus{background-color:#444}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-gray-700:focus{background-color:var(--color-gray-700)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.focus\:bg-white\/10:focus{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-white:focus{color:var(--color-white)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[\#0d99ff\]:focus{--tw-ring-color:#0d99ff}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[\#0d99ff\]:focus-visible{--tw-ring-color:#0d99ff}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[\#2c2c2c\]:focus-visible{--tw-ring-offset-color:#2c2c2c}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:text-blue-500:active{color:var(--color-blue-500)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[\#2a2a2a\]:disabled{background-color:#2a2a2a}.disabled\:bg-\[\#383838\]:disabled{background-color:#383838}.disabled\:bg-gray-50:disabled{background-color:var(--color-gray-50)}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=active\]\:bg-\[\#383838\][data-state=active]{background-color:#383838}.data-\[state\=active\]\:bg-\[\#444444\][data-state=active]{background-color:#444}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--color-background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--color-foreground)}.data-\[state\=active\]\:text-white[data-state=active]{color:var(--color-white)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-\[\#0d99ff\][data-state=checked]{background-color:#0d99ff}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--color-input)}@media (min-width:40rem){.sm\:mt-0{margin-top:0}.sm\:max-w-\[600px\]{max-width:600px}.sm\:max-w-\[900px\]{max-width:900px}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:flex{display:flex}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}.gg-editor-skin{--ed-bg:#1e1e1e;--ed-panel:#2c2c2c;--ed-panel-raised:#2c2c2c;--ed-surface:#383838;--ed-surface-hover:#444;--ed-line:#ffffff1a;--ed-line-strong:#ffffff29;--ed-accent:#0d99ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9}.gg-editor-skin .bg-\[\#1e1e1e\]{background-color:var(--ed-bg)}.gg-editor-skin .bg-\[\#2c2c2c\],.gg-editor-skin .bg-\[\#2a2a2a\]{background-color:var(--ed-panel)}.gg-editor-skin .bg-\[\#383838\]{background-color:var(--ed-surface)}.gg-editor-skin .bg-\[\#444444\],.gg-editor-skin .bg-\[\#4a4a4a\],.gg-editor-skin .bg-\[\#5d5d5d\]{background-color:var(--ed-surface-hover)}.gg-editor-skin .hover\:bg-\[\#444444\]:hover,.gg-editor-skin .hover\:bg-\[\#383838\]:hover{background-color:#ffffff14}.gg-editor-skin .hover\:bg-\[\#4a4a4a\]:hover{background-color:var(--ed-surface-hover)}.gg-editor-skin .border-\[\#444444\],.gg-editor-skin .border-\[\#383838\],.gg-editor-skin .border-\[\#2c2c2c\]{border-color:var(--ed-line)}.gg-editor-skin .border-\[\#4a4a4a\],.gg-editor-skin .border-\[\#5d5d5d\]{border-color:var(--ed-line-strong)}.gg-editor-skin .hover\:border-\[\#4a4a4a\]:hover,.gg-editor-skin .hover\:border-\[\#5d5d5d\]:hover{border-color:#0d99ff99}.gg-editor-skin .w-px.bg-\[\#444444\],.gg-editor-skin .h-px.bg-\[\#444444\]{background-color:var(--ed-line)}.gg-editor-skin .bg-\[\#0d99ff\],.gg-editor-skin .bg-blue-500,.gg-editor-skin .bg-blue-600{background-color:var(--ed-accent-strong)}.gg-editor-skin .hover\:bg-\[\#0c8ce9\]:hover,.gg-editor-skin .hover\:bg-blue-600:hover,.gg-editor-skin .hover\:bg-blue-700:hover{background-color:var(--ed-accent-hover)}.gg-editor-skin .text-\[\#0d99ff\],.gg-editor-skin .text-\[\#4fb8ff\],.gg-editor-skin .text-blue-400,.gg-editor-skin .text-blue-500{color:var(--ed-accent)}.gg-editor-skin .border-\[\#0d99ff\],.gg-editor-skin .border-blue-500{border-color:var(--ed-accent)}.gg-editor-skin .ring-\[\#0d99ff\],.gg-editor-skin .ring-blue-500{--tw-ring-color:var(--ed-accent)}.gg-editor-skin .text-gray-300{color:#ffffffd9}.gg-editor-skin .text-gray-400{color:#ffffffb3}.gg-editor-skin .text-gray-500{color:#ffffff73}.gg-editor-skin .rounded{border-radius:.375rem}.gg-editor-skin .shadow-lg,.gg-editor-skin .shadow-xl,.gg-editor-skin .shadow-2xl{box-shadow:0 5px 17px #00000059,0 2px 7px #00000026}.gg-editor-skin input:focus-visible,.gg-editor-skin button:focus-visible,.gg-editor-skin select:focus-visible{outline:2px solid var(--ed-accent);outline-offset:1px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-space-x-reverse:0}}}:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-900:oklch(39.6% .141 25.723);--color-orange-400:oklch(75% .183 55.934);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-400:oklch(76.5% .177 163.223);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-900:oklch(38.1% .176 304.987);--color-rose-300:oklch(81% .117 11.638);--color-rose-400:oklch(71.2% .194 13.428);--color-rose-500:oklch(64.5% .246 16.439);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-thin:100;--font-weight-extralight:200;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--drop-shadow-md:0 3px 3px #0000001f;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--radius:.5rem;--color-background:#fff;--color-foreground:#0a0a0a;--color-card:#fff;--color-card-foreground:#0a0a0a;--color-popover:#fff;--color-popover-foreground:#0a0a0a;--color-primary:#171717;--color-primary-foreground:#fafafa;--color-secondary:#f5f5f5;--color-secondary-foreground:#171717;--color-muted:#f5f5f5;--color-muted-foreground:#737373;--color-accent:#f5f5f5;--color-accent-foreground:#171717;--color-destructive:#ef4444;--color-destructive-foreground:#fafafa;--color-border:#e5e5e5;--color-input:#e5e5e5;--color-ring:#0a0a0a;--color-gg-green:#316a40;--color-ink:#2e2e2e;--color-mark-green:#cfe6d6}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-auto{inset:auto}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-7{top:calc(var(--spacing) * -7)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.top-auto{top:auto}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-0\.5{right:calc(var(--spacing) * .5)}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-1\/2{right:50%}.right-2{right:calc(var(--spacing) * 2)}.right-4{right:calc(var(--spacing) * 4)}.right-\[24px\]{right:24px}.right-auto{right:auto}.right-full{right:100%}.bottom-0{bottom:0}.bottom-0\.5{bottom:calc(var(--spacing) * .5)}.bottom-1\/2{bottom:50%}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-5{bottom:calc(var(--spacing) * 5)}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-20{bottom:calc(var(--spacing) * 20)}.bottom-\[24px\]{bottom:24px}.bottom-auto{bottom:auto}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-4{left:calc(var(--spacing) * 4)}.left-\[50\%\]{left:50%}.left-\[96px\]{left:96px}.left-\[142px\]{left:142px}.left-auto{left:auto}.left-full{left:100%}.z-0{z-index:0}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[70\]{z-index:70}.z-\[100\]{z-index:100}.z-\[1000\]{z-index:1000}.z-\[9999\]{z-index:9999}.z-\[10000\]{z-index:10000}.z-\[10001\]{z-index:10001}.z-auto{z-index:auto}.-order-1{order:calc(1 * -1)}.order-1{order:1}.order-2{order:2}.order-first{order:-9999}.order-last{order:9999}.order-none{order:0}.col-span-7{grid-column:span 7/span 7}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-m-0\.5{margin:calc(var(--spacing) * -.5)}.m-0{margin:0}.m-3{margin:calc(var(--spacing) * 3)}.m-auto{margin:auto}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-6{margin-inline:calc(var(--spacing) * -6)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.mt-0{margin-top:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-\[22px\]{margin-top:22px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0{margin-right:0}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mr-auto{margin-right:auto}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-auto{margin-bottom:auto}.ml-0{margin-left:0}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.list-item{display:list-item}.table{display:table}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-1\/3{height:33.3333%}.h-1\/4{height:25%}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-2\/3{height:66.6667%}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-3\/4{height:75%}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-96{height:calc(var(--spacing) * 96)}.h-\[1px\]{height:1px}.h-\[2\.5px\]{height:2.5px}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[4px\]{height:4px}.h-\[22px\]{height:22px}.h-\[26px\]{height:26px}.h-\[30px\]{height:30px}.h-\[56px\]{height:56px}.h-\[58px\]{height:58px}.h-\[64px\]{height:64px}.h-\[72px\]{height:72px}.h-\[80px\]{height:80px}.h-\[82vh\]{height:82vh}.h-\[90vh\]{height:90vh}.h-\[104px\]{height:104px}.h-\[240px\]{height:240px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-dvh{height:100dvh}.h-fit{height:fit-content}.h-full{height:100%}.h-max{height:max-content}.h-min{height:min-content}.h-px{height:1px}.h-screen{height:100vh}.max-h-24{max-height:calc(var(--spacing) * 24)}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[--radix-context-menu-content-available-height\]{max-height:--radix-context-menu-content-available-height}.max-h-\[--radix-select-content-available-height\]{max-height:--radix-select-content-available-height}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[420px\]{max-height:420px}.max-h-\[860px\]{max-height:860px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-dvh{max-height:100dvh}.max-h-fit{max-height:fit-content}.max-h-full{max-height:100%}.max-h-max{max-height:max-content}.max-h-min{max-height:min-content}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-\[40px\]{min-height:40px}.min-h-\[44px\]{min-height:44px}.min-h-\[52px\]{min-height:52px}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[100px\]{min-height:100px}.min-h-\[150px\]{min-height:150px}.min-h-dvh{min-height:100dvh}.min-h-fit{min-height:fit-content}.min-h-full{min-height:100%}.min-h-max{min-height:max-content}.min-h-min{min-height:min-content}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[1px\]{width:1px}.w-\[16px\]{width:16px}.w-\[22px\]{width:22px}.w-\[38px\]{width:38px}.w-\[52px\]{width:52px}.w-\[54px\]{width:54px}.w-\[56px\]{width:56px}.w-\[62px\]{width:62px}.w-\[64px\]{width:64px}.w-\[68px\]{width:68px}.w-\[72px\]{width:72px}.w-\[90vw\]{width:90vw}.w-\[95vw\]{width:95vw}.w-\[136px\]{width:136px}.w-\[160px\]{width:160px}.w-\[176px\]{width:176px}.w-\[180px\]{width:180px}.w-\[212px\]{width:212px}.w-\[220px\]{width:220px}.w-\[264px\]{width:264px}.w-\[280px\]{width:280px}.w-\[292px\]{width:292px}.w-\[300px\]{width:300px}.w-\[min\(1080px\,94vw\)\]{width:min(1080px,94vw)}.w-\[min\(1100px\,95vw\)\]{width:min(1100px,95vw)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-min{width:min-content}.w-px{width:1px}.w-screen{width:100vw}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-\[40px\]{max-width:40px}.max-w-\[80px\]{max-width:80px}.max-w-\[90px\]{max-width:90px}.max-w-\[200px\]{max-width:200px}.max-w-\[420px\]{max-width:420px}.max-w-\[calc\(100\%-5rem\)\]{max-width:calc(100% - 5rem)}.max-w-fit{max-width:fit-content}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-max{max-width:max-content}.max-w-min{max-width:min-content}.max-w-none{max-width:none}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-\[3\.5rem\]{min-width:3.5rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[40px\]{min-width:40px}.min-w-\[52px\]{min-width:52px}.min-w-\[60px\]{min-width:60px}.min-w-\[176px\]{min-width:176px}.min-w-\[180px\]{min-width:180px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-fit{min-width:fit-content}.min-w-full{min-width:100%}.min-w-max{min-width:max-content}.min-w-min{min-width:min-content}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-0{flex-basis:0}.basis-1\/2{flex-basis:50%}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:--radix-context-menu-content-transform-origin}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:--radix-dropdown-menu-content-transform-origin}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:--radix-popover-content-transform-origin}.origin-\[--radix-select-content-transform-origin\]{transform-origin:--radix-select-content-transform-origin}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.origin-top-left{transform-origin:0 0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x) var(--tw-scale-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-alias{cursor:alias}.cursor-all-scroll{cursor:all-scroll}.cursor-auto{cursor:auto}.cursor-cell{cursor:cell}.cursor-col-resize{cursor:col-resize}.cursor-context-menu{cursor:context-menu}.cursor-copy{cursor:copy}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-nesw-resize{cursor:nesw-resize}.cursor-no-drop{cursor:no-drop}.cursor-none{cursor:none}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.cursor-progress{cursor:progress}.cursor-row-resize{cursor:row-resize}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-text{cursor:text}.cursor-vertical-text{cursor:vertical-text}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.\[appearance\:textfield\]{appearance:textfield}.appearance-none{appearance:none}.grid-flow-col{grid-auto-flow:column}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row{grid-auto-flow:row}.grid-flow-row-dense{grid-auto-flow:dense}.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-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-none{grid-template-columns:none}.grid-cols-subgrid{grid-template-columns:subgrid}.grid-rows-none{grid-template-rows:none}.grid-rows-subgrid{grid-template-rows:subgrid}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.content-around{align-content:space-around}.content-baseline{align-content:baseline}.content-between{align-content:space-between}.content-center{align-content:center}.content-end{align-content:flex-end}.content-evenly{align-content:space-evenly}.content-start{align-content:flex-start}.content-stretch{align-content:stretch}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-around{justify-content:space-around}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-stretch{justify-content:stretch}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[3px\]{gap:3px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-0{column-gap:0}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-0{row-gap:0}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.self-auto{align-self:auto}.self-baseline{align-self:baseline}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-visible{overflow-x:visible}.overflow-y-auto{overflow-y:auto}.overflow-y-clip{overflow-y:clip}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-visible{overflow-y:visible}.overscroll-none{overscroll-behavior:none}.rounded{border-radius:var(--radius)}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-l{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.rounded-tl{border-top-left-radius:var(--radius)}.rounded-r{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.rounded-tr{border-top-right-radius:var(--radius)}.rounded-br{border-bottom-right-radius:var(--radius)}.rounded-bl{border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-double{--tw-border-style:double;border-style:double}.border-hidden{--tw-border-style:hidden;border-style:hidden}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\[\#0d99ff\]{border-color:#0d99ff}.border-\[\#0d99ff\]\/30{border-color:oklab(66.9841% -.0648249 -.170866/.3)}.border-\[\#0d99ff\]\/50{border-color:oklab(66.9841% -.0648249 -.170866/.5)}.border-\[\#0d99ff\]\/60{border-color:oklab(66.9841% -.0648249 -.170866/.6)}.border-\[\#4a4a4a\]{border-color:#4a4a4a}.border-\[\#5d5d5d\]{border-color:#5d5d5d}.border-\[\#404040\]{border-color:#404040}.border-\[\#444444\]{border-color:#444}.border-\[\#444444\]\/50{border-color:oklab(38.6654% 0 0/.5)}.border-amber-500{border-color:var(--color-amber-500)}.border-amber-500\/60{border-color:#f99c0099}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/60{border-color:color-mix(in oklab, var(--color-amber-500) 60%, transparent)}}.border-blue-600\/30{border-color:#155dfc4d}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/30{border-color:color-mix(in oklab, var(--color-blue-600) 30%, transparent)}}.border-blue-600\/40{border-color:#155dfc66}@supports (color:color-mix(in lab, red, red)){.border-blue-600\/40{border-color:color-mix(in oklab, var(--color-blue-600) 40%, transparent)}}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-500{border-color:var(--color-gray-500)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-green-600{border-color:var(--color-green-600)}.border-input{border-color:var(--color-input)}.border-primary{border-color:var(--color-primary)}.border-primary\/50{border-color:#17171780}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-purple-500\/50{border-color:#ac4bff80}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/50{border-color:color-mix(in oklab, var(--color-purple-500) 50%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-transparent{border-color:#0000}.border-white{border-color:var(--color-white)}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab, red, red)){.border-yellow-500\/30{border-color:color-mix(in oklab, var(--color-yellow-500) 30%, transparent)}}.border-t-blue-500{border-top-color:var(--color-blue-500)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\[\#0F6CBD\]{background-color:#0f6cbd}.bg-\[\#0d99ff\]{background-color:#0d99ff}.bg-\[\#0d99ff\]\/10{background-color:oklab(66.9841% -.0648249 -.170866/.1)}.bg-\[\#0d99ff\]\/15{background-color:oklab(66.9841% -.0648249 -.170866/.15)}.bg-\[\#0d99ff\]\/20{background-color:oklab(66.9841% -.0648249 -.170866/.2)}.bg-\[\#0d99ff\]\/25{background-color:oklab(66.9841% -.0648249 -.170866/.25)}.bg-\[\#0d99ff\]\/30{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.bg-\[\#0d99ff\]\/40{background-color:oklab(66.9841% -.0648249 -.170866/.4)}.bg-\[\#1e1e1e\]{background-color:#1e1e1e}.bg-\[\#2a2a2a\]{background-color:#2a2a2a}.bg-\[\#2c2c2c\]{background-color:#2c2c2c}.bg-\[\#2c2c2c\]\/95{background-color:oklab(29.3128% -2.98023e-8 1.49012e-8/.95)}.bg-\[\#2e2e2e\]{background-color:#2e2e2e}.bg-\[\#4a4a4a\]{background-color:#4a4a4a}.bg-\[\#5a5a5a\]{background-color:#5a5a5a}.bg-\[\#37373d\]{background-color:#37373d}.bg-\[\#383838\]{background-color:#383838}.bg-\[\#404040\]{background-color:#404040}.bg-\[\#444444\]{background-color:#444}.bg-\[\#444444\]\/20{background-color:oklab(38.6654% 0 0/.2)}.bg-\[\#C43E1C\]{background-color:#c43e1c}.bg-\[\#ff0000\]{background-color:red}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/15{background-color:#fcbb0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/15{background-color:color-mix(in oklab, var(--color-amber-400) 15%, transparent)}}.bg-amber-600{background-color:var(--color-amber-600)}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--color-border)}.bg-card{background-color:var(--color-card)}.bg-destructive{background-color:var(--color-destructive)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-400\/10{background-color:#00d2941a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-400\/10{background-color:color-mix(in oklab, var(--color-emerald-400) 10%, transparent)}}.bg-gg-green{background-color:var(--color-gg-green)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-mark-green{background-color:var(--color-mark-green)}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-primary\/20{background-color:#17171733}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-purple-500{background-color:var(--color-purple-500)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/20{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.bg-purple-600{background-color:var(--color-purple-600)}.bg-purple-600\/30{background-color:#9810fa4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-600\/30{background-color:color-mix(in oklab, var(--color-purple-600) 30%, transparent)}}.bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/30{background-color:color-mix(in oklab, var(--color-purple-900) 30%, transparent)}}.bg-purple-900\/50{background-color:#59168b80}@supports (color:color-mix(in lab, red, red)){.bg-purple-900\/50{background-color:color-mix(in oklab, var(--color-purple-900) 50%, transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/20{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.bg-red-500\/90{background-color:#fb2c36e6}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/90{background-color:color-mix(in oklab, var(--color-red-500) 90%, transparent)}}.bg-red-600{background-color:var(--color-red-600)}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/15{background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-sky-400{background-color:var(--color-sky-400)}.bg-sky-400\/15{background-color:#00bcfe26}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/15{background-color:color-mix(in oklab, var(--color-sky-400) 15%, transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-cover{background-size:cover}.bg-center{background-position:50%}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-none{object-fit:none}.object-scale-down{object-fit:scale-down}.object-bottom{object-position:bottom}.object-center{object-position:center}.object-left{object-position:left}.object-left-bottom{object-position:left bottom}.object-left-top{object-position:left top}.object-right{object-position:right}.object-right-bottom{object-position:right bottom}.object-right-top{object-position:right top}.object-top{object-position:top}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[1px\]{padding:1px}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[6px\]{padding-inline:6px}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\[3px\]{padding-block:3px}.pt-0{padding-top:0}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-0{padding-right:0}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-0{padding-left:0}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-end{text-align:end}.text-justify{text-align:justify}.text-left{text-align:left}.text-right{text-align:right}.text-start{text-align:start}.align-\[-2px\]{vertical-align:-2px}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}.text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[2em\]{font-size:2em}.text-\[6px\]{font-size:6px}.text-\[7px\]{font-size:7px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-\[14px\]{--tw-leading:14px;line-height:14px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.font-thin{--tw-font-weight:var(--font-weight-thin);font-weight:var(--font-weight-thin)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-normal{overflow-wrap:normal;word-break:normal}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-break-spaces{white-space:break-spaces}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#4fb8ff\]{color:#4fb8ff}.text-\[\#7cc4ff\]{color:#7cc4ff}.text-\[hsl\(\.\.\.\)\]{color:hsl(...)}.text-\[rgb\(\)\]{color:rgb()}.text-\[数値\]{color:数値}.text-amber-300{color:var(--color-amber-300)}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/90{color:color-mix(in oklab, var(--color-amber-400) 90%, transparent)}}.text-amber-600{color:var(--color-amber-600)}.text-black{color:var(--color-black)}.text-blue-100{color:var(--color-blue-100)}.text-blue-200{color:var(--color-blue-200)}.text-blue-500{color:var(--color-blue-500)}.text-blue-700{color:var(--color-blue-700)}.text-card-foreground{color:var(--color-card-foreground)}.text-current{color:currentColor}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-emerald-300{color:var(--color-emerald-300)}.text-foreground{color:var(--color-foreground)}.text-gray-100{color:var(--color-gray-100)}.text-gray-200{color:var(--color-gray-200)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.text-inherit{color:inherit}.text-muted{color:var(--color-muted)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-orange-400{color:var(--color-orange-400)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-purple-200{color:var(--color-purple-200)}.text-purple-300{color:var(--color-purple-300)}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-rose-300{color:var(--color-rose-300)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-sky-300{color:var(--color-sky-300)}.text-sky-400{color:var(--color-sky-400)}.text-transparent{color:#0000}.text-white{color:var(--color-white)}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.accent-\[\#0F6CBD\]{accent-color:#0f6cbd}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-100{opacity:1}.bg-blend-color{background-blend-mode:color}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-darken{background-blend-mode:darken}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-hue{background-blend-mode:hue}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-luminosity{background-blend-mode:luminosity}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-normal{background-blend-mode:normal}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-screen{background-blend-mode:screen}.bg-blend-soft-light{background-blend-mode:soft-light}.mix-blend-color{mix-blend-mode:color}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-plus-darker{mix-blend-mode:plus-darker}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-soft-light{mix-blend-mode:soft-light}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-black\/60{--tw-shadow-color:#0009}@supports (color:color-mix(in lab, red, red)){.shadow-black\/60{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 60%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-blue-500\/20{--tw-shadow-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.shadow-blue-500\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-blue-500) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-\[\#0d99ff\]{--tw-ring-color:#0d99ff}.ring-\[\#0d99ff\]\/50{--tw-ring-color:oklab(66.9841% -.0648249 -.170866/.5)}.ring-amber-400\/30{--tw-ring-color:#fcbb004d}@supports (color:color-mix(in lab, red, red)){.ring-amber-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-amber-400) 30%, transparent)}}.ring-emerald-400\/25{--tw-ring-color:#00d29440}@supports (color:color-mix(in lab, red, red)){.ring-emerald-400\/25{--tw-ring-color:color-mix(in oklab, var(--color-emerald-400) 25%, transparent)}}.ring-rose-400\/30{--tw-ring-color:#ff667f4d}@supports (color:color-mix(in lab, red, red)){.ring-rose-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-rose-400) 30%, transparent)}}.ring-sky-400\/30{--tw-ring-color:#00bcfe4d}@supports (color:color-mix(in lab, red, red)){.ring-sky-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-sky-400) 30%, transparent)}}.ring-transparent{--tw-ring-color:transparent}.ring-offset-background{--tw-ring-offset-color:var(--color-background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));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{--tw-backdrop-blur:blur(8px);-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,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:scale-\[1\.04\]:is(:where(.group):hover *){scale:1.04}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:ring-\[\#0d99ff\]\/50:is(:where(.group):hover *){--tw-ring-color:oklab(66.9841% -.0648249 -.170866/.5)}.group-hover\/fill\:block:is(:where(.group\/fill):hover *){display:block}.group-hover\/var-input\:opacity-100:is(:where(.group\/var-input):hover *){opacity:1}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-transparent ::selection{background-color:#0000}.selection\:bg-transparent::selection{background-color:#0000}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--color-foreground)}.placeholder\:text-gray-500::placeholder{color:var(--color-gray-500)}.placeholder\:text-gray-600::placeholder{color:var(--color-gray-600)}.placeholder\:text-muted-foreground::placeholder{color:var(--color-muted-foreground)}.focus-within\:border-\[\#0d99ff\]:focus-within{border-color:#0d99ff}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-\[\#0d99ff\]:focus-within{--tw-ring-color:#0d99ff}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-\[\#0d99ff\]:hover{border-color:#0d99ff}.hover\:border-\[\#5d5d5d\]:hover{border-color:#5d5d5d}.hover\:border-\[\#555\]:hover{border-color:#555}.hover\:border-gray-500:hover{border-color:var(--color-gray-500)}.hover\:bg-\[\#0c8ce9\]:hover{background-color:#0c8ce9}.hover\:bg-\[\#0d99ff\]:hover{background-color:#0d99ff}.hover\:bg-\[\#0d99ff\]\/30:hover{background-color:oklab(66.9841% -.0648249 -.170866/.3)}.hover\:bg-\[\#2c2c2c\]:hover{background-color:#2c2c2c}.hover\:bg-\[\#4a4a4a\]:hover{background-color:#4a4a4a}.hover\:bg-\[\#4c4c4c\]:hover{background-color:#4c4c4c}.hover\:bg-\[\#5d5d5d\]:hover{background-color:#5d5d5d}.hover\:bg-\[\#6a6a6a\]:hover{background-color:#6a6a6a}.hover\:bg-\[\#333\]:hover{background-color:#333}.hover\:bg-\[\#353535\]:hover{background-color:#353535}.hover\:bg-\[\#383838\]:hover{background-color:#383838}.hover\:bg-\[\#404040\]:hover{background-color:#404040}.hover\:bg-\[\#444444\]:hover{background-color:#444}.hover\:bg-\[\#444444\]\/30:hover{background-color:oklab(38.6654% 0 0/.3)}.hover\:bg-\[\#444444\]\/50:hover{background-color:oklab(38.6654% 0 0/.5)}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-500\/50:hover{background-color:#3080ff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-500\/50:hover{background-color:color-mix(in oklab, var(--color-blue-500) 50%, transparent)}}.hover\:bg-destructive\/80:hover{background-color:#ef4444cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--color-destructive) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:#ef4444e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--color-destructive) 90%, transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-primary\/80:hover{background-color:#171717cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#171717e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-purple-500\/20:hover{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/20:hover{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.hover\:bg-purple-500\/30:hover{background-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-purple-500\/30:hover{background-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.hover\:bg-purple-700:hover{background-color:var(--color-purple-700)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:bg-red-900\/30:hover{background-color:#82181a4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-900\/30:hover{background-color:color-mix(in oklab, var(--color-red-900) 30%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:#f5f5f5cc}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--color-secondary) 80%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--color-accent-foreground)}.hover\:text-amber-300:hover{color:var(--color-amber-300)}.hover\:text-blue-400:hover{color:var(--color-blue-400)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-100:hover{color:var(--color-gray-100)}.hover\:text-gray-200:hover{color:var(--color-gray-200)}.hover\:text-gray-300:hover{color:var(--color-gray-300)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-300:hover{color:var(--color-green-300)}.hover\:text-green-400:hover{color:var(--color-green-400)}.hover\:text-purple-300:hover{color:var(--color-purple-300)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-\[\#0d99ff\]:hover{--tw-ring-color:#0d99ff}}.focus\:border-\[\#0d99ff\]:focus{border-color:#0d99ff}.focus\:border-purple-500:focus{border-color:var(--color-purple-500)}.focus\:bg-\[\#383838\]:focus{background-color:#383838}.focus\:bg-\[\#444444\]:focus{background-color:#444}.focus\:bg-accent:focus{background-color:var(--color-accent)}.focus\:bg-gray-700:focus{background-color:var(--color-gray-700)}.focus\:bg-white\/10:focus{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.focus\:bg-white\/10:focus{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.focus\:text-accent-foreground:focus{color:var(--color-accent-foreground)}.focus\:text-white:focus{color:var(--color-white)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-\[\#0d99ff\]:focus{--tw-ring-color:#0d99ff}.focus\:ring-purple-500:focus{--tw-ring-color:var(--color-purple-500)}.focus\:ring-ring:focus{--tw-ring-color:var(--color-ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-\[\#0d99ff\]:focus-visible{--tw-ring-color:#0d99ff}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--color-ring)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-\[\#2c2c2c\]:focus-visible{--tw-ring-offset-color:#2c2c2c}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--color-background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:text-blue-500:active{color:var(--color-blue-500)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[\#2a2a2a\]:disabled{background-color:#2a2a2a}.disabled\:bg-\[\#383838\]:disabled{background-color:#383838}.disabled\:bg-gray-50:disabled{background-color:var(--color-gray-50)}.disabled\:bg-gray-100:disabled{background-color:var(--color-gray-100)}.disabled\:text-gray-400:disabled{color:var(--color-gray-400)}.disabled\:text-gray-500:disabled{color:var(--color-gray-500)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (hover:hover){.disabled\:hover\:bg-transparent:disabled:hover{background-color:#0000}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--color-muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=active\]\:bg-\[\#383838\][data-state=active]{background-color:#383838}.data-\[state\=active\]\:bg-\[\#444444\][data-state=active]{background-color:#444}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--color-background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--color-foreground)}.data-\[state\=active\]\:text-white[data-state=active]{color:var(--color-white)}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-\[\#0d99ff\][data-state=checked]{background-color:#0d99ff}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--color-primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--color-primary-foreground)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--color-accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--color-accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--color-muted-foreground)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--color-input)}@media (min-width:40rem){.sm\:mt-0{margin-top:0}.sm\:max-w-\[600px\]{max-width:600px}.sm\:max-w-\[900px\]{max-width:900px}.sm\:flex-row{flex-direction:row}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:flex{display:flex}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{rotate:180deg}.gg-editor-skin{--ed-bg:#1e1e1e;--ed-panel:#2c2c2c;--ed-panel-raised:#2c2c2c;--ed-surface:#383838;--ed-surface-hover:#444;--ed-line:#ffffff1a;--ed-line-strong:#ffffff29;--ed-accent:#0d99ff;--ed-accent-strong:#0d99ff;--ed-accent-hover:#0c8ce9}.gg-editor-skin .bg-\[\#1e1e1e\]{background-color:var(--ed-bg)}.gg-editor-skin .bg-\[\#2c2c2c\],.gg-editor-skin .bg-\[\#2a2a2a\]{background-color:var(--ed-panel)}.gg-editor-skin .bg-\[\#383838\]{background-color:var(--ed-surface)}.gg-editor-skin .bg-\[\#444444\],.gg-editor-skin .bg-\[\#4a4a4a\],.gg-editor-skin .bg-\[\#5d5d5d\]{background-color:var(--ed-surface-hover)}.gg-editor-skin .hover\:bg-\[\#444444\]:hover,.gg-editor-skin .hover\:bg-\[\#383838\]:hover{background-color:#ffffff14}.gg-editor-skin .hover\:bg-\[\#4a4a4a\]:hover{background-color:var(--ed-surface-hover)}.gg-editor-skin .border-\[\#444444\],.gg-editor-skin .border-\[\#383838\],.gg-editor-skin .border-\[\#2c2c2c\]{border-color:var(--ed-line)}.gg-editor-skin .border-\[\#4a4a4a\],.gg-editor-skin .border-\[\#5d5d5d\]{border-color:var(--ed-line-strong)}.gg-editor-skin .hover\:border-\[\#4a4a4a\]:hover,.gg-editor-skin .hover\:border-\[\#5d5d5d\]:hover{border-color:#0d99ff99}.gg-editor-skin .w-px.bg-\[\#444444\],.gg-editor-skin .h-px.bg-\[\#444444\]{background-color:var(--ed-line)}.gg-editor-skin .bg-\[\#0d99ff\],.gg-editor-skin .bg-blue-500,.gg-editor-skin .bg-blue-600{background-color:var(--ed-accent-strong)}.gg-editor-skin .hover\:bg-\[\#0c8ce9\]:hover,.gg-editor-skin .hover\:bg-blue-600:hover,.gg-editor-skin .hover\:bg-blue-700:hover{background-color:var(--ed-accent-hover)}.gg-editor-skin .text-\[\#0d99ff\],.gg-editor-skin .text-\[\#4fb8ff\],.gg-editor-skin .text-blue-400,.gg-editor-skin .text-blue-500{color:var(--ed-accent)}.gg-editor-skin .border-\[\#0d99ff\],.gg-editor-skin .border-blue-500{border-color:var(--ed-accent)}.gg-editor-skin .ring-\[\#0d99ff\],.gg-editor-skin .ring-blue-500{--tw-ring-color:var(--ed-accent)}.gg-editor-skin .text-gray-300{color:#ffffffd9}.gg-editor-skin .text-gray-400{color:#ffffffb3}.gg-editor-skin .text-gray-500{color:#ffffff73}.gg-editor-skin .rounded{border-radius:.375rem}.gg-editor-skin .shadow-lg,.gg-editor-skin .shadow-xl,.gg-editor-skin .shadow-2xl{box-shadow:0 5px 17px #00000059,0 2px 7px #00000026}.gg-editor-skin input:focus-visible,.gg-editor-skin button:focus-visible,.gg-editor-skin select:focus-visible{outline:2px solid var(--ed-accent);outline-offset:1px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@growgroup/visual-editor",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "HTMLをブラウザ上で直接編集するビジュアルエディタ。スライド(固定サイズ)とWebページ(可変高さ)の両方に使え、保存先はアダプタで差し替えられます。",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"visual-editor",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"scripts": {
|
|
47
47
|
"build:css": "tailwindcss -i ./src/styles/editor.css -o ./dist/editor.css --minify",
|
|
48
48
|
"build": "npm run build:css",
|
|
49
|
+
"prepare": "npm run build",
|
|
49
50
|
"typecheck": "tsc --noEmit",
|
|
50
51
|
"prepublishOnly": "npm run build && npm run typecheck"
|
|
51
52
|
},
|
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* コメントボード(カンバン形式の一覧)の見た目。
|
|
5
|
+
*
|
|
6
|
+
* 右パネル(PptComments)が「いま開いているページのスレッド」を見るのに対し、
|
|
7
|
+
* こちらは「デッキ全体のコメント」を俯瞰する。列=ページ・カード=1スレッド。
|
|
8
|
+
* どのページに指摘が何件残っているかを一望し、ページを行き来せずに
|
|
9
|
+
* 解決・返信・削除まで済ませられる。クライアント指摘の管理画面として使う。
|
|
10
|
+
*
|
|
11
|
+
* ここは純粋な表示。取得も保存もせず、必要なものはすべて props で受け取る。
|
|
12
|
+
* パッケージ内の io に配線済みの版が欲しいときは CommentBoardPanel を使うこと。
|
|
13
|
+
*
|
|
14
|
+
* 操作UIは「渡された分だけ」出す(io の capability と同じ考え方)。
|
|
15
|
+
* onReply を渡さなければ返信欄は出ないし、onDelete が無ければゴミ箱も出ない。
|
|
16
|
+
* 押しても何も起きないボタンを残さないための決まり。
|
|
17
|
+
*
|
|
18
|
+
* 高さは親から与えること —— 列ごとの縦スクロールが `h-full` に依存している。
|
|
19
|
+
*
|
|
20
|
+
* <div className="h-screen"><CommentBoard deck={deck} author="" /></div>
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import { useState } from 'react';
|
|
24
|
+
import { Check, CornerUpLeft, ExternalLink, MapPin, MessageSquare, RotateCcw, Send, Trash2 } from 'lucide-react';
|
|
25
|
+
import type { Deck, SlideComment } from '../../../lib/deck';
|
|
26
|
+
import { PPT_PALETTES, type PptTheme } from '../ppt/PptChrome';
|
|
27
|
+
import { fmtTime, unresolvedCount } from '../ppt/PptComments';
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* アンカー・返信のリンク色。
|
|
31
|
+
*
|
|
32
|
+
* 明るい配色では右パネルと同じ青。暗い配色では明るい青に振る。
|
|
33
|
+
* ボードは一度に何十枚も読む面で、暗い背景 + 解決済の減光(opacity .72)が重なると
|
|
34
|
+
* 右パネルの青(#0F6CBD)では沈んで読めなくなるため。
|
|
35
|
+
*/
|
|
36
|
+
const accentOf = (theme: PptTheme) => (theme === 'dark' ? '#4CA5E8' : '#0F6CBD');
|
|
37
|
+
/** 未解決の橙(Avatarの配色から。解決済はパレットのグレーに落とす) */
|
|
38
|
+
const OPEN_COLOR = '#CA5010';
|
|
39
|
+
|
|
40
|
+
type Filter = 'all' | 'open' | 'resolved';
|
|
41
|
+
|
|
42
|
+
const FILTERS: { value: Filter; label: string }[] = [
|
|
43
|
+
{ value: 'all', label: 'すべて' },
|
|
44
|
+
{ value: 'open', label: '未解決' },
|
|
45
|
+
{ value: 'resolved', label: '解決済' },
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
const excerpt = (text: string, max = 28) => {
|
|
49
|
+
const flat = text.replace(/\s+/g, ' ').trim();
|
|
50
|
+
return flat.length > max ? `${flat.slice(0, max)}…` : flat;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 操作の戻り値。
|
|
55
|
+
* `false` を返したときだけ「失敗」とみなし、書きかけの返信を残す。
|
|
56
|
+
* 何も返さなければ成功扱い(利用側に boolean を強制しない)。
|
|
57
|
+
*/
|
|
58
|
+
type ActionResult = Promise<boolean | void> | boolean | void;
|
|
59
|
+
|
|
60
|
+
export type CommentBoardProps = {
|
|
61
|
+
/** 表示するデッキ。`slides` の並びがそのまま列の並びになる */
|
|
62
|
+
deck: Deck;
|
|
63
|
+
/** 取得中。列の代わりに読み込み中の表示を出す */
|
|
64
|
+
loading?: boolean;
|
|
65
|
+
/** 操作中。ボタンを止める */
|
|
66
|
+
busy?: boolean;
|
|
67
|
+
|
|
68
|
+
/** 投稿者名。返信に使う */
|
|
69
|
+
author: string;
|
|
70
|
+
/** 渡すと名前の入力欄を出す */
|
|
71
|
+
onAuthorChange?: (value: string) => void;
|
|
72
|
+
|
|
73
|
+
/** 解決状態の切り替え。渡さなければトグルを出さない */
|
|
74
|
+
onResolve?: (page: number, commentId: string, resolved: boolean) => ActionResult;
|
|
75
|
+
/** 返信の追加。渡さなければ返信欄を出さない */
|
|
76
|
+
onReply?: (page: number, commentId: string, text: string) => ActionResult;
|
|
77
|
+
/** スレッドの削除。渡さなければゴミ箱を出さない(確認はこの中で取る) */
|
|
78
|
+
onDelete?: (page: number, commentId: string) => ActionResult;
|
|
79
|
+
/** 列ヘッダーの「このページを開く」。渡さなければボタンを出さない */
|
|
80
|
+
onOpenPage?: (page: number) => void;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 配色。既定は light。
|
|
84
|
+
* initialPptTheme() を既定にしない —— localStorage/matchMedia を見るため、
|
|
85
|
+
* 利用側がサーバー描画するとハイドレーションがずれる。
|
|
86
|
+
* OS追従にしたい利用側は initialPptTheme() の結果を渡すこと。
|
|
87
|
+
*/
|
|
88
|
+
theme?: PptTheme;
|
|
89
|
+
/** 外枠に足すclass。高さは親が持つ前提 */
|
|
90
|
+
className?: string;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export function CommentBoard({
|
|
94
|
+
deck,
|
|
95
|
+
loading = false,
|
|
96
|
+
busy = false,
|
|
97
|
+
author,
|
|
98
|
+
onAuthorChange,
|
|
99
|
+
onResolve,
|
|
100
|
+
onReply,
|
|
101
|
+
onDelete,
|
|
102
|
+
onOpenPage,
|
|
103
|
+
theme = 'light',
|
|
104
|
+
className,
|
|
105
|
+
}: CommentBoardProps) {
|
|
106
|
+
const pal = PPT_PALETTES[theme];
|
|
107
|
+
const accent = accentOf(theme);
|
|
108
|
+
|
|
109
|
+
const [filter, setFilter] = useState<Filter>('all');
|
|
110
|
+
const [showEmpty, setShowEmpty] = useState(false);
|
|
111
|
+
|
|
112
|
+
const columns = deck.slides.map((slide, i) => {
|
|
113
|
+
const comments = slide.comments ?? [];
|
|
114
|
+
return {
|
|
115
|
+
page: i + 1,
|
|
116
|
+
title: slide.title || `ページ ${i + 1}`,
|
|
117
|
+
comments,
|
|
118
|
+
open: unresolvedCount(comments),
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
const total = columns.reduce((n, c) => n + c.comments.length, 0);
|
|
123
|
+
const openTotal = columns.reduce((n, c) => n + c.open, 0);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* 絞り込み後の列。既定では中身のある列だけを出す。
|
|
127
|
+
* サマリの数字は絞り込みに連動させない(全体像を見失うため)。
|
|
128
|
+
*/
|
|
129
|
+
const shown = columns
|
|
130
|
+
.map((col) => ({
|
|
131
|
+
...col,
|
|
132
|
+
visible: col.comments.filter((c) =>
|
|
133
|
+
filter === 'all' ? true : filter === 'open' ? !c.resolved : !!c.resolved,
|
|
134
|
+
),
|
|
135
|
+
}))
|
|
136
|
+
.filter((col) => showEmpty || col.visible.length > 0);
|
|
137
|
+
|
|
138
|
+
const tab = (active: boolean) => ({
|
|
139
|
+
backgroundColor: active ? pal.activeBg : 'transparent',
|
|
140
|
+
color: active ? pal.text : pal.sub,
|
|
141
|
+
borderColor: pal.border,
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
return (
|
|
145
|
+
<div
|
|
146
|
+
className={`flex h-full min-h-0 flex-col ${className ?? ''}`}
|
|
147
|
+
style={{ backgroundColor: pal.canvas }}
|
|
148
|
+
>
|
|
149
|
+
{/* 上部バー: サマリ・絞り込み・名前 */}
|
|
150
|
+
<div
|
|
151
|
+
className="flex shrink-0 flex-wrap items-center gap-x-3 gap-y-2 border-b px-3 py-2"
|
|
152
|
+
style={{ backgroundColor: pal.chrome, borderColor: pal.border }}
|
|
153
|
+
>
|
|
154
|
+
<span className="text-[13px] font-medium" style={{ color: pal.text }}>
|
|
155
|
+
コメントボード
|
|
156
|
+
</span>
|
|
157
|
+
<span className="text-[11px]" style={{ color: pal.sub }}>
|
|
158
|
+
総数 {total}
|
|
159
|
+
<span className="px-1">/</span>
|
|
160
|
+
未解決 <span style={{ color: openTotal > 0 ? OPEN_COLOR : pal.sub }}>{openTotal}</span>
|
|
161
|
+
<span className="px-1">/</span>
|
|
162
|
+
解決済 {total - openTotal}
|
|
163
|
+
</span>
|
|
164
|
+
|
|
165
|
+
<div className="flex overflow-hidden rounded border" style={{ borderColor: pal.border }}>
|
|
166
|
+
{FILTERS.map((f) => (
|
|
167
|
+
<button
|
|
168
|
+
key={f.value}
|
|
169
|
+
onClick={() => setFilter(f.value)}
|
|
170
|
+
className="px-2 py-0.5 text-[11px] transition-colors"
|
|
171
|
+
style={tab(filter === f.value)}
|
|
172
|
+
>
|
|
173
|
+
{f.label}
|
|
174
|
+
</button>
|
|
175
|
+
))}
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<button
|
|
179
|
+
onClick={() => setShowEmpty((v) => !v)}
|
|
180
|
+
title="コメントの無いページも列として出す"
|
|
181
|
+
className="rounded border px-2 py-0.5 text-[11px] transition-colors"
|
|
182
|
+
style={tab(showEmpty)}
|
|
183
|
+
>
|
|
184
|
+
すべてのページ
|
|
185
|
+
</button>
|
|
186
|
+
|
|
187
|
+
{onAuthorChange && (
|
|
188
|
+
<input
|
|
189
|
+
value={author}
|
|
190
|
+
onChange={(e) => onAuthorChange(e.target.value)}
|
|
191
|
+
placeholder="名前(記憶されます)"
|
|
192
|
+
className="ml-auto h-6 w-[160px] rounded border px-1.5 text-[11px] outline-none"
|
|
193
|
+
style={{ backgroundColor: pal.control, borderColor: pal.border, color: pal.text }}
|
|
194
|
+
/>
|
|
195
|
+
)}
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
{loading ? (
|
|
199
|
+
<p className="p-4 text-[12px]" style={{ color: pal.sub }}>
|
|
200
|
+
読み込んでいます…
|
|
201
|
+
</p>
|
|
202
|
+
) : shown.length === 0 ? (
|
|
203
|
+
<p className="p-4 text-[12px]" style={{ color: pal.sub }}>
|
|
204
|
+
{total === 0
|
|
205
|
+
? 'まだコメントはありません。エディタでページを開き、要素を選んで投稿すると、ここに並びます。'
|
|
206
|
+
: 'この絞り込みに該当するコメントはありません。'}
|
|
207
|
+
</p>
|
|
208
|
+
) : (
|
|
209
|
+
<div className="min-h-0 flex-1 overflow-x-auto">
|
|
210
|
+
<div className="flex h-full gap-3 p-3">
|
|
211
|
+
{shown.map((col) => (
|
|
212
|
+
<BoardColumn
|
|
213
|
+
key={col.page}
|
|
214
|
+
pal={pal}
|
|
215
|
+
accent={accent}
|
|
216
|
+
page={col.page}
|
|
217
|
+
title={col.title}
|
|
218
|
+
comments={col.visible}
|
|
219
|
+
openCount={col.open}
|
|
220
|
+
totalCount={col.comments.length}
|
|
221
|
+
busy={busy}
|
|
222
|
+
onResolve={onResolve}
|
|
223
|
+
onReply={onReply}
|
|
224
|
+
onDelete={onDelete}
|
|
225
|
+
onOpenPage={onOpenPage}
|
|
226
|
+
/>
|
|
227
|
+
))}
|
|
228
|
+
</div>
|
|
229
|
+
</div>
|
|
230
|
+
)}
|
|
231
|
+
</div>
|
|
232
|
+
);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
type Palette = (typeof PPT_PALETTES)[PptTheme];
|
|
236
|
+
|
|
237
|
+
type CardCommon = {
|
|
238
|
+
pal: Palette;
|
|
239
|
+
accent: string;
|
|
240
|
+
page: number;
|
|
241
|
+
busy: boolean;
|
|
242
|
+
onResolve?: CommentBoardProps['onResolve'];
|
|
243
|
+
onReply?: CommentBoardProps['onReply'];
|
|
244
|
+
onDelete?: CommentBoardProps['onDelete'];
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
/** 1ページ分の列 */
|
|
248
|
+
function BoardColumn({
|
|
249
|
+
pal,
|
|
250
|
+
page,
|
|
251
|
+
title,
|
|
252
|
+
comments,
|
|
253
|
+
openCount,
|
|
254
|
+
totalCount,
|
|
255
|
+
onOpenPage,
|
|
256
|
+
...common
|
|
257
|
+
}: CardCommon & {
|
|
258
|
+
title: string;
|
|
259
|
+
comments: SlideComment[];
|
|
260
|
+
openCount: number;
|
|
261
|
+
totalCount: number;
|
|
262
|
+
onOpenPage?: (page: number) => void;
|
|
263
|
+
}) {
|
|
264
|
+
return (
|
|
265
|
+
<section
|
|
266
|
+
className="flex h-full w-[300px] shrink-0 flex-col rounded-lg border"
|
|
267
|
+
style={{ borderColor: pal.border, backgroundColor: pal.rail }}
|
|
268
|
+
>
|
|
269
|
+
<div className="shrink-0 border-b px-2.5 py-2" style={{ borderColor: pal.border }}>
|
|
270
|
+
<div className="flex items-baseline gap-1.5">
|
|
271
|
+
<span className="text-[11px] tabular-nums" style={{ color: pal.sub }}>
|
|
272
|
+
{String(page).padStart(2, '0')}
|
|
273
|
+
</span>
|
|
274
|
+
<span
|
|
275
|
+
className="min-w-0 flex-1 truncate text-[12.5px] font-medium"
|
|
276
|
+
style={{ color: pal.text }}
|
|
277
|
+
title={title}
|
|
278
|
+
>
|
|
279
|
+
{title}
|
|
280
|
+
</span>
|
|
281
|
+
{onOpenPage && (
|
|
282
|
+
<button
|
|
283
|
+
onClick={() => onOpenPage(page)}
|
|
284
|
+
title="このページを開く"
|
|
285
|
+
className="rounded p-1"
|
|
286
|
+
style={{ color: pal.sub }}
|
|
287
|
+
>
|
|
288
|
+
<ExternalLink className="h-3.5 w-3.5" />
|
|
289
|
+
</button>
|
|
290
|
+
)}
|
|
291
|
+
</div>
|
|
292
|
+
<div className="mt-0.5 text-[10px]" style={{ color: pal.sub }}>
|
|
293
|
+
<span style={{ color: openCount > 0 ? OPEN_COLOR : pal.sub }}>未解決 {openCount}</span>
|
|
294
|
+
<span className="px-1">/</span>全 {totalCount}
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
|
|
298
|
+
<div className="min-h-0 flex-1 space-y-2 overflow-y-auto p-2">
|
|
299
|
+
{comments.length === 0 ? (
|
|
300
|
+
<p className="px-1 pt-1 text-[11px]" style={{ color: pal.sub }}>
|
|
301
|
+
コメントなし
|
|
302
|
+
</p>
|
|
303
|
+
) : (
|
|
304
|
+
comments.map((c) => <BoardCard key={c.id} comment={c} {...common} pal={pal} page={page} />)
|
|
305
|
+
)}
|
|
306
|
+
</div>
|
|
307
|
+
</section>
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* 1スレッドのカード。
|
|
313
|
+
*
|
|
314
|
+
* モジュールの直下に置くこと。親の中で定義すると再描画のたびに
|
|
315
|
+
* 別のコンポーネント扱いになり、返信欄が作り直されて日本語入力が壊れる
|
|
316
|
+
* (PptComments の renderThread に同じ経緯の注意書きがある)。
|
|
317
|
+
*/
|
|
318
|
+
function BoardCard({
|
|
319
|
+
comment,
|
|
320
|
+
pal,
|
|
321
|
+
accent,
|
|
322
|
+
page,
|
|
323
|
+
busy,
|
|
324
|
+
onResolve,
|
|
325
|
+
onReply,
|
|
326
|
+
onDelete,
|
|
327
|
+
}: CardCommon & { comment: SlideComment }) {
|
|
328
|
+
const [expanded, setExpanded] = useState(false);
|
|
329
|
+
const [replyDraft, setReplyDraft] = useState('');
|
|
330
|
+
|
|
331
|
+
const replies = comment.replies ?? [];
|
|
332
|
+
const last = replies[replies.length - 1];
|
|
333
|
+
const open = !comment.resolved;
|
|
334
|
+
|
|
335
|
+
const sendReply = async () => {
|
|
336
|
+
const text = replyDraft.trim();
|
|
337
|
+
if (!text || !onReply) return;
|
|
338
|
+
// 失敗(false)のときは書いたものを残す。消えると戻せない
|
|
339
|
+
const ok = await onReply(page, comment.id, text);
|
|
340
|
+
if (ok !== false) setReplyDraft('');
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
return (
|
|
344
|
+
<div
|
|
345
|
+
className="rounded-lg border p-2.5"
|
|
346
|
+
style={{
|
|
347
|
+
borderColor: open ? OPEN_COLOR : pal.border,
|
|
348
|
+
backgroundColor: pal.control,
|
|
349
|
+
opacity: comment.resolved ? 0.72 : 1,
|
|
350
|
+
}}
|
|
351
|
+
>
|
|
352
|
+
<div className="flex items-center gap-1.5">
|
|
353
|
+
<span
|
|
354
|
+
className="shrink-0 rounded px-1.5 py-0.5 text-[10px] font-bold"
|
|
355
|
+
style={
|
|
356
|
+
open
|
|
357
|
+
? { backgroundColor: OPEN_COLOR, color: '#ffffff' }
|
|
358
|
+
: { backgroundColor: pal.activeBg, color: pal.sub }
|
|
359
|
+
}
|
|
360
|
+
>
|
|
361
|
+
{open ? '未解決' : '解決済'}
|
|
362
|
+
</span>
|
|
363
|
+
<span className="min-w-0 flex-1 truncate text-[11px]" style={{ color: pal.sub }}>
|
|
364
|
+
{comment.author}
|
|
365
|
+
</span>
|
|
366
|
+
<span className="shrink-0 text-[10px]" style={{ color: pal.sub }}>
|
|
367
|
+
{fmtTime(comment.createdAt)}
|
|
368
|
+
</span>
|
|
369
|
+
</div>
|
|
370
|
+
|
|
371
|
+
{/* 何に対する指摘か。要素に紐づいていなければページ全体 */}
|
|
372
|
+
<div
|
|
373
|
+
className="mt-1.5 flex items-center gap-1 text-[10px]"
|
|
374
|
+
style={{ color: comment.anchorSrc ? accent : pal.sub }}
|
|
375
|
+
title={comment.anchorSrc}
|
|
376
|
+
>
|
|
377
|
+
<MapPin className="h-3 w-3 shrink-0" />
|
|
378
|
+
<span className="truncate">
|
|
379
|
+
{comment.anchorSrc ? (comment.anchorLabel ? `「${comment.anchorLabel}」` : '要素に添付') : 'ページ全体'}
|
|
380
|
+
</span>
|
|
381
|
+
</div>
|
|
382
|
+
|
|
383
|
+
{/* 本文。長いものは3行で畳み、クリックで全文と返信を出す */}
|
|
384
|
+
<button
|
|
385
|
+
onClick={() => setExpanded((v) => !v)}
|
|
386
|
+
aria-expanded={expanded}
|
|
387
|
+
className="mt-1.5 block w-full text-left"
|
|
388
|
+
>
|
|
389
|
+
{/*
|
|
390
|
+
畳むときに `block` を併記しない。line-clamp は display:-webkit-box で効くので、
|
|
391
|
+
同じ display 系の block を一緒に当てると打ち消されて3行に収まらない(実際に起きた)。
|
|
392
|
+
*/}
|
|
393
|
+
<span
|
|
394
|
+
className={`whitespace-pre-wrap text-[12.5px] leading-relaxed ${expanded ? 'block' : 'line-clamp-3'}`}
|
|
395
|
+
style={{ color: pal.text }}
|
|
396
|
+
>
|
|
397
|
+
{comment.text}
|
|
398
|
+
</span>
|
|
399
|
+
</button>
|
|
400
|
+
|
|
401
|
+
{!expanded && replies.length > 0 && (
|
|
402
|
+
<p className="mt-1.5 flex items-center gap-1 text-[10px]" style={{ color: pal.sub }}>
|
|
403
|
+
<MessageSquare className="h-3 w-3 shrink-0" />
|
|
404
|
+
<span className="truncate">
|
|
405
|
+
返信{replies.length}件・{last.author}「{excerpt(last.text)}」
|
|
406
|
+
</span>
|
|
407
|
+
</p>
|
|
408
|
+
)}
|
|
409
|
+
|
|
410
|
+
{expanded && (
|
|
411
|
+
<div className="mt-2">
|
|
412
|
+
{replies.map((r) => (
|
|
413
|
+
<div key={r.id} className="mt-2 border-l-2 pl-2.5" style={{ borderColor: pal.border }}>
|
|
414
|
+
<div className="flex items-baseline gap-1.5">
|
|
415
|
+
<span className="truncate text-[11px] font-medium" style={{ color: pal.text }}>
|
|
416
|
+
{r.author}
|
|
417
|
+
</span>
|
|
418
|
+
<span className="shrink-0 text-[10px]" style={{ color: pal.sub }}>
|
|
419
|
+
{fmtTime(r.createdAt)}
|
|
420
|
+
</span>
|
|
421
|
+
</div>
|
|
422
|
+
<p className="mt-1 whitespace-pre-wrap text-[12px] leading-relaxed" style={{ color: pal.text }}>
|
|
423
|
+
{r.text}
|
|
424
|
+
</p>
|
|
425
|
+
</div>
|
|
426
|
+
))}
|
|
427
|
+
|
|
428
|
+
{onReply && (
|
|
429
|
+
<div className="mt-2 flex items-end gap-1.5">
|
|
430
|
+
<textarea
|
|
431
|
+
value={replyDraft}
|
|
432
|
+
onChange={(e) => setReplyDraft(e.target.value)}
|
|
433
|
+
onKeyDown={(e) => {
|
|
434
|
+
if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {
|
|
435
|
+
e.preventDefault();
|
|
436
|
+
void sendReply();
|
|
437
|
+
}
|
|
438
|
+
}}
|
|
439
|
+
rows={2}
|
|
440
|
+
placeholder="返信… (⌘+Enterで送信)"
|
|
441
|
+
className="min-h-[40px] flex-1 resize-none rounded border p-1.5 text-[12px] outline-none"
|
|
442
|
+
style={{ backgroundColor: pal.chrome, borderColor: pal.border, color: pal.text }}
|
|
443
|
+
/>
|
|
444
|
+
<button
|
|
445
|
+
onClick={() => void sendReply()}
|
|
446
|
+
disabled={busy || !replyDraft.trim()}
|
|
447
|
+
title="返信を送信"
|
|
448
|
+
className="rounded p-1.5 disabled:opacity-40"
|
|
449
|
+
style={{ color: accent }}
|
|
450
|
+
>
|
|
451
|
+
<Send className="h-4 w-4" />
|
|
452
|
+
</button>
|
|
453
|
+
</div>
|
|
454
|
+
)}
|
|
455
|
+
</div>
|
|
456
|
+
)}
|
|
457
|
+
|
|
458
|
+
{(onResolve || onReply || onDelete) && (
|
|
459
|
+
<div className="mt-2 flex items-center gap-1 border-t pt-1.5" style={{ borderColor: pal.border }}>
|
|
460
|
+
{onResolve && (
|
|
461
|
+
<button
|
|
462
|
+
onClick={() => void onResolve(page, comment.id, open)}
|
|
463
|
+
disabled={busy}
|
|
464
|
+
title={open ? '解決済みにする' : 'スレッドを再開'}
|
|
465
|
+
className="flex items-center gap-1 rounded px-1 py-0.5 text-[11px] disabled:opacity-40"
|
|
466
|
+
style={{ color: pal.sub }}
|
|
467
|
+
>
|
|
468
|
+
{open ? <Check className="h-3.5 w-3.5" /> : <RotateCcw className="h-3.5 w-3.5" />}
|
|
469
|
+
{open ? '解決' : '再開'}
|
|
470
|
+
</button>
|
|
471
|
+
)}
|
|
472
|
+
|
|
473
|
+
{onReply && !expanded && (
|
|
474
|
+
<button
|
|
475
|
+
onClick={() => setExpanded(true)}
|
|
476
|
+
className="flex items-center gap-1 rounded px-1 py-0.5 text-[11px]"
|
|
477
|
+
style={{ color: accent }}
|
|
478
|
+
>
|
|
479
|
+
<CornerUpLeft className="h-3 w-3" />
|
|
480
|
+
返信
|
|
481
|
+
</button>
|
|
482
|
+
)}
|
|
483
|
+
|
|
484
|
+
{onDelete && (
|
|
485
|
+
<button
|
|
486
|
+
onClick={() => void onDelete(page, comment.id)}
|
|
487
|
+
disabled={busy}
|
|
488
|
+
title="スレッドを削除"
|
|
489
|
+
className="ml-auto rounded p-1 disabled:opacity-40"
|
|
490
|
+
style={{ color: pal.sub }}
|
|
491
|
+
>
|
|
492
|
+
<Trash2 className="h-3.5 w-3.5" />
|
|
493
|
+
</button>
|
|
494
|
+
)}
|
|
495
|
+
</div>
|
|
496
|
+
)}
|
|
497
|
+
</div>
|
|
498
|
+
);
|
|
499
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* コメントボードの配線済み版。props なしで置ける。
|
|
5
|
+
*
|
|
6
|
+
* <div className="h-screen"><CommentBoardPanel /></div>
|
|
7
|
+
*
|
|
8
|
+
* 取得は useDeck()、更新は commentAction() で、右パネル(PptComments)と同じ道を通る。
|
|
9
|
+
* 独自のAPIは持たないので、利用側は setEditorIO を渡してあれば何もしなくてよい。
|
|
10
|
+
* 名前も右パネルと同じ置き場(localStorage)を使うので、どちらで入れても引き継がれる。
|
|
11
|
+
*
|
|
12
|
+
* 見た目は CommentBoard(純UI)が持つ。ここは「置き場との配線」だけを持つ。
|
|
13
|
+
* エディタの外に単独で置ける(EditorProvider は要らない)。
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { useCallback, useState } from 'react';
|
|
17
|
+
import { useDeck, refreshDeck } from '../../../components/viewer/useDeck';
|
|
18
|
+
import { commentAction } from '../../../lib/deck';
|
|
19
|
+
import { can } from '../../../io';
|
|
20
|
+
import { flushAutoSave } from '../../autosave';
|
|
21
|
+
import type { PptTheme } from '../ppt/PptChrome';
|
|
22
|
+
import { loadAuthor, storeAuthor } from '../ppt/PptComments';
|
|
23
|
+
import { CommentBoard } from './CommentBoard';
|
|
24
|
+
|
|
25
|
+
export type CommentBoardPanelProps = {
|
|
26
|
+
/** 配色。既定は light(サーバー描画でずれないよう固定値にしている) */
|
|
27
|
+
theme?: PptTheme;
|
|
28
|
+
/**
|
|
29
|
+
* 列ヘッダーの「このページを開く」。
|
|
30
|
+
* 既定はエディタのページ遷移(#/edit/N)。
|
|
31
|
+
* 独自のルーティングを持つ利用側(例: /edit?path=…)はここで差し替える。
|
|
32
|
+
*/
|
|
33
|
+
onOpenPage?: (page: number) => void;
|
|
34
|
+
/** 外枠に足すclass。高さは親が持つ前提 */
|
|
35
|
+
className?: string;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export function CommentBoardPanel({ theme = 'light', onOpenPage, className }: CommentBoardPanelProps) {
|
|
39
|
+
const deck = useDeck();
|
|
40
|
+
/** 置き場が commentAction を渡していなければ、操作UIは出さず閲覧だけにする */
|
|
41
|
+
const editable = can('commentAction');
|
|
42
|
+
|
|
43
|
+
const [author, setAuthor] = useState(loadAuthor);
|
|
44
|
+
const [busy, setBusy] = useState(false);
|
|
45
|
+
|
|
46
|
+
const saveAuthor = useCallback((value: string) => {
|
|
47
|
+
setAuthor(value);
|
|
48
|
+
storeAuthor(value);
|
|
49
|
+
}, []);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* コメント操作の共通処理(右パネルの run と同じ形)。
|
|
53
|
+
* 違いは戻り値だけ —— 成否を返し、成功したときだけ入力欄を空にする。
|
|
54
|
+
* 失敗しても消えると、書いた返信が飛んで戻せない。
|
|
55
|
+
*/
|
|
56
|
+
const run = useCallback(
|
|
57
|
+
async (fn: () => Promise<unknown>): Promise<boolean> => {
|
|
58
|
+
if (busy) return false;
|
|
59
|
+
setBusy(true);
|
|
60
|
+
try {
|
|
61
|
+
await fn();
|
|
62
|
+
await refreshDeck();
|
|
63
|
+
return true;
|
|
64
|
+
} catch (e) {
|
|
65
|
+
window.alert(`コメント操作に失敗しました: ${String(e).slice(0, 120)}`);
|
|
66
|
+
return false;
|
|
67
|
+
} finally {
|
|
68
|
+
setBusy(false);
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
[busy],
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
const handleResolve = useCallback(
|
|
75
|
+
(page: number, commentId: string, resolved: boolean) =>
|
|
76
|
+
run(() => commentAction(page, { action: 'resolve', commentId, resolved })),
|
|
77
|
+
[run],
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
const handleReply = useCallback(
|
|
81
|
+
(page: number, commentId: string, text: string) =>
|
|
82
|
+
run(() =>
|
|
83
|
+
commentAction(page, {
|
|
84
|
+
action: 'reply',
|
|
85
|
+
commentId,
|
|
86
|
+
author: author.trim() || 'ゲスト',
|
|
87
|
+
text,
|
|
88
|
+
}),
|
|
89
|
+
),
|
|
90
|
+
[run, author],
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
const handleDelete = useCallback(
|
|
94
|
+
async (page: number, commentId: string) => {
|
|
95
|
+
if (!window.confirm('このコメントスレッドを削除しますか?')) return false;
|
|
96
|
+
return run(() => commentAction(page, { action: 'delete', commentId }));
|
|
97
|
+
},
|
|
98
|
+
[run],
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const handleOpenPage = useCallback(
|
|
102
|
+
async (page: number) => {
|
|
103
|
+
if (onOpenPage) {
|
|
104
|
+
onOpenPage(page);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// 既定はサムネイル(PptThumbnails)と同じ導線。
|
|
108
|
+
// 未保存があれば保存してから移り、保存できなかったときだけ確認に落とす
|
|
109
|
+
if (!(await flushAutoSave())) {
|
|
110
|
+
if (!window.confirm('保存に失敗しました。変更を破棄して移動しますか?')) return;
|
|
111
|
+
}
|
|
112
|
+
window.location.hash = `#/edit/${page}`;
|
|
113
|
+
},
|
|
114
|
+
[onOpenPage],
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<CommentBoard
|
|
119
|
+
deck={deck}
|
|
120
|
+
loading={!deck.loaded}
|
|
121
|
+
busy={busy}
|
|
122
|
+
author={author}
|
|
123
|
+
theme={theme}
|
|
124
|
+
className={className}
|
|
125
|
+
onOpenPage={(page) => void handleOpenPage(page)}
|
|
126
|
+
/* 操作は commentAction がある場合だけ渡す。無ければUIごと出ない */
|
|
127
|
+
onAuthorChange={editable ? saveAuthor : undefined}
|
|
128
|
+
onResolve={editable ? handleResolve : undefined}
|
|
129
|
+
onReply={editable ? handleReply : undefined}
|
|
130
|
+
onDelete={editable ? handleDelete : undefined}
|
|
131
|
+
/>
|
|
132
|
+
);
|
|
133
|
+
}
|
|
@@ -104,12 +104,19 @@ export function loadAuthor(): string {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
/** 名前を記憶する。右パネルとコメントボードで同じ置き場を使う */
|
|
108
|
+
export function storeAuthor(value: string): void {
|
|
109
|
+
try {
|
|
110
|
+
localStorage.setItem(AUTHOR_KEY, value);
|
|
111
|
+
} catch { /* 記憶できなくても続行 */ }
|
|
112
|
+
}
|
|
113
|
+
|
|
107
114
|
/** 未解決コメント数(サムネイルのバッジ用) */
|
|
108
115
|
export function unresolvedCount(comments?: SlideComment[]): number {
|
|
109
116
|
return (comments ?? []).filter((c) => !c.resolved).length;
|
|
110
117
|
}
|
|
111
118
|
|
|
112
|
-
const fmtTime = (iso: string) => {
|
|
119
|
+
export const fmtTime = (iso: string) => {
|
|
113
120
|
const d = new Date(iso);
|
|
114
121
|
if (Number.isNaN(d.getTime())) return '';
|
|
115
122
|
const pad = (n: number) => String(n).padStart(2, '0');
|
|
@@ -253,9 +260,7 @@ export function PptCommentsPanel({
|
|
|
253
260
|
|
|
254
261
|
const saveAuthor = (v: string) => {
|
|
255
262
|
setAuthor(v);
|
|
256
|
-
|
|
257
|
-
localStorage.setItem(AUTHOR_KEY, v);
|
|
258
|
-
} catch { /* 記憶できなくても続行 */ }
|
|
263
|
+
storeAuthor(v);
|
|
259
264
|
};
|
|
260
265
|
|
|
261
266
|
/**
|
|
@@ -394,8 +399,20 @@ export function PptCommentsPanel({
|
|
|
394
399
|
const open = comments.filter((c) => !c.resolved);
|
|
395
400
|
const resolved = comments.filter((c) => c.resolved);
|
|
396
401
|
|
|
397
|
-
|
|
402
|
+
/**
|
|
403
|
+
* 1スレッドの見た目。
|
|
404
|
+
*
|
|
405
|
+
* ⚠️ ここをコンポーネント(`const Thread = () => …` を JSX で `<Thread />` と書く形)
|
|
406
|
+
* にしてはいけない。パネルが再描画されるたびに関数の実体が変わり、Reactが
|
|
407
|
+
* 「別のコンポーネント」と見なしてスレッドごと作り直す。
|
|
408
|
+
* その結果、返信欄のテキストエリアが1打鍵ごとに作り直され、
|
|
409
|
+
* ・キャレットが先頭に戻るため、文字が右から左に入るように見える
|
|
410
|
+
* ・日本語入力の変換が1文字ずつ確定してしまう
|
|
411
|
+
* という状態になる(実際に起きた)。ただの関数として呼び出す形にしておく。
|
|
412
|
+
*/
|
|
413
|
+
const renderThread = (c: SlideComment) => (
|
|
398
414
|
<div
|
|
415
|
+
key={c.id}
|
|
399
416
|
ref={(el) => { threadRefs.current[c.id] = el; }}
|
|
400
417
|
className="rounded-lg border p-2.5"
|
|
401
418
|
style={{
|
|
@@ -662,7 +679,7 @@ export function PptCommentsPanel({
|
|
|
662
679
|
まだコメントはありません。要素を選択して投稿すると、その要素に吹き出しが付きます。
|
|
663
680
|
</p>
|
|
664
681
|
)}
|
|
665
|
-
{open.map((c) =>
|
|
682
|
+
{open.map((c) => renderThread(c))}
|
|
666
683
|
|
|
667
684
|
{resolved.length > 0 && (
|
|
668
685
|
<button
|
|
@@ -673,7 +690,7 @@ export function PptCommentsPanel({
|
|
|
673
690
|
{showResolved ? '▾' : '▸'} 解決済み ({resolved.length})
|
|
674
691
|
</button>
|
|
675
692
|
)}
|
|
676
|
-
{showResolved && resolved.map((c) =>
|
|
693
|
+
{showResolved && resolved.map((c) => renderThread(c))}
|
|
677
694
|
</div>
|
|
678
695
|
</div>
|
|
679
696
|
);
|
package/src/index.ts
CHANGED
|
@@ -27,6 +27,21 @@ export { WEBPAGE_WIDTH, WEBPAGE_MIN_HEIGHT, SLIDE_WIDTH, SLIDE_HEIGHT, BREAKPOIN
|
|
|
27
27
|
|
|
28
28
|
export { registerAutoSaveFlush, flushAutoSave } from "./editor/autosave";
|
|
29
29
|
|
|
30
|
+
/**
|
|
31
|
+
* コメントの一覧(カンバン)。エディタとは別の画面に単独で置ける。
|
|
32
|
+
*
|
|
33
|
+
* - CommentBoardPanel … 配線済み。setEditorIO さえ渡してあれば props なしで動く
|
|
34
|
+
* - CommentBoard … 純UI。デッキも操作も自分で用意したい場合はこちら
|
|
35
|
+
*/
|
|
36
|
+
export { CommentBoardPanel } from "./editor/components/comments/CommentBoardPanel";
|
|
37
|
+
export type { CommentBoardPanelProps } from "./editor/components/comments/CommentBoardPanel";
|
|
38
|
+
export { CommentBoard } from "./editor/components/comments/CommentBoard";
|
|
39
|
+
export type { CommentBoardProps } from "./editor/components/comments/CommentBoard";
|
|
40
|
+
|
|
41
|
+
/** 配色。CommentBoard の theme に渡す(initialPptTheme はOS設定に追従する) */
|
|
42
|
+
export { initialPptTheme } from "./editor/components/ppt/PptChrome";
|
|
43
|
+
export type { PptTheme } from "./editor/components/ppt/PptChrome";
|
|
44
|
+
|
|
30
45
|
/** 置き場との境界。利用側が起動時に1回渡す */
|
|
31
46
|
export { setEditorIO, io, can } from "./io";
|
|
32
47
|
export type {
|