@beyondcorp/beyond-ui 1.4.6 → 1.4.8

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.
@@ -23,7 +23,7 @@ const ForgotPasswordForm = ({ onReset, className, isLoading, successMessage, err
23
23
  setStatus("error");
24
24
  }
25
25
  };
26
- return (jsxs("form", { onSubmit: handleSubmit(onSubmit), className: cn("space-y-6", className), autoComplete: "off", noValidate: true, children: [jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", htmlFor: "reset-email", children: "Email Address" }), jsx(Input, { id: "reset-email", type: "email", autoComplete: "email", placeholder: "you@email.com", ...register("email"), disabled: isSubmitting || isLoading, variant: errors.email ? "error" : "default" }), errors.email && (jsx("div", { className: "text-danger mt-1 text-xs", children: errors.email.message }))] }), jsx(Button, { type: "submit", variant: "primary", disabled: isSubmitting || isLoading, className: "w-full", children: "Send Reset Link" }), status === "success" && (jsx("div", { className: "text-success-700 bg-success-50 border border-success-200 p-2 text-sm rounded text-center", children: successMessage || "A reset link was sent if the address exists in our system." })), status === "error" && (jsx("div", { className: "text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center", children: errorMessage || "There was an error submitting. Please try again." }))] }));
26
+ return (jsxs("form", { onSubmit: handleSubmit(onSubmit), className: cn("space-y-6", className), autoComplete: "off", noValidate: true, children: [jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1", htmlFor: "reset-email", children: "Email Address" }), jsx(Input, { id: "reset-email", type: "email", autoComplete: "email", placeholder: "you@email.com", className: "text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500", ...register("email"), disabled: isSubmitting || isLoading, variant: errors.email ? "error" : "default" }), errors.email && (jsx("div", { className: "text-danger mt-1 text-xs", children: errors.email.message }))] }), jsx(Button, { type: "submit", variant: "primary", disabled: isSubmitting || isLoading, className: "w-full", children: "Send Reset Link" }), status === "success" && (jsx("div", { className: "text-success-700 bg-success-50 border border-success-200 p-2 text-sm rounded text-center", children: successMessage || "A reset link was sent if the address exists in our system." })), status === "error" && (jsx("div", { className: "text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center", children: errorMessage || "There was an error submitting. Please try again." }))] }));
27
27
  };
28
28
 
29
29
  export { ForgotPasswordForm };
@@ -1 +1 @@
1
- {"version":3,"file":"ForgotPasswordForm.js","sources":["../../../src/components/Auth/ForgotPasswordForm.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { z } from \"zod\";\nimport { Input } from \"../Input\";\nimport { Button } from \"../Button\";\nimport { cn } from \"../../utils/cn\";\n\nconst schema = z.object({\n email: z.string().min(1, \"Email is required\").email(\"Enter a valid email\")\n});\n\ntype ForgotPasswordFormData = z.infer<typeof schema>;\n\nexport interface ForgotPasswordFormProps {\n onReset?: (email: string) => Promise<void> | void;\n className?: string;\n isLoading?: boolean;\n successMessage?: string;\n errorMessage?: string;\n}\n\nexport const ForgotPasswordForm: React.FC<ForgotPasswordFormProps> = ({\n onReset,\n className,\n isLoading,\n successMessage,\n errorMessage\n}) => {\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting, isSubmitSuccessful }\n } = useForm<ForgotPasswordFormData>({ resolver: zodResolver(schema) });\n\n const [status, setStatus] = React.useState<\"idle\" | \"success\" | \"error\">(\"idle\");\n\n const onSubmit = async (data: ForgotPasswordFormData) => {\n setStatus(\"idle\");\n try {\n await onReset?.(data.email);\n setStatus(\"success\");\n } catch (e) {\n setStatus(\"error\");\n }\n };\n\n return (\n <form\n onSubmit={handleSubmit(onSubmit)}\n className={cn(\"space-y-6\", className)}\n autoComplete=\"off\"\n noValidate\n >\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\" htmlFor=\"reset-email\">\n Email Address\n </label>\n <Input\n id=\"reset-email\"\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"you@email.com\"\n {...register(\"email\")}\n disabled={isSubmitting || isLoading}\n variant={errors.email ? \"error\" : \"default\"}\n />\n {errors.email && (\n <div className=\"text-danger mt-1 text-xs\">{errors.email.message}</div>\n )}\n </div>\n <Button\n type=\"submit\"\n variant=\"primary\"\n disabled={isSubmitting || isLoading}\n className=\"w-full\"\n >\n Send Reset Link\n </Button>\n {status === \"success\" && (\n <div className=\"text-success-700 bg-success-50 border border-success-200 p-2 text-sm rounded text-center\">\n {successMessage || \"A reset link was sent if the address exists in our system.\"}\n </div>\n )}\n {status === \"error\" && (\n <div className=\"text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center\">\n {errorMessage || \"There was an error submitting. Please try again.\"}\n </div>\n )}\n </form>\n );\n};"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;AAQA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACtB,IAAA,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,KAAK,CAAC,qBAAqB;AAC1E,CAAA,CAAC;AAYK,MAAM,kBAAkB,GAAsC,CAAC,EACpE,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACb,KAAI;IACH,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,EACxD,GAAG,OAAO,CAAyB,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAEtE,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA+B,MAAM,CAAC;AAEhF,IAAA,MAAM,QAAQ,GAAG,OAAO,IAA4B,KAAI;QACtD,SAAS,CAAC,MAAM,CAAC;AACjB,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,SAAS,CAAC,SAAS,CAAC;QACtB;QAAE,OAAO,CAAC,EAAE;YACV,SAAS,CAAC,OAAO,CAAC;QACpB;AACF,IAAA,CAAC;AAED,IAAA,QACEA,IAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EACrC,YAAY,EAAC,KAAK,EAClB,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAEVA,yBACEC,GAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,iEAAiE,EAAC,OAAO,EAAC,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,CAEhG,EACRA,GAAA,CAAC,KAAK,EAAA,EACJ,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,OAAO,EACpB,WAAW,EAAC,eAAe,EAAA,GACvB,QAAQ,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,YAAY,IAAI,SAAS,EACnC,OAAO,EAAE,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,EAAA,CAC3C,EACD,MAAM,CAAC,KAAK,KACXA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAA,CAAO,CACvE,CAAA,EAAA,CACG,EACNA,GAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,YAAY,IAAI,SAAS,EACnC,SAAS,EAAC,QAAQ,EAAA,QAAA,EAAA,iBAAA,EAAA,CAGX,EACR,MAAM,KAAK,SAAS,KACnBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0FAA0F,EAAA,QAAA,EACtG,cAAc,IAAI,4DAA4D,EAAA,CAC3E,CACP,EACA,MAAM,KAAK,OAAO,KACjBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,uFAAuF,EAAA,QAAA,EACnG,YAAY,IAAI,kDAAkD,EAAA,CAC/D,CACP,CAAA,EAAA,CACI;AAEX;;;;"}
1
+ {"version":3,"file":"ForgotPasswordForm.js","sources":["../../../src/components/Auth/ForgotPasswordForm.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { z } from \"zod\";\nimport { Input } from \"../Input\";\nimport { Button } from \"../Button\";\nimport { cn } from \"../../utils/cn\";\n\nconst schema = z.object({\n email: z.string().min(1, \"Email is required\").email(\"Enter a valid email\")\n});\n\ntype ForgotPasswordFormData = z.infer<typeof schema>;\n\nexport interface ForgotPasswordFormProps {\n onReset?: (email: string) => Promise<void> | void;\n className?: string;\n isLoading?: boolean;\n successMessage?: string;\n errorMessage?: string;\n}\n\nexport const ForgotPasswordForm: React.FC<ForgotPasswordFormProps> = ({\n onReset,\n className,\n isLoading,\n successMessage,\n errorMessage\n}) => {\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting, isSubmitSuccessful }\n } = useForm<ForgotPasswordFormData>({ resolver: zodResolver(schema) });\n\n const [status, setStatus] = React.useState<\"idle\" | \"success\" | \"error\">(\"idle\");\n\n const onSubmit = async (data: ForgotPasswordFormData) => {\n setStatus(\"idle\");\n try {\n await onReset?.(data.email);\n setStatus(\"success\");\n } catch (e) {\n setStatus(\"error\");\n }\n };\n\n return (\n <form\n onSubmit={handleSubmit(onSubmit)}\n className={cn(\"space-y-6\", className)}\n autoComplete=\"off\"\n noValidate\n >\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1\" htmlFor=\"reset-email\">\n Email Address\n </label>\n <Input\n id=\"reset-email\"\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"you@email.com\"\n className=\"text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500\"\n {...register(\"email\")}\n disabled={isSubmitting || isLoading}\n variant={errors.email ? \"error\" : \"default\"}\n />\n {errors.email && (\n <div className=\"text-danger mt-1 text-xs\">{errors.email.message}</div>\n )}\n </div>\n <Button\n type=\"submit\"\n variant=\"primary\"\n disabled={isSubmitting || isLoading}\n className=\"w-full\"\n >\n Send Reset Link\n </Button>\n {status === \"success\" && (\n <div className=\"text-success-700 bg-success-50 border border-success-200 p-2 text-sm rounded text-center\">\n {successMessage || \"A reset link was sent if the address exists in our system.\"}\n </div>\n )}\n {status === \"error\" && (\n <div className=\"text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center\">\n {errorMessage || \"There was an error submitting. Please try again.\"}\n </div>\n )}\n </form>\n );\n};"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;AAQA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;AACtB,IAAA,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,KAAK,CAAC,qBAAqB;AAC1E,CAAA,CAAC;AAYK,MAAM,kBAAkB,GAAsC,CAAC,EACpE,OAAO,EACP,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACb,KAAI;IACH,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,EACxD,GAAG,OAAO,CAAyB,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAEtE,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA+B,MAAM,CAAC;AAEhF,IAAA,MAAM,QAAQ,GAAG,OAAO,IAA4B,KAAI;QACtD,SAAS,CAAC,MAAM,CAAC;AACjB,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,SAAS,CAAC,SAAS,CAAC;QACtB;QAAE,OAAO,CAAC,EAAE;YACV,SAAS,CAAC,OAAO,CAAC;QACpB;AACF,IAAA,CAAC;AAED,IAAA,QACEA,IAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAChC,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EACrC,YAAY,EAAC,KAAK,EAClB,UAAU,EAAA,IAAA,EAAA,QAAA,EAAA,CAEVA,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEC,eAAO,SAAS,EAAC,iEAAiE,EAAC,OAAO,EAAC,aAAa,EAAA,QAAA,EAAA,eAAA,EAAA,CAEhG,EACRA,IAAC,KAAK,EAAA,EACJ,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,OAAO,EACpB,WAAW,EAAC,eAAe,EACzB,SAAS,EAAC,uJAAuJ,EAAA,GAC/J,QAAQ,CAAC,OAAO,CAAC,EACrB,QAAQ,EAAE,YAAY,IAAI,SAAS,EACnC,OAAO,EAAE,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,EAAA,CAC3C,EACD,MAAM,CAAC,KAAK,KACXA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,EAAA,CAAO,CACvE,IACG,EACNA,GAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,YAAY,IAAI,SAAS,EACnC,SAAS,EAAC,QAAQ,EAAA,QAAA,EAAA,iBAAA,EAAA,CAGX,EACR,MAAM,KAAK,SAAS,KACnBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,0FAA0F,EAAA,QAAA,EACtG,cAAc,IAAI,4DAA4D,EAAA,CAC3E,CACP,EACA,MAAM,KAAK,OAAO,KACjBA,aAAK,SAAS,EAAC,uFAAuF,EAAA,QAAA,EACnG,YAAY,IAAI,kDAAkD,GAC/D,CACP,CAAA,EAAA,CACI;AAEX;;;;"}
@@ -36,7 +36,7 @@ const LoginForm = ({ className, onSubmit, isLoading, error, onForgotPassword, on
36
36
  const togglePasswordVisibility = () => {
37
37
  setShowPassword(prev => !prev);
38
38
  };
39
- return (jsx("div", { className: cn('w-full max-w-md mx-auto', className), children: jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8", children: [jsxs("div", { className: "text-center mb-8", children: [jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-white mb-2", children: "Welcome Back" }), jsx("p", { className: "text-gray-600 dark:text-gray-400", children: "Sign in to your account to continue" })] }), error && (jsxs(Alert, { variant: "danger", className: "mb-6", children: [jsx(AlertCircle, { className: "h-4 w-4" }), jsx(AlertDescription, { children: error })] })), jsxs("form", { onSubmit: handleSubmit(handleFormSubmit), className: "space-y-6", children: [jsxs("div", { children: [jsx("label", { htmlFor: "email", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Email Address" }), jsxs("div", { className: "relative", children: [jsx(Mail, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "email", type: "email", placeholder: "Enter your email", className: cn('pl-10', errors.email && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.email ? 'true' : 'false', "aria-describedby": errors.email ? 'email-error' : undefined, ...register('email') })] }), errors.email && (jsx("p", { id: "email-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.email.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "password", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "password", type: showPassword ? 'text' : 'password', placeholder: "Enter your password", className: cn('pl-10 pr-10', errors.password && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.password ? 'true' : 'false', "aria-describedby": errors.password ? 'password-error' : undefined, ...register('password') }), jsx("button", { type: "button", onClick: togglePasswordVisibility, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", "aria-label": showPassword ? 'Hide password' : 'Show password', children: showPassword ? (jsx(EyeOff, { className: "h-5 w-5" })) : (jsx(Eye, { className: "h-5 w-5" })) })] }), errors.password && (jsx("p", { id: "password-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.password.message }))] }), jsxs("div", { className: "flex items-center justify-between", children: [jsxs("label", { className: "flex items-center", children: [jsx(Checkbox, { ...register('rememberMe') }), jsx("span", { className: "ml-2 text-sm text-gray-600 dark:text-gray-400", children: "Remember me" })] }), jsx("button", { type: "button", onClick: onForgotPassword, className: "text-sm text-primary-600 hover:text-primary-500 font-medium", children: "Forgot password?" })] }), jsx(Button, { type: "submit", variant: "primary", className: "w-full", disabled: isSubmitting || isLoading, children: isSubmitting || isLoading ? (jsxs(Fragment, { children: [jsx(Spinner, { size: "sm", className: "mr-2" }), "Signing in..."] })) : ('Sign In') })] }), jsxs("div", { className: "mt-6 p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg", children: [jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2 font-medium", children: "Demo Credentials:" }), jsxs("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["Email: admin@example.com", jsx("br", {}), "Password: Password123!"] })] }), jsx("div", { className: "mt-6 text-center", children: jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Don't have an account?", ' ', jsx("button", { type: "button", onClick: onSignupClick, className: "text-primary-600 hover:text-primary-500 font-medium", children: "Sign up" })] }) })] }) }));
39
+ return (jsx("div", { className: cn('w-full max-w-md mx-auto', className), children: jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8", children: [jsxs("div", { className: "text-center mb-8", children: [jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-white mb-2", children: "Welcome Back" }), jsx("p", { className: "text-gray-600 dark:text-gray-400", children: "Sign in to your account to continue" })] }), error && (jsxs(Alert, { variant: "danger", className: "mb-6", children: [jsx(AlertCircle, { className: "h-4 w-4" }), jsx(AlertDescription, { children: error })] })), jsxs("form", { onSubmit: handleSubmit(handleFormSubmit), className: "space-y-6", children: [jsxs("div", { children: [jsx("label", { htmlFor: "email", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Email Address" }), jsxs("div", { className: "relative", children: [jsx(Mail, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "email", type: "email", placeholder: "Enter your email", className: cn('pl-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500', errors.email && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.email ? 'true' : 'false', "aria-describedby": errors.email ? 'email-error' : undefined, ...register('email') })] }), errors.email && (jsx("p", { id: "email-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.email.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "password", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "password", type: showPassword ? 'text' : 'password', placeholder: "Enter your password", className: cn('pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500', errors.password && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.password ? 'true' : 'false', "aria-describedby": errors.password ? 'password-error' : undefined, ...register('password') }), jsx("button", { type: "button", onClick: togglePasswordVisibility, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", "aria-label": showPassword ? 'Hide password' : 'Show password', children: showPassword ? (jsx(EyeOff, { className: "h-5 w-5" })) : (jsx(Eye, { className: "h-5 w-5" })) })] }), errors.password && (jsx("p", { id: "password-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.password.message }))] }), jsxs("div", { className: "flex items-center justify-between", children: [jsxs("label", { className: "flex items-center", children: [jsx(Checkbox, { ...register('rememberMe') }), jsx("span", { className: "ml-2 text-sm text-gray-600 dark:text-gray-400", children: "Remember me" })] }), jsx("button", { type: "button", onClick: onForgotPassword, className: "text-sm text-primary-600 hover:text-primary-500 font-medium", children: "Forgot password?" })] }), jsx(Button, { type: "submit", variant: "primary", className: "w-full", disabled: isSubmitting || isLoading, children: isSubmitting || isLoading ? (jsxs(Fragment, { children: [jsx(Spinner, { size: "sm", className: "mr-2" }), "Signing in..."] })) : ('Sign In') })] }), jsxs("div", { className: "mt-6 p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg", children: [jsx("p", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2 font-medium", children: "Demo Credentials:" }), jsxs("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["Email: admin@example.com", jsx("br", {}), "Password: Password123!"] })] }), jsx("div", { className: "mt-6 text-center", children: jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Don't have an account?", ' ', jsx("button", { type: "button", onClick: onSignupClick, className: "text-primary-600 hover:text-primary-500 font-medium", children: "Sign up" })] }) })] }) }));
40
40
  };
41
41
 
42
42
  export { LoginForm };
@@ -1 +1 @@
1
- {"version":3,"file":"LoginForm.js","sources":["../../../src/components/Auth/LoginForm.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { Eye, EyeOff, Mail, Lock, AlertCircle } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport { Input } from '../Input';\nimport { Checkbox } from '../Checkbox';\nimport { Alert, AlertDescription } from '../Alert';\nimport { Spinner } from '../Spinner';\nimport { loginSchema, type LoginFormData } from '../../utils/validation';\n\ninterface LoginFormProps {\n className?: string;\n onSubmit: (data: LoginFormData) => Promise<void>;\n isLoading?: boolean;\n error?: string | null;\n onForgotPassword?: () => void;\n onSignupClick?: () => void;\n}\n\n/**\n * LoginForm component with validation and accessibility features\n */\nexport const LoginForm: React.FC<LoginFormProps> = ({\n className,\n onSubmit,\n isLoading,\n error,\n onForgotPassword,\n onSignupClick,\n}) => {\n const [showPassword, setShowPassword] = useState(false);\n\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting },\n reset,\n } = useForm<LoginFormData>({\n resolver: zodResolver(loginSchema),\n defaultValues: {\n email: '',\n password: '',\n rememberMe: false,\n },\n });\n\n const handleFormSubmit = async (data: LoginFormData) => {\n try {\n await onSubmit(data);\n reset();\n } catch (err) {\n console.error('Login failed:', err);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n };\n\n return (\n <div className={cn('w-full max-w-md mx-auto', className)}>\n <div className=\"bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8\">\n {/* Header */}\n <div className=\"text-center mb-8\">\n <h1 className=\"text-2xl font-bold text-gray-900 dark:text-white mb-2\">\n Welcome Back\n </h1>\n <p className=\"text-gray-600 dark:text-gray-400\">\n Sign in to your account to continue\n </p>\n </div>\n\n {/* Error Alert */}\n {error && (\n <Alert variant=\"danger\" className=\"mb-6\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Login Form */}\n <form onSubmit={handleSubmit(handleFormSubmit)} className=\"space-y-6\">\n {/* Email Field */}\n <div>\n <label\n htmlFor=\"email\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Email Address\n </label>\n <div className=\"relative\">\n <Mail className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"email\"\n type=\"email\"\n placeholder=\"Enter your email\"\n className={cn(\n 'pl-10',\n errors.email && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.email ? 'true' : 'false'}\n aria-describedby={errors.email ? 'email-error' : undefined}\n {...register('email')}\n />\n </div>\n {errors.email && (\n <p\n id=\"email-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.email.message}\n </p>\n )}\n </div>\n\n {/* Password Field */}\n <div>\n <label\n htmlFor=\"password\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"password\"\n type={showPassword ? 'text' : 'password'}\n placeholder=\"Enter your password\"\n className={cn(\n 'pl-10 pr-10',\n errors.password && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.password ? 'true' : 'false'}\n aria-describedby={errors.password ? 'password-error' : undefined}\n {...register('password')}\n />\n <button\n type=\"button\"\n onClick={togglePasswordVisibility}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n >\n {showPassword ? (\n <EyeOff className=\"h-5 w-5\" />\n ) : (\n <Eye className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n {errors.password && (\n <p\n id=\"password-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.password.message}\n </p>\n )}\n </div>\n\n {/* Remember Me & Forgot Password */}\n <div className=\"flex items-center justify-between\">\n <label className=\"flex items-center\">\n <Checkbox {...register('rememberMe')} />\n <span className=\"ml-2 text-sm text-gray-600 dark:text-gray-400\">Remember me</span>\n </label>\n <button\n type=\"button\"\n onClick={onForgotPassword}\n className=\"text-sm text-primary-600 hover:text-primary-500 font-medium\"\n >\n Forgot password?\n </button>\n </div>\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n variant=\"primary\"\n className=\"w-full\"\n disabled={isSubmitting || isLoading}\n >\n {isSubmitting || isLoading ? (\n <>\n <Spinner size=\"sm\" className=\"mr-2\" />\n Signing in...\n </>\n ) : (\n 'Sign In'\n )}\n </Button>\n </form>\n\n {/* Demo Credentials */}\n <div className=\"mt-6 p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg\">\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-2 font-medium\">Demo Credentials:</p>\n <p className=\"text-xs text-gray-500 dark:text-gray-400\">\n Email: admin@example.com<br />\n Password: Password123!\n </p>\n </div>\n\n {/* Sign Up Link */}\n <div className=\"mt-6 text-center\">\n <p className=\"text-sm text-gray-600 dark:text-gray-400\">\n Don't have an account?{' '}\n <button\n type=\"button\"\n onClick={onSignupClick}\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Sign up\n </button>\n </p>\n </div>\n </div>\n </div>\n );\n};"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"LoginForm.js","sources":["../../../src/components/Auth/LoginForm.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { Eye, EyeOff, Mail, Lock, AlertCircle } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport { Input } from '../Input';\nimport { Checkbox } from '../Checkbox';\nimport { Alert, AlertDescription } from '../Alert';\nimport { Spinner } from '../Spinner';\nimport { loginSchema, type LoginFormData } from '../../utils/validation';\n\ninterface LoginFormProps {\n className?: string;\n onSubmit: (data: LoginFormData) => Promise<void>;\n isLoading?: boolean;\n error?: string | null;\n onForgotPassword?: () => void;\n onSignupClick?: () => void;\n}\n\n/**\n * LoginForm component with validation and accessibility features\n */\nexport const LoginForm: React.FC<LoginFormProps> = ({\n className,\n onSubmit,\n isLoading,\n error,\n onForgotPassword,\n onSignupClick,\n}) => {\n const [showPassword, setShowPassword] = useState(false);\n\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting },\n reset,\n } = useForm<LoginFormData>({\n resolver: zodResolver(loginSchema),\n defaultValues: {\n email: '',\n password: '',\n rememberMe: false,\n },\n });\n\n const handleFormSubmit = async (data: LoginFormData) => {\n try {\n await onSubmit(data);\n reset();\n } catch (err) {\n console.error('Login failed:', err);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n };\n\n return (\n <div className={cn('w-full max-w-md mx-auto', className)}>\n <div className=\"bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8\">\n {/* Header */}\n <div className=\"text-center mb-8\">\n <h1 className=\"text-2xl font-bold text-gray-900 dark:text-white mb-2\">\n Welcome Back\n </h1>\n <p className=\"text-gray-600 dark:text-gray-400\">\n Sign in to your account to continue\n </p>\n </div>\n\n {/* Error Alert */}\n {error && (\n <Alert variant=\"danger\" className=\"mb-6\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Login Form */}\n <form onSubmit={handleSubmit(handleFormSubmit)} className=\"space-y-6\">\n {/* Email Field */}\n <div>\n <label\n htmlFor=\"email\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Email Address\n </label>\n <div className=\"relative\">\n <Mail className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"email\"\n type=\"email\"\n placeholder=\"Enter your email\"\n className={cn(\n 'pl-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500',\n errors.email && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.email ? 'true' : 'false'}\n aria-describedby={errors.email ? 'email-error' : undefined}\n {...register('email')}\n />\n </div>\n {errors.email && (\n <p\n id=\"email-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.email.message}\n </p>\n )}\n </div>\n\n {/* Password Field */}\n <div>\n <label\n htmlFor=\"password\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"password\"\n type={showPassword ? 'text' : 'password'}\n placeholder=\"Enter your password\"\n className={cn(\n 'pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500',\n errors.password && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.password ? 'true' : 'false'}\n aria-describedby={errors.password ? 'password-error' : undefined}\n {...register('password')}\n />\n <button\n type=\"button\"\n onClick={togglePasswordVisibility}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n >\n {showPassword ? (\n <EyeOff className=\"h-5 w-5\" />\n ) : (\n <Eye className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n {errors.password && (\n <p\n id=\"password-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.password.message}\n </p>\n )}\n </div>\n\n {/* Remember Me & Forgot Password */}\n <div className=\"flex items-center justify-between\">\n <label className=\"flex items-center\">\n <Checkbox {...register('rememberMe')} />\n <span className=\"ml-2 text-sm text-gray-600 dark:text-gray-400\">Remember me</span>\n </label>\n <button\n type=\"button\"\n onClick={onForgotPassword}\n className=\"text-sm text-primary-600 hover:text-primary-500 font-medium\"\n >\n Forgot password?\n </button>\n </div>\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n variant=\"primary\"\n className=\"w-full\"\n disabled={isSubmitting || isLoading}\n >\n {isSubmitting || isLoading ? (\n <>\n <Spinner size=\"sm\" className=\"mr-2\" />\n Signing in...\n </>\n ) : (\n 'Sign In'\n )}\n </Button>\n </form>\n\n {/* Demo Credentials */}\n <div className=\"mt-6 p-4 bg-gray-50 dark:bg-gray-700/50 rounded-lg\">\n <p className=\"text-sm text-gray-600 dark:text-gray-400 mb-2 font-medium\">Demo Credentials:</p>\n <p className=\"text-xs text-gray-500 dark:text-gray-400\">\n Email: admin@example.com<br />\n Password: Password123!\n </p>\n </div>\n\n {/* Sign Up Link */}\n <div className=\"mt-6 text-center\">\n <p className=\"text-sm text-gray-600 dark:text-gray-400\">\n Don't have an account?{' '}\n <button\n type=\"button\"\n onClick={onSignupClick}\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Sign up\n </button>\n </p>\n </div>\n </div>\n </div>\n );\n};"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -34,7 +34,7 @@ const ResetPasswordForm = ({ onSubmit, className, isLoading, successMessage, err
34
34
  if (status === "success") {
35
35
  return (jsx("div", { className: cn("text-success-700 bg-success-50 border border-success-200 p-6 text-sm rounded-lg text-center", className), children: successMessage || "Your password has been successfully reset. You can now log in with your new password." }));
36
36
  }
37
- return (jsxs("form", { onSubmit: handleSubmit(handleFormSubmit), className: cn("space-y-6", className), autoComplete: "off", noValidate: true, children: [jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", htmlFor: "password", children: "New Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "password", type: showPassword ? "text" : "password", placeholder: "Enter new password", className: cn("pl-10 pr-10", errors.password && "border-danger-500 focus:ring-danger-500"), ...register("password"), disabled: isSubmitting || isLoading }), jsx("button", { type: "button", onClick: () => setShowPassword(!showPassword), className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", children: showPassword ? jsx(EyeOff, { className: "h-5 w-5" }) : jsx(Eye, { className: "h-5 w-5" }) })] }), errors.password && (jsx("p", { className: "mt-1 text-sm text-danger-600", children: errors.password.message }))] }), jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", htmlFor: "confirmPassword", children: "Confirm Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "confirmPassword", type: showConfirmPassword ? "text" : "password", placeholder: "Confirm new password", className: cn("pl-10 pr-10", errors.confirmPassword && "border-danger-500 focus:ring-danger-500"), ...register("confirmPassword"), disabled: isSubmitting || isLoading }), jsx("button", { type: "button", onClick: () => setShowConfirmPassword(!showConfirmPassword), className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", children: showConfirmPassword ? jsx(EyeOff, { className: "h-5 w-5" }) : jsx(Eye, { className: "h-5 w-5" }) })] }), errors.confirmPassword && (jsx("p", { className: "mt-1 text-sm text-danger-600", children: errors.confirmPassword.message }))] }), jsx(Button, { type: "submit", variant: "primary", className: "w-full", disabled: isSubmitting || isLoading, children: (isSubmitting || isLoading) ? (jsxs(Fragment, { children: [jsx(Spinner, { size: "sm", className: "mr-2" }), "Resetting..."] })) : ("Reset Password") }), status === "error" && (jsx("div", { className: "text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center", children: errorMessage || "There was an error resetting your password. Please try again." }))] }));
37
+ return (jsxs("form", { onSubmit: handleSubmit(handleFormSubmit), className: cn("space-y-6", className), autoComplete: "off", noValidate: true, children: [jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", htmlFor: "password", children: "New Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "password", type: showPassword ? "text" : "password", placeholder: "Enter new password", className: cn("pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500", errors.password && "border-danger-500 focus:ring-danger-500"), ...register("password"), disabled: isSubmitting || isLoading }), jsx("button", { type: "button", onClick: () => setShowPassword(!showPassword), className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", children: showPassword ? jsx(EyeOff, { className: "h-5 w-5" }) : jsx(Eye, { className: "h-5 w-5" }) })] }), errors.password && (jsx("p", { className: "mt-1 text-sm text-danger-600", children: errors.password.message }))] }), jsxs("div", { children: [jsx("label", { className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", htmlFor: "confirmPassword", children: "Confirm Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "confirmPassword", type: showConfirmPassword ? "text" : "password", placeholder: "Confirm new password", className: cn("pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500", errors.confirmPassword && "border-danger-500 focus:ring-danger-500"), ...register("confirmPassword"), disabled: isSubmitting || isLoading }), jsx("button", { type: "button", onClick: () => setShowConfirmPassword(!showConfirmPassword), className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", children: showConfirmPassword ? jsx(EyeOff, { className: "h-5 w-5" }) : jsx(Eye, { className: "h-5 w-5" }) })] }), errors.confirmPassword && (jsx("p", { className: "mt-1 text-sm text-danger-600", children: errors.confirmPassword.message }))] }), jsx(Button, { type: "submit", variant: "primary", className: "w-full", disabled: isSubmitting || isLoading, children: (isSubmitting || isLoading) ? (jsxs(Fragment, { children: [jsx(Spinner, { size: "sm", className: "mr-2" }), "Resetting..."] })) : ("Reset Password") }), status === "error" && (jsx("div", { className: "text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center", children: errorMessage || "There was an error resetting your password. Please try again." }))] }));
38
38
  };
