@syscore/ui-library 1.1.13 → 1.2.0

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.
Files changed (59) hide show
  1. package/client/components/ui/accordion.tsx +6 -9
  2. package/client/components/ui/alert-dialog.tsx +6 -19
  3. package/client/components/ui/alert.tsx +5 -6
  4. package/client/components/ui/avatar.tsx +3 -9
  5. package/client/components/ui/badge.tsx +5 -8
  6. package/client/components/ui/breadcrumb.tsx +7 -16
  7. package/client/components/ui/button.tsx +17 -45
  8. package/client/components/ui/calendar.tsx +24 -28
  9. package/client/components/ui/card.tsx +6 -9
  10. package/client/components/ui/carousel.tsx +14 -14
  11. package/client/components/ui/chart.tsx +25 -28
  12. package/client/components/ui/checkbox.tsx +3 -8
  13. package/client/components/ui/code-badge.tsx +1 -4
  14. package/client/components/ui/command.tsx +12 -48
  15. package/client/components/ui/context-menu.tsx +17 -32
  16. package/client/components/ui/dialog.tsx +9 -18
  17. package/client/components/ui/drawer.tsx +7 -13
  18. package/client/components/ui/dropdown-menu.tsx +17 -29
  19. package/client/components/ui/form.tsx +4 -4
  20. package/client/components/ui/hover-card.tsx +1 -4
  21. package/client/components/ui/input-otp.tsx +7 -10
  22. package/client/components/ui/input.tsx +4 -23
  23. package/client/components/ui/label.tsx +1 -3
  24. package/client/components/ui/menubar.tsx +19 -40
  25. package/client/components/ui/navigation-menu.tsx +10 -27
  26. package/client/components/ui/navigation.tsx +193 -331
  27. package/client/components/ui/pagination.tsx +8 -8
  28. package/client/components/ui/popover.tsx +1 -4
  29. package/client/components/ui/progress.tsx +2 -5
  30. package/client/components/ui/radio-group.tsx +4 -7
  31. package/client/components/ui/resizable.tsx +4 -10
  32. package/client/components/ui/scroll-area.tsx +5 -8
  33. package/client/components/ui/search.tsx +7 -10
  34. package/client/components/ui/select.tsx +11 -36
  35. package/client/components/ui/separator.tsx +2 -2
  36. package/client/components/ui/sheet.tsx +12 -23
  37. package/client/components/ui/sidebar.tsx +55 -82
  38. package/client/components/ui/skeleton.tsx +1 -1
  39. package/client/components/ui/slider.tsx +4 -7
  40. package/client/components/ui/sonner.tsx +5 -8
  41. package/client/components/ui/switch.tsx +2 -9
  42. package/client/components/ui/table.tsx +9 -18
  43. package/client/components/ui/tabs.tsx +19 -28
  44. package/client/components/ui/tag.tsx +6 -66
  45. package/client/components/ui/textarea.tsx +1 -4
  46. package/client/components/ui/toast.tsx +9 -19
  47. package/client/components/ui/toaster.tsx +1 -1
  48. package/client/components/ui/toggle-group.tsx +4 -4
  49. package/client/components/ui/toggle.tsx +13 -13
  50. package/client/components/ui/tooltip.tsx +12 -15
  51. package/client/global.css +5419 -1054
  52. package/client/storybook.css +1164 -0
  53. package/dist/ui/index.cjs.js +1 -1
  54. package/dist/ui/index.d.ts +0 -1
  55. package/dist/ui/index.es.js +976 -1926
  56. package/dist/ui/ui-library.css +1 -0
  57. package/package.json +2 -2
  58. package/client/ui/WELLDashboard/WELLDashboard.stories.tsx +0 -115
  59. package/client/ui/WELLDashboard/index.tsx +0 -317
