@darthcharles/greda 0.2.0 → 1.0.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.
package/dist/styles.css CHANGED
@@ -1,28 +1,22 @@
1
- /* Colors are space-separated HSL channels. All other tokens use CSS values.
2
- Low-specificity defaults let consumer :root rules win in either import order. */
3
- :where(:root) {
4
- color-scheme: light;
5
- --background: 0 0% 100%;
6
- --foreground: 222 47% 11%;
7
- --card: 0 0% 100%;
8
- --card-foreground: 222 47% 11%;
9
- --popover: 0 0% 100%;
10
- --popover-foreground: 222 47% 11%;
11
- --accent: 220 20% 94%;
12
- --accent-foreground: 222 35% 20%;
13
- --primary: 220 80% 45%;
14
- --primary-foreground: 0 0% 100%;
15
- --primary-hover: 220 80% 38%;
16
- --secondary: 220 20% 94%;
17
- --secondary-foreground: 222 35% 20%;
18
- --muted: 220 15% 96%;
19
- --muted-foreground: 220 10% 42%;
20
- --border: 220 15% 82%;
21
- --input: 220 15% 82%;
22
- --ring: 220 80% 45%;
23
- --destructive: 0 72% 43%;
24
- --destructive-foreground: 0 0% 100%;
25
- --overlay: 222 47% 11% / 0.4;
1
+ /* Consumers customize only the generic --base-* colors. All color values are
2
+ space-separated HSL channels. Role assignments are owned by Greda. */
3
+ :where(:root, [data-color-scheme="light"]) {
4
+ --base-white: 0 0% 100%;
5
+ --base-black: 222 47% 11%;
6
+ --base-gray-50: 220 15% 96%;
7
+ --base-gray-100: 220 20% 94%;
8
+ --base-gray-200: 220 15% 82%;
9
+ --base-gray-300: 220 15% 72%;
10
+ --base-gray-500: 220 10% 42%;
11
+ --base-gray-600: 220 15% 36%;
12
+ --base-gray-800: 222 20% 18%;
13
+ --base-gray-900: 222 30% 9%;
14
+ --base-primary: 220 80% 45%;
15
+ --base-primary-hover: 220 80% 38%;
16
+ --base-secondary: 220 20% 94%;
17
+ --base-tertiary: 214 100% 96.863%;
18
+ --base-accent: 220 20% 94%;
19
+ --base-destructive: 0 72% 43%;
26
20
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
27
21
  sans-serif;
28
22
  --font-heading: var(--font-sans);
@@ -61,9 +55,6 @@
61
55
  --dialog-width: 32.5rem;
62
56
  --tooltip-width: 20rem;
63
57
  --toast-width: 24rem;
64
- --shadow-sm: 0 1px 2px hsl(222 47% 11% / 0.08);
65
- --shadow: 0 8px 24px hsl(222 47% 11% / 0.12);
66
- --shadow-dialog: 0 24px 70px hsl(222 47% 11% / 0.24);
67
58
  --focus-width: 2px;
68
59
  --focus-offset: 2px;
69
60
  --disabled-opacity: 0.5;
@@ -72,33 +63,76 @@
72
63
  --z-popover: 60;
73
64
  --z-toast: 70;
74
65
  }
75
- :where([data-color-scheme="light"]) {
66
+
67
+ /* Rebind roles at theme boundaries so scoped base overrides update every role.
68
+ Low specificity lets consumers supply base colors in either import order. */
69
+ :where(:root, [data-theme], [data-color-scheme]) {
76
70
  color-scheme: light;
71
+ --surface-primary: var(--base-white);
72
+ --surface-secondary: var(--base-gray-100);
73
+ --surface-tertiary: var(--base-tertiary);
74
+ --surface-raised: var(--base-gray-50);
75
+ --surface-inverse: var(--base-black);
76
+ --text-primary: var(--base-black);
77
+ --text-secondary: var(--base-gray-600);
78
+ --text-muted: var(--base-gray-500);
79
+ --text-inverse: var(--base-white);
80
+ --text-action: var(--base-primary);
81
+ --border-primary: var(--base-gray-200);
82
+ --border-secondary: var(--base-gray-100);
83
+ --border-inverse: var(--base-gray-600);
84
+ --border-action: var(--base-primary);
85
+
86
+ /* Existing component tokens derive from the same generic base palette. */
87
+ --background: var(--surface-primary);
88
+ --foreground: var(--text-primary);
89
+ --card: var(--surface-raised);
90
+ --card-foreground: var(--text-primary);
91
+ --popover: var(--surface-raised);
92
+ --popover-foreground: var(--text-primary);
93
+ --accent: var(--base-accent);
94
+ --accent-foreground: var(--text-primary);
95
+ --primary: var(--base-primary);
96
+ --primary-foreground: var(--base-white);
97
+ --primary-hover: var(--base-primary-hover);
98
+ --secondary: var(--base-secondary);
99
+ --secondary-foreground: var(--text-primary);
100
+ --muted: var(--surface-secondary);
101
+ --muted-foreground: var(--text-muted);
102
+ --border: var(--border-primary);
103
+ --input: var(--border-primary);
104
+ --ring: var(--base-primary);
105
+ --destructive: var(--base-destructive);
106
+ --destructive-foreground: var(--base-white);
107
+ --overlay: var(--base-black) / 0.4;
108
+ --shadow-sm: 0 1px 2px hsl(var(--base-black) / 0.08);
109
+ --shadow: 0 8px 24px hsl(var(--base-black) / 0.12);
110
+ --shadow-dialog: 0 24px 70px hsl(var(--base-black) / 0.24);
77
111
  }
112
+
78
113
  /* Opt in independently of the consumer's brand theme. */
79
114
  :where([data-color-scheme="dark"]) {
80
115
  color-scheme: dark;
81
- --background: 222 30% 9%;
82
- --foreground: 220 20% 96%;
83
- --card: 222 25% 13%;
84
- --card-foreground: 220 20% 96%;
85
- --popover: 222 25% 13%;
86
- --popover-foreground: 220 20% 96%;
87
- --accent: 222 20% 22%;
88
- --accent-foreground: 220 20% 96%;
89
- --primary: 217 90% 70%;
90
- --primary-foreground: 222 47% 11%;
91
- --primary-hover: 217 90% 78%;
92
- --secondary: 222 20% 22%;
93
- --secondary-foreground: 220 20% 96%;
94
- --muted: 222 20% 18%;
95
- --muted-foreground: 220 15% 72%;
96
- --border: 220 15% 36%;
97
- --input: 220 15% 36%;
98
- --ring: 217 90% 70%;
99
- --destructive: 0 80% 72%;
100
- --destructive-foreground: 222 47% 11%;
101
- --overlay: 222 47% 3% / 0.7;
116
+ --base-primary: 217 90% 70%;
117
+ --base-primary-hover: 217 90% 78%;
118
+ --base-secondary: 222 20% 22%;
119
+ --base-tertiary: 218 40% 18%;
120
+ --base-accent: 222 20% 22%;
121
+ --base-destructive: 0 80% 72%;
122
+ --surface-primary: var(--base-gray-900);
123
+ --surface-secondary: var(--base-gray-800);
124
+ --surface-raised: var(--base-gray-800);
125
+ --surface-inverse: var(--base-white);
126
+ --text-primary: var(--base-white);
127
+ --text-secondary: var(--base-gray-300);
128
+ --text-muted: var(--base-gray-300);
129
+ --text-inverse: var(--base-black);
130
+ --border-primary: var(--base-gray-600);
131
+ --border-secondary: var(--base-gray-800);
132
+ --border-inverse: var(--base-gray-200);
133
+ --primary-foreground: var(--base-black);
134
+ --destructive-foreground: var(--base-black);
135
+ --overlay: var(--base-black) / 0.7;
102
136
  }
103
137
 
104
- :where(.comal-ui),:where(.comal-ui)::after,:where(.comal-ui)::before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(.comal-ui)::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(.comal-ui){box-sizing:border-box;margin:0;border:0 solid hsl(var(--border));font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height);color:inherit}:where(button.comal-ui){background-color:transparent;cursor:pointer;padding:0}:where(button.comal-ui:disabled){cursor:not-allowed}:where(input.comal-ui,textarea.comal-ui){color:hsl(var(--foreground))}:where(input.comal-ui,textarea.comal-ui)::-moz-placeholder{opacity:1}:where(input.comal-ui,textarea.comal-ui)::placeholder{opacity:1}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.comal-heading{font-family:var(--font-heading)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:var(--space-0,calc(var(--spacing-unit)*0))}.left-\[50\%\]{left:50%}.right-1{right:var(--space-1,calc(var(--spacing-unit)*1))}.right-2{right:var(--space-2,calc(var(--spacing-unit)*2))}.right-4{right:var(--space-4,calc(var(--spacing-unit)*4))}.top-0{top:var(--space-0,calc(var(--spacing-unit)*0))}.top-1{top:var(--space-1,calc(var(--spacing-unit)*1))}.top-4{top:var(--space-4,calc(var(--spacing-unit)*4))}.top-\[50\%\]{top:50%}.z-overlay{z-index:var(--z-overlay)}.z-popover{z-index:var(--z-popover)}.z-toast{z-index:var(--z-toast)}.-mx-1{margin-left:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1);margin-right:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1)}.my-1{margin-top:var(--space-1,calc(var(--spacing-unit)*1));margin-bottom:var(--space-1,calc(var(--spacing-unit)*1))}.mt-2{margin-top:var(--space-2,calc(var(--spacing-unit)*2))}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:var(--space-10,calc(var(--spacing-unit)*10))}.h-3\.5{height:var(--space-3-5,calc(var(--spacing-unit)*3.5))}.h-4{height:var(--space-4,calc(var(--spacing-unit)*4))}.h-8{height:var(--space-8,calc(var(--spacing-unit)*8))}.h-9{height:var(--space-9,calc(var(--spacing-unit)*9))}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-px{height:1px}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-h-screen{max-height:100vh}.min-h-\[60px\]{min-height:60px}.w-3\.5{width:var(--space-3-5,calc(var(--spacing-unit)*3.5))}.w-4{width:var(--space-4,calc(var(--spacing-unit)*4))}.w-9{width:var(--space-9,calc(var(--spacing-unit)*9))}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[var\(--tooltip-width\)\]{max-width:var(--tooltip-width)}.max-w-lg{max-width:var(--dialog-width)}.shrink-0{flex-shrink:0}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-content-center{place-content:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2,calc(var(--spacing-unit)*2))}.gap-4{gap:var(--space-4,calc(var(--spacing-unit)*4))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * var(--tw-space-x-reverse));margin-left:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(var(--space-1-5, calc(var(--spacing-unit) * 1.5)) * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(var(--space-1-5, calc(var(--spacing-unit) * 1.5)) * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-lg)}.border{border-width:var(--border-width)}.border-accent{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.border-accent-foreground{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.border-background{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.border-border{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.border-card{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.border-card-foreground{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.border-destructive{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.border-destructive-foreground{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.border-foreground{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.border-input{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.border-muted{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.border-muted-foreground{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.border-overlay{border-color:hsl(var(--overlay))}.border-popover{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.border-popover-foreground{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity,1))}.border-primary-foreground{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.border-primary-hover{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.border-ring{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.border-secondary{--tw-border-opacity:1;border-color:hsl(var(--secondary)/var(--tw-border-opacity,1))}.border-secondary-foreground{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-accent{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.bg-accent-foreground{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.bg-border{background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.bg-border,.bg-card{--tw-bg-opacity:1}.bg-card{background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.bg-card-foreground{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.bg-destructive{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.bg-destructive-foreground{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.bg-foreground{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.bg-input{background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.bg-input,.bg-muted{--tw-bg-opacity:1}.bg-muted{background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.bg-muted-foreground{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.bg-overlay{background-color:hsl(var(--overlay))}.bg-popover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.bg-popover-foreground{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.bg-primary-foreground{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.bg-primary-hover{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.bg-ring{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.bg-secondary-foreground{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.p-1{padding:var(--space-1,calc(var(--spacing-unit)*1))}.p-4{padding:var(--space-4,calc(var(--spacing-unit)*4))}.p-6{padding:var(--space-6,calc(var(--spacing-unit)*6))}.px-2{padding-left:var(--space-2,calc(var(--spacing-unit)*2));padding-right:var(--space-2,calc(var(--spacing-unit)*2))}.px-2\.5{padding-left:var(--space-2-5,calc(var(--spacing-unit)*2.5));padding-right:var(--space-2-5,calc(var(--spacing-unit)*2.5))}.px-3{padding-left:var(--space-3,calc(var(--spacing-unit)*3));padding-right:var(--space-3,calc(var(--spacing-unit)*3))}.px-4{padding-left:var(--space-4,calc(var(--spacing-unit)*4));padding-right:var(--space-4,calc(var(--spacing-unit)*4))}.px-8{padding-left:var(--space-8,calc(var(--spacing-unit)*8));padding-right:var(--space-8,calc(var(--spacing-unit)*8))}.py-0\.5{padding-top:var(--space-0-5,calc(var(--spacing-unit)*.5));padding-bottom:var(--space-0-5,calc(var(--spacing-unit)*.5))}.py-1{padding-top:var(--space-1,calc(var(--spacing-unit)*1));padding-bottom:var(--space-1,calc(var(--spacing-unit)*1))}.py-1\.5{padding-top:var(--space-1-5,calc(var(--spacing-unit)*1.5));padding-bottom:var(--space-1-5,calc(var(--spacing-unit)*1.5))}.py-2{padding-top:var(--space-2,calc(var(--spacing-unit)*2));padding-bottom:var(--space-2,calc(var(--spacing-unit)*2))}.pl-2{padding-left:var(--space-2,calc(var(--spacing-unit)*2))}.pr-6{padding-right:var(--space-6,calc(var(--spacing-unit)*6))}.pr-8{padding-right:var(--space-8,calc(var(--spacing-unit)*8))}.pt-0{padding-top:var(--space-0,calc(var(--spacing-unit)*0))}.text-center{text-align:center}.text-base{font-size:var(--font-size-md)}.text-base,.text-lg{line-height:var(--line-height)}.text-lg{font-size:var(--font-size-lg)}.text-sm{font-size:var(--font-size-sm)}.text-sm,.text-xs{line-height:var(--line-height)}.text-xs{font-size:var(--font-size-xs)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-bold)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-accent{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.text-accent-foreground{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.text-background{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.text-border{color:hsl(var(--border)/var(--tw-text-opacity,1))}.text-border,.text-card{--tw-text-opacity:1}.text-card{color:hsl(var(--card)/var(--tw-text-opacity,1))}.text-card-foreground{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.text-current{color:currentColor}.text-destructive{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.text-destructive-foreground{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.text-foreground{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-input{color:hsl(var(--input)/var(--tw-text-opacity,1))}.text-input,.text-muted{--tw-text-opacity:1}.text-muted{color:hsl(var(--muted)/var(--tw-text-opacity,1))}.text-muted-foreground{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.text-overlay{color:hsl(var(--overlay))}.text-popover{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.text-popover-foreground{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity,1))}.text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.text-primary-hover{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.text-ring{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.text-secondary{--tw-text-opacity:1;color:hsl(var(--secondary)/var(--tw-text-opacity,1))}.text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:var(--shadow);--tw-shadow-colored:var(--shadow)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:var(--shadow-dialog);--tw-shadow-colored:var(--shadow-dialog)}.shadow-md{--tw-shadow:var(--shadow);--tw-shadow-colored:var(--shadow)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:var(--shadow-sm);--tw-shadow-colored:var(--shadow-sm)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background)/1)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:var(--duration)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:var(--duration)}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:var(--duration)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{animation-name:enter;animation-duration:var(--duration);--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-200{animation-duration:.2s}@media (prefers-reduced-motion:reduce){:where(.comal-ui){animation:none!important;transition:none!important}}[data-slot=checkbox-indicator]:not([data-state=indeterminate])>[data-mixed-icon],[data-slot=checkbox-indicator][data-state=indeterminate]>[data-check-icon]{display:none}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:var(--font-size-sm);line-height:var(--line-height)}.file\:font-medium::file-selector-button{font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.placeholder\:text-muted-foreground::-moz-placeholder{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.hover\:border-accent:hover{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.hover\:border-accent-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.hover\:border-background:hover{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.hover\:border-border:hover{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.hover\:border-card:hover{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.hover\:border-card-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.hover\:border-destructive:hover{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.hover\:border-destructive-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.hover\:border-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.hover\:border-input:hover{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.hover\:border-muted:hover{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.hover\:border-muted-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.hover\:border-overlay:hover{border-color:hsl(var(--overlay))}.hover\:border-popover:hover{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.hover\:border-popover-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.hover\:border-primary:hover{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity,1))}.hover\:border-primary-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.hover\:border-primary-hover:hover{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.hover\:border-ring:hover{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.hover\:border-secondary:hover{--tw-border-opacity:1;border-color:hsl(var(--secondary)/var(--tw-border-opacity,1))}.hover\:border-secondary-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.hover\:bg-accent-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-background:hover{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.hover\:bg-border:hover{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.hover\:bg-card:hover{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.hover\:bg-card-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-destructive:hover{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.hover\:bg-destructive-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.hover\:bg-input:hover{--tw-bg-opacity:1;background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.hover\:bg-muted:hover{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.hover\:bg-muted-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-overlay:hover{background-color:hsl(var(--overlay))}.hover\:bg-popover:hover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.hover\:bg-popover-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.hover\:bg-primary-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-primary-hover:hover{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-ring:hover{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.hover\:bg-secondary:hover{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.hover\:bg-secondary-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent:hover{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.hover\:text-background:hover{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.hover\:text-border:hover{--tw-text-opacity:1;color:hsl(var(--border)/var(--tw-text-opacity,1))}.hover\:text-card:hover{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity,1))}.hover\:text-card-foreground:hover{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.hover\:text-destructive:hover{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.hover\:text-destructive-foreground:hover{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.hover\:text-foreground:hover{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.hover\:text-input:hover{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.hover\:text-muted:hover{--tw-text-opacity:1;color:hsl(var(--muted)/var(--tw-text-opacity,1))}.hover\:text-muted-foreground:hover{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.hover\:text-overlay:hover{color:hsl(var(--overlay))}.hover\:text-popover:hover{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.hover\:text-popover-foreground:hover{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.hover\:text-primary:hover{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity,1))}.hover\:text-primary-foreground:hover{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.hover\:text-primary-hover:hover{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.hover\:text-ring:hover{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.hover\:text-secondary:hover{--tw-text-opacity:1;color:hsl(var(--secondary)/var(--tw-text-opacity,1))}.hover\:text-secondary-foreground:hover{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:border-accent:focus{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.focus\:border-accent-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.focus\:border-background:focus{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.focus\:border-border:focus{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.focus\:border-card:focus{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.focus\:border-card-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.focus\:border-destructive:focus{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.focus\:border-destructive-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.focus\:border-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.focus\:border-input:focus{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.focus\:border-muted:focus{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.focus\:border-muted-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.focus\:border-overlay:focus{border-color:hsl(var(--overlay))}.focus\:border-popover:focus{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.focus\:border-popover-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.focus\:border-primary:focus{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity,1))}.focus\:border-primary-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.focus\:border-primary-hover:focus{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.focus\:border-ring:focus{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.focus\:border-secondary:focus{--tw-border-opacity:1;border-color:hsl(var(--secondary)/var(--tw-border-opacity,1))}.focus\:border-secondary-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.focus\:bg-accent:focus{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.focus\:bg-accent-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-background:focus{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.focus\:bg-border:focus{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.focus\:bg-card:focus{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.focus\:bg-card-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-destructive:focus{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.focus\:bg-destructive-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.focus\:bg-input:focus{--tw-bg-opacity:1;background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.focus\:bg-muted:focus{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.focus\:bg-muted-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-overlay:focus{background-color:hsl(var(--overlay))}.focus\:bg-popover:focus{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.focus\:bg-popover-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-primary:focus{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.focus\:bg-primary-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-primary-hover:focus{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.focus\:bg-ring:focus{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.focus\:bg-secondary:focus{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.focus\:bg-secondary-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.focus\:text-accent:focus{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.focus\:text-accent-foreground:focus{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.focus\:text-background:focus{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.focus\:text-border:focus{--tw-text-opacity:1;color:hsl(var(--border)/var(--tw-text-opacity,1))}.focus\:text-card:focus{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity,1))}.focus\:text-card-foreground:focus{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.focus\:text-destructive:focus{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.focus\:text-destructive-foreground:focus{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.focus\:text-foreground:focus{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.focus\:text-input:focus{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.focus\:text-muted:focus{--tw-text-opacity:1;color:hsl(var(--muted)/var(--tw-text-opacity,1))}.focus\:text-muted-foreground:focus{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.focus\:text-overlay:focus{color:hsl(var(--overlay))}.focus\:text-popover:focus{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.focus\:text-popover-foreground:focus{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.focus\:text-primary:focus{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity,1))}.focus\:text-primary-foreground:focus{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.focus\:text-primary-hover:focus{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.focus\:text-ring:focus{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.focus\:text-secondary:focus{--tw-text-opacity:1;color:hsl(var(--secondary)/var(--tw-text-opacity,1))}.focus\:text-secondary-foreground:focus{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus,.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--focus-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:var(--focus-offset)}.focus-visible\:border-accent:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.focus-visible\:border-accent-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-background:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.focus-visible\:border-border:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.focus-visible\:border-card:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.focus-visible\:border-card-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-destructive:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.focus-visible\:border-destructive-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-input:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.focus-visible\:border-muted:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.focus-visible\:border-muted-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-overlay:focus-visible{border-color:hsl(var(--overlay))}.focus-visible\:border-popover:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.focus-visible\:border-popover-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-primary:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--primary)/var(--tw-border-opacity,1))}.focus-visible\:border-primary-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-primary-hover:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.focus-visible\:border-ring:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.focus-visible\:border-secondary:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--secondary)/var(--tw-border-opacity,1))}.focus-visible\:border-secondary-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.focus-visible\:bg-accent:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.focus-visible\:bg-accent-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-background:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.focus-visible\:bg-border:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.focus-visible\:bg-card:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.focus-visible\:bg-card-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-destructive:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.focus-visible\:bg-destructive-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-input:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.focus-visible\:bg-muted:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.focus-visible\:bg-muted-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-overlay:focus-visible{background-color:hsl(var(--overlay))}.focus-visible\:bg-popover:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.focus-visible\:bg-popover-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-primary:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.focus-visible\:bg-primary-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-primary-hover:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.focus-visible\:bg-ring:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.focus-visible\:bg-secondary:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.focus-visible\:bg-secondary-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:text-accent:focus-visible{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.focus-visible\:text-accent-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-background:focus-visible{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.focus-visible\:text-border:focus-visible{--tw-text-opacity:1;color:hsl(var(--border)/var(--tw-text-opacity,1))}.focus-visible\:text-card:focus-visible{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity,1))}.focus-visible\:text-card-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-destructive:focus-visible{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.focus-visible\:text-destructive-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-input:focus-visible{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.focus-visible\:text-muted:focus-visible{--tw-text-opacity:1;color:hsl(var(--muted)/var(--tw-text-opacity,1))}.focus-visible\:text-muted-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-overlay:focus-visible{color:hsl(var(--overlay))}.focus-visible\:text-popover:focus-visible{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.focus-visible\:text-popover-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-primary:focus-visible{--tw-text-opacity:1;color:hsl(var(--primary)/var(--tw-text-opacity,1))}.focus-visible\:text-primary-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-primary-hover:focus-visible{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.focus-visible\:text-ring:focus-visible{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.focus-visible\:text-secondary:focus-visible{--tw-text-opacity:1;color:hsl(var(--secondary)/var(--tw-text-opacity,1))}.focus-visible\:text-secondary-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--focus-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--focus-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:var(--focus-offset)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-disabled:disabled{opacity:var(--disabled-opacity)}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--destructive)/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-\[invalid\=true\]\:border-destructive[aria-invalid=true]{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--space-1,calc(var(--spacing-unit)*1))}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--space-1,calc(var(--spacing-unit)*1))}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1)}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:var(--space-0,calc(var(--spacing-unit)*0))}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel],.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=active\]\:bg-background[data-state=active]{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.data-\[state\=checked\]\:bg-primary[data-state=checked],.data-\[state\=indeterminate\]\:bg-primary[data-state=indeterminate]{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.data-\[state\=open\]\:bg-accent[data-state=open]{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.data-\[state\=active\]\:text-foreground[data-state=active]{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked],.data-\[state\=indeterminate\]\:text-primary-foreground[data-state=indeterminate]{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:var(--shadow);--tw-shadow-colored:var(--shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:var(--duration);--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:var(--duration);--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-var(--space-2,calc(var(--spacing-unit)*2))}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:var(--space-2,calc(var(--spacing-unit)*2))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-var(--space-2,calc(var(--spacing-unit)*2))}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:var(--space-2,calc(var(--spacing-unit)*2))}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}@media (min-width:640px){.sm\:bottom-0{bottom:var(--space-0,calc(var(--spacing-unit)*0))}.sm\:right-0{right:var(--space-0,calc(var(--spacing-unit)*0))}.sm\:top-auto{top:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * var(--tw-space-x-reverse));margin-left:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:max-w-\[var\(--toast-width\)\]{max-width:var(--toast-width)}.md\:text-sm{font-size:var(--font-size-sm);line-height:var(--line-height)}}.\[\&\+div\]\:text-xs+div{font-size:var(--font-size-xs);line-height:var(--line-height)}.active\:\[\&\:not\(\[aria-haspopup\]\)\]\:translate-y-px:not([aria-haspopup]):active{--tw-translate-y:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-reduced-motion:reduce){.motion-reduce\:active\:\[\&\:not\(\[aria-haspopup\]\)\]\:transform-none:not([aria-haspopup]):active{transform:none}}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:var(--space-4,calc(var(--spacing-unit)*4));height:var(--space-4,calc(var(--spacing-unit)*4))}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
138
+ :where(.comal-ui),:where(.comal-ui)::after,:where(.comal-ui)::before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(.comal-ui)::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(.comal-ui){box-sizing:border-box;margin:0;border:0 solid hsl(var(--border-primary));font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height);color:inherit}:where(button.comal-ui){background-color:transparent;cursor:pointer;padding:0}:where(button.comal-ui:disabled){cursor:not-allowed}:where(input.comal-ui,textarea.comal-ui){color:hsl(var(--text-primary))}:where(input.comal-ui,textarea.comal-ui)::-moz-placeholder{opacity:1}:where(input.comal-ui,textarea.comal-ui)::placeholder{opacity:1}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.comal-heading{font-family:var(--font-heading)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:var(--space-0,calc(var(--spacing-unit)*0))}.left-\[50\%\]{left:50%}.right-1{right:var(--space-1,calc(var(--spacing-unit)*1))}.right-2{right:var(--space-2,calc(var(--spacing-unit)*2))}.right-4{right:var(--space-4,calc(var(--spacing-unit)*4))}.top-0{top:var(--space-0,calc(var(--spacing-unit)*0))}.top-1{top:var(--space-1,calc(var(--spacing-unit)*1))}.top-4{top:var(--space-4,calc(var(--spacing-unit)*4))}.top-\[50\%\]{top:50%}.z-overlay{z-index:var(--z-overlay)}.z-popover{z-index:var(--z-popover)}.z-toast{z-index:var(--z-toast)}.-mx-1{margin-left:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1);margin-right:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1)}.my-1{margin-top:var(--space-1,calc(var(--spacing-unit)*1));margin-bottom:var(--space-1,calc(var(--spacing-unit)*1))}.mt-2{margin-top:var(--space-2,calc(var(--spacing-unit)*2))}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:var(--space-10,calc(var(--spacing-unit)*10))}.h-3\.5{height:var(--space-3-5,calc(var(--spacing-unit)*3.5))}.h-4{height:var(--space-4,calc(var(--spacing-unit)*4))}.h-8{height:var(--space-8,calc(var(--spacing-unit)*8))}.h-9{height:var(--space-9,calc(var(--spacing-unit)*9))}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-px{height:1px}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-h-screen{max-height:100vh}.min-h-\[60px\]{min-height:60px}.w-3\.5{width:var(--space-3-5,calc(var(--spacing-unit)*3.5))}.w-4{width:var(--space-4,calc(var(--spacing-unit)*4))}.w-9{width:var(--space-9,calc(var(--spacing-unit)*9))}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-full{width:100%}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-\[var\(--tooltip-width\)\]{max-width:var(--tooltip-width)}.max-w-lg{max-width:var(--dialog-width)}.shrink-0{flex-shrink:0}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-content-center{place-content:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2,calc(var(--spacing-unit)*2))}.gap-4{gap:var(--space-4,calc(var(--spacing-unit)*4))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * var(--tw-space-x-reverse));margin-left:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * calc(1 - var(--tw-space-x-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(var(--space-1-5, calc(var(--spacing-unit) * 1.5)) * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(var(--space-1-5, calc(var(--spacing-unit) * 1.5)) * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-lg)}.border{border-width:var(--border-width)}.border-accent{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.border-accent-foreground{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.border-action{--tw-border-opacity:1;border-color:hsl(var(--border-action)/var(--tw-border-opacity,1))}.border-background{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.border-border{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.border-card{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.border-card-foreground{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.border-destructive{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.border-destructive-foreground{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.border-foreground{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.border-input{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.border-inverse{--tw-border-opacity:1;border-color:hsl(var(--border-inverse)/var(--tw-border-opacity,1))}.border-muted{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.border-muted-foreground{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.border-overlay{border-color:hsl(var(--overlay))}.border-popover{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.border-popover-foreground{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:hsl(var(--border-primary)/var(--tw-border-opacity,1))}.border-primary-foreground{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.border-primary-hover{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.border-ring{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.border-secondary{--tw-border-opacity:1;border-color:hsl(var(--border-secondary)/var(--tw-border-opacity,1))}.border-secondary-foreground{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.bg-accent{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.bg-accent-foreground{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.bg-background{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.bg-border{background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.bg-border,.bg-card{--tw-bg-opacity:1}.bg-card{background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.bg-card-foreground{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.bg-destructive{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.bg-destructive-foreground{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.bg-foreground{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.bg-input{background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.bg-input,.bg-muted{--tw-bg-opacity:1}.bg-muted{background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.bg-muted-foreground{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.bg-overlay{background-color:hsl(var(--overlay))}.bg-popover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.bg-popover-foreground{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.bg-primary-foreground{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.bg-primary-hover{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.bg-ring{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.bg-secondary-foreground{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.p-1{padding:var(--space-1,calc(var(--spacing-unit)*1))}.p-4{padding:var(--space-4,calc(var(--spacing-unit)*4))}.p-6{padding:var(--space-6,calc(var(--spacing-unit)*6))}.px-2{padding-left:var(--space-2,calc(var(--spacing-unit)*2));padding-right:var(--space-2,calc(var(--spacing-unit)*2))}.px-2\.5{padding-left:var(--space-2-5,calc(var(--spacing-unit)*2.5));padding-right:var(--space-2-5,calc(var(--spacing-unit)*2.5))}.px-3{padding-left:var(--space-3,calc(var(--spacing-unit)*3));padding-right:var(--space-3,calc(var(--spacing-unit)*3))}.px-4{padding-left:var(--space-4,calc(var(--spacing-unit)*4));padding-right:var(--space-4,calc(var(--spacing-unit)*4))}.px-8{padding-left:var(--space-8,calc(var(--spacing-unit)*8));padding-right:var(--space-8,calc(var(--spacing-unit)*8))}.py-0\.5{padding-top:var(--space-0-5,calc(var(--spacing-unit)*.5));padding-bottom:var(--space-0-5,calc(var(--spacing-unit)*.5))}.py-1{padding-top:var(--space-1,calc(var(--spacing-unit)*1));padding-bottom:var(--space-1,calc(var(--spacing-unit)*1))}.py-1\.5{padding-top:var(--space-1-5,calc(var(--spacing-unit)*1.5));padding-bottom:var(--space-1-5,calc(var(--spacing-unit)*1.5))}.py-2{padding-top:var(--space-2,calc(var(--spacing-unit)*2));padding-bottom:var(--space-2,calc(var(--spacing-unit)*2))}.pl-2{padding-left:var(--space-2,calc(var(--spacing-unit)*2))}.pr-6{padding-right:var(--space-6,calc(var(--spacing-unit)*6))}.pr-8{padding-right:var(--space-8,calc(var(--spacing-unit)*8))}.pt-0{padding-top:var(--space-0,calc(var(--spacing-unit)*0))}.text-center{text-align:center}.text-base{font-size:var(--font-size-md)}.text-base,.text-lg{line-height:var(--line-height)}.text-lg{font-size:var(--font-size-lg)}.text-sm{font-size:var(--font-size-sm)}.text-sm,.text-xs{line-height:var(--line-height)}.text-xs{font-size:var(--font-size-xs)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-bold)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-accent{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.text-accent-foreground{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.text-action{--tw-text-opacity:1;color:hsl(var(--text-action)/var(--tw-text-opacity,1))}.text-background{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.text-border{color:hsl(var(--border)/var(--tw-text-opacity,1))}.text-border,.text-card{--tw-text-opacity:1}.text-card{color:hsl(var(--card)/var(--tw-text-opacity,1))}.text-card-foreground{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.text-current{color:currentColor}.text-destructive{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.text-destructive-foreground{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.text-foreground{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.text-input{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.text-inverse{--tw-text-opacity:1;color:hsl(var(--text-inverse)/var(--tw-text-opacity,1))}.text-muted{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.text-muted-foreground{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.text-overlay{color:hsl(var(--overlay))}.text-popover{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.text-popover-foreground{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:hsl(var(--text-primary)/var(--tw-text-opacity,1))}.text-primary-foreground{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.text-primary-hover{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.text-primary\/50{color:hsl(var(--text-primary)/.5)}.text-ring{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.text-secondary{--tw-text-opacity:1;color:hsl(var(--text-secondary)/var(--tw-text-opacity,1))}.text-secondary-foreground{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:var(--shadow);--tw-shadow-colored:var(--shadow)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:var(--shadow-dialog);--tw-shadow-colored:var(--shadow-dialog)}.shadow-md{--tw-shadow:var(--shadow);--tw-shadow-colored:var(--shadow)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:var(--shadow-sm);--tw-shadow-colored:var(--shadow-sm)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background)/1)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:var(--duration)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:var(--duration)}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:var(--duration)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{animation-name:enter;animation-duration:var(--duration);--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-200{animation-duration:.2s}.surface-inverse{background-color:hsl(var(--surface-inverse))}.surface-primary{background-color:hsl(var(--surface-primary))}.surface-raised{background-color:hsl(var(--surface-raised))}.surface-secondary{background-color:hsl(var(--surface-secondary))}.surface-tertiary{background-color:hsl(var(--surface-tertiary))}@media (prefers-reduced-motion:reduce){:where(.comal-ui){animation:none!important;transition:none!important}}[data-slot=checkbox-indicator]:not([data-state=indeterminate])>[data-mixed-icon],[data-slot=checkbox-indicator][data-state=indeterminate]>[data-check-icon]{display:none}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:var(--font-size-sm);line-height:var(--line-height)}.file\:font-medium::file-selector-button{font-weight:var(--font-weight-medium)}.file\:text-primary::file-selector-button{--tw-text-opacity:1;color:hsl(var(--text-primary)/var(--tw-text-opacity,1))}.placeholder\:text-muted::-moz-placeholder{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.placeholder\:text-muted::placeholder{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.hover\:border-accent:hover{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.hover\:border-accent-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.hover\:border-action:hover{--tw-border-opacity:1;border-color:hsl(var(--border-action)/var(--tw-border-opacity,1))}.hover\:border-background:hover{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.hover\:border-border:hover{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.hover\:border-card:hover{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.hover\:border-card-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.hover\:border-destructive:hover{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.hover\:border-destructive-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.hover\:border-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.hover\:border-input:hover{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.hover\:border-inverse:hover{--tw-border-opacity:1;border-color:hsl(var(--border-inverse)/var(--tw-border-opacity,1))}.hover\:border-muted:hover{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.hover\:border-muted-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.hover\:border-overlay:hover{border-color:hsl(var(--overlay))}.hover\:border-popover:hover{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.hover\:border-popover-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.hover\:border-primary:hover{--tw-border-opacity:1;border-color:hsl(var(--border-primary)/var(--tw-border-opacity,1))}.hover\:border-primary-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.hover\:border-primary-hover:hover{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.hover\:border-ring:hover{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.hover\:border-secondary:hover{--tw-border-opacity:1;border-color:hsl(var(--border-secondary)/var(--tw-border-opacity,1))}.hover\:border-secondary-foreground:hover{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.hover\:bg-accent-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-background:hover{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.hover\:bg-border:hover{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.hover\:bg-card:hover{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.hover\:bg-card-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-destructive:hover{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.hover\:bg-destructive-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.hover\:bg-input:hover{--tw-bg-opacity:1;background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.hover\:bg-muted:hover{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.hover\:bg-muted-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-overlay:hover{background-color:hsl(var(--overlay))}.hover\:bg-popover:hover{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.hover\:bg-popover-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.hover\:bg-primary-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-primary-hover:hover{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-ring:hover{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.hover\:bg-secondary:hover{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.hover\:bg-secondary-foreground:hover{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent:hover{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.hover\:text-accent-foreground:hover{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.hover\:text-action:hover{--tw-text-opacity:1;color:hsl(var(--text-action)/var(--tw-text-opacity,1))}.hover\:text-background:hover{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.hover\:text-border:hover{--tw-text-opacity:1;color:hsl(var(--border)/var(--tw-text-opacity,1))}.hover\:text-card:hover{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity,1))}.hover\:text-card-foreground:hover{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.hover\:text-destructive:hover{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.hover\:text-destructive-foreground:hover{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.hover\:text-foreground:hover{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.hover\:text-input:hover{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.hover\:text-inverse:hover{--tw-text-opacity:1;color:hsl(var(--text-inverse)/var(--tw-text-opacity,1))}.hover\:text-muted:hover{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.hover\:text-muted-foreground:hover{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.hover\:text-overlay:hover{color:hsl(var(--overlay))}.hover\:text-popover:hover{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.hover\:text-popover-foreground:hover{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.hover\:text-primary:hover{--tw-text-opacity:1;color:hsl(var(--text-primary)/var(--tw-text-opacity,1))}.hover\:text-primary-foreground:hover{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.hover\:text-primary-hover:hover{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.hover\:text-ring:hover{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.hover\:text-secondary:hover{--tw-text-opacity:1;color:hsl(var(--text-secondary)/var(--tw-text-opacity,1))}.hover\:text-secondary-foreground:hover{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:surface-inverse:hover{background-color:hsl(var(--surface-inverse))}.hover\:surface-primary:hover{background-color:hsl(var(--surface-primary))}.hover\:surface-raised:hover{background-color:hsl(var(--surface-raised))}.hover\:surface-secondary:hover{background-color:hsl(var(--surface-secondary))}.hover\:surface-tertiary:hover{background-color:hsl(var(--surface-tertiary))}.focus\:border-accent:focus{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.focus\:border-accent-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.focus\:border-action:focus{--tw-border-opacity:1;border-color:hsl(var(--border-action)/var(--tw-border-opacity,1))}.focus\:border-background:focus{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.focus\:border-border:focus{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.focus\:border-card:focus{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.focus\:border-card-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.focus\:border-destructive:focus{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.focus\:border-destructive-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.focus\:border-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.focus\:border-input:focus{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.focus\:border-inverse:focus{--tw-border-opacity:1;border-color:hsl(var(--border-inverse)/var(--tw-border-opacity,1))}.focus\:border-muted:focus{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.focus\:border-muted-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.focus\:border-overlay:focus{border-color:hsl(var(--overlay))}.focus\:border-popover:focus{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.focus\:border-popover-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.focus\:border-primary:focus{--tw-border-opacity:1;border-color:hsl(var(--border-primary)/var(--tw-border-opacity,1))}.focus\:border-primary-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.focus\:border-primary-hover:focus{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.focus\:border-ring:focus{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.focus\:border-secondary:focus{--tw-border-opacity:1;border-color:hsl(var(--border-secondary)/var(--tw-border-opacity,1))}.focus\:border-secondary-foreground:focus{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.focus\:bg-accent:focus{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.focus\:bg-accent-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-background:focus{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.focus\:bg-border:focus{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.focus\:bg-card:focus{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.focus\:bg-card-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-destructive:focus{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.focus\:bg-destructive-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.focus\:bg-input:focus{--tw-bg-opacity:1;background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.focus\:bg-muted:focus{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.focus\:bg-muted-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-overlay:focus{background-color:hsl(var(--overlay))}.focus\:bg-popover:focus{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.focus\:bg-popover-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-primary:focus{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.focus\:bg-primary-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.focus\:bg-primary-hover:focus{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.focus\:bg-ring:focus{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.focus\:bg-secondary:focus{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.focus\:bg-secondary-foreground:focus{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.focus\:text-accent:focus{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.focus\:text-accent-foreground:focus{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.focus\:text-action:focus{--tw-text-opacity:1;color:hsl(var(--text-action)/var(--tw-text-opacity,1))}.focus\:text-background:focus{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.focus\:text-border:focus{--tw-text-opacity:1;color:hsl(var(--border)/var(--tw-text-opacity,1))}.focus\:text-card:focus{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity,1))}.focus\:text-card-foreground:focus{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.focus\:text-destructive:focus{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.focus\:text-destructive-foreground:focus{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.focus\:text-foreground:focus{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.focus\:text-input:focus{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.focus\:text-inverse:focus{--tw-text-opacity:1;color:hsl(var(--text-inverse)/var(--tw-text-opacity,1))}.focus\:text-muted:focus{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.focus\:text-muted-foreground:focus{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.focus\:text-overlay:focus{color:hsl(var(--overlay))}.focus\:text-popover:focus{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.focus\:text-popover-foreground:focus{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.focus\:text-primary:focus{--tw-text-opacity:1;color:hsl(var(--text-primary)/var(--tw-text-opacity,1))}.focus\:text-primary-foreground:focus{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.focus\:text-primary-hover:focus{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.focus\:text-ring:focus{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.focus\:text-secondary:focus{--tw-text-opacity:1;color:hsl(var(--text-secondary)/var(--tw-text-opacity,1))}.focus\:text-secondary-foreground:focus{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus,.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--focus-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:var(--focus-offset)}.focus\:surface-inverse:focus{background-color:hsl(var(--surface-inverse))}.focus\:surface-primary:focus{background-color:hsl(var(--surface-primary))}.focus\:surface-raised:focus{background-color:hsl(var(--surface-raised))}.focus\:surface-secondary:focus{background-color:hsl(var(--surface-secondary))}.focus\:surface-tertiary:focus{background-color:hsl(var(--surface-tertiary))}.focus-visible\:border-accent:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--accent)/var(--tw-border-opacity,1))}.focus-visible\:border-accent-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--accent-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-action:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--border-action)/var(--tw-border-opacity,1))}.focus-visible\:border-background:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--background)/var(--tw-border-opacity,1))}.focus-visible\:border-border:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--border)/var(--tw-border-opacity,1))}.focus-visible\:border-card:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--card)/var(--tw-border-opacity,1))}.focus-visible\:border-card-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--card-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-destructive:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.focus-visible\:border-destructive-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--destructive-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-input:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--input)/var(--tw-border-opacity,1))}.focus-visible\:border-inverse:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--border-inverse)/var(--tw-border-opacity,1))}.focus-visible\:border-muted:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--muted)/var(--tw-border-opacity,1))}.focus-visible\:border-muted-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--muted-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-overlay:focus-visible{border-color:hsl(var(--overlay))}.focus-visible\:border-popover:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--popover)/var(--tw-border-opacity,1))}.focus-visible\:border-popover-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--popover-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-primary:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--border-primary)/var(--tw-border-opacity,1))}.focus-visible\:border-primary-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--primary-foreground)/var(--tw-border-opacity,1))}.focus-visible\:border-primary-hover:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--primary-hover)/var(--tw-border-opacity,1))}.focus-visible\:border-ring:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--ring)/var(--tw-border-opacity,1))}.focus-visible\:border-secondary:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--border-secondary)/var(--tw-border-opacity,1))}.focus-visible\:border-secondary-foreground:focus-visible{--tw-border-opacity:1;border-color:hsl(var(--secondary-foreground)/var(--tw-border-opacity,1))}.focus-visible\:bg-accent:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.focus-visible\:bg-accent-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--accent-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-background:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--background)/var(--tw-bg-opacity,1))}.focus-visible\:bg-border:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--border)/var(--tw-bg-opacity,1))}.focus-visible\:bg-card:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--card)/var(--tw-bg-opacity,1))}.focus-visible\:bg-card-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--card-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-destructive:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.focus-visible\:bg-destructive-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--destructive-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-input:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--input)/var(--tw-bg-opacity,1))}.focus-visible\:bg-muted:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--muted)/var(--tw-bg-opacity,1))}.focus-visible\:bg-muted-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--muted-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-overlay:focus-visible{background-color:hsl(var(--overlay))}.focus-visible\:bg-popover:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--popover)/var(--tw-bg-opacity,1))}.focus-visible\:bg-popover-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--popover-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-primary:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.focus-visible\:bg-primary-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--primary-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:bg-primary-hover:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--primary-hover)/var(--tw-bg-opacity,1))}.focus-visible\:bg-ring:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--ring)/var(--tw-bg-opacity,1))}.focus-visible\:bg-secondary:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--secondary)/var(--tw-bg-opacity,1))}.focus-visible\:bg-secondary-foreground:focus-visible{--tw-bg-opacity:1;background-color:hsl(var(--secondary-foreground)/var(--tw-bg-opacity,1))}.focus-visible\:text-accent:focus-visible{--tw-text-opacity:1;color:hsl(var(--accent)/var(--tw-text-opacity,1))}.focus-visible\:text-accent-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--accent-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-action:focus-visible{--tw-text-opacity:1;color:hsl(var(--text-action)/var(--tw-text-opacity,1))}.focus-visible\:text-background:focus-visible{--tw-text-opacity:1;color:hsl(var(--background)/var(--tw-text-opacity,1))}.focus-visible\:text-border:focus-visible{--tw-text-opacity:1;color:hsl(var(--border)/var(--tw-text-opacity,1))}.focus-visible\:text-card:focus-visible{--tw-text-opacity:1;color:hsl(var(--card)/var(--tw-text-opacity,1))}.focus-visible\:text-card-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--card-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-destructive:focus-visible{--tw-text-opacity:1;color:hsl(var(--destructive)/var(--tw-text-opacity,1))}.focus-visible\:text-destructive-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-input:focus-visible{--tw-text-opacity:1;color:hsl(var(--input)/var(--tw-text-opacity,1))}.focus-visible\:text-inverse:focus-visible{--tw-text-opacity:1;color:hsl(var(--text-inverse)/var(--tw-text-opacity,1))}.focus-visible\:text-muted:focus-visible{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.focus-visible\:text-muted-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--muted-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-overlay:focus-visible{color:hsl(var(--overlay))}.focus-visible\:text-popover:focus-visible{--tw-text-opacity:1;color:hsl(var(--popover)/var(--tw-text-opacity,1))}.focus-visible\:text-popover-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--popover-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-primary:focus-visible{--tw-text-opacity:1;color:hsl(var(--text-primary)/var(--tw-text-opacity,1))}.focus-visible\:text-primary-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.focus-visible\:text-primary-hover:focus-visible{--tw-text-opacity:1;color:hsl(var(--primary-hover)/var(--tw-text-opacity,1))}.focus-visible\:text-ring:focus-visible{--tw-text-opacity:1;color:hsl(var(--ring)/var(--tw-text-opacity,1))}.focus-visible\:text-secondary:focus-visible{--tw-text-opacity:1;color:hsl(var(--text-secondary)/var(--tw-text-opacity,1))}.focus-visible\:text-secondary-foreground:focus-visible{--tw-text-opacity:1;color:hsl(var(--secondary-foreground)/var(--tw-text-opacity,1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--focus-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--focus-width) + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--ring)/var(--tw-ring-opacity,1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:var(--focus-offset)}.focus-visible\:surface-inverse:focus-visible{background-color:hsl(var(--surface-inverse))}.focus-visible\:surface-primary:focus-visible{background-color:hsl(var(--surface-primary))}.focus-visible\:surface-raised:focus-visible{background-color:hsl(var(--surface-raised))}.focus-visible\:surface-secondary:focus-visible{background-color:hsl(var(--surface-secondary))}.focus-visible\:surface-tertiary:focus-visible{background-color:hsl(var(--surface-tertiary))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-disabled:disabled{opacity:var(--disabled-opacity)}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.destructive .group-\[\.destructive\]\:text-destructive-foreground\/80{color:hsl(var(--destructive-foreground)/.8)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{--tw-bg-opacity:1;background-color:hsl(var(--destructive)/var(--tw-bg-opacity,1))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{--tw-text-opacity:1;color:hsl(var(--destructive-foreground)/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--destructive)/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive-foreground:focus{--tw-ring-opacity:1;--tw-ring-color:hsl(var(--destructive-foreground)/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-destructive:focus{--tw-ring-offset-color:hsl(var(--destructive)/1)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-\[invalid\=true\]\:border-destructive[aria-invalid=true]{--tw-border-opacity:1;border-color:hsl(var(--destructive)/var(--tw-border-opacity,1))}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:var(--space-1,calc(var(--spacing-unit)*1))}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:var(--space-1,calc(var(--spacing-unit)*1))}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--space-1, calc(var(--spacing-unit) * 1)) * -1)}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:var(--space-0,calc(var(--spacing-unit)*0))}.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel],.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=checked\]\:bg-primary[data-state=checked],.data-\[state\=indeterminate\]\:bg-primary[data-state=indeterminate]{--tw-bg-opacity:1;background-color:hsl(var(--primary)/var(--tw-bg-opacity,1))}.data-\[state\=open\]\:bg-accent[data-state=open]{--tw-bg-opacity:1;background-color:hsl(var(--accent)/var(--tw-bg-opacity,1))}.data-\[placeholder\]\:text-muted[data-placeholder]{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.data-\[state\=active\]\:text-primary[data-state=active]{--tw-text-opacity:1;color:hsl(var(--text-primary)/var(--tw-text-opacity,1))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked],.data-\[state\=indeterminate\]\:text-primary-foreground[data-state=indeterminate]{--tw-text-opacity:1;color:hsl(var(--primary-foreground)/var(--tw-text-opacity,1))}.data-\[state\=open\]\:text-muted[data-state=open]{--tw-text-opacity:1;color:hsl(var(--text-muted)/var(--tw-text-opacity,1))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:var(--shadow);--tw-shadow-colored:var(--shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:var(--duration);--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:var(--duration);--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-var(--space-2,calc(var(--spacing-unit)*2))}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:var(--space-2,calc(var(--spacing-unit)*2))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-var(--space-2,calc(var(--spacing-unit)*2))}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:var(--space-2,calc(var(--spacing-unit)*2))}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=active\]\:surface-primary[data-state=active]{background-color:hsl(var(--surface-primary))}@media (min-width:640px){.sm\:bottom-0{bottom:var(--space-0,calc(var(--spacing-unit)*0))}.sm\:right-0{right:var(--space-0,calc(var(--spacing-unit)*0))}.sm\:top-auto{top:auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * var(--tw-space-x-reverse));margin-left:calc(var(--space-2, calc(var(--spacing-unit) * 2)) * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:max-w-\[var\(--toast-width\)\]{max-width:var(--toast-width)}.md\:text-sm{font-size:var(--font-size-sm);line-height:var(--line-height)}}.\[\&\+div\]\:text-xs+div{font-size:var(--font-size-xs);line-height:var(--line-height)}.active\:\[\&\:not\(\[aria-haspopup\]\)\]\:translate-y-px:not([aria-haspopup]):active{--tw-translate-y:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-reduced-motion:reduce){.motion-reduce\:active\:\[\&\:not\(\[aria-haspopup\]\)\]\:transform-none:not([aria-haspopup]):active{transform:none}}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:var(--space-4,calc(var(--spacing-unit)*4));height:var(--space-4,calc(var(--spacing-unit)*4))}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}
package/dist/tokens.css CHANGED
@@ -1,28 +1,22 @@
1
- /* Colors are space-separated HSL channels. All other tokens use CSS values.
2
- Low-specificity defaults let consumer :root rules win in either import order. */
3
- :where(:root) {
4
- color-scheme: light;
5
- --background: 0 0% 100%;
6
- --foreground: 222 47% 11%;
7
- --card: 0 0% 100%;
8
- --card-foreground: 222 47% 11%;
9
- --popover: 0 0% 100%;
10
- --popover-foreground: 222 47% 11%;
11
- --accent: 220 20% 94%;
12
- --accent-foreground: 222 35% 20%;
13
- --primary: 220 80% 45%;
14
- --primary-foreground: 0 0% 100%;
15
- --primary-hover: 220 80% 38%;
16
- --secondary: 220 20% 94%;
17
- --secondary-foreground: 222 35% 20%;
18
- --muted: 220 15% 96%;
19
- --muted-foreground: 220 10% 42%;
20
- --border: 220 15% 82%;
21
- --input: 220 15% 82%;
22
- --ring: 220 80% 45%;
23
- --destructive: 0 72% 43%;
24
- --destructive-foreground: 0 0% 100%;
25
- --overlay: 222 47% 11% / 0.4;
1
+ /* Consumers customize only the generic --base-* colors. All color values are
2
+ space-separated HSL channels. Role assignments are owned by Greda. */
3
+ :where(:root, [data-color-scheme="light"]) {
4
+ --base-white: 0 0% 100%;
5
+ --base-black: 222 47% 11%;
6
+ --base-gray-50: 220 15% 96%;
7
+ --base-gray-100: 220 20% 94%;
8
+ --base-gray-200: 220 15% 82%;
9
+ --base-gray-300: 220 15% 72%;
10
+ --base-gray-500: 220 10% 42%;
11
+ --base-gray-600: 220 15% 36%;
12
+ --base-gray-800: 222 20% 18%;
13
+ --base-gray-900: 222 30% 9%;
14
+ --base-primary: 220 80% 45%;
15
+ --base-primary-hover: 220 80% 38%;
16
+ --base-secondary: 220 20% 94%;
17
+ --base-tertiary: 214 100% 96.863%;
18
+ --base-accent: 220 20% 94%;
19
+ --base-destructive: 0 72% 43%;
26
20
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
27
21
  sans-serif;
28
22
  --font-heading: var(--font-sans);
@@ -61,9 +55,6 @@
61
55
  --dialog-width: 32.5rem;
62
56
  --tooltip-width: 20rem;
63
57
  --toast-width: 24rem;
64
- --shadow-sm: 0 1px 2px hsl(222 47% 11% / 0.08);
65
- --shadow: 0 8px 24px hsl(222 47% 11% / 0.12);
66
- --shadow-dialog: 0 24px 70px hsl(222 47% 11% / 0.24);
67
58
  --focus-width: 2px;
68
59
  --focus-offset: 2px;
69
60
  --disabled-opacity: 0.5;
@@ -72,33 +63,76 @@
72
63
  --z-popover: 60;
73
64
  --z-toast: 70;
74
65
  }
75
- :where([data-color-scheme="light"]) {
66
+
67
+ /* Rebind roles at theme boundaries so scoped base overrides update every role.
68
+ Low specificity lets consumers supply base colors in either import order. */
69
+ :where(:root, [data-theme], [data-color-scheme]) {
76
70
  color-scheme: light;
71
+ --surface-primary: var(--base-white);
72
+ --surface-secondary: var(--base-gray-100);
73
+ --surface-tertiary: var(--base-tertiary);
74
+ --surface-raised: var(--base-gray-50);
75
+ --surface-inverse: var(--base-black);
76
+ --text-primary: var(--base-black);
77
+ --text-secondary: var(--base-gray-600);
78
+ --text-muted: var(--base-gray-500);
79
+ --text-inverse: var(--base-white);
80
+ --text-action: var(--base-primary);
81
+ --border-primary: var(--base-gray-200);
82
+ --border-secondary: var(--base-gray-100);
83
+ --border-inverse: var(--base-gray-600);
84
+ --border-action: var(--base-primary);
85
+
86
+ /* Existing component tokens derive from the same generic base palette. */
87
+ --background: var(--surface-primary);
88
+ --foreground: var(--text-primary);
89
+ --card: var(--surface-raised);
90
+ --card-foreground: var(--text-primary);
91
+ --popover: var(--surface-raised);
92
+ --popover-foreground: var(--text-primary);
93
+ --accent: var(--base-accent);
94
+ --accent-foreground: var(--text-primary);
95
+ --primary: var(--base-primary);
96
+ --primary-foreground: var(--base-white);
97
+ --primary-hover: var(--base-primary-hover);
98
+ --secondary: var(--base-secondary);
99
+ --secondary-foreground: var(--text-primary);
100
+ --muted: var(--surface-secondary);
101
+ --muted-foreground: var(--text-muted);
102
+ --border: var(--border-primary);
103
+ --input: var(--border-primary);
104
+ --ring: var(--base-primary);
105
+ --destructive: var(--base-destructive);
106
+ --destructive-foreground: var(--base-white);
107
+ --overlay: var(--base-black) / 0.4;
108
+ --shadow-sm: 0 1px 2px hsl(var(--base-black) / 0.08);
109
+ --shadow: 0 8px 24px hsl(var(--base-black) / 0.12);
110
+ --shadow-dialog: 0 24px 70px hsl(var(--base-black) / 0.24);
77
111
  }
112
+
78
113
  /* Opt in independently of the consumer's brand theme. */
79
114
  :where([data-color-scheme="dark"]) {
80
115
  color-scheme: dark;
81
- --background: 222 30% 9%;
82
- --foreground: 220 20% 96%;
83
- --card: 222 25% 13%;
84
- --card-foreground: 220 20% 96%;
85
- --popover: 222 25% 13%;
86
- --popover-foreground: 220 20% 96%;
87
- --accent: 222 20% 22%;
88
- --accent-foreground: 220 20% 96%;
89
- --primary: 217 90% 70%;
90
- --primary-foreground: 222 47% 11%;
91
- --primary-hover: 217 90% 78%;
92
- --secondary: 222 20% 22%;
93
- --secondary-foreground: 220 20% 96%;
94
- --muted: 222 20% 18%;
95
- --muted-foreground: 220 15% 72%;
96
- --border: 220 15% 36%;
97
- --input: 220 15% 36%;
98
- --ring: 217 90% 70%;
99
- --destructive: 0 80% 72%;
100
- --destructive-foreground: 222 47% 11%;
101
- --overlay: 222 47% 3% / 0.7;
116
+ --base-primary: 217 90% 70%;
117
+ --base-primary-hover: 217 90% 78%;
118
+ --base-secondary: 222 20% 22%;
119
+ --base-tertiary: 218 40% 18%;
120
+ --base-accent: 222 20% 22%;
121
+ --base-destructive: 0 80% 72%;
122
+ --surface-primary: var(--base-gray-900);
123
+ --surface-secondary: var(--base-gray-800);
124
+ --surface-raised: var(--base-gray-800);
125
+ --surface-inverse: var(--base-white);
126
+ --text-primary: var(--base-white);
127
+ --text-secondary: var(--base-gray-300);
128
+ --text-muted: var(--base-gray-300);
129
+ --text-inverse: var(--base-black);
130
+ --border-primary: var(--base-gray-600);
131
+ --border-secondary: var(--base-gray-800);
132
+ --border-inverse: var(--base-gray-200);
133
+ --primary-foreground: var(--base-black);
134
+ --destructive-foreground: var(--base-black);
135
+ --overlay: var(--base-black) / 0.7;
102
136
  }
103
137
 
104
138
 
@@ -113,12 +147,18 @@
113
147
  --color-popover-foreground: hsl(var(--popover-foreground));
114
148
  --color-accent: hsl(var(--accent));
115
149
  --color-accent-foreground: hsl(var(--accent-foreground));
116
- --color-primary: hsl(var(--primary));
150
+ --greda-bg-primary: var(--primary);
151
+ --greda-text-primary: var(--text-primary);
152
+ --greda-border-primary: var(--border-primary);
117
153
  --color-primary-foreground: hsl(var(--primary-foreground));
118
154
  --color-primary-hover: hsl(var(--primary-hover));
119
- --color-secondary: hsl(var(--secondary));
155
+ --greda-bg-secondary: var(--secondary);
156
+ --greda-text-secondary: var(--text-secondary);
157
+ --greda-border-secondary: var(--border-secondary);
120
158
  --color-secondary-foreground: hsl(var(--secondary-foreground));
121
- --color-muted: hsl(var(--muted));
159
+ --greda-bg-muted: var(--muted);
160
+ --greda-text-muted: var(--text-muted);
161
+ --greda-border-muted: var(--muted);
122
162
  --color-muted-foreground: hsl(var(--muted-foreground));
123
163
  --color-border: hsl(var(--border));
124
164
  --color-input: hsl(var(--input));
@@ -126,6 +166,15 @@
126
166
  --color-destructive: hsl(var(--destructive));
127
167
  --color-destructive-foreground: hsl(var(--destructive-foreground));
128
168
  --color-overlay: hsl(var(--overlay));
169
+ --greda-surface-primary: var(--surface-primary);
170
+ --greda-surface-secondary: var(--surface-secondary);
171
+ --greda-surface-tertiary: var(--surface-tertiary);
172
+ --greda-surface-raised: var(--surface-raised);
173
+ --greda-surface-inverse: var(--surface-inverse);
174
+ --greda-text-inverse: var(--text-inverse);
175
+ --greda-text-action: var(--text-action);
176
+ --greda-border-inverse: var(--border-inverse);
177
+ --greda-border-action: var(--border-action);
129
178
  --spacing: var(--spacing-unit);
130
179
  --spacing-0: var(--space-0);
131
180
  --spacing-0\.5: var(--space-0-5);
@@ -178,6 +227,30 @@
178
227
 
179
228
  @custom-variant dark (&:where([data-color-scheme="dark"], [data-color-scheme="dark"] *));
180
229
 
230
+ @utility bg-* {
231
+ background-color: hsl(--value(--greda-bg-*));
232
+ background-color: hsl(--value(--greda-bg-*) / calc(--modifier(integer) * 1%));
233
+ background-color: hsl(--value(--greda-bg-*) / --modifier([number], [percentage]));
234
+ }
235
+
236
+ @utility surface-* {
237
+ background-color: hsl(--value(--greda-surface-*));
238
+ background-color: hsl(--value(--greda-surface-*) / calc(--modifier(integer) * 1%));
239
+ background-color: hsl(--value(--greda-surface-*) / --modifier([number], [percentage]));
240
+ }
241
+
242
+ @utility text-* {
243
+ color: hsl(--value(--greda-text-*));
244
+ color: hsl(--value(--greda-text-*) / calc(--modifier(integer) * 1%));
245
+ color: hsl(--value(--greda-text-*) / --modifier([number], [percentage]));
246
+ }
247
+
248
+ @utility border-* {
249
+ border-color: hsl(--value(--greda-border-*));
250
+ border-color: hsl(--value(--greda-border-*) / calc(--modifier(integer) * 1%));
251
+ border-color: hsl(--value(--greda-border-*) / --modifier([number], [percentage]));
252
+ }
253
+
181
254
  @utility z-overlay {
182
255
  z-index: var(--z-overlay);
183
256
  }