39
39
 
40
40
  export { ResetPasswordForm };
@@ -1 +1 @@
1
- {"version":3,"file":"ResetPasswordForm.js","sources":["../../../src/components/Auth/ResetPasswordForm.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { z } from \"zod\";\nimport { Eye, EyeOff, Lock } from \"lucide-react\";\nimport { Input } from \"../Input\";\nimport { Button } from \"../Button\";\nimport { cn } from \"../../utils/cn\";\nimport { Spinner } from \"../Spinner\";\n\nconst schema = z.object({\n password: z.string().min(8, \"Password must be at least 8 characters\"),\n confirmPassword: z.string()\n}).refine((data) => data.password === data.confirmPassword, {\n message: \"Passwords do not match\",\n path: [\"confirmPassword\"],\n});\n\ntype ResetPasswordFormData = z.infer<typeof schema>;\n\nexport interface ResetPasswordFormProps {\n onSubmit?: (password: string) => Promise<void> | void;\n className?: string;\n isLoading?: boolean;\n successMessage?: string;\n errorMessage?: string;\n}\n\nexport const ResetPasswordForm: React.FC<ResetPasswordFormProps> = ({\n onSubmit,\n className,\n isLoading,\n successMessage,\n errorMessage\n}) => {\n const [showPassword, setShowPassword] = React.useState(false);\n const [showConfirmPassword, setShowConfirmPassword] = React.useState(false);\n const [status, setStatus] = React.useState<\"idle\" | \"success\" | \"error\">(\"idle\");\n\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting }\n } = useForm<ResetPasswordFormData>({ resolver: zodResolver(schema) });\n\n const handleFormSubmit = async (data: ResetPasswordFormData) => {\n setStatus(\"idle\");\n try {\n await onSubmit?.(data.password);\n setStatus(\"success\");\n } catch (e) {\n setStatus(\"error\");\n }\n };\n\n if (status === \"success\") {\n return (\n <div className={cn(\"text-success-700 bg-success-50 border border-success-200 p-6 text-sm rounded-lg text-center\", className)}>\n {successMessage || \"Your password has been successfully reset. You can now log in with your new password.\"}\n </div>\n );\n }\n\n return (\n <form\n onSubmit={handleSubmit(handleFormSubmit)}\n className={cn(\"space-y-6\", className)}\n autoComplete=\"off\"\n noValidate\n >\n {/* Password Field */}\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\" htmlFor=\"password\">\n New Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"password\"\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"Enter new password\"\n className={cn(\"pl-10 pr-10\", errors.password && \"border-danger-500 focus:ring-danger-500\")}\n {...register(\"password\")}\n disabled={isSubmitting || isLoading}\n />\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n >\n {showPassword ? <EyeOff className=\"h-5 w-5\" /> : <Eye className=\"h-5 w-5\" />}\n </button>\n </div>\n {errors.password && (\n <p className=\"mt-1 text-sm text-danger-600\">{errors.password.message}</p>\n )}\n </div>\n\n {/* Confirm Password Field */}\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\" htmlFor=\"confirmPassword\">\n Confirm Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"confirmPassword\"\n type={showConfirmPassword ? \"text\" : \"password\"}\n placeholder=\"Confirm new password\"\n className={cn(\"pl-10 pr-10\", errors.confirmPassword && \"border-danger-500 focus:ring-danger-500\")}\n {...register(\"confirmPassword\")}\n disabled={isSubmitting || isLoading}\n />\n <button\n type=\"button\"\n onClick={() => setShowConfirmPassword(!showConfirmPassword)}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n >\n {showConfirmPassword ? <EyeOff className=\"h-5 w-5\" /> : <Eye className=\"h-5 w-5\" />}\n </button>\n </div>\n {errors.confirmPassword && (\n <p className=\"mt-1 text-sm text-danger-600\">{errors.confirmPassword.message}</p>\n )}\n </div>\n\n <Button\n type=\"submit\"\n variant=\"primary\"\n className=\"w-full\"\n disabled={isSubmitting || isLoading}\n >\n {(isSubmitting || isLoading) ? (\n <>\n <Spinner size=\"sm\" className=\"mr-2\" />\n Resetting...\n </>\n ) : (\n \"Reset Password\"\n )}\n </Button>\n\n {status === \"error\" && (\n <div className=\"text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center\">\n {errorMessage || \"There was an error resetting your password. Please try again.\"}\n </div>\n )}\n </form>\n );\n};"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ResetPasswordForm.js","sources":["../../../src/components/Auth/ResetPasswordForm.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { z } from \"zod\";\nimport { Eye, EyeOff, Lock } from \"lucide-react\";\nimport { Input } from \"../Input\";\nimport { Button } from \"../Button\";\nimport { cn } from \"../../utils/cn\";\nimport { Spinner } from \"../Spinner\";\n\nconst schema = z.object({\n password: z.string().min(8, \"Password must be at least 8 characters\"),\n confirmPassword: z.string()\n}).refine((data) => data.password === data.confirmPassword, {\n message: \"Passwords do not match\",\n path: [\"confirmPassword\"],\n});\n\ntype ResetPasswordFormData = z.infer<typeof schema>;\n\nexport interface ResetPasswordFormProps {\n onSubmit?: (password: string) => Promise<void> | void;\n className?: string;\n isLoading?: boolean;\n successMessage?: string;\n errorMessage?: string;\n}\n\nexport const ResetPasswordForm: React.FC<ResetPasswordFormProps> = ({\n onSubmit,\n className,\n isLoading,\n successMessage,\n errorMessage\n}) => {\n const [showPassword, setShowPassword] = React.useState(false);\n const [showConfirmPassword, setShowConfirmPassword] = React.useState(false);\n const [status, setStatus] = React.useState<\"idle\" | \"success\" | \"error\">(\"idle\");\n\n const {\n register,\n handleSubmit,\n formState: { errors, isSubmitting }\n } = useForm<ResetPasswordFormData>({ resolver: zodResolver(schema) });\n\n const handleFormSubmit = async (data: ResetPasswordFormData) => {\n setStatus(\"idle\");\n try {\n await onSubmit?.(data.password);\n setStatus(\"success\");\n } catch (e) {\n setStatus(\"error\");\n }\n };\n\n if (status === \"success\") {\n return (\n <div className={cn(\"text-success-700 bg-success-50 border border-success-200 p-6 text-sm rounded-lg text-center\", className)}>\n {successMessage || \"Your password has been successfully reset. You can now log in with your new password.\"}\n </div>\n );\n }\n\n return (\n <form\n onSubmit={handleSubmit(handleFormSubmit)}\n className={cn(\"space-y-6\", className)}\n autoComplete=\"off\"\n noValidate\n >\n {/* Password Field */}\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\" htmlFor=\"password\">\n New Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"password\"\n type={showPassword ? \"text\" : \"password\"}\n placeholder=\"Enter new password\"\n className={cn(\n \"pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500\",\n errors.password && \"border-danger-500 focus:ring-danger-500\"\n )}\n {...register(\"password\")}\n disabled={isSubmitting || isLoading}\n />\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n >\n {showPassword ? <EyeOff className=\"h-5 w-5\" /> : <Eye className=\"h-5 w-5\" />}\n </button>\n </div>\n {errors.password && (\n <p className=\"mt-1 text-sm text-danger-600\">{errors.password.message}</p>\n )}\n </div>\n\n {/* Confirm Password Field */}\n <div>\n <label className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\" htmlFor=\"confirmPassword\">\n Confirm Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"confirmPassword\"\n type={showConfirmPassword ? \"text\" : \"password\"}\n placeholder=\"Confirm new password\"\n className={cn(\n \"pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500\",\n errors.confirmPassword && \"border-danger-500 focus:ring-danger-500\"\n )}\n {...register(\"confirmPassword\")}\n disabled={isSubmitting || isLoading}\n />\n <button\n type=\"button\"\n onClick={() => setShowConfirmPassword(!showConfirmPassword)}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n >\n {showConfirmPassword ? <EyeOff className=\"h-5 w-5\" /> : <Eye className=\"h-5 w-5\" />}\n </button>\n </div>\n {errors.confirmPassword && (\n <p className=\"mt-1 text-sm text-danger-600\">{errors.confirmPassword.message}</p>\n )}\n </div>\n\n <Button\n type=\"submit\"\n variant=\"primary\"\n className=\"w-full\"\n disabled={isSubmitting || isLoading}\n >\n {(isSubmitting || isLoading) ? (\n <>\n <Spinner size=\"sm\" className=\"mr-2\" />\n Resetting...\n </>\n ) : (\n \"Reset Password\"\n )}\n </Button>\n\n {status === \"error\" && (\n <div className=\"text-danger-700 bg-danger-50 border border-danger-200 p-2 text-sm rounded text-center\">\n {errorMessage || \"There was an error resetting your password. Please try again.\"}\n </div>\n )}\n </form>\n );\n};"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -46,8 +46,8 @@ const SignupForm = ({ className, onSubmit, isLoading, error, onLoginClick, }) =>
46
46
  const toggleConfirmPasswordVisibility = () => {
47
47
  setShowConfirmPassword(prev => !prev);
48
48
  };
49
- return (jsx("div", { className: cn('w-full max-w-md mx-auto', className), children: jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8", children: [jsxs("div", { className: "text-center mb-8", children: [jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-white mb-2", children: "Create Account" }), jsx("p", { className: "text-gray-600 dark:text-gray-400", children: "Join us today and get started" })] }), error && (jsxs(Alert, { variant: "danger", className: "mb-6", children: [jsx(AlertCircle, { className: "h-4 w-4" }), jsx(AlertDescription, { children: error })] })), jsxs("form", { onSubmit: handleSubmit(handleFormSubmit), className: "space-y-6", children: [jsxs("div", { children: [jsx("label", { htmlFor: "name", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Full Name" }), jsxs("div", { className: "relative", children: [jsx(User, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "name", type: "text", placeholder: "Enter your full name", className: cn('pl-10', errors.name && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.name ? 'true' : 'false', "aria-describedby": errors.name ? 'name-error' : undefined, ...register('name') })] }), errors.name && (jsx("p", { id: "name-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.name.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "email", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Email Address" }), jsxs("div", { className: "relative", children: [jsx(Mail, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "email", type: "email", placeholder: "Enter your email", className: cn('pl-10', errors.email && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.email ? 'true' : 'false', "aria-describedby": errors.email ? 'email-error' : undefined, ...register('email') })] }), errors.email && (jsx("p", { id: "email-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.email.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "password", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "password", type: showPassword ? 'text' : 'password', placeholder: "Create a strong password", className: cn('pl-10 pr-10', errors.password && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.password ? 'true' : 'false', "aria-describedby": errors.password ? 'password-error password-strength' : 'password-strength', ...register('password') }), jsx("button", { type: "button", onClick: togglePasswordVisibility, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", "aria-label": showPassword ? 'Hide password' : 'Show password', children: showPassword ? (jsx(EyeOff, { className: "h-5 w-5" })) : (jsx(Eye, { className: "h-5 w-5" })) })] }), password && passwordStrength && (jsxs("div", { id: "password-strength", className: "mt-2", children: [jsxs("div", { className: "flex items-center justify-between mb-1", children: [jsx("span", { className: "text-xs text-gray-600 dark:text-gray-400", children: "Password strength:" }), jsx(Badge, { variant: passwordStrength.color === 'success' ? 'success' :
50
- passwordStrength.color === 'warning' ? 'warning' : 'danger', className: "text-xs", children: passwordStrength.label })] }), jsx("div", { className: "w-full bg-gray-200 rounded-full h-2", children: jsx("div", { className: cn('h-2 rounded-full transition-all duration-300', passwordStrength.color === 'success' && 'bg-success-500', passwordStrength.color === 'warning' && 'bg-warning-500', passwordStrength.color === 'danger' && 'bg-danger-500'), style: { width: `${(passwordStrength.score / 6) * 100}%` } }) })] })), errors.password && (jsx("p", { id: "password-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.password.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "confirmPassword", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Confirm Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "confirmPassword", type: showConfirmPassword ? 'text' : 'password', placeholder: "Confirm your password", className: cn('pl-10 pr-10', errors.confirmPassword && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.confirmPassword ? 'true' : 'false', "aria-describedby": errors.confirmPassword ? 'confirm-password-error' : undefined, ...register('confirmPassword') }), jsx("button", { type: "button", onClick: toggleConfirmPasswordVisibility, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", "aria-label": showConfirmPassword ? 'Hide password' : 'Show password', children: showConfirmPassword ? (jsx(EyeOff, { className: "h-5 w-5" })) : (jsx(Eye, { className: "h-5 w-5" })) })] }), errors.confirmPassword && (jsx("p", { id: "confirm-password-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.confirmPassword.message }))] }), jsxs("div", { children: [jsxs("label", { className: "flex items-start", children: [jsx(Checkbox, { className: "mt-1", ...register('acceptTerms'), "aria-invalid": errors.acceptTerms ? 'true' : 'false', "aria-describedby": errors.acceptTerms ? 'terms-error' : undefined }), jsxs("span", { className: "ml-2 text-sm text-gray-600 dark:text-gray-400", children: ["I agree to the", ' ', jsx("a", { href: "#", className: "text-primary-600 hover:text-primary-500 font-medium", children: "Terms of Service" }), ' ', "and", ' ', jsx("a", { href: "#", className: "text-primary-600 hover:text-primary-500 font-medium", children: "Privacy Policy" })] })] }), errors.acceptTerms && (jsx("p", { id: "terms-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.acceptTerms.message }))] }), jsx(Button, { type: "submit", variant: "primary", className: "w-full", disabled: isSubmitting || isLoading, children: isSubmitting || isLoading ? (jsxs(Fragment, { children: [jsx(Spinner, { size: "sm", className: "mr-2" }), "Creating account..."] })) : ('Create Account') })] }), jsx("div", { className: "mt-6 text-center", children: jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Already have an account?", ' ', jsx("button", { type: "button", onClick: onLoginClick, className: "text-primary-600 hover:text-primary-500 font-medium", children: "Sign in" })] }) })] }) }));
49
+ return (jsx("div", { className: cn('w-full max-w-md mx-auto', className), children: jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8", children: [jsxs("div", { className: "text-center mb-8", children: [jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-white mb-2", children: "Create Account" }), jsx("p", { className: "text-gray-600 dark:text-gray-400", children: "Join us today and get started" })] }), error && (jsxs(Alert, { variant: "danger", className: "mb-6", children: [jsx(AlertCircle, { className: "h-4 w-4" }), jsx(AlertDescription, { children: error })] })), jsxs("form", { onSubmit: handleSubmit(handleFormSubmit), className: "space-y-6", children: [jsxs("div", { children: [jsx("label", { htmlFor: "name", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Full Name" }), jsxs("div", { className: "relative", children: [jsx(User, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "name", type: "text", placeholder: "Enter your full name", className: cn('pl-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500', errors.name && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.name ? 'true' : 'false', "aria-describedby": errors.name ? 'name-error' : undefined, ...register('name') })] }), errors.name && (jsx("p", { id: "name-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.name.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "email", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Email Address" }), jsxs("div", { className: "relative", children: [jsx(Mail, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "email", type: "email", placeholder: "Enter your email", className: cn('pl-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500', errors.email && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.email ? 'true' : 'false', "aria-describedby": errors.email ? 'email-error' : undefined, ...register('email') })] }), errors.email && (jsx("p", { id: "email-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.email.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "password", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "password", type: showPassword ? 'text' : 'password', placeholder: "Create a strong password", className: cn('pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500', errors.password && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.password ? 'true' : 'false', "aria-describedby": errors.password ? 'password-error password-strength' : 'password-strength', ...register('password') }), jsx("button", { type: "button", onClick: togglePasswordVisibility, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", "aria-label": showPassword ? 'Hide password' : 'Show password', children: showPassword ? (jsx(EyeOff, { className: "h-5 w-5" })) : (jsx(Eye, { className: "h-5 w-5" })) })] }), password && passwordStrength && (jsxs("div", { id: "password-strength", className: "mt-2", children: [jsxs("div", { className: "flex items-center justify-between mb-1", children: [jsx("span", { className: "text-xs text-gray-600 dark:text-gray-400", children: "Password strength:" }), jsx(Badge, { variant: passwordStrength.color === 'success' ? 'success' :
50
+ passwordStrength.color === 'warning' ? 'warning' : 'danger', className: "text-xs", children: passwordStrength.label })] }), jsx("div", { className: "w-full bg-gray-200 rounded-full h-2", children: jsx("div", { className: cn('h-2 rounded-full transition-all duration-300', passwordStrength.color === 'success' && 'bg-success-500', passwordStrength.color === 'warning' && 'bg-warning-500', passwordStrength.color === 'danger' && 'bg-danger-500'), style: { width: `${(passwordStrength.score / 6) * 100}%` } }) })] })), errors.password && (jsx("p", { id: "password-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.password.message }))] }), jsxs("div", { children: [jsx("label", { htmlFor: "confirmPassword", className: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2", children: "Confirm Password" }), jsxs("div", { className: "relative", children: [jsx(Lock, { className: "absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400" }), jsx(Input, { id: "confirmPassword", type: showConfirmPassword ? 'text' : 'password', placeholder: "Confirm your password", className: cn('pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500', errors.confirmPassword && 'border-danger-500 focus:ring-danger-500'), "aria-invalid": errors.confirmPassword ? 'true' : 'false', "aria-describedby": errors.confirmPassword ? 'confirm-password-error' : undefined, ...register('confirmPassword') }), jsx("button", { type: "button", onClick: toggleConfirmPasswordVisibility, className: "absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600", "aria-label": showConfirmPassword ? 'Hide password' : 'Show password', children: showConfirmPassword ? (jsx(EyeOff, { className: "h-5 w-5" })) : (jsx(Eye, { className: "h-5 w-5" })) })] }), errors.confirmPassword && (jsx("p", { id: "confirm-password-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.confirmPassword.message }))] }), jsxs("div", { children: [jsxs("label", { className: "flex items-start", children: [jsx(Checkbox, { className: "mt-1", ...register('acceptTerms'), "aria-invalid": errors.acceptTerms ? 'true' : 'false', "aria-describedby": errors.acceptTerms ? 'terms-error' : undefined }), jsxs("span", { className: "ml-2 text-sm text-gray-600 dark:text-gray-400", children: ["I agree to the", ' ', jsx("a", { href: "#", className: "text-primary-600 hover:text-primary-500 font-medium", children: "Terms of Service" }), ' ', "and", ' ', jsx("a", { href: "#", className: "text-primary-600 hover:text-primary-500 font-medium", children: "Privacy Policy" })] })] }), errors.acceptTerms && (jsx("p", { id: "terms-error", className: "mt-1 text-sm text-danger-600", role: "alert", children: errors.acceptTerms.message }))] }), jsx(Button, { type: "submit", variant: "primary", className: "w-full", disabled: isSubmitting || isLoading, children: isSubmitting || isLoading ? (jsxs(Fragment, { children: [jsx(Spinner, { size: "sm", className: "mr-2" }), "Creating account..."] })) : ('Create Account') })] }), jsx("div", { className: "mt-6 text-center", children: jsxs("p", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Already have an account?", ' ', jsx("button", { type: "button", onClick: onLoginClick, className: "text-primary-600 hover:text-primary-500 font-medium", children: "Sign in" })] }) })] }) }));
51
51
  };
52
52
 
53
53
  export { SignupForm };
@@ -1 +1 @@
1
- {"version":3,"file":"SignupForm.js","sources":["../../../src/components/Auth/SignupForm.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { Eye, EyeOff, Mail, Lock, User, AlertCircle, Check } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport { Input } from '../Input';\nimport { Checkbox } from '../Checkbox';\nimport { Alert, AlertDescription } from '../Alert';\nimport { Spinner } from '../Spinner';\nimport { Badge } from '../Badge';\nimport { signupSchema, type SignupFormData, calculatePasswordStrength } from '../../utils/validation';\n\ninterface SignupFormProps {\n className?: string;\n onSubmit: (data: SignupFormData) => Promise<void>;\n isLoading?: boolean;\n error?: string | null;\n onLoginClick?: () => void;\n}\n\n/**\n * SignupForm component with real-time validation and password strength indicator\n */\nexport const SignupForm: React.FC<SignupFormProps> = ({\n className,\n onSubmit,\n isLoading,\n error,\n onLoginClick,\n}) => {\n const [showPassword, setShowPassword] = useState(false);\n const [showConfirmPassword, setShowConfirmPassword] = useState(false);\n\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors, isSubmitting },\n reset,\n } = useForm<SignupFormData>({\n resolver: zodResolver(signupSchema),\n defaultValues: {\n name: '',\n email: '',\n password: '',\n confirmPassword: '',\n acceptTerms: false,\n },\n mode: 'onChange',\n });\n\n const password = watch('password');\n const passwordStrength = password ? calculatePasswordStrength(password) : null;\n\n const handleFormSubmit = async (data: SignupFormData) => {\n try {\n await onSubmit(data);\n reset();\n } catch (err) {\n console.error('Signup failed:', err);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n };\n\n const toggleConfirmPasswordVisibility = () => {\n setShowConfirmPassword(prev => !prev);\n };\n\n return (\n <div className={cn('w-full max-w-md mx-auto', className)}>\n <div className=\"bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8\">\n {/* Header */}\n <div className=\"text-center mb-8\">\n <h1 className=\"text-2xl font-bold text-gray-900 dark:text-white mb-2\">\n Create Account\n </h1>\n <p className=\"text-gray-600 dark:text-gray-400\">\n Join us today and get started\n </p>\n </div>\n\n {/* Error Alert */}\n {error && (\n <Alert variant=\"danger\" className=\"mb-6\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Signup Form */}\n <form onSubmit={handleSubmit(handleFormSubmit)} className=\"space-y-6\">\n {/* Name Field */}\n <div>\n <label\n htmlFor=\"name\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Full Name\n </label>\n <div className=\"relative\">\n <User className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"name\"\n type=\"text\"\n placeholder=\"Enter your full name\"\n className={cn(\n 'pl-10',\n errors.name && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.name ? 'true' : 'false'}\n aria-describedby={errors.name ? 'name-error' : undefined}\n {...register('name')}\n />\n </div>\n {errors.name && (\n <p\n id=\"name-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.name.message}\n </p>\n )}\n </div>\n\n {/* Email Field */}\n <div>\n <label\n htmlFor=\"email\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Email Address\n </label>\n <div className=\"relative\">\n <Mail className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"email\"\n type=\"email\"\n placeholder=\"Enter your email\"\n className={cn(\n 'pl-10',\n errors.email && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.email ? 'true' : 'false'}\n aria-describedby={errors.email ? 'email-error' : undefined}\n {...register('email')}\n />\n </div>\n {errors.email && (\n <p\n id=\"email-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.email.message}\n </p>\n )}\n </div>\n\n {/* Password Field */}\n <div>\n <label\n htmlFor=\"password\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"password\"\n type={showPassword ? 'text' : 'password'}\n placeholder=\"Create a strong password\"\n className={cn(\n 'pl-10 pr-10',\n errors.password && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.password ? 'true' : 'false'}\n aria-describedby={errors.password ? 'password-error password-strength' : 'password-strength'}\n {...register('password')}\n />\n <button\n type=\"button\"\n onClick={togglePasswordVisibility}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n >\n {showPassword ? (\n <EyeOff className=\"h-5 w-5\" />\n ) : (\n <Eye className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n \n {/* Password Strength Indicator */}\n {password && passwordStrength && (\n <div id=\"password-strength\" className=\"mt-2\">\n <div className=\"flex items-center justify-between mb-1\">\n <span className=\"text-xs text-gray-600 dark:text-gray-400\">Password strength:</span>\n <Badge\n variant={\n passwordStrength.color === 'success' ? 'success' :\n passwordStrength.color === 'warning' ? 'warning' : 'danger'\n }\n className=\"text-xs\"\n >\n {passwordStrength.label}\n </Badge>\n </div>\n <div className=\"w-full bg-gray-200 rounded-full h-2\">\n <div\n className={cn(\n 'h-2 rounded-full transition-all duration-300',\n passwordStrength.color === 'success' && 'bg-success-500',\n passwordStrength.color === 'warning' && 'bg-warning-500',\n passwordStrength.color === 'danger' && 'bg-danger-500'\n )}\n style={{ width: `${(passwordStrength.score / 6) * 100}%` }}\n />\n </div>\n </div>\n )}\n \n {errors.password && (\n <p\n id=\"password-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.password.message}\n </p>\n )}\n </div>\n\n {/* Confirm Password Field */}\n <div>\n <label\n htmlFor=\"confirmPassword\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Confirm Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"confirmPassword\"\n type={showConfirmPassword ? 'text' : 'password'}\n placeholder=\"Confirm your password\"\n className={cn(\n 'pl-10 pr-10',\n errors.confirmPassword && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.confirmPassword ? 'true' : 'false'}\n aria-describedby={errors.confirmPassword ? 'confirm-password-error' : undefined}\n {...register('confirmPassword')}\n />\n <button\n type=\"button\"\n onClick={toggleConfirmPasswordVisibility}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n aria-label={showConfirmPassword ? 'Hide password' : 'Show password'}\n >\n {showConfirmPassword ? (\n <EyeOff className=\"h-5 w-5\" />\n ) : (\n <Eye className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n {errors.confirmPassword && (\n <p\n id=\"confirm-password-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.confirmPassword.message}\n </p>\n )}\n </div>\n\n {/* Terms of Service */}\n <div>\n <label className=\"flex items-start\">\n <Checkbox\n className=\"mt-1\"\n {...register('acceptTerms')}\n aria-invalid={errors.acceptTerms ? 'true' : 'false'}\n aria-describedby={errors.acceptTerms ? 'terms-error' : undefined}\n />\n <span className=\"ml-2 text-sm text-gray-600 dark:text-gray-400\">\n I agree to the{' '}\n <a\n href=\"#\"\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Terms of Service\n </a>{' '}\n and{' '}\n <a\n href=\"#\"\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Privacy Policy\n </a>\n </span>\n </label>\n {errors.acceptTerms && (\n <p\n id=\"terms-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.acceptTerms.message}\n </p>\n )}\n </div>\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n variant=\"primary\"\n className=\"w-full\"\n disabled={isSubmitting || isLoading}\n >\n {isSubmitting || isLoading ? (\n <>\n <Spinner size=\"sm\" className=\"mr-2\" />\n Creating account...\n </>\n ) : (\n 'Create Account'\n )}\n </Button>\n </form>\n\n {/* Login Link */}\n <div className=\"mt-6 text-center\">\n <p className=\"text-sm text-gray-600 dark:text-gray-400\">\n Already have an account?{' '}\n <button\n type=\"button\"\n onClick={onLoginClick}\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Sign in\n </button>\n </p>\n </div>\n </div>\n </div>\n );\n};"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"SignupForm.js","sources":["../../../src/components/Auth/SignupForm.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { Eye, EyeOff, Mail, Lock, User, AlertCircle, Check } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport { Input } from '../Input';\nimport { Checkbox } from '../Checkbox';\nimport { Alert, AlertDescription } from '../Alert';\nimport { Spinner } from '../Spinner';\nimport { Badge } from '../Badge';\nimport { signupSchema, type SignupFormData, calculatePasswordStrength } from '../../utils/validation';\n\ninterface SignupFormProps {\n className?: string;\n onSubmit: (data: SignupFormData) => Promise<void>;\n isLoading?: boolean;\n error?: string | null;\n onLoginClick?: () => void;\n}\n\n/**\n * SignupForm component with real-time validation and password strength indicator\n */\nexport const SignupForm: React.FC<SignupFormProps> = ({\n className,\n onSubmit,\n isLoading,\n error,\n onLoginClick,\n}) => {\n const [showPassword, setShowPassword] = useState(false);\n const [showConfirmPassword, setShowConfirmPassword] = useState(false);\n\n const {\n register,\n handleSubmit,\n watch,\n formState: { errors, isSubmitting },\n reset,\n } = useForm<SignupFormData>({\n resolver: zodResolver(signupSchema),\n defaultValues: {\n name: '',\n email: '',\n password: '',\n confirmPassword: '',\n acceptTerms: false,\n },\n mode: 'onChange',\n });\n\n const password = watch('password');\n const passwordStrength = password ? calculatePasswordStrength(password) : null;\n\n const handleFormSubmit = async (data: SignupFormData) => {\n try {\n await onSubmit(data);\n reset();\n } catch (err) {\n console.error('Signup failed:', err);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n };\n\n const toggleConfirmPasswordVisibility = () => {\n setShowConfirmPassword(prev => !prev);\n };\n\n return (\n <div className={cn('w-full max-w-md mx-auto', className)}>\n <div className=\"bg-white dark:bg-gray-800 rounded-lg shadow-lg p-8\">\n {/* Header */}\n <div className=\"text-center mb-8\">\n <h1 className=\"text-2xl font-bold text-gray-900 dark:text-white mb-2\">\n Create Account\n </h1>\n <p className=\"text-gray-600 dark:text-gray-400\">\n Join us today and get started\n </p>\n </div>\n\n {/* Error Alert */}\n {error && (\n <Alert variant=\"danger\" className=\"mb-6\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Signup Form */}\n <form onSubmit={handleSubmit(handleFormSubmit)} className=\"space-y-6\">\n {/* Name Field */}\n <div>\n <label\n htmlFor=\"name\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Full Name\n </label>\n <div className=\"relative\">\n <User className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"name\"\n type=\"text\"\n placeholder=\"Enter your full name\"\n className={cn(\n 'pl-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500',\n errors.name && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.name ? 'true' : 'false'}\n aria-describedby={errors.name ? 'name-error' : undefined}\n {...register('name')}\n />\n </div>\n {errors.name && (\n <p\n id=\"name-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.name.message}\n </p>\n )}\n </div>\n\n {/* Email Field */}\n <div>\n <label\n htmlFor=\"email\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Email Address\n </label>\n <div className=\"relative\">\n <Mail className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"email\"\n type=\"email\"\n placeholder=\"Enter your email\"\n className={cn(\n 'pl-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500',\n errors.email && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.email ? 'true' : 'false'}\n aria-describedby={errors.email ? 'email-error' : undefined}\n {...register('email')}\n />\n </div>\n {errors.email && (\n <p\n id=\"email-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.email.message}\n </p>\n )}\n </div>\n\n {/* Password Field */}\n <div>\n <label\n htmlFor=\"password\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"password\"\n type={showPassword ? 'text' : 'password'}\n placeholder=\"Create a strong password\"\n className={cn(\n 'pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500',\n errors.password && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.password ? 'true' : 'false'}\n aria-describedby={errors.password ? 'password-error password-strength' : 'password-strength'}\n {...register('password')}\n />\n <button\n type=\"button\"\n onClick={togglePasswordVisibility}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n aria-label={showPassword ? 'Hide password' : 'Show password'}\n >\n {showPassword ? (\n <EyeOff className=\"h-5 w-5\" />\n ) : (\n <Eye className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n \n {/* Password Strength Indicator */}\n {password && passwordStrength && (\n <div id=\"password-strength\" className=\"mt-2\">\n <div className=\"flex items-center justify-between mb-1\">\n <span className=\"text-xs text-gray-600 dark:text-gray-400\">Password strength:</span>\n <Badge\n variant={\n passwordStrength.color === 'success' ? 'success' :\n passwordStrength.color === 'warning' ? 'warning' : 'danger'\n }\n className=\"text-xs\"\n >\n {passwordStrength.label}\n </Badge>\n </div>\n <div className=\"w-full bg-gray-200 rounded-full h-2\">\n <div\n className={cn(\n 'h-2 rounded-full transition-all duration-300',\n passwordStrength.color === 'success' && 'bg-success-500',\n passwordStrength.color === 'warning' && 'bg-warning-500',\n passwordStrength.color === 'danger' && 'bg-danger-500'\n )}\n style={{ width: `${(passwordStrength.score / 6) * 100}%` }}\n />\n </div>\n </div>\n )}\n \n {errors.password && (\n <p\n id=\"password-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.password.message}\n </p>\n )}\n </div>\n\n {/* Confirm Password Field */}\n <div>\n <label\n htmlFor=\"confirmPassword\"\n className=\"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2\"\n >\n Confirm Password\n </label>\n <div className=\"relative\">\n <Lock className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400\" />\n <Input\n id=\"confirmPassword\"\n type={showConfirmPassword ? 'text' : 'password'}\n placeholder=\"Confirm your password\"\n className={cn(\n 'pl-10 pr-10 text-gray-900 dark:text-white bg-white dark:bg-gray-900 border-gray-300 dark:border-gray-700 placeholder:text-gray-400 dark:placeholder:text-gray-500',\n errors.confirmPassword && 'border-danger-500 focus:ring-danger-500'\n )}\n aria-invalid={errors.confirmPassword ? 'true' : 'false'}\n aria-describedby={errors.confirmPassword ? 'confirm-password-error' : undefined}\n {...register('confirmPassword')}\n />\n <button\n type=\"button\"\n onClick={toggleConfirmPasswordVisibility}\n className=\"absolute right-3 top-1/2 transform -translate-y-1/2 text-gray-400 hover:text-gray-600\"\n aria-label={showConfirmPassword ? 'Hide password' : 'Show password'}\n >\n {showConfirmPassword ? (\n <EyeOff className=\"h-5 w-5\" />\n ) : (\n <Eye className=\"h-5 w-5\" />\n )}\n </button>\n </div>\n {errors.confirmPassword && (\n <p\n id=\"confirm-password-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.confirmPassword.message}\n </p>\n )}\n </div>\n\n {/* Terms of Service */}\n <div>\n <label className=\"flex items-start\">\n <Checkbox\n className=\"mt-1\"\n {...register('acceptTerms')}\n aria-invalid={errors.acceptTerms ? 'true' : 'false'}\n aria-describedby={errors.acceptTerms ? 'terms-error' : undefined}\n />\n <span className=\"ml-2 text-sm text-gray-600 dark:text-gray-400\">\n I agree to the{' '}\n <a\n href=\"#\"\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Terms of Service\n </a>{' '}\n and{' '}\n <a\n href=\"#\"\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Privacy Policy\n </a>\n </span>\n </label>\n {errors.acceptTerms && (\n <p\n id=\"terms-error\"\n className=\"mt-1 text-sm text-danger-600\"\n role=\"alert\"\n >\n {errors.acceptTerms.message}\n </p>\n )}\n </div>\n\n {/* Submit Button */}\n <Button\n type=\"submit\"\n variant=\"primary\"\n className=\"w-full\"\n disabled={isSubmitting || isLoading}\n >\n {isSubmitting || isLoading ? (\n <>\n <Spinner size=\"sm\" className=\"mr-2\" />\n Creating account...\n </>\n ) : (\n 'Create Account'\n )}\n </Button>\n </form>\n\n {/* Login Link */}\n <div className=\"mt-6 text-center\">\n <p className=\"text-sm text-gray-600 dark:text-gray-400\">\n Already have an account?{' '}\n <button\n type=\"button\"\n onClick={onLoginClick}\n className=\"text-primary-600 hover:text-primary-500 font-medium\"\n >\n Sign in\n </button>\n </p>\n </div>\n </div>\n </div>\n );\n};"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-16{top:4rem}.top-2{top:.5rem}.top-20{top:5rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-full{grid-column:1/-1}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-px{margin-bottom:-1px}.-ml-2{margin-left:-.5rem}.-mt-1{margin-top:-.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[133\.33\%\]{height:133.33%}.h-\[32rem\]{height:32rem}.h-\[600px\]{height:600px}.h-\[70vh\]{height:70vh}.h-\[800px\]{height:800px}.h-\[80vh\]{height:80vh}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:20rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[95vh\]{max-height:95vh}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.min-h-0{min-height:0}.min-h-\[200px\]{min-height:200px}.min-h-\[400px\]{min-height:400px}.min-h-\[60vh\]{min-height:60vh}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[133\.33\%\]{width:133.33%}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[200px\]{min-width:200px}.min-w-\[250px\]{min-width:250px}.min-w-\[32px\]{min-width:32px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[375px\]{max-width:375px}.max-w-\[600px\]{max-width:600px}.max-w-\[85\%\]{max-width:85%}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow-0{flex-grow:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-top-left{transform-origin:top left}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-180,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-75,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.scroll-mt-20{scroll-margin-top:5rem}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-tl-sm{border-top-left-radius:.125rem}.rounded-tr-sm{border-top-right-radius:.125rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-current{border-color:currentColor}.border-danger-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-danger-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.border-green-100{--tw-border-opacity:1;border-color:rgb(220 252 231/var(--tw-border-opacity,1))}.border-primary-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-primary-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-primary-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-primary-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-success-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-success-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-warning-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-yellow-100{--tw-border-opacity:1;border-color:rgb(254 249 195/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-danger-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-danger-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-danger-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-danger-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-success-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-success-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-success-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-success-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-warning-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-warning-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-warning-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-warning-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-opacity-40{--tw-bg-opacity:0.4}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-danger-500{--tw-gradient-from:#ef4444 var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from:#f9fafb var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,250,251,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-primary-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-secondary-500{--tw-gradient-from:#64748b var(--tw-gradient-from-position);--tw-gradient-to:rgba(100,116,139,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-success-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-warning-500{--tw-gradient-from:#f59e0b var(--tw-gradient-from-position);--tw-gradient-to:rgba(245,158,11,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-danger-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-secondary-600{--tw-gradient-to:#475569 var(--tw-gradient-to-position)}.to-success-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.to-warning-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.25em\]{letter-spacing:.25em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-current{color:currentColor}.text-danger-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-danger-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-danger-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-gray-950{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-primary-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-primary-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-primary-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-primary-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-secondary-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-success-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-success-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-success-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-warning-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-warning-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:hsla(0,0%,100%,.6)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-transparent{--tw-ring-color:transparent}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.hover\:border-primary-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\:bg-black\/10:hover{background-color:rgba(0,0,0,.1)}.hover\:bg-black\/20:hover{background-color:rgba(0,0,0,.2)}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-danger-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-primary-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-secondary-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\:bg-success-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-warning-700:hover{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-green-600:hover{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.hover\:text-orange-600:hover{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.hover\:text-primary-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus\:border-primary-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:bg-primary-100:focus{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-danger-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:ring-primary-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}.focus\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-danger-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus-visible\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus-visible\:ring-success-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color:#fff}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-primary-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked],.data-\[state\=checked\]\:translate-x-5[data-state=checked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem}.data-\[state\=checked\]\:translate-x-6[data-state=checked]{--tw-translate-x:1.5rem}.data-\[state\=checked\]\:translate-x-6[data-state=checked],.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px}.data-\[state\=active\]\:border-b-2[data-state=active]{border-bottom-width:2px}.data-\[state\=active\]\:border-primary-600[data-state=active],.data-\[state\=checked\]\:border-primary-600[data-state=checked]{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.data-\[state\=active\]\:bg-primary-100[data-state=active]{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.data-\[state\=active\]\:bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-primary-600[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.data-\[state\=unchecked\]\:bg-gray-200[data-state=unchecked]{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.data-\[state\=active\]\:text-gray-950[data-state=active]{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.data-\[state\=active\]\:text-primary-600[data-state=active]{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.data-\[state\=active\]\:text-primary-700[data-state=active]{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.data-\[state\=checked\]\:text-white[data-state=checked]{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:border-blue-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-danger-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\:border-danger-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.dark\:border-gray-800\/50:is(.dark *){border-color:rgba(31,41,55,.5)}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-primary-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-primary-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:border-primary-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:border-primary-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-success-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.dark\:border-success-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-warning-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(146 64 14/var(--tw-border-opacity,1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:bg-black\/80:is(.dark *){background-color:rgba(0,0,0,.8)}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-danger-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:bg-danger-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-gray-100:is(.dark *){--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-700\/50:is(.dark *){background-color:rgba(55,65,81,.5)}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-800\/50:is(.dark *){background-color:rgba(31,41,55,.5)}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-gray-900\/50:is(.dark *){background-color:rgba(17,24,39,.5)}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:bg-primary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.dark\:bg-primary-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:bg-primary-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.dark\:bg-primary-900\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:bg-primary-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:bg-red-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-red-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-secondary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.dark\:bg-secondary-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:bg-success-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.dark\:bg-success-900\/30:is(.dark *){background-color:rgba(20,83,45,.3)}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-warning-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.dark\:bg-warning-900\/30:is(.dark *){background-color:rgba(120,53,15,.3)}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.dark\:from-gray-900:is(.dark *){--tw-gradient-from:#111827 var(--tw-gradient-from-position);--tw-gradient-to:rgba(17,24,39,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:to-gray-950:is(.dark *){--tw-gradient-to:#030712 var(--tw-gradient-to-position)}.dark\:text-blue-100:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-danger-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-50:is(.dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-gray-900:is(.dark *){--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-secondary-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-success-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-warning-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.dark\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color:#111827}.dark\:placeholder\:text-gray-400:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-400:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:hover\:border-primary-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-900\/50:hover:is(.dark *){background-color:rgba(30,58,138,.5)}.dark\:hover\:bg-danger-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800\/50:hover:is(.dark *){background-color:rgba(31,41,55,.5)}.dark\:hover\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-900\/30:hover:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:hover\:bg-secondary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:hover\:bg-secondary-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:hover\:bg-success-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.dark\:hover\:bg-warning-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:hsla(0,0%,100%,.1)}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:focus\:bg-gray-900:focus:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:focus\:ring-primary-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\:focus-visible\:ring-primary-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\:focus-visible\:ring-offset-gray-900:focus-visible:is(.dark *){--tw-ring-offset-color:#111827}.dark\:data-\[state\=active\]\:border-primary-500[data-state=active]:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:data-\[state\=checked\]\:border-primary-500[data-state=checked]:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:data-\[state\=active\]\:bg-gray-700[data-state=active]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:data-\[state\=active\]\:bg-primary-900\/30[data-state=active]:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:data-\[state\=checked\]\:bg-primary-500[data-state=checked]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:data-\[state\=unchecked\]\:bg-gray-700[data-state=unchecked]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:data-\[state\=active\]\:text-primary-400[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:data-\[state\=active\]\:text-white[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media not all and (min-width:1024px){.max-lg\:absolute{position:absolute}.max-lg\:left-0{left:0}.max-lg\:z-50{z-index:50}.max-lg\:ml-0{margin-left:0}.max-lg\:hidden{display:none}.max-lg\:h-full{height:100%}.max-lg\:w-72{width:18rem}.max-lg\:w-80{width:20rem}.max-lg\:w-full{width:100%}.max-lg\:-translate-x-full{--tw-translate-x:-100%}.max-lg\:-translate-x-full,.max-lg\:translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.max-lg\:translate-x-0{--tw-translate-x:0px}.max-lg\:rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.max-lg\:justify-start{justify-content:flex-start}.max-lg\:justify-between{justify-content:space-between}.max-lg\:shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:ml-6{margin-left:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-12{margin-top:3rem}.sm\:mt-16{margin-top:4rem}.sm\:mt-8{margin-top:2rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:aspect-\[16\/9\]{aspect-ratio:16/9}.sm\:aspect-square{aspect-ratio:1/1}.sm\:h-12{height:3rem}.sm\:h-16{height:4rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:w-12{width:3rem}.sm\:w-16{width:4rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-64{width:16rem}.sm\:w-8{width:2rem}.sm\:w-96{width:24rem}.sm\:w-auto{width:auto}.sm\:max-w-none{max-width:none}.sm\:flex-none{flex:none}.sm\:flex-shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.sm\:rounded-tr-none{border-top-right-radius:0}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pl-4{padding-left:1rem}.sm\:pt-8{padding-top:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-10{padding:2.5rem}.md\:p-6{padding:1.5rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:left-16{left:4rem}.lg\:left-72{left:18rem}.lg\:top-4{top:1rem}.lg\:order-first{order:-9999}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-16{margin-left:4rem}.lg\:ml-72{margin-left:18rem}.lg\:ml-8{margin-left:2rem}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:aspect-video{aspect-ratio:16/9}.lg\:max-h-96{max-height:24rem}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-80{width:20rem}.lg\:w-96{width:24rem}.lg\:w-\[calc\(100\%-18rem\)\]{width:calc(100% - 18rem)}.lg\:w-\[calc\(100\%-4rem\)\]{width:calc(100% - 4rem)}.lg\:w-auto{width:auto}.lg\:flex-1{flex:1 1 0%}.lg\:flex-shrink-0{flex-shrink:0}.lg\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-center{justify-content:center}.lg\:justify-between{justify-content:space-between}.lg\:gap-8{gap:2rem}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lg\:overflow-visible{overflow:visible}.lg\:whitespace-normal{white-space:normal}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-8{padding-top:2rem;padding-bottom:2rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width:1280px){.xl\:col-span-6{grid-column:span 6/span 6}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width:1536px){.\32xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.\[\&_p\]\:leading-relaxed p{line-height:1.625}
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-2{bottom:.5rem}.bottom-4{bottom:1rem}.left-0{left:0}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-16{top:4rem}.top-2{top:.5rem}.top-20{top:5rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.col-span-1{grid-column:span 1/span 1}.col-span-full{grid-column:1/-1}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-auto{margin-top:auto;margin-bottom:auto}.-mb-px{margin-bottom:-1px}.-ml-2{margin-left:-.5rem}.-mt-1{margin-top:-.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-12{margin-left:3rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[133\.33\%\]{height:133.33%}.h-\[32rem\]{height:32rem}.h-\[600px\]{height:600px}.h-\[70vh\]{height:70vh}.h-\[800px\]{height:800px}.h-\[80vh\]{height:80vh}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.h-full{height:100%}.h-screen{height:100vh}.max-h-80{max-height:20rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[95vh\]{max-height:95vh}.max-h-\[calc\(100vh-200px\)\]{max-height:calc(100vh - 200px)}.min-h-0{min-height:0}.min-h-\[200px\]{min-height:200px}.min-h-\[400px\]{min-height:400px}.min-h-\[60vh\]{min-height:60vh}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[133\.33\%\]{width:133.33%}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[200px\]{min-width:200px}.min-w-\[250px\]{min-width:250px}.min-w-\[32px\]{min-width:32px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[375px\]{max-width:375px}.max-w-\[600px\]{max-width:600px}.max-w-\[85\%\]{max-width:85%}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow-0{flex-grow:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-top-left{transform-origin:top left}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-180,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-75,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.scroll-mt-20{scroll-margin-top:5rem}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-tl-sm{border-top-left-radius:.125rem}.rounded-tr-sm{border-top-right-radius:.125rem}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-none{border-style:none}.border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-current{border-color:currentColor}.border-danger-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-danger-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.border-green-100{--tw-border-opacity:1;border-color:rgb(220 252 231/var(--tw-border-opacity,1))}.border-primary-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-primary-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-primary-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-primary-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-success-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-success-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-warning-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-yellow-100{--tw-border-opacity:1;border-color:rgb(254 249 195/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-danger-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-danger-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-danger-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-danger-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-primary-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-primary-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-primary-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-secondary-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-success-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-success-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-success-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-success-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-warning-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-warning-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-warning-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-warning-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-opacity-40{--tw-bg-opacity:0.4}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-danger-500{--tw-gradient-from:#ef4444 var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from:#f9fafb var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,250,251,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-primary-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-secondary-500{--tw-gradient-from:#64748b var(--tw-gradient-from-position);--tw-gradient-to:rgba(100,116,139,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-success-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-warning-500{--tw-gradient-from:#f59e0b var(--tw-gradient-from-position);--tw-gradient-to:rgba(245,158,11,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-danger-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-secondary-600{--tw-gradient-to:#475569 var(--tw-gradient-to-position)}.to-success-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.to-warning-600{--tw-gradient-to:#d97706 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.fill-current{fill:currentColor}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.25em\]{letter-spacing:.25em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-current{color:currentColor}.text-danger-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-danger-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-danger-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-gray-950{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-primary-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-primary-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-primary-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-primary-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-red-100{--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-secondary-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-success-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-success-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-success-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-warning-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-warning-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:hsla(0,0%,100%,.6)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-none,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-0,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-transparent{--tw-ring-color:transparent}.ring-offset-white{--tw-ring-offset-color:#fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.placeholder\:text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.placeholder\:text-gray-500::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.placeholder\:text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.hover\:border-primary-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\:bg-black\/10:hover{background-color:rgba(0,0,0,.1)}.hover\:bg-black\/20:hover{background-color:rgba(0,0,0,.2)}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-danger-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\:bg-primary-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-primary-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-primary-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-secondary-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\:bg-success-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-warning-700:hover{--tw-bg-opacity:1;background-color:rgb(180 83 9/var(--tw-bg-opacity,1))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-green-600:hover{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.hover\:text-orange-600:hover{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.hover\:text-primary-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-primary-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-red-600:hover{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.focus\:border-primary-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:bg-primary-100:focus{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-danger-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:ring-primary-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(147 197 253/var(--tw-ring-opacity,1))}.focus\:ring-primary-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-danger-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus-visible\:ring-primary-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus-visible\:ring-success-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color:#fff}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-primary-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked],.data-\[state\=checked\]\:translate-x-5[data-state=checked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem}.data-\[state\=checked\]\:translate-x-6[data-state=checked]{--tw-translate-x:1.5rem}.data-\[state\=checked\]\:translate-x-6[data-state=checked],.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px}.data-\[state\=active\]\:border-b-2[data-state=active]{border-bottom-width:2px}.data-\[state\=active\]\:border-primary-600[data-state=active],.data-\[state\=checked\]\:border-primary-600[data-state=checked]{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.data-\[state\=active\]\:bg-primary-100[data-state=active]{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.data-\[state\=active\]\:bg-white[data-state=active]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-primary-600[data-state=checked]{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.data-\[state\=unchecked\]\:bg-gray-200[data-state=unchecked]{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.data-\[state\=active\]\:text-gray-950[data-state=active]{--tw-text-opacity:1;color:rgb(3 7 18/var(--tw-text-opacity,1))}.data-\[state\=active\]\:text-primary-600[data-state=active]{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.data-\[state\=active\]\:text-primary-700[data-state=active]{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.data-\[state\=checked\]\:text-white[data-state=checked]{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:border-blue-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-danger-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\:border-danger-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.dark\:border-gray-800\/50:is(.dark *){border-color:rgba(31,41,55,.5)}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-primary-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-primary-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:border-primary-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:border-primary-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-success-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.dark\:border-success-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-warning-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(146 64 14/var(--tw-border-opacity,1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:bg-black\/80:is(.dark *){background-color:rgba(0,0,0,.8)}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-danger-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:bg-danger-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-gray-100:is(.dark *){--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-700\/50:is(.dark *){background-color:rgba(55,65,81,.5)}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-800\/50:is(.dark *){background-color:rgba(31,41,55,.5)}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-gray-900\/50:is(.dark *){background-color:rgba(17,24,39,.5)}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:bg-primary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.dark\:bg-primary-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:bg-primary-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.dark\:bg-primary-900\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:bg-primary-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:bg-red-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-red-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-secondary-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity,1))}.dark\:bg-secondary-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:bg-success-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.dark\:bg-success-900\/30:is(.dark *){background-color:rgba(20,83,45,.3)}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-warning-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.dark\:bg-warning-900\/30:is(.dark *){background-color:rgba(120,53,15,.3)}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.dark\:from-gray-900:is(.dark *){--tw-gradient-from:#111827 var(--tw-gradient-from-position);--tw-gradient-to:rgba(17,24,39,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:to-gray-950:is(.dark *){--tw-gradient-to:#030712 var(--tw-gradient-to-position)}.dark\:text-blue-100:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-danger-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-50:is(.dark *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-gray-900:is(.dark *){--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-primary-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-primary-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-secondary-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-success-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-warning-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.dark\:ring-offset-gray-900:is(.dark *){--tw-ring-offset-color:#111827}.dark\:placeholder\:text-gray-400:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-400:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-500:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:placeholder\:text-gray-500:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:hover\:border-primary-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-900\/50:hover:is(.dark *){background-color:rgba(30,58,138,.5)}.dark\:hover\:bg-danger-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-800\/50:hover:is(.dark *){background-color:rgba(31,41,55,.5)}.dark\:hover\:bg-primary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-primary-900\/30:hover:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:hover\:bg-secondary-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:hover\:bg-secondary-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:hover\:bg-success-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.dark\:hover\:bg-warning-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.dark\:hover\:bg-white\/10:hover:is(.dark *){background-color:hsla(0,0%,100%,.1)}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:hover\:text-primary-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:focus\:bg-gray-900:focus:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:focus\:ring-primary-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\:focus-visible\:ring-primary-400:focus-visible:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\:focus-visible\:ring-offset-gray-900:focus-visible:is(.dark *){--tw-ring-offset-color:#111827}.dark\:data-\[state\=active\]\:border-primary-500[data-state=active]:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:data-\[state\=checked\]\:border-primary-500[data-state=checked]:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:data-\[state\=active\]\:bg-gray-700[data-state=active]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:data-\[state\=active\]\:bg-primary-900\/30[data-state=active]:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:data-\[state\=checked\]\:bg-primary-500[data-state=checked]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:data-\[state\=unchecked\]\:bg-gray-700[data-state=unchecked]:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:data-\[state\=active\]\:text-primary-400[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:data-\[state\=active\]\:text-white[data-state=active]:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media not all and (min-width:1024px){.max-lg\:absolute{position:absolute}.max-lg\:left-0{left:0}.max-lg\:z-50{z-index:50}.max-lg\:ml-0{margin-left:0}.max-lg\:hidden{display:none}.max-lg\:h-full{height:100%}.max-lg\:w-72{width:18rem}.max-lg\:w-80{width:20rem}.max-lg\:w-full{width:100%}.max-lg\:-translate-x-full{--tw-translate-x:-100%}.max-lg\:-translate-x-full,.max-lg\:translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.max-lg\:translate-x-0{--tw-translate-x:0px}.max-lg\:rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.max-lg\:justify-start{justify-content:flex-start}.max-lg\:justify-between{justify-content:space-between}.max-lg\:shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mb-8{margin-bottom:2rem}.sm\:ml-6{margin-left:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-12{margin-top:3rem}.sm\:mt-16{margin-top:4rem}.sm\:mt-8{margin-top:2rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:aspect-\[16\/9\]{aspect-ratio:16/9}.sm\:aspect-square{aspect-ratio:1/1}.sm\:h-12{height:3rem}.sm\:h-16{height:4rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-8{height:2rem}.sm\:w-12{width:3rem}.sm\:w-16{width:4rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-64{width:16rem}.sm\:w-8{width:2rem}.sm\:w-96{width:24rem}.sm\:w-auto{width:auto}.sm\:max-w-none{max-width:none}.sm\:flex-none{flex:none}.sm\:flex-shrink-0{flex-shrink:0}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:.5rem}.sm\:rounded-l-lg{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.sm\:rounded-tr-none{border-top-right-radius:0}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-12{padding-top:3rem;padding-bottom:3rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pb-6{padding-bottom:1.5rem}.sm\:pl-4{padding-left:1rem}.sm\:pt-8{padding-top:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-10{padding:2.5rem}.md\:p-6{padding:1.5rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:left-16{left:4rem}.lg\:left-72{left:18rem}.lg\:top-4{top:1rem}.lg\:order-first{order:-9999}.lg\:col-span-1{grid-column:span 1/span 1}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:mb-8{margin-bottom:2rem}.lg\:ml-16{margin-left:4rem}.lg\:ml-72{margin-left:18rem}.lg\:ml-8{margin-left:2rem}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:aspect-video{aspect-ratio:16/9}.lg\:max-h-96{max-height:24rem}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-80{width:20rem}.lg\:w-96{width:24rem}.lg\:w-\[calc\(100\%-18rem\)\]{width:calc(100% - 18rem)}.lg\:w-\[calc\(100\%-4rem\)\]{width:calc(100% - 4rem)}.lg\:w-auto{width:auto}.lg\:flex-1{flex:1 1 0%}.lg\:flex-shrink-0{flex-shrink:0}.lg\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-center{justify-content:center}.lg\:justify-between{justify-content:space-between}.lg\:gap-8{gap:2rem}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lg\:overflow-visible{overflow:visible}.lg\:whitespace-normal{white-space:normal}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-top:0;padding-bottom:0}.lg\:py-8{padding-top:2rem;padding-bottom:2rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}}@media (min-width:1280px){.xl\:col-span-6{grid-column:span 6/span 6}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width:1536px){.\32xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}.\[\&_p\]\:leading-relaxed p{line-height:1.625}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beyondcorp/beyond-ui",
3
- "version": "1.4.6",
3
+ "version": "1.4.8",
4
4
  "description": "A comprehensive React UI component library built with TypeScript, TailwindCSS, and CVA",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",