@@ -0,0 +1 @@
1
+ .button{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;transition:all .15s ease-in-out;cursor:pointer;border:none;outline:none}.button:focus-visible{outline:none;box-shadow:0 0 0 2px currentColor,0 0 0 4px var(--color-white, #fff)}.button:disabled{pointer-events:none;opacity:.5}.button--clear{background:none;border:none}.button--default{background-color:var(--color-white, #fff);border:1px solid var(--color-gray-100, #eff1f2)}.button--primary-gradient{color:var(--color-white, #fff);background-image:linear-gradient(0deg,#0f748a99,#0f748a99),linear-gradient(99deg,#41d5f6 3.39%,#3eecd1,#66fcd9 112.32%)}.button--primary-gradient:hover{opacity:.9}.button--primary-dark{background-color:var(--color-cyan-800, #0f748a);color:var(--color-white, #fff)}.button--primary-dark:hover{background-color:var(--color-cyan-900, #0a5161)}.button--primary-dark:focus-visible{box-shadow:0 0 0 2px var(--color-cyan-800, #0f748a),0 0 0 4px var(--color-white, #fff)}.button--secondary-light{background-color:var(--color-white, #fff);border:1px solid var(--color-gray-200, #dedfe3);color:var(--color-cyan-800, #0f748a)}.button--secondary-light:hover{background-color:var(--color-gray-50, #f9f9fa)}.button--secondary-light:focus-visible{box-shadow:0 0 0 2px var(--color-gray-200, #dedfe3),0 0 0 4px var(--color-white, #fff)}.button--tertiary-light{background-color:var(--color-blue-50, #fbfdfe);border:1px solid var(--color-blue-200, #cbe0f1);color:var(--color-blue-600, #2e74ad)}.button--tertiary-light:hover{background-color:var(--color-blue-100, #eff5fb)}.button--tertiary-light:focus-visible{box-shadow:0 0 0 2px var(--color-blue-200, #cbe0f1),0 0 0 4px var(--color-white, #fff)}.button--general-primary{background-color:var(--color-blue-600, #2e74ad);color:var(--color-white, #fff)}.button--general-primary:hover{background-color:var(--color-blue-700, #286495)}.button--general-primary:focus-visible{box-shadow:0 0 0 2px var(--color-blue-600, #2e74ad),0 0 0 4px var(--color-white, #fff)}.button--general-secondary{background-color:var(--color-white, #fff);border:1px solid var(--color-blue-200, #cbe0f1);color:var(--color-blue-600, #2e74ad)}.button--general-secondary:hover{background-color:var(--color-blue-50, #fbfdfe)}.button--general-secondary:focus-visible{box-shadow:0 0 0 2px var(--color-blue-200, #cbe0f1),0 0 0 4px var(--color-white, #fff)}.button--general-tertiary{background-color:var(--color-white, #fff);border:1px solid var(--color-gray-200, #dedfe3);color:var(--color-gray-600, #52545d)}.button--general-tertiary:hover{background-color:var(--color-gray-50, #f9f9fa)}.button--general-tertiary:focus-visible{box-shadow:0 0 0 2px var(--color-gray-200, #dedfe3),0 0 0 4px var(--color-white, #fff)}.button--tooltip-primary{background-color:var(--color-cyan-300, #39c9ea);color:var(--color-white, #fff)}.button--tooltip-primary:hover{background-color:var(--color-cyan-400, #18bde2)}.button--tooltip-primary:focus-visible{box-shadow:0 0 0 2px var(--color-cyan-300, #39c9ea),0 0 0 4px var(--color-white, #fff)}.button--tooltip-secondary{background-color:var(--color-gray-500, #71747d);color:var(--color-white, #fff)}.button--tooltip-secondary:hover{background-color:var(--color-gray-600, #52545d)}.button--tooltip-secondary:focus-visible{box-shadow:0 0 0 2px var(--color-gray-500, #71747d),0 0 0 4px var(--color-white, #fff)}.button--xlarge{height:4rem;padding-left:2.5rem;padding-right:2.5rem;font-weight:600}.button--large{height:3rem;padding-left:2rem;padding-right:2rem;font-weight:600}.button--utility{height:2rem;padding-left:1rem;padding-right:1rem;font-weight:600}.button--icon{width:2rem;height:2rem;padding:0;background-color:var(--color-white, #fff);border:1px solid var(--color-gray-100, #eff1f2);transition:all .2s ease-in-out}.button--icon:hover{border-color:var(--color-gray-200, #dedfe3);transform:scale(1.02)}.button-text{position:relative;z-index:10;font-weight:600}.accordion-item{border-bottom:1px solid var(--color-border, hsl(var(--border)))}.accordion-header{display:flex}.accordion-trigger{display:flex;flex:1;align-items:center;justify-content:space-between;padding-top:1rem;padding-bottom:1rem;font-weight:500;transition:all .15s ease-in-out}.accordion-trigger[data-state=open]>svg{transform:rotate(180deg)}.accordion-chevron{height:1rem;width:1rem;flex-shrink:0;transition:transform .2s ease-in-out}.accordion-content{overflow:hidden;font-size:.875rem;line-height:1.25rem;transition:all .15s ease-in-out}.accordion-content[data-state=closed]{animation:accordion-up .2s ease-out}.accordion-content[data-state=open]{animation:accordion-down .2s ease-out}.accordion-content-inner{padding-bottom:1rem;padding-top:0}.badge{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid transparent;padding:.125rem .625rem;font-size:.75rem;line-height:1rem;font-weight:600;transition:colors .15s ease-in-out}.badge:focus{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px var(--color-white, #fff)}.badge--default{border-color:transparent;background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.badge--default:hover{background-color:hsl(var(--primary) / .8)}.badge--secondary{border-color:transparent;background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.badge--secondary:hover{background-color:hsl(var(--secondary) / .8)}.badge--destructive{border-color:transparent;background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.badge--destructive:hover{background-color:hsl(var(--destructive) / .8)}.badge--outline{color:hsl(var(--foreground))}.label{color:var(--color-gray-600, #52545d);padding-left:.5rem;padding-right:.5rem}.label:has(+*:disabled){cursor:not-allowed;opacity:.7}.separator{flex-shrink:0;background-color:hsl(var(--border))}.separator--horizontal{height:1px;width:100%}.separator--vertical{height:100%;width:1px}.skeleton{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite;border-radius:calc(var(--radius-md, 8px));background-color:hsl(var(--muted))}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.card{border-radius:var(--radius-lg, 12px);border:1px solid var(--color-gray-100, #eff1f2);background-color:var(--color-cyan-50, #fafeff);padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.card-header{display:flex;flex-direction:column;gap:1.5rem}.card-title,.card-description,.card-content{color:var(--color-gray-800, #282a31)}.card-footer{display:flex;align-items:center;color:var(--color-gray-800, #282a31)}.input-wrapper{display:flex;height:3rem;width:100%;align-items:center;border-radius:6px;border:1px solid var(--color-gray-200, #dedfe3);background-color:var(--color-white, #fff);padding-left:1rem;padding-right:1rem;transition:box-shadow .15s ease-in-out;color:var(--color-gray-800, #282a31);font-weight:500}.input-wrapper:focus-within{border-color:var(--color-cyan-300, #39c9ea)}.input-wrapper:has(input:disabled){opacity:.5;cursor:not-allowed}.input-wrapper:has(input[readonly]){background-color:var(--color-gray-50, #f9f9fa);border-color:var(--color-blue-200, #cbe0f1);color:var(--color-gray-600, #52545d);cursor:default}.input-wrapper:has(input[readonly]):focus-within{border-color:var(--color-blue-200, #cbe0f1)}.input-icon-start{margin-right:.75rem;display:flex;align-items:center;color:hsl(var(--muted-foreground))}.input-icon-end{margin-left:.75rem;display:flex;align-items:center;color:hsl(var(--muted-foreground))}.input{flex:1;width:100%;background-color:transparent;outline:none}.input::placeholder{color:var(--color-gray-500, #71747d)}.input[type=file]{padding:0;font-style:italic;color:hsl(var(--muted-foreground) / .7)}.input[type=file]::file-selector-button{margin-right:.75rem;height:100%;border:0;border-right:1px solid var(--color-gray-200, #dedfe3);border-style:solid;background-color:transparent;padding-left:.75rem;padding-right:.75rem;font-size:1rem;font-weight:500;font-style:normal;color:var(--color-gray-800, #282a31)}.input[type=search]::-webkit-search-cancel-button,.input[type=search]::-webkit-search-decoration,.input[type=search]::-webkit-search-results-button,.input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.textarea{display:flex;min-height:80px;width:100%;border-radius:6px;border:1px solid var(--color-gray-200, #dedfe3);background-color:var(--color-white, #fff);padding:1rem;color:var(--color-gray-800, #282a31);font-weight:500}.textarea::placeholder{font-weight:400;color:var(--color-gray-500, #71747d)}.textarea:focus{border-color:var(--color-cyan-300, #39c9ea);outline:none}.textarea:focus-visible{outline:none}.textarea:disabled{cursor:not-allowed;opacity:.5;border-color:var(--color-blue-200, #cbe0f1);background-color:transparent}.switch{position:relative;display:inline-flex;height:1.5rem;width:2.75rem;flex-shrink:0;cursor:pointer;align-items:center;border-radius:9999px;border:2px solid transparent;transition:background-color .15s ease-in-out}.switch:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.switch:disabled{cursor:not-allowed;opacity:.5}.switch[data-state=checked]{background-color:hsl(var(--primary))}.switch[data-state=unchecked]{background-color:hsl(var(--input))}.switch-thumb{pointer-events:none;display:block;height:1.25rem;width:1.25rem;border-radius:9999px;background-color:hsl(var(--background));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transition:transform .15s ease-in-out}.switch-thumb[data-state=checked]{transform:translate(1.25rem)}.switch-thumb[data-state=unchecked]{transform:translate(0)}.checkbox{height:1rem;width:1rem;flex-shrink:0;border-radius:calc(var(--radius-sm, 6px));border:1px solid hsl(var(--primary));transition:all .15s ease-in-out}.checkbox:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.checkbox:disabled{cursor:not-allowed;opacity:.5}.checkbox[data-state=checked]{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.checkbox-indicator{display:flex;align-items:center;justify-content:center;color:currentColor}.checkbox-indicator svg{height:1rem;width:1rem}.alert{position:relative;width:100%;border-radius:var(--radius-lg, 12px);border:1px solid hsl(var(--border));padding:1rem}.alert>svg{position:absolute;left:1rem;top:1rem;color:hsl(var(--foreground))}.alert>svg~*{padding-left:1.75rem}.alert>svg+div{transform:translateY(-3px)}.alert--default{background-color:hsl(var(--background));color:hsl(var(--foreground))}.alert--destructive{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}.alert--destructive>svg{color:hsl(var(--destructive))}.alert-title{margin-bottom:.25rem;font-weight:500;line-height:1;letter-spacing:-.025em}.alert-description{font-size:.875rem;line-height:1.25rem}.alert-description p{line-height:1.625}.avatar{position:relative;display:flex;height:2.5rem;width:2.5rem;flex-shrink:0;overflow:hidden;border-radius:9999px}.avatar-image{aspect-ratio:1 / 1;height:100%;width:100%}.avatar-fallback{display:flex;height:100%;width:100%;align-items:center;justify-content:center;border-radius:9999px;background-color:hsl(var(--muted))}.tag{display:inline-flex;align-items:center;padding:8px;border-radius:calc(var(--radius-sm, 6px));width:fit-content;cursor:pointer;transition:all .2s ease-in-out}.tag:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px var(--color-white, #fff)}.tag:disabled{opacity:.5;cursor:not-allowed}.tag--light-todo{background-color:var(--color-gray-100, #eff1f2);color:var(--color-gray-600, #52545d)}.tag--light-low{background-color:var(--color-cyan-100, #d6f4fb);color:var(--color-cyan-600, #149ebd)}.tag--light-medium{background-color:var(--color-plum-100, #f7f2f6);color:var(--color-plum-600, #aa6a9b)}.tag--light-high{background-color:var(--color-coral-100, #fcf4f2);color:var(--color-coral-600, #e67357)}.tag--light-done{background-color:var(--color-emerald-100, #e0fbf5);color:var(--color-emerald-600, #1bc5a3)}.tag--dark-todo{background-color:var(--color-gray-600, #52545d);color:var(--color-gray-100, #eff1f2)}.tag--dark-low{background-color:var(--color-cyan-700, #128ba6);color:var(--color-cyan-100, #d6f4fb)}.tag--dark-medium{background-color:var(--color-plum-700, #905c84);color:var(--color-plum-100, #f7f2f6)}.tag--dark-high{background-color:var(--color-coral-700, #dc5432);color:var(--color-coral-100, #fcf4f2)}.tag--dark-done{background-color:var(--color-emerald-700, #17aa8d);color:var(--color-emerald-100, #e0fbf5)}.tag-general{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:calc(var(--radius-sm, 6px));width:fit-content;cursor:pointer;transition:all .2s ease-in-out}.tag-general:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px var(--color-white, #fff)}.tag-general:disabled{opacity:.5;cursor:not-allowed}.tag-general--active{background-color:var(--color-cyan-800, #0f748a);color:var(--color-white, #fff)}.tag-general--active:hover{border-color:var(--color-cyan-800, #0f748a)}.tag-general--inactive{background-color:var(--color-blue-100, #eff5fb);color:var(--color-blue-700, #286495)}.tag-general--inactive:hover{background-color:var(--color-cyan-800, #0f748a);color:var(--color-white, #fff)}.toggle{display:inline-flex;align-items:center;justify-content:center;border-radius:calc(var(--radius-md, 8px));font-size:.875rem;line-height:1.25rem;font-weight:500;transition:colors .15s ease-in-out}.toggle:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.toggle:disabled{pointer-events:none;opacity:.5}.toggle:hover{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground))}.toggle[data-state=on]{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.toggle--default{background-color:transparent}.toggle--outline{border:1px solid hsl(var(--input));background-color:transparent}.toggle--outline:hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.toggle--size-default{height:2.5rem;padding-left:.75rem;padding-right:.75rem}.toggle--size-sm{height:2.25rem;padding-left:.625rem;padding-right:.625rem}.toggle--size-lg{height:2.75rem;padding-left:1.25rem;padding-right:1.25rem}.segmented-control{display:inline-flex}.segmented-control-button{display:inline-flex;align-items:center;justify-content:center;height:2rem;padding-left:1rem;padding-right:1rem;border-radius:9999px;transition:all .15s ease-in-out;cursor:pointer}.segmented-control-button:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring))}.segmented-control-button--active{background-color:var(--color-cyan-800, #0f748a);color:var(--color-white, #fff);font-weight:600}.segmented-control-button--inactive{color:var(--color-gray-600, #52545d);font-weight:500}.segmented-control-button--inactive:hover{background-color:var(--color-gray-50, #f9f9fa)}.progress{position:relative;height:1rem;width:100%;overflow:hidden;border-radius:9999px;background-color:hsl(var(--secondary))}.progress-indicator{height:100%;width:100%;flex:1;background-color:hsl(var(--primary));transition:transform .15s ease-in-out}.slider{position:relative;display:flex;width:100%;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center}.slider-track{position:relative;height:.5rem;width:100%;flex-grow:1;overflow:hidden;border-radius:9999px;background-color:hsl(var(--secondary))}.slider-range{position:absolute;height:100%;background-color:hsl(var(--primary))}.slider-thumb{display:block;height:1.25rem;width:1.25rem;border-radius:9999px;border:2px solid hsl(var(--primary));background-color:hsl(var(--background));transition:background-color .15s ease-in-out}.slider-thumb:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.slider-thumb:disabled{pointer-events:none;opacity:.5}.radio-group{display:grid;gap:.5rem}.radio-group-item{aspect-ratio:1 / 1;height:1rem;width:1rem;border-radius:9999px;border:1px solid hsl(var(--primary));color:hsl(var(--primary));transition:all .15s ease-in-out}.radio-group-item:focus{outline:none}.radio-group-item:focus-visible{box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.radio-group-item:disabled{cursor:not-allowed;opacity:.5}.radio-group-indicator{display:flex;align-items:center;justify-content:center}.radio-group-indicator svg{height:.625rem;width:.625rem;fill:currentColor;color:currentColor}.code-badge{display:flex;align-items:center;justify-content:center;height:2rem;width:3rem;border-radius:calc(var(--radius-sm, 6px));flex-shrink:0;border:1.5px solid currentColor;padding-left:1px;padding-right:1px}.tooltip-content{position:relative;background-color:#3e4049;z-index:50;width:fit-content;border-radius:.5rem;padding:2rem 1.5rem 1.5rem;box-shadow:0 1px 2px #0000000d;margin-top:.75rem;transform-origin:var(--radix-tooltip-content-transform-origin);animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.tooltip-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.tooltip-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.tooltip-content[data-side=bottom][data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out,slide-out-to-top .15s ease-in-out}.tooltip-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.tooltip-content[data-side=left][data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out,slide-out-to-left .15s ease-in-out}.tooltip-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.tooltip-content[data-side=right][data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out,slide-out-to-right .15s ease-in-out}.tooltip-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.tooltip-content[data-side=top][data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out,slide-out-to-top .15s ease-in-out}.tooltip-arrow{position:absolute;left:50%;transform:translate(-50%);display:flex;justify-content:center}.tooltip-arrow[data-side=top]{bottom:0;transform:translate(-50%) rotate(180deg)}.tooltip-arrow[data-side=bottom]{top:0;transform:translate(-50%)}.tooltip-arrow[data-side=left]{right:0;top:50%;transform:translateY(-50%) rotate(-90deg)}.tooltip-arrow[data-side=right]{left:0;top:50%;transform:translateY(-50%) rotate(90deg)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes zoom-in{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes zoom-out{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes slide-in-from-top{0%{transform:translateY(-.5rem)}to{transform:translateY(0)}}@keyframes slide-in-from-bottom{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}@keyframes slide-in-from-left{0%{transform:translate(-.5rem)}to{transform:translate(0)}}@keyframes slide-in-from-right{0%{transform:translate(.5rem)}to{transform:translate(0)}}@keyframes slide-out-to-top{0%{transform:translateY(0)}to{transform:translateY(-.5rem)}}@keyframes slide-out-to-bottom{0%{transform:translateY(0)}to{transform:translateY(.5rem)}}@keyframes slide-out-to-left{0%{transform:translate(0)}to{transform:translate(-.5rem)}}@keyframes slide-out-to-right{0%{transform:translate(0)}to{transform:translate(.5rem)}}.tabs{width:100%}.tabs-list{display:inline-flex;height:2.5rem;align-items:center;justify-content:center;border-radius:calc(var(--radius-md, 8px));background-color:hsl(var(--muted));padding:.25rem;color:hsl(var(--muted-foreground))}.tabs-trigger{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition:all .15s ease-in-out}.tabs-trigger:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.tabs-trigger:disabled{pointer-events:none;opacity:.5}.tabs-trigger[data-state=active]{background-color:hsl(var(--background));color:hsl(var(--foreground));box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.tabs-content{margin-top:.5rem}.tabs-content:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.tabs-nav{display:flex;flex-shrink:0;justify-content:center;align-items:center;position:relative;z-index:0;padding-top:.5rem;padding-bottom:.5rem;gap:2.5rem}.tabs-nav-button{font-family:var(--font-overline-large, inherit);position:relative;border-radius:.375rem;display:flex;align-items:center;height:2rem;z-index:20;background-color:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease-in-out;border:none;padding:0}.tabs-nav-button-text{display:block}.tabs-nav-button-text--inactive{color:#6b7280}.tabs-nav-button-text--active{color:#1f2937;font-weight:600}.dark .tabs-nav-button-text--active{color:#fff}.tabs-nav-button-text--danger{color:#ef4444}.tabs-nav-indicator{position:absolute;z-index:10;bottom:0;left:0;height:2px}.tabs-nav-indicator--default{background-color:#0e7490}.tabs-nav-indicator--danger{background-color:#ef4444}.tabs-nav-underline{position:absolute;bottom:0;left:0;width:100%;height:2px;background-color:#e5e7eb}.tabs-container{width:100%}.tabs-container-inner{position:relative;display:flex;width:100%;flex-shrink:0;align-items:center;justify-content:space-between;overflow-x:auto;overflow-y:hidden}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground));word-break:break-word}@media(min-width:640px){.breadcrumb-list{gap:.625rem}}.breadcrumb-item{display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-link{transition:color .15s ease-in-out}.breadcrumb-link:hover{color:hsl(var(--foreground))}.breadcrumb-page{color:var(--color-gray-600, #52545d);text-align:center;white-space:nowrap}.breadcrumb-separator{height:1rem;width:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.breadcrumb-ellipsis{display:flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background-color:#00000080}.dialog-overlay[data-state=open]{animation:fade-in .15s ease-in-out}.dialog-overlay[data-state=closed]{animation:fade-out .15s ease-in-out}.dialog-content{position:fixed;top:50%;left:50%;z-index:50;display:grid;gap:1rem;overflow:hidden;border-radius:40px;border:12px solid rgba(255,255,255,.2);transform:translate(-50%,-50%);transition:all .2s ease-in-out}.dialog-content[data-state=open]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.dialog-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.dialog-content-inner{padding:1.5rem;background-color:var(--color-gray-50, #f9f9fa)}.dialog-close{position:absolute;top:1rem;right:1rem;border-radius:2px;opacity:.7;transition:opacity .15s ease-in-out}.dialog-close:hover{opacity:1}.dialog-close:focus{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.dialog-close:disabled{pointer-events:none}.dialog-close svg{pointer-events:none;flex-shrink:0;height:1rem;width:1rem}.dialog-header{display:flex;flex-direction:column;gap:.5rem;text-align:center}@media(min-width:640px){.dialog-header{text-align:left}}.dialog-footer{display:flex;flex-direction:column-reverse;gap:.5rem}@media(min-width:640px){.dialog-footer{flex-direction:row;justify-content:flex-end}}.dialog-description{color:hsl(var(--muted-foreground));font-size:.875rem;line-height:1.25rem}.select-trigger{display:flex;height:3rem;width:100%;border-radius:6px;border:1px solid var(--color-gray-200, #dedfe3);background-color:var(--color-white, #fff);padding:1rem;color:var(--color-gray-800, #282a31);transition:border-color .15s ease-in-out}.select-trigger:focus{outline:none}.select-trigger::placeholder{font-weight:400;color:var(--color-gray-500, #71747d)}.select-trigger[data-state=open]{border-color:var(--color-cyan-300, #39c9ea)}.select-trigger:disabled{cursor:not-allowed;opacity:.5}.select-trigger>span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.select-trigger-inner{display:flex;align-items:center;justify-content:space-between;width:100%}.select-trigger-text{color:var(--color-gray-800, #282a31);font-weight:500}.select-icon{color:var(--color-gray-600, #52545d);transition:transform .2s ease-in-out}.select-trigger[data-state=open] .select-icon{transform:rotate(180deg)}.select-scroll-button{display:flex;cursor:default;align-items:center;justify-content:center;padding-top:.25rem;padding-bottom:.25rem}.select-content{position:relative;z-index:50;max-height:24rem;min-width:8rem;overflow:hidden;border:1px solid var(--color-cyan-300, #39c9ea);background-color:var(--color-gray-700, #3e4049);color:var(--color-gray-200, #dedfe3);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.select-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.select-content[data-side=bottom]{margin-top:-.25rem;border-radius:0 0 6px 6px;border-top:0;border-bottom:1px solid var(--color-cyan-300, #39c9ea);animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.select-content[data-side=top]{margin-bottom:-.25rem;border-radius:6px 6px 0 0;border-bottom:0;border-top:1px solid var(--color-cyan-300, #39c9ea);animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.select-label{padding:.375rem .5rem .375rem 2rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.select-item{position:relative;display:flex;height:3rem;width:100%;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-left:1px solid var(--color-cyan-300, #39c9ea);border-right:1px solid var(--color-cyan-300, #39c9ea);padding-left:1rem;padding-right:1rem;outline:none}.select-item:focus{background-color:#0003}.select-item[data-disabled]{pointer-events:none;opacity:.5}.select-separator{margin:.25rem -.25rem;height:1px;background-color:hsl(var(--muted))}.popover-content{z-index:50;width:18rem;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;outline:none;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.popover-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.popover-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.popover-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.popover-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.popover-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.table-wrapper{position:relative;width:100%;overflow:auto}.table{width:100%;font-size:.875rem;line-height:1.25rem;caption-side:bottom}.table-header tr{border-bottom:1px solid hsl(var(--border))}.table-body tr:last-child{border-bottom:0}.table-footer{border-top:1px solid hsl(var(--border));background-color:hsl(var(--muted) / .5);font-weight:500}.table-footer tr:last-child{border-bottom:0}.table-row{border-bottom:1px solid hsl(var(--border));transition:background-color .15s ease-in-out}.table-row:hover{background-color:hsl(var(--muted) / .5)}.table-row[data-state=selected]{background-color:hsl(var(--muted))}.table-head{height:3rem;padding-left:1rem;padding-right:1rem;text-align:left;vertical-align:middle;font-weight:500;color:hsl(var(--muted-foreground))}.table-head:has([role=checkbox]){padding-right:0}.table-cell{padding:1rem;vertical-align:middle}.table-cell:has([role=checkbox]){padding-right:0}.table-caption{margin-top:1rem;font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground))}.search-field-dropdown{animation:fade-in .15s ease-in-out;position:absolute;top:0;z-index:10;width:100%;border-radius:.75rem;background-color:var(--color-white, #fff);outline:none}.search-field-dropdown.hidden{display:none}.search-field-list{border-bottom:1px solid var(--color-cyan-300, #39c9ea);border-left:1px solid var(--color-cyan-300, #39c9ea);border-right:1px solid var(--color-cyan-300, #39c9ea)}.search-field-input--focused:focus-within,.search-field-input--focused:focus{border-color:#7dd3fc}.search-field-input--open{border-bottom-left-radius:0;border-bottom-right-radius:0}.search-field-empty{-webkit-user-select:none;user-select:none;border-radius:.125rem;padding:.5rem .75rem;text-align:center;font-size:.875rem;line-height:1.25rem;color:#e5e7eb}.search-field-skeleton{padding:.25rem}.command{display:flex;height:100%;width:100%;flex-direction:column;overflow:hidden}.command-dialog-content{overflow:hidden;padding:0;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.command-input-wrapper{position:relative;display:flex;height:3.5rem;width:100%;min-width:344px;align-items:center;gap:1rem;border-radius:var(--radius-lg, 12px);border:1px solid var(--color-gray-200, #dedfe3);background-color:var(--color-white, #fff);padding:1rem}.command-input-wrapper:focus-within{outline:none}.command-input-wrapper svg{height:1rem;width:1rem;flex-shrink:0;transition:transform .2s ease-in-out,opacity .2s ease-in-out}.command-input-wrapper:focus-within svg{transform:translate(-1rem);opacity:0}.command-input{font-size:1rem;width:100%;outline:none;transition:transform .2s ease-in-out}.command-input-wrapper:focus-within .command-input{transform:translate(-2rem)}.command-list{max-height:300px;overflow-y:auto;overflow-x:hidden;background-color:var(--color-gray-700, #3e4049);border-radius:0 0 var(--radius-lg, 12px) var(--radius-lg, 12px)}.command-empty{padding-top:1.5rem;padding-bottom:1.5rem;text-align:center;font-size:.875rem;line-height:1.25rem}.command-group{overflow:hidden}.command-group-heading{padding:.375rem .5rem;font-size:.75rem;line-height:1rem;font-weight:500;color:hsl(var(--muted-foreground))}.command-group:not([hidden])~.command-group{padding-top:0}.command-group{padding-left:.5rem;padding-right:.5rem}.command-item{position:relative;display:flex;width:100%;align-items:center;gap:.5rem;cursor:default;-webkit-user-select:none;user-select:none;padding:1rem;font-size:.875rem;line-height:1.25rem;outline:none;background-color:var(--color-gray-700, #3e4049);color:var(--color-gray-200, #dedfe3)}.command-item:hover{background-color:#0003}.command-item[data-disabled=true]{pointer-events:none;opacity:.5}.command-item svg{pointer-events:none;height:1rem;width:1rem;flex-shrink:0}.command-separator{margin-left:-.25rem;margin-right:-.25rem;height:1px;background-color:hsl(var(--border))}.command-shortcut{margin-left:auto;font-size:.75rem;line-height:1rem;letter-spacing:.1em;color:hsl(var(--muted-foreground))}.alert-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background-color:#000c;animation:fade-in .15s ease-in-out}.alert-dialog-overlay[data-state=closed]{animation:fade-out .15s ease-in-out}.alert-dialog-content{position:fixed;left:50%;top:50%;z-index:50;display:grid;width:100%;max-width:32rem;gap:1rem;border:1px solid hsl(var(--border));background-color:hsl(var(--background));padding:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transform:translate(-50%,-50%);transition:all .2s ease-in-out;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.alert-dialog-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}@media(min-width:640px){.alert-dialog-content{border-radius:var(--radius-lg, 12px)}}.alert-dialog-header{display:flex;flex-direction:column;gap:.5rem;text-align:center}@media(min-width:640px){.alert-dialog-header{text-align:left}}.alert-dialog-footer{display:flex;flex-direction:column-reverse;gap:.5rem}@media(min-width:640px){.alert-dialog-footer{flex-direction:row;justify-content:flex-end;gap:.5rem}}.alert-dialog-title{font-size:1.125rem;line-height:1.75rem;font-weight:600}.alert-dialog-description{font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground))}.dropdown-menu-content{z-index:50;min-width:8rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:.25rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.dropdown-menu-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.dropdown-menu-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.dropdown-menu-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.dropdown-menu-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.dropdown-menu-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.dropdown-menu-sub-content{z-index:50;min-width:8rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:.25rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.dropdown-menu-sub-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.dropdown-menu-sub-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.dropdown-menu-sub-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.dropdown-menu-sub-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.dropdown-menu-sub-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.dropdown-menu-item{position:relative;display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.dropdown-menu-item:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.dropdown-menu-item[data-disabled]{pointer-events:none;opacity:.5}.dropdown-menu-item--inset{padding-left:2rem}.dropdown-menu-sub-trigger{display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out}.dropdown-menu-sub-trigger:focus{background-color:hsl(var(--accent))}.dropdown-menu-sub-trigger[data-state=open]{background-color:hsl(var(--accent))}.dropdown-menu-sub-trigger--inset{padding-left:2rem}.dropdown-menu-sub-trigger svg{margin-left:auto;height:1rem;width:1rem}.dropdown-menu-sub-trigger-icon{margin-left:auto}.chart-container{display:flex;aspect-ratio:16 / 9;justify-content:center;font-size:.75rem;line-height:1rem}.chart-container [data-chart] .recharts-cartesian-axis-tick_text{fill:hsl(var(--muted-foreground))}.chart-container [data-chart] .recharts-cartesian-grid_line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.chart-container [data-chart] .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.chart-container [data-chart] .recharts-dot[stroke="#fff"]{stroke:transparent}.chart-container [data-chart] .recharts-layer{outline:none}.chart-container [data-chart] .recharts-polar-grid_[stroke="#ccc"]{stroke:hsl(var(--border))}.chart-container [data-chart] .recharts-radial-bar-background-sector,.chart-container [data-chart] .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.chart-container [data-chart] .recharts-reference-line_[stroke="#ccc"]{stroke:hsl(var(--border))}.chart-container [data-chart] .recharts-sector[stroke="#fff"]{stroke:transparent}.chart-container [data-chart] .recharts-sector,.chart-container [data-chart] .recharts-surface{outline:none}.chart-tooltip-label{font-weight:500}.chart-tooltip{display:grid;min-width:8rem;align-items:flex-start;gap:.375rem;border-radius:.5rem;border:1px solid hsl(var(--border));background-color:hsl(var(--background));padding:.625rem;font-size:.75rem;line-height:1rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.chart-tooltip-content{display:grid;gap:.375rem}.chart-tooltip-item{display:flex;width:100%;flex-wrap:wrap;align-items:stretch;gap:.5rem}.chart-tooltip-item svg{width:.625rem;height:.625rem;color:hsl(var(--muted-foreground))}.chart-tooltip-item--dot{align-items:center}.chart-tooltip-indicator{flex-shrink:0;border-radius:2px;border:1px solid hsl(var(--border));background-color:var(--color-bg)}.chart-tooltip-indicator--dot{width:.625rem;height:.625rem}.chart-tooltip-indicator--line{width:.25rem}.chart-tooltip-indicator--dashed{width:0;border-width:1.5px;border-style:dashed;background-color:transparent}.chart-tooltip-indicator--dashed-nested{margin-top:.125rem;margin-bottom:.125rem}.chart-tooltip-item-content{display:flex;flex:1 1 0%;justify-content:space-between;line-height:1}.chart-tooltip-item-content--nested{align-items:flex-end}.chart-tooltip-item-content:not(.chart-tooltip-item-content--nested){align-items:center}.chart-tooltip-item-details{display:grid;gap:.375rem}.chart-tooltip-item-label{color:hsl(var(--muted-foreground))}.chart-tooltip-item-value{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--foreground))}.chart-legend{display:flex;align-items:center;justify-content:center;gap:1rem}.chart-legend--top{padding-bottom:.75rem}.chart-legend--bottom{padding-top:.75rem}.chart-legend-item{display:flex;align-items:center;gap:.375rem}.chart-legend-item svg{width:.75rem;height:.75rem;color:hsl(var(--muted-foreground))}.chart-legend-indicator{width:.5rem;height:.5rem;flex-shrink:0;border-radius:2px}.dropdown-menu-checkbox-item,.dropdown-menu-radio-item{position:relative;display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem .375rem 2rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.dropdown-menu-checkbox-item:focus,.dropdown-menu-radio-item:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.dropdown-menu-checkbox-item[data-disabled],.dropdown-menu-radio-item[data-disabled]{pointer-events:none;opacity:.5}.dropdown-menu-item-indicator{position:absolute;left:.5rem;display:flex;height:.875rem;width:.875rem;align-items:center;justify-content:center}.dropdown-menu-item-indicator svg{height:1rem;width:1rem}.dropdown-menu-item-indicator svg[class*=Circle]{height:.5rem;width:.5rem;fill:currentColor}.dropdown-menu-label{padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.dropdown-menu-label--inset{padding-left:2rem}.dropdown-menu-separator{margin:.25rem -.25rem;height:1px;background-color:hsl(var(--muted))}.dropdown-menu-shortcut{margin-left:auto;font-size:.75rem;line-height:1rem;letter-spacing:.1em;opacity:.6}.sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background-color:#000c;animation:fade-in .15s ease-in-out}.sheet-overlay[data-state=closed]{animation:fade-out .15s ease-in-out}.sheet-content{position:fixed;z-index:50;display:flex;gap:1rem;background-color:hsl(var(--background));padding:1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transition:all .3s ease-in-out;animation:slide-in .5s ease-in-out}.sheet-content[data-state=closed]{animation:slide-out .3s ease-in-out}.sheet-content--top{inset-inline-start:0;inset-inline-end:0;top:0;border-bottom:1px solid hsl(var(--border))}.sheet-content--top[data-state=closed]{animation:slide-out-to-top .3s ease-in-out}.sheet-content--top[data-state=open]{animation:slide-in-from-top .5s ease-in-out}.sheet-content--bottom{inset-inline-start:0;inset-inline-end:0;bottom:0;border-top:1px solid hsl(var(--border))}.sheet-content--bottom[data-state=closed]{animation:slide-out-to-bottom .3s ease-in-out}.sheet-content--bottom[data-state=open]{animation:slide-in-from-bottom .5s ease-in-out}.sheet-content--left{inset-block-start:0;inset-block-end:0;left:0;height:100%;width:75%;border-right:1px solid hsl(var(--border))}.sheet-content--left[data-state=closed]{animation:slide-out-to-left .3s ease-in-out}.sheet-content--left[data-state=open]{animation:slide-in-from-left .5s ease-in-out}@media(min-width:640px){.sheet-content--left{max-width:24rem}}.sheet-content--right{inset-block-start:0;inset-block-end:0;right:0;height:100%;width:75%;border-left:1px solid hsl(var(--border))}.sheet-content--right[data-state=closed]{animation:slide-out-to-right .3s ease-in-out}.sheet-content--right[data-state=open]{animation:slide-in-from-right .5s ease-in-out}@media(min-width:640px){.sheet-content--right{max-width:24rem}}.sheet-close{position:absolute;right:1rem;top:1rem;border-radius:calc(var(--radius-sm, 6px));opacity:.7;transition:opacity .15s ease-in-out}.sheet-close:hover{opacity:1}.sheet-close:focus{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.sheet-close:disabled{pointer-events:none}.sheet-close[data-state=open]{background-color:hsl(var(--secondary))}.sheet-close svg{height:1rem;width:1rem}.sheet-header{display:flex;flex-direction:column;gap:.5rem;text-align:center}@media(min-width:640px){.sheet-header{text-align:left}}.sheet-footer{display:flex;flex-direction:column-reverse;gap:.5rem}@media(min-width:640px){.sheet-footer{flex-direction:row;justify-content:flex-end;gap:.5rem}}.sheet-title{font-size:1.125rem;line-height:1.75rem;font-weight:600;color:hsl(var(--foreground))}.sheet-description{font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground))}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background-color:#000c}.drawer-content{position:fixed;inset-inline-start:0;inset-inline-end:0;bottom:0;z-index:50;margin-top:6rem;display:flex;height:auto;flex-direction:column;border-top-left-radius:10px;border-top-right-radius:10px;border:1px solid hsl(var(--border));background-color:hsl(var(--background))}.drawer-handle{margin-left:auto;margin-right:auto;margin-top:1rem;height:.5rem;width:6.25rem;border-radius:9999px;background-color:hsl(var(--muted))}.drawer-header{display:grid;gap:.375rem;padding:1rem;text-align:center}@media(min-width:640px){.drawer-header{text-align:left}}.drawer-footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.drawer-title{font-size:1.125rem;line-height:1.75rem;font-weight:600;letter-spacing:-.025em}.drawer-description{font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground))}.pagination{margin-left:auto;margin-right:auto;display:flex;width:100%;justify-content:center}.pagination-content{display:flex;flex-direction:row;align-items:center;gap:.25rem}.pagination-previous,.pagination-next{display:flex;gap:.25rem}.pagination-previous{padding-left:.625rem}.pagination-next{padding-right:.625rem}.pagination-ellipsis{display:flex;height:2.25rem;width:2.25rem;align-items:center;justify-content:center}.pagination-ellipsis svg{height:1rem;width:1rem}.form-item{display:flex;flex-direction:column;gap:.5rem}.form-label--error{color:hsl(var(--destructive))}.form-description{font-size:.875rem;line-height:1.25rem;color:hsl(var(--muted-foreground))}.form-message{font-size:.875rem;line-height:1.25rem;font-weight:500;color:hsl(var(--destructive))}.hover-card-content{z-index:50;width:16rem;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;outline:none;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.hover-card-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.hover-card-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.hover-card-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.hover-card-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.hover-card-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.context-menu-content{z-index:50;min-width:8rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:.25rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.context-menu-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.context-menu-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.context-menu-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.context-menu-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.context-menu-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.context-menu-sub-content{z-index:50;min-width:8rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:.25rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.context-menu-sub-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.context-menu-sub-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.context-menu-sub-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.context-menu-sub-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.context-menu-sub-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.context-menu-item{position:relative;display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.context-menu-item:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.context-menu-item[data-disabled]{pointer-events:none;opacity:.5}.context-menu-item--inset{padding-left:2rem}.context-menu-sub-trigger{display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.context-menu-sub-trigger:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.context-menu-sub-trigger[data-state=open]{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.context-menu-sub-trigger--inset{padding-left:2rem}.context-menu-sub-trigger svg{margin-left:auto;height:1rem;width:1rem}.context-menu-checkbox-item,.context-menu-radio-item{position:relative;display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem .375rem 2rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.context-menu-checkbox-item:focus,.context-menu-radio-item:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.context-menu-checkbox-item[data-disabled],.context-menu-radio-item[data-disabled]{pointer-events:none;opacity:.5}.context-menu-item-indicator{position:absolute;left:.5rem;display:flex;height:.875rem;width:.875rem;align-items:center;justify-content:center}.context-menu-item-indicator svg{height:1rem;width:1rem}.context-menu-item-indicator svg[class*=Circle]{height:.5rem;width:.5rem;fill:currentColor}.context-menu-label{padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;font-weight:600;color:hsl(var(--foreground))}.context-menu-label--inset{padding-left:2rem}.context-menu-separator{margin:.25rem -.25rem;height:1px;background-color:hsl(var(--border))}.context-menu-shortcut{margin-left:auto;font-size:.75rem;line-height:1rem;letter-spacing:.1em;color:hsl(var(--muted-foreground))}.menubar{display:flex;height:2.5rem;align-items:center;gap:.25rem;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--background));padding:.25rem}.menubar-trigger{display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.menubar-trigger:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.menubar-trigger[data-state=open]{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.menubar-content{z-index:50;min-width:12rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:.25rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.menubar-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.menubar-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.menubar-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.menubar-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.menubar-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.menubar-sub-content{z-index:50;min-width:8rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));padding:.25rem;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.menubar-sub-content[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}.menubar-sub-content[data-side=bottom]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-top .15s ease-in-out}.menubar-sub-content[data-side=left]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.menubar-sub-content[data-side=right]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.menubar-sub-content[data-side=top]{animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out,slide-in-from-bottom .15s ease-in-out}.menubar-item{position:relative;display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.menubar-item:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.menubar-item[data-disabled]{pointer-events:none;opacity:.5}.menubar-item--inset{padding-left:2rem}.menubar-sub-trigger{display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.menubar-sub-trigger:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.menubar-sub-trigger[data-state=open]{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.menubar-sub-trigger--inset{padding-left:2rem}.menubar-sub-trigger svg{margin-left:auto;height:1rem;width:1rem}.menubar-checkbox-item,.menubar-radio-item{position:relative;display:flex;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;border-radius:calc(var(--radius-sm, 6px));padding:.375rem .5rem .375rem 2rem;font-size:.875rem;line-height:1.25rem;outline:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.menubar-checkbox-item:focus,.menubar-radio-item:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.menubar-checkbox-item[data-disabled],.menubar-radio-item[data-disabled]{pointer-events:none;opacity:.5}.menubar-item-indicator{position:absolute;left:.5rem;display:flex;height:.875rem;width:.875rem;align-items:center;justify-content:center}.menubar-item-indicator svg{height:1rem;width:1rem}.menubar-item-indicator svg[class*=Circle]{height:.5rem;width:.5rem;fill:currentColor}.menubar-label{padding:.375rem .5rem;font-size:.875rem;line-height:1.25rem;font-weight:600}.menubar-label--inset{padding-left:2rem}.menubar-separator{margin:.25rem -.25rem;height:1px;background-color:hsl(var(--muted))}.menubar-shortcut{margin-left:auto;font-size:.75rem;line-height:1rem;letter-spacing:.1em;color:hsl(var(--muted-foreground))}.navigation-menu{position:relative;z-index:10;display:flex;max-width:max-content;flex:1;align-items:center;justify-content:center}.navigation-menu-list{display:flex;flex:1;list-style:none;align-items:center;justify-content:center;gap:.25rem}.navigation-menu-trigger{display:inline-flex;height:2.5rem;max-width:max-content;align-items:center;justify-content:center;border-radius:calc(var(--radius-md, 8px));background-color:hsl(var(--background));padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition:background-color .15s ease-in-out,color .15s ease-in-out}.navigation-menu-trigger:hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.navigation-menu-trigger:focus{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground));outline:none}.navigation-menu-trigger:disabled{pointer-events:none;opacity:.5}.navigation-menu-trigger[data-active],.navigation-menu-trigger[data-state=open]{background-color:hsl(var(--accent) / .5)}.navigation-menu-trigger svg,.navigation-menu-trigger-icon{position:relative;top:1px;margin-left:.25rem;height:.75rem;width:.75rem;transition:transform .2s ease-in-out}.navigation-menu-trigger[data-state=open] svg{transform:rotate(180deg)}.navigation-menu-content{left:0;top:0;width:100%;animation:fade-in .15s ease-in-out}.navigation-menu-content[data-motion^=to-]{animation:fade-out .15s ease-in-out}.navigation-menu-content[data-motion=from-end]{animation:fade-in .15s ease-in-out,slide-in-from-right .15s ease-in-out}.navigation-menu-content[data-motion=from-start]{animation:fade-in .15s ease-in-out,slide-in-from-left .15s ease-in-out}.navigation-menu-content[data-motion=to-end]{animation:fade-out .15s ease-in-out,slide-out-to-right .15s ease-in-out}.navigation-menu-content[data-motion=to-start]{animation:fade-out .15s ease-in-out,slide-out-to-left .15s ease-in-out}@media(min-width:768px){.navigation-menu-content{position:absolute;width:auto}}.navigation-menu-viewport-wrapper{position:absolute;left:0;top:100%;display:flex;justify-content:center}.navigation-menu-viewport{position:relative;margin-top:.375rem;height:var(--radix-navigation-menu-viewport-height);width:100%;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:hsl(var(--popover));color:hsl(var(--popover-foreground));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;animation:fade-in .15s ease-in-out,zoom-in .15s ease-in-out}.navigation-menu-viewport[data-state=closed]{animation:fade-out .15s ease-in-out,zoom-out .15s ease-in-out}@media(min-width:768px){.navigation-menu-viewport{width:var(--radix-navigation-menu-viewport-width)}}.navigation-menu-indicator{top:100%;z-index:1;display:flex;height:.375rem;align-items:flex-end;justify-content:center;overflow:hidden;animation:fade-in .15s ease-in-out}.navigation-menu-indicator[data-state=hidden]{animation:fade-out .15s ease-in-out}.navigation-menu-indicator:after{position:relative;top:60%;height:.5rem;width:.5rem;transform:rotate(45deg);border-top-left-radius:calc(var(--radius-sm, 6px));background-color:hsl(var(--border));box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;content:""}.calendar{padding:.75rem}.calendar-months{display:flex;flex-direction:column;gap:1rem}@media(min-width:640px){.calendar-months{flex-direction:row;gap:1rem}}.calendar-month{display:flex;flex-direction:column;gap:1rem}.calendar-caption{display:flex;justify-content:center;padding-top:.25rem;position:relative;align-items:center}.calendar-caption-label{font-size:.875rem;line-height:1.25rem;font-weight:500}.calendar-nav{display:flex;gap:.25rem;align-items:center}.calendar-nav-button{height:1.75rem;width:1.75rem;background-color:transparent;padding:0;opacity:.5;transition:opacity .15s ease-in-out}.calendar-nav-button:hover{opacity:1}.calendar-nav-button-previous{position:absolute;left:.25rem}.calendar-nav-button-next{position:absolute;right:.25rem}.calendar-table{width:100%;border-collapse:collapse;display:flex;flex-direction:column;gap:.25rem}.calendar-head-row{display:flex}.calendar-head-cell{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius-md, 8px));width:2.25rem;font-weight:400;font-size:.8rem}.calendar-row{display:flex;width:100%;margin-top:.5rem}.calendar-cell{height:2.25rem;width:2.25rem;text-align:center;font-size:.875rem;line-height:1.25rem;padding:0;position:relative}.calendar-cell:has([aria-selected].calendar-day-range-end){border-top-right-radius:calc(var(--radius-md, 8px));border-bottom-right-radius:calc(var(--radius-md, 8px))}.calendar-cell:has([aria-selected].calendar-day-outside){background-color:hsl(var(--accent) / .5)}.calendar-cell:has([aria-selected]){background-color:hsl(var(--accent))}.calendar-cell:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius-md, 8px));border-bottom-left-radius:calc(var(--radius-md, 8px))}.calendar-cell:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius-md, 8px));border-bottom-right-radius:calc(var(--radius-md, 8px))}.calendar-cell:focus-within{position:relative;z-index:20}.calendar-day{height:2.25rem;width:2.25rem;padding:0;font-weight:400}.calendar-day[aria-selected]{opacity:1}.calendar-day-selected,.calendar-day-selected:hover{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.calendar-day-selected:focus{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.calendar-day-today{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.calendar-day-outside{color:hsl(var(--muted-foreground));opacity:.5}.calendar-day-outside[aria-selected]{background-color:hsl(var(--accent) / .5);color:hsl(var(--muted-foreground));opacity:.3}.calendar-day-disabled{color:hsl(var(--muted-foreground));opacity:.5}.calendar-day-range-middle[aria-selected]{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.calendar-day-hidden{visibility:hidden}.toast-viewport{position:fixed;top:0;z-index:100;display:flex;max-height:100vh;width:100%;flex-direction:column-reverse;padding:1rem}@media(min-width:640px){.toast-viewport{bottom:0;right:0;top:auto;flex-direction:column}}@media(min-width:768px){.toast-viewport{max-width:420px}}.toast{position:relative;pointer-events:auto;display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;overflow:hidden;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));padding:1.5rem 2rem 1.5rem 1.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;transition:all .15s ease-in-out;animation:slide-in-from-top .15s ease-in-out}.toast[data-swipe=cancel]{transform:translate(0)}.toast[data-swipe=end]{transform:translate(var(--radix-toast-swipe-end-x))}.toast[data-swipe=move]{transform:translate(var(--radix-toast-swipe-move-x));transition:none}.toast[data-state=open]{animation:slide-in-from-top .15s ease-in-out}.toast[data-state=closed]{animation:fade-out .15s ease-in-out,slide-out-to-right .15s ease-in-out}.toast[data-swipe=end]{animation:slide-out-to-right .15s ease-in-out}@media(min-width:640px){.toast[data-state=open]{animation:slide-in-from-bottom .15s ease-in-out}}.toast--default{border:1px solid hsl(var(--border));background-color:hsl(var(--background));color:hsl(var(--foreground))}.toast--destructive{border-color:hsl(var(--destructive));background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.toast-action{display:inline-flex;height:2rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:calc(var(--radius-md, 8px));border:1px solid hsl(var(--border));background-color:transparent;padding-left:.75rem;padding-right:.75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition:background-color .15s ease-in-out}.toast-action:hover{background-color:hsl(var(--secondary))}.toast-action:focus{outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.toast-action:disabled{pointer-events:none;opacity:.5}.toast--destructive .toast-action{border-color:hsl(var(--muted) / .4)}.toast--destructive .toast-action:hover{border-color:hsl(var(--destructive) / .3);background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.toast--destructive .toast-action:focus{box-shadow:0 0 0 2px hsl(var(--destructive)),0 0 0 4px hsl(var(--background))}.toast-close{position:absolute;right:.5rem;top:.5rem;border-radius:calc(var(--radius-md, 8px));padding:.25rem;color:hsl(var(--foreground) / .5);opacity:0;transition:opacity .15s ease-in-out}.toast-close:hover{color:hsl(var(--foreground))}.toast-close:focus{opacity:1;outline:none;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.toast:hover .toast-close{opacity:1}.toast--destructive .toast-close{color:#fca5a5}.toast--destructive .toast-close:hover{color:#fef2f2}.toast--destructive .toast-close:focus{box-shadow:0 0 0 2px #f87171,0 0 0 4px hsl(var(--background))}.toast-close svg{height:1rem;width:1rem}.toast-title{font-size:.875rem;line-height:1.25rem;font-weight:600}.toast-description{font-size:.875rem;line-height:1.25rem;opacity:.9}.scroll-area{position:relative;overflow:hidden}.scroll-area-viewport{height:100%;width:100%;border-radius:inherit}.scroll-bar{display:flex;touch-action:none;-webkit-user-select:none;user-select:none;transition:background-color .15s ease-in-out}.scroll-bar--vertical{height:100%;width:.625rem;border-left:1px solid transparent;padding:1px}.scroll-bar--horizontal{height:.625rem;display:flex;flex-direction:column;border-top:1px solid transparent;padding:1px}.scroll-bar-thumb{position:relative;flex:1;border-radius:9999px;background-color:hsl(var(--border))}.input-otp-container{display:flex;align-items:center;gap:.5rem}.input-otp-container:has(:disabled){opacity:.5}.input-otp:disabled{cursor:not-allowed}.input-otp-group{display:flex;align-items:center}.input-otp-slot{position:relative;display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-top:1px solid hsl(var(--input));border-right:1px solid hsl(var(--input));border-bottom:1px solid hsl(var(--input));font-size:.875rem;line-height:1.25rem;transition:all .15s ease-in-out}.input-otp-slot:first-child{border-top-left-radius:calc(var(--radius-md, 8px));border-bottom-left-radius:calc(var(--radius-md, 8px));border-left:1px solid hsl(var(--input))}.input-otp-slot:last-child{border-top-right-radius:calc(var(--radius-md, 8px));border-bottom-right-radius:calc(var(--radius-md, 8px))}.input-otp-slot--active{z-index:10;box-shadow:0 0 0 2px hsl(var(--ring)),0 0 0 4px hsl(var(--background))}.input-otp-caret{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.input-otp-caret-line{height:1rem;width:1px;animation:caret-blink 1s ease-in-out infinite;background-color:hsl(var(--foreground))}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}.toggle-group{display:flex;align-items:center;justify-content:center;gap:.25rem}.toggle-group-item{display:inline-flex;align-items:center;justify-content:center;border-radius:9999px;transition:all .15s ease-in-out;cursor:pointer}.toggle-group-item:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--ring))}.toggle-group-item--default{background-color:var(--color-gray-100, #eff1f2);color:var(--color-gray-600, #52545d)}.toggle-group-item--default:hover{background-color:var(--color-gray-200, #dedfe3)}.toggle-group-item--size-default{height:2rem;padding-left:1rem;padding-right:1rem}.resizable-panel-group{display:flex;height:100%;width:100%}.resizable-panel-group[data-panel-group-direction=vertical]{flex-direction:column}.resizable-handle{position:relative;display:flex;width:1px;align-items:center;justify-content:center;background-color:hsl(var(--border))}.resizable-handle:after{position:absolute;inset-block-start:0;inset-block-end:0;left:50%;width:.25rem;transform:translate(-50%);content:""}.resizable-handle:focus-visible{outline:none;box-shadow:0 0 0 1px hsl(var(--ring)),0 0 0 2px hsl(var(--background))}.resizable-handle[data-panel-group-direction=vertical]{height:1px;width:100%}.resizable-handle[data-panel-group-direction=vertical]:after{left:0;height:.25rem;width:100%;transform:translateY(-50%)}.resizable-handle[data-panel-group-direction=vertical]>div{transform:rotate(90deg)}.resizable-handle-grip{position:relative;z-index:10;display:flex;height:1rem;width:.75rem;align-items:center;justify-content:center;border-radius:calc(var(--radius-sm, 6px));border:1px solid hsl(var(--border));background-color:hsl(var(--border))}.carousel{position:relative}.carousel-viewport{overflow:hidden}.carousel-content{display:flex}.carousel-content--horizontal{margin-left:-1rem}.carousel-content--vertical{margin-top:-1rem;flex-direction:column}.carousel-item{min-width:0;flex-shrink:0;flex-grow:0;flex-basis:100%}.carousel-item--horizontal{padding-left:1rem}.carousel-item--vertical{padding-top:1rem}.carousel-button{position:absolute;height:2rem;width:2rem;border-radius:9999px}.carousel-button--previous.carousel-button--horizontal{left:-3rem;top:50%;transform:translateY(-50%)}.carousel-button--previous.carousel-button--vertical{top:-3rem;left:50%;transform:translate(-50%) rotate(90deg)}.carousel-button--next.carousel-button--horizontal{right:-3rem;top:50%;transform:translateY(-50%)}.carousel-button--next.carousel-button--vertical{bottom:-3rem;left:50%;transform:translate(-50%) rotate(90deg)}.toast-content{display:grid;gap:.25rem}.toaster .toast{background-color:hsl(var(--background));color:hsl(var(--foreground));box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.toaster .toast-description{color:hsl(var(--muted-foreground))}.toaster .toast-action{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.toaster .toast-cancel{background-color:hsl(var(--muted));color:hsl(var(--muted-foreground))}.sidebar-wrapper{display:flex;min-height:100svh;width:100%}.sidebar-wrapper:has([data-variant=inset]){background-color:hsl(var(--sidebar))}.sidebar{display:flex;height:100%;width:var(--sidebar-width, 16rem);flex-direction:column;background-color:hsl(var(--sidebar));color:hsl(var(--sidebar-foreground))}.sidebar-base{position:relative;display:none;height:100svh;color:hsl(var(--sidebar-foreground))}@media(min-width:768px){.sidebar-base{display:block}}.sidebar-base>div:first-child{position:relative;height:100svh;width:var(--sidebar-width, 16rem);background-color:transparent;transition:width .2s ease-linear}.sidebar-base[data-collapsible=offcanvas]>div:first-child{width:0}.sidebar-base[data-side=right]>div:first-child{transform:rotate(180deg)}.sidebar-base[data-variant=floating][data-collapsible=icon]>div:first-child,.sidebar-base[data-variant=inset][data-collapsible=icon]>div:first-child{width:calc(var(--sidebar-width-icon, 3rem) + 1rem)}.sidebar-base[data-variant=sidebar][data-collapsible=icon]>div:first-child{width:var(--sidebar-width-icon, 3rem)}.sidebar-container{position:fixed;top:0;bottom:0;z-index:10;display:none;height:100svh;width:var(--sidebar-width, 16rem);transition:left .2s ease-linear,right .2s ease-linear,width .2s ease-linear}@media(min-width:768px){.sidebar-container{display:flex}}.sidebar-container[data-side=left]{left:0}.sidebar-container[data-side=left][data-collapsible=offcanvas]{left:calc(var(--sidebar-width, 16rem) * -1)}.sidebar-container[data-side=right]{right:0}.sidebar-container[data-side=right][data-collapsible=offcanvas]{right:calc(var(--sidebar-width, 16rem) * -1)}.sidebar-container[data-variant=floating],.sidebar-container[data-variant=inset]{padding:.5rem}.sidebar-container[data-variant=floating][data-collapsible=icon],.sidebar-container[data-variant=inset][data-collapsible=icon]{width:calc(var(--sidebar-width-icon, 3rem) + 1rem + 2px)}.sidebar-container[data-variant=sidebar][data-collapsible=icon]{width:var(--sidebar-width-icon, 3rem)}.sidebar-container[data-variant=sidebar][data-side=left]{border-right:1px solid hsl(var(--sidebar-border))}.sidebar-container[data-variant=sidebar][data-side=right]{border-left:1px solid hsl(var(--sidebar-border))}.sidebar-inner{display:flex;height:100%;width:100%;flex-direction:column;background-color:hsl(var(--sidebar))}.sidebar-inner[data-variant=floating]{border-radius:.5rem;border:1px solid hsl(var(--sidebar-border));box-shadow:0 1px 2px #0000000d}.sidebar-trigger{height:1.75rem;width:1.75rem}.sidebar-rail{position:absolute;top:0;bottom:0;z-index:20;display:none;width:1rem;transform:translate(-50%);transition:all .2s ease-linear}.sidebar-rail:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px}.sidebar-rail:hover:after{background-color:hsl(var(--sidebar-border))}.sidebar-rail[data-side=left]{right:-1rem}.sidebar-rail[data-side=right]{left:0}.sidebar-rail[data-side=left]{cursor:w-resize}.sidebar-rail[data-side=right],.sidebar-rail[data-side=left][data-state=collapsed]{cursor:e-resize}.sidebar-rail[data-side=right][data-state=collapsed]{cursor:w-resize}.sidebar-rail[data-collapsible=offcanvas]{transform:translate(0)}.sidebar-rail[data-collapsible=offcanvas]:after{left:100%}.sidebar-rail:hover[data-collapsible=offcanvas]{background-color:hsl(var(--sidebar))}.sidebar-rail[data-side=left][data-collapsible=offcanvas]{right:-.5rem}.sidebar-rail[data-side=right][data-collapsible=offcanvas]{left:-.5rem}@media(min-width:640px){.sidebar-rail{display:flex}}.sidebar-inset{position:relative;display:flex;min-height:100svh;flex:1 1 0%;flex-direction:column;background-color:hsl(var(--background))}.sidebar-inset[data-variant=inset]{min-height:calc(100svh - 1rem)}@media(min-width:768px){.sidebar-inset[data-variant=inset]{margin:.5rem}.sidebar-inset[data-variant=inset][data-state=collapsed]{margin-left:.5rem}.sidebar-inset[data-variant=inset]{margin-left:0;border-radius:.75rem;box-shadow:0 1px 2px #0000000d}}.sidebar-input{height:2rem;width:100%;background-color:hsl(var(--background));box-shadow:none}.sidebar-input:focus-visible{box-shadow:0 0 0 2px hsl(var(--sidebar-ring))}.sidebar-header,.sidebar-footer{display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.sidebar-separator{margin-left:.5rem;margin-right:.5rem;width:auto;background-color:hsl(var(--sidebar-border))}.sidebar-content{display:flex;min-height:0;flex:1 1 0%;flex-direction:column;gap:.5rem;overflow:auto}[data-collapsible=icon] .sidebar-content{overflow:hidden}.sidebar-group{position:relative;display:flex;width:100%;min-width:0;flex-direction:column;padding:.5rem}.sidebar-group-label{display:flex;height:2rem;flex-shrink:0;align-items:center;border-radius:.375rem;padding-left:.5rem;padding-right:.5rem;font-size:.75rem;font-weight:500;color:hsl(var(--sidebar-foreground) / .7);outline:none;transition:margin .2s ease-linear,opacity .2s ease-linear}.sidebar-group-label:focus-visible{box-shadow:0 0 0 2px hsl(var(--sidebar-ring))}.sidebar-group-label svg{width:1rem;height:1rem;flex-shrink:0}[data-collapsible=icon] .sidebar-group-label{margin-top:-2rem;opacity:0}.sidebar-group-action{position:absolute;right:.75rem;top:.875rem;display:flex;aspect-ratio:1;width:1.25rem;align-items:center;justify-content:center;border-radius:.375rem;padding:0;color:hsl(var(--sidebar-foreground));outline:none;transition:transform .2s}.sidebar-group-action:after{content:"";position:absolute;top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}@media(min-width:768px){.sidebar-group-action:after{display:none}}.sidebar-group-action:hover{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-group-action:focus-visible{box-shadow:0 0 0 2px hsl(var(--sidebar-ring))}.sidebar-group-action svg{width:1rem;height:1rem;flex-shrink:0}[data-collapsible=icon] .sidebar-group-action{display:none}.sidebar-group-content{width:100%;font-size:.875rem}.sidebar-menu{display:flex;width:100%;min-width:0;flex-direction:column;gap:.25rem}.sidebar-menu-item{position:relative}.sidebar-menu-button{display:flex;width:100%;align-items:center;gap:.5rem;overflow:hidden;border-radius:.375rem;padding:.5rem;text-align:left;font-size:.875rem;outline:none;transition:width .2s,height .2s,padding .2s}.sidebar-menu-button:hover{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-button:focus-visible{box-shadow:0 0 0 2px hsl(var(--sidebar-ring))}.sidebar-menu-button:active{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-button:disabled{pointer-events:none;opacity:.5}.sidebar-menu-button[aria-disabled=true]{pointer-events:none;opacity:.5}.sidebar-menu-button[data-active=true]{background-color:hsl(var(--sidebar-accent));font-weight:500;color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-button[data-state=open]:hover{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}[data-collapsible=icon] .sidebar-menu-button{width:2rem!important;height:2rem!important;padding:.5rem!important}.sidebar-menu-button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu-button svg{width:1rem;height:1rem;flex-shrink:0}.sidebar-menu-button--outline{background-color:hsl(var(--background));box-shadow:0 0 0 1px hsl(var(--sidebar-border))}.sidebar-menu-button--outline:hover{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground));box-shadow:0 0 0 1px hsl(var(--sidebar-accent))}.sidebar-menu-button--size-default{height:2rem;font-size:.875rem}.sidebar-menu-button--size-sm{height:1.75rem;font-size:.75rem}.sidebar-menu-button--size-lg{height:3rem;font-size:.875rem}[data-collapsible=icon] .sidebar-menu-button--size-lg{padding:0!important}.sidebar-menu-button:has([data-sidebar=menu-action]){padding-right:2rem}.sidebar-menu-action{position:absolute;right:.25rem;display:flex;aspect-ratio:1;width:1.25rem;align-items:center;justify-content:center;border-radius:.375rem;padding:0;color:hsl(var(--sidebar-foreground));outline:none;transition:transform .2s}.sidebar-menu-action:after{content:"";position:absolute;top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}@media(min-width:768px){.sidebar-menu-action:after{display:none}}.sidebar-menu-action:hover{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-action:focus-visible{box-shadow:0 0 0 2px hsl(var(--sidebar-ring))}.sidebar-menu-action svg{width:1rem;height:1rem;flex-shrink:0}.sidebar-menu-action[data-size=sm]{top:.25rem}.sidebar-menu-action[data-size=default]{top:.375rem}.sidebar-menu-action[data-size=lg]{top:.625rem}[data-collapsible=icon] .sidebar-menu-action{display:none}.sidebar-menu-action--show-on-hover{opacity:0}@media(min-width:768px){.sidebar-menu-action--show-on-hover{opacity:0}}.sidebar-menu-action--show-on-hover:hover,.sidebar-menu-action--show-on-hover[data-state=open]{opacity:1}.sidebar-menu-action[data-show-on-hover=true]{opacity:0}@media(min-width:768px){.sidebar-menu-action[data-show-on-hover=true]{opacity:0}}.sidebar-menu-action[data-show-on-hover=true]:hover,.sidebar-menu-action[data-show-on-hover=true][data-state=open]{opacity:1}.sidebar-menu-badge{position:absolute;right:.25rem;display:flex;height:1.25rem;min-width:1.25rem;align-items:center;justify-content:center;border-radius:.375rem;padding-left:.25rem;padding-right:.25rem;font-size:.75rem;font-weight:500;font-variant-numeric:tabular-nums;color:hsl(var(--sidebar-foreground));-webkit-user-select:none;user-select:none;pointer-events:none}.sidebar-menu-badge[data-size=sm]{top:.25rem}.sidebar-menu-badge[data-size=default]{top:.375rem}.sidebar-menu-badge[data-size=lg]{top:.625rem}[data-collapsible=icon] .sidebar-menu-badge{display:none}.sidebar-menu-skeleton{display:flex;height:2rem;gap:.5rem;align-items:center;border-radius:.375rem;padding-left:.5rem;padding-right:.5rem}.sidebar-menu-sub{margin-left:.875rem;display:flex;min-width:0;transform:translate(1px);flex-direction:column;gap:.25rem;border-left:1px solid hsl(var(--sidebar-border));padding-left:.625rem;padding-top:.125rem;padding-bottom:.125rem}[data-collapsible=icon] .sidebar-menu-sub{display:none}.sidebar-menu-sub-button{display:flex;height:1.75rem;min-width:0;transform:translate(-1px);align-items:center;gap:.5rem;overflow:hidden;border-radius:.375rem;padding-left:.5rem;padding-right:.5rem;color:hsl(var(--sidebar-foreground));outline:none}.sidebar-menu-sub-button:hover{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-sub-button:focus-visible{box-shadow:0 0 0 2px hsl(var(--sidebar-ring))}.sidebar-menu-sub-button:active{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-sub-button:disabled{pointer-events:none;opacity:.5}.sidebar-menu-sub-button[aria-disabled=true]{pointer-events:none;opacity:.5}.sidebar-menu-sub-button[data-active=true]{background-color:hsl(var(--sidebar-accent));color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-sub-button span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-menu-sub-button svg{width:1rem;height:1rem;flex-shrink:0;color:hsl(var(--sidebar-accent-foreground))}.sidebar-menu-sub-button[data-size=sm]{font-size:.75rem}.sidebar-menu-sub-button[data-size=md]{font-size:.875rem}[data-collapsible=icon] .sidebar-menu-sub-button{display:none}.navigation{position:absolute;top:0;left:0;z-index:50;height:3.5rem;width:100%}.navigation[data-strategy=true]{background-color:#f9fafb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgb(239 241 242)}.navigation-overlay{position:absolute;top:0;left:0;z-index:-1;height:340px;width:100%;transition:transform .3s ease-in-out;will-change:transform}.navigation-overlay[data-open=true]{transform:translateY(0);background-color:#3e4049e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.navigation-overlay[data-open=false]{transform:translateY(calc(-100% + 56px));background-color:#00000029}.navigation-container{margin-left:auto;margin-right:auto;max-width:1600px;width:100%;padding-left:2rem;padding-right:2rem;display:flex;height:3.5rem;align-items:center;justify-content:space-between}.navigation-logo-container{display:flex;height:100%;align-items:center}@media(min-width:640px){.navigation-logo-container{min-width:200px}}.navigation-logo-link{display:flex;align-items:center;transition:transform .3s ease-in-out;will-change:transform}.navigation-logo-link[data-strategy=true]{transform:translate(0)}.navigation-nav-container{position:relative;display:none;height:100%;flex:1 1 0%;align-items:center;justify-content:center;gap:3rem}@media(min-width:768px){.navigation-nav-container{display:flex}}.navigation-nav-list{display:flex;height:100%;gap:3rem}.navigation-nav-item{position:relative;display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}.navigation-nav-link{font-size:.875rem;font-weight:600;color:#fff;cursor:pointer}.navigation-actions{display:flex;height:100%;align-items:center;justify-content:flex-end;gap:1rem}@media(min-width:640px){.navigation-actions{min-width:200px}}.navigation-account-link{display:flex;height:2rem;width:2rem;align-items:center;justify-content:center;border-radius:9999px;transition:background-color .2s}.navigation-account-link[data-open=false]{background-color:#00000014}.navigation-account-link[data-open=true]{background-color:#ffffff1f}.navigation-account-link[data-strategy=true]{background-color:#fff;border:1px solid rgb(239 241 242)}.navigation-divider{height:1px;width:100%;background-color:#ffffff14}.navigation-tray{position:relative;max-height:292px;pointer-events:none}.navigation-tray[data-open=true]{pointer-events:auto}.navigation-tray-content{position:absolute;top:0;left:0;height:100%;width:100%}.navigation-tray-grid{position:relative;display:grid}.navigation-tray-section{grid-column:1 / -1;grid-row:1 / -1;margin-left:auto;margin-right:auto;max-width:1600px;width:100%;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem;transition:opacity .2s ease-in-out}.navigation-tray-heading{padding-top:.25rem;padding-bottom:.25rem}.navigation-tray-columns{display:flex;gap:5rem}.navigation-tray-column{display:flex;flex-direction:column;gap:1.25rem;margin:0;padding:0}.navigation-tray-column-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#dcadd2;margin:0;padding:0;line-height:1.25}.navigation-tray-column-list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}.navigation-tray-column-list li{margin:0;padding:0}.navigation-tray-column-list--spacing-5{gap:.5rem}.navigation-tray-link{display:block;font-size:1rem;font-weight:500;color:#f3f4f6;margin:0;padding:0;line-height:1.25}.navigation-tray-link:hover{color:#fff}.navigation-tray-link-small{font-size:.875rem;font-weight:500;color:#f3f4f6;margin:0;padding:0;line-height:1.25}.navigation-tray-bullet-item{display:flex;align-items:center;gap:.75rem;padding-left:6px;margin:0}.navigation-tray-bullet{height:.25rem;width:.25rem;border-radius:9999px;background-color:#6b7280;margin:0;padding:0;flex-shrink:0}.navigation-tray-link--with-badge{display:flex;align-items:center;justify-content:flex-start;font-size:1rem;font-weight:500}.navigation-tray-badge{font-size:.625rem;text-transform:uppercase;letter-spacing:.05em;color:#f0aa99;margin-left:.25rem}.navigation-close-icon{color:#374151;transition:color .2s}.navigation-close-icon:hover{color:#fff}.navigation-account-icon{color:#fbf8f3}.navigation-account-icon--strategy{color:#e8d2b5}.navigation-account-icon--default{color:#fbf8f3}.navigation-underline{position:absolute;bottom:-10px;z-index:50;height:10px;width:10px;border-radius:9999px}.navigation-underline--static{bottom:-5px}.navigation-underline-circle{width:10px;height:5px;border-bottom:0;box-sizing:border-box}.navigation-underline-circle--gradient{background:linear-gradient(to bottom,#3eecd1,#66fcd9);border-bottom-left-radius:100px;border-bottom-right-radius:100px}.navigation-underline-circle--white{background-color:#fff;border-top-left-radius:100px;border-top-right-radius:100px}.navigation-close-button{margin-right:1rem}.sidebar-mobile-content{display:flex;height:100%;width:100%;flex-direction:column}.sidebar-menu-skeleton-icon{width:1rem;height:1rem;border-radius:.375rem}.sidebar-menu-skeleton-text{height:1rem;flex:1 1 0%;max-width:var(--skeleton-width)}.icon-sm{width:.5rem;height:.5rem}.icon-md{width:1rem;height:1rem}.icon-lg{width:1.25rem;height:1.25rem}.icon-shrink-0{flex-shrink:0}.icon-2{width:.5rem;height:.5rem}.icon-2-5{width:.625rem;height:.625rem}.icon-4{width:1rem;height:1rem}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syscore/ui-library",
3
- "version": "1.1.13",
3
+ "version": "1.2.0",
4
4
  "description": "A comprehensive React component library built with Radix UI, Tailwind CSS, and TypeScript",
5
5
  "private": false,
6
6
  "type": "module",
@@ -118,7 +118,7 @@
118
118
  "tailwindcss-animate": "^1.0.7",
119
119
  "terser": "^5.27.0",
120
120
  "typescript": "^5.9.2",
121
- "vite": "^6.0.11",
121
+ "vite": "^6.4.1",
122
122
  "vite-plugin-dts": "^4.5.4",
123
123
  "vitest": "^3.2.4"
124
124
  },
@@ -1,115 +0,0 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { WELLDashboard } from "./index";
3
-
4
- const meta = {
5
- title: "UI/WELLDashboard",
6
- component: WELLDashboard,
7
- tags: ["autodocs"],
8
- parameters: {
9
- layout: "padded",
10
- },
11
- argTypes: {
12
- certifiedPercentage: {
13
- control: { type: "range", min: 0, max: 100, step: 1 },
14
- description: "Percentage of locations certified (0-100)",
15
- },
16
- },
17
- } satisfies Meta<typeof WELLDashboard>;
18
-
19
- export default meta;
20
-
21
- type Story = StoryObj<typeof meta>;
22
-
23
- // Default dashboard with standard data
24
- export const Default: Story = {
25
- args: {
26
- certifiedPercentage: 60,
27
- },
28
- };
29
-
30
- // Full certification (100%)
31
- export const FullyCertified: Story = {
32
- args: {
33
- certifiedPercentage: 100,
34
- },
35
- };
36
-
37
- // Low certification percentage
38
- export const LowCertification: Story = {
39
- args: {
40
- certifiedPercentage: 25,
41
- },
42
- };
43
-
44
- // Custom data example
45
- export const CustomData: Story = {
46
- args: {
47
- certifiedPercentage: 75,
48
- certifications: [
49
- { name: "Platinum", locations: 3, color: "#A8A7AE" },
50
- { name: "Gold", locations: 5, color: "#D7C686" },
51
- { name: "Silver", locations: 2, color: "#C0C2C4" },
52
- { name: "Bronze", locations: 1, color: "#D1A778" },
53
- ],
54
- ratings: [
55
- { name: "Health-Safety", locations: 8, color: "#7FB3DC", percentage: 80 },
56
- { name: "Equity", locations: 5, color: "#41937D", percentage: 60 },
57
- { name: "Performance", locations: 3, color: "#0B667F", percentage: 40 },
58
- { name: "Coworking", locations: 1, color: "#AD7DA3", percentage: 15 },
59
- ],
60
- },
61
- };
62
-
63
- // All ratings active
64
- export const AllRatingsActive: Story = {
65
- args: {
66
- certifiedPercentage: 85,
67
- ratings: [
68
- { name: "Health-Safety", locations: 10, color: "#7FB3DC", percentage: 90 },
69
- { name: "Equity", locations: 8, color: "#41937D", percentage: 75 },
70
- { name: "Performance", locations: 6, color: "#0B667F", percentage: 60 },
71
- { name: "Coworking", locations: 4, color: "#AD7DA3", percentage: 45 },
72
- ],
73
- },
74
- };
75
-
76
- // Complete overview in a constrained container
77
- export const InContainer: Story = {
78
- render: (args) => (
79
- <div className="max-w-6xl mx-auto p-8 bg-[#FAFAFA]">
80
- <WELLDashboard {...args} />
81
- </div>
82
- ),
83
- args: {
84
- certifiedPercentage: 60,
85
- },
86
- };
87
-
88
- // Responsive demo
89
- export const ResponsiveDemo: Story = {
90
- render: (args) => (
91
- <div className="space-y-8">
92
- <div>
93
- <h3 className="text-lg font-semibold mb-4">Desktop (1200px)</h3>
94
- <div className="w-full max-w-6xl border-2 border-dashed border-gray-300 p-4">
95
- <WELLDashboard {...args} />
96
- </div>
97
- </div>
98
- <div>
99
- <h3 className="text-lg font-semibold mb-4">Tablet (768px)</h3>
100
- <div className="w-full max-w-3xl border-2 border-dashed border-gray-300 p-4">
101
- <WELLDashboard {...args} />
102
- </div>
103
- </div>
104
- <div>
105
- <h3 className="text-lg font-semibold mb-4">Mobile (375px)</h3>
106
- <div className="w-full max-w-sm border-2 border-dashed border-gray-300 p-4">
107
- <WELLDashboard {...args} />
108
- </div>
109
- </div>
110
- </div>
111
- ),
112
- args: {
113
- certifiedPercentage: 60,
114
- },
115
- };
@@ -1,317 +0,0 @@
1
- import * as React from "react";
2
- import { cn } from "../../lib/utils";
3
- import { Building2 } from "lucide-react";
4
-
5
- interface CertificationLevel {
6
- name: string;
7
- locations: number;
8
- color: string;
9
- icon?: string;
10
- }
11
-
12
- interface RatingCategory {
13
- name: string;
14
- locations: number | string;
15
- color: string;
16
- percentage: number;
17
- icon?: string;
18
- inactive?: boolean;
19
- }
20
-
21
- export interface WELLDashboardProps {
22
- certifiedPercentage?: number;
23
- certifications?: CertificationLevel[];
24
- ratings?: RatingCategory[];
25
- className?: string;
26
- }
27
-
28
- const defaultCertifications: CertificationLevel[] = [
29
- { name: "Platinum", locations: 1, color: "#A8A7AE", icon: "platinum" },
30
- { name: "Gold", locations: 1, color: "#D7C686", icon: "gold" },
31
- { name: "Silver", locations: 1, color: "#C0C2C4", icon: "silver" },
32
- { name: "Bronze", locations: 1, color: "#D1A778", icon: "bronze" },
33
- {
34
- name: "Precertified",
35
- locations: 1,
36
- color: "#44B0BC",
37
- icon: "precertified",
38
- },
39
- ];
40
-
41
- const defaultRatings: RatingCategory[] = [
42
- {
43
- name: "Health-Safety",
44
- locations: 1,
45
- color: "#7FB3DC",
46
- percentage: 50,
47
- icon: "health",
48
- },
49
- {
50
- name: "Equity",
51
- locations: 1,
52
- color: "#41937D",
53
- percentage: 67,
54
- icon: "equity",
55
- },
56
- {
57
- name: "Performance",
58
- locations: "Not Pursued",
59
- color: "#0B667F",
60
- percentage: 2,
61
- icon: "performance",
62
- inactive: true,
63
- },
64
- {
65
- name: "Coworking",
66
- locations: "Not Pursued",
67
- color: "#AD7DA3",
68
- percentage: 2,
69
- icon: "coworking",
70
- inactive: true,
71
- },
72
- ];
73
-
74
- export const WELLDashboard = React.forwardRef<
75
- HTMLDivElement,
76
- WELLDashboardProps
77
- >(
78
- (
79
- {
80
- certifiedPercentage = 60,
81
- certifications = defaultCertifications,
82
- ratings = defaultRatings,
83
- className,
84
- },
85
- ref,
86
- ) => {
87
- return (
88
- <div ref={ref} className={cn("flex flex-col gap-4", className)}>
89
- <div className="flex flex-col lg:flex-row gap-4">
90
- {/* WELL Certified Locations Card */}
91
- <div className="flex-1 min-w-0 rounded-md border border-[#DEDEE5] bg-white/0 p-4 shadow-xs">
92
- <h2
93
- className="text-xl font-medium text-[#3D3E46] text-center mb-6"
94
- style={{ fontFamily: "'DM Sans', sans-serif" }}
95
- >
96
- WELL Certified Locations
97
- </h2>
98
-
99
- <div className="flex flex-col md:flex-row justify-center items-center gap-10">
100
- {/* Circular Progress Chart */}
101
- <div className="relative w-60 h-60 shrink-0">
102
- <svg
103
- width="240"
104
- height="240"
105
- viewBox="0 0 240 240"
106
- className="transform -rotate-90"
107
- >
108
- {/* Background circle */}
109
- <circle cx="120" cy="120" r="120" fill="#F5F9FB" />
110
-
111
- {/* Progress segments */}
112
- <circle
113
- cx="120"
114
- cy="120"
115
- r="100"
116
- fill="none"
117
- stroke="#327DB9"
118
- strokeWidth="20"
119
- strokeDasharray={`${(certifiedPercentage / 100) * 628} 628`}
120
- strokeLinecap="round"
121
- />
122
-
123
- {/* Certification level arcs */}
124
- {certifications.map((cert, index) => {
125
- const totalSegments = certifications.length;
126
- const segmentAngle =
127
- ((certifiedPercentage / 100) * 360) / totalSegments;
128
- const startAngle = index * segmentAngle;
129
- const arcLength = (segmentAngle * Math.PI * 100) / 180;
130
- const offset = (startAngle * Math.PI * 100) / 180;
131
-
132
- return (
133
- <circle
134
- key={cert.name}
135
- cx="120"
136
- cy="120"
137
- r="100"
138
- fill="none"
139
- stroke={cert.color}
140
- strokeWidth="20"
141
- strokeDasharray={`${arcLength} 628`}
142
- strokeDashoffset={-offset}
143
- opacity="0.7"
144
- />
145
- );
146
- })}
147
-
148
- {/* Inner white circle */}
149
- <circle
150
- cx="120"
151
- cy="120"
152
- r="80"
153
- fill="white"
154
- filter="drop-shadow(0 0 16px rgba(0,0,0,0.04))"
155
- />
156
- </svg>
157
-
158
- {/* Center text */}
159
- <div className="absolute inset-0 flex flex-col items-center justify-center">
160
- <div
161
- className="text-5xl font-medium text-[#327DB9]"
162
- style={{ fontFamily: "'DM Sans', sans-serif" }}
163
- >
164
- {certifiedPercentage}%
165
- </div>
166
- <div
167
- className="text-sm font-medium text-[#78777F] mt-1"
168
- style={{ fontFamily: "'DM Sans', sans-serif" }}
169
- >
170
- Certified
171
- </div>
172
- </div>
173
- </div>
174
-
175
- {/* Legend */}
176
- <div className="flex flex-col gap-4 min-w-[160px]">
177
- {certifications.map((cert) => (
178
- <div key={cert.name} className="flex items-center gap-2">
179
- <div
180
- className="w-10 h-10 rounded-full shrink-0 flex items-center justify-center"
181
- style={{ backgroundColor: cert.color }}
182
- >
183
- {cert.icon === "precertified" && (
184
- <div className="w-9 h-6 bg-[#44B0BC] rounded-sm flex items-center justify-center text-white text-[10px] font-bold">
185
- WELL
186
- </div>
187
- )}
188
- </div>
189
- <div className="flex flex-col gap-0.5 flex-1">
190
- <div
191
- className="text-base font-medium text-[#3D3E46]"
192
- style={{ fontFamily: "'DM Sans', sans-serif" }}
193
- >
194
- {cert.name}
195
- </div>
196
- <div className="flex items-center gap-1">
197
- <Building2
198
- size={16}
199
- className="text-[#327DB9]"
200
- strokeWidth={1.2}
201
- />
202
- <span
203
- className="text-xs font-medium text-[#327DB9]"
204
- style={{ fontFamily: "'DM Sans', sans-serif" }}
205
- >
206
- {cert.locations} Location
207
- {cert.locations !== 1 ? "s" : ""}
208
- </span>
209
- </div>
210
- </div>
211
- </div>
212
- ))}
213
- </div>
214
- </div>
215
- </div>
216
-
217
- {/* WELL Rated Locations Card */}
218
- <div className="flex-1 min-w-0 rounded-md border border-[#DEDEE5] bg-white/0 p-4 shadow-xs">
219
- <h2
220
- className="text-xl font-medium text-[#3D3E46] text-center mb-6"
221
- style={{ fontFamily: "'DM Sans', sans-serif" }}
222
- >
223
- WELL Rated Locations
224
- </h2>
225
-
226
- <div className="flex flex-col md:flex-row justify-center items-center gap-10">
227
- {/* Bar Chart */}
228
- <div className="flex items-end gap-4 h-60 px-4">
229
- {ratings.map((rating) => (
230
- <div key={rating.name} className="w-10 h-60 relative">
231
- {/* Background */}
232
- <div className="absolute inset-0 rounded-t border border-[#DEDEE5] bg-[#F5F9FB]" />
233
- {/* Bar */}
234
- <div
235
- className="absolute bottom-0 left-0 right-0 rounded-t transition-all"
236
- style={{
237
- backgroundColor: rating.color,
238
- height: `${rating.percentage}%`,
239
- }}
240
- />
241
- </div>
242
- ))}
243
- {/* Y-axis */}
244
- <div className="w-px h-60 bg-[#DEDEE5]" />
245
- </div>
246
-
247
- {/* Legend */}
248
- <div className="flex flex-col gap-4 min-w-[160px]">
249
- {ratings.map((rating) => (
250
- <div
251
- key={rating.name}
252
- className={cn(
253
- "flex items-center gap-2",
254
- rating.inactive && "opacity-50",
255
- )}
256
- >
257
- <div
258
- className="w-10 h-10 rounded-full shrink-0 flex items-center justify-center"
259
- style={{ backgroundColor: rating.color }}
260
- />
261
- <div className="flex flex-col gap-0.5 flex-1">
262
- <div
263
- className="text-base font-medium text-[#3D3E46]"
264
- style={{ fontFamily: "'DM Sans', sans-serif" }}
265
- >
266
- {rating.name}
267
- </div>
268
- <div className="flex items-center gap-1">
269
- <Building2
270
- size={16}
271
- className={
272
- rating.inactive
273
- ? "text-[#78777F]"
274
- : "text-[#327DB9]"
275
- }
276
- strokeWidth={1.2}
277
- />
278
- <span
279
- className={cn(
280
- "text-xs font-medium",
281
- rating.inactive
282
- ? "text-[#78777F]"
283
- : "text-[#327DB9]",
284
- )}
285
- style={{ fontFamily: "'DM Sans', sans-serif" }}
286
- >
287
- {typeof rating.locations === "number"
288
- ? `${rating.locations} Location${rating.locations !== 1 ? "s" : ""}`
289
- : rating.locations}
290
- </span>
291
- </div>
292
- </div>
293
- </div>
294
- ))}
295
- </div>
296
- </div>
297
- </div>
298
- </div>
299
-
300
- {/* Footer note */}
301
- <p
302
- className="text-[10px] leading-3 font-medium text-[#78777F] text-center"
303
- style={{ fontFamily: "'DM Sans', sans-serif" }}
304
- >
305
- Achievement metrics reflect all active program achievements, as of{" "}
306
- {new Date().toLocaleDateString("en-US", {
307
- month: "long",
308
- day: "numeric",
309
- year: "numeric",
310
- })}
311
- </p>
312
- </div>
313
- );
314
- },
315
- );
316
-
317
- WELLDashboard.displayName = "WELLDashboard";