@clusterenvision/ui-scss 1.94.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/dist/ce-ui-min.css +2951 -0
  4. package/dist/ce-ui-min.css.map +1 -0
  5. package/dist/ce-ui.css +4894 -0
  6. package/dist/ce-ui.css.map +1 -0
  7. package/dist/components/advanced/calendar.css +37 -0
  8. package/dist/components/advanced/carousel.css +59 -0
  9. package/dist/components/advanced/chat.css +29 -0
  10. package/dist/components/advanced/code-block.css +16 -0
  11. package/dist/components/advanced/editor.css +122 -0
  12. package/dist/components/advanced/rating.css +19 -0
  13. package/dist/components/advanced/steps.css +46 -0
  14. package/dist/components/advanced/timeline.css +32 -0
  15. package/dist/components/buttons/button-group.css +28 -0
  16. package/dist/components/buttons/button.css +305 -0
  17. package/dist/components/buttons/icon-button.css +32 -0
  18. package/dist/components/charts/chart-types.css +36 -0
  19. package/dist/components/containers/accordion.css +65 -0
  20. package/dist/components/containers/card.css +60 -0
  21. package/dist/components/containers/drawer.css +33 -0
  22. package/dist/components/containers/modal.css +61 -0
  23. package/dist/components/containers/panel.css +27 -0
  24. package/dist/components/containers/toast.css +38 -0
  25. package/dist/components/content/avatar.css +54 -0
  26. package/dist/components/content/badge.css +44 -0
  27. package/dist/components/content/chip.css +234 -0
  28. package/dist/components/content/divider.css +27 -0
  29. package/dist/components/content/image.css +23 -0
  30. package/dist/components/feedback/alert.css +50 -0
  31. package/dist/components/feedback/message.css +18 -0
  32. package/dist/components/feedback/progress-bar.css +22 -0
  33. package/dist/components/feedback/skeleton.css +35 -0
  34. package/dist/components/feedback/snackbar.css +30 -0
  35. package/dist/components/form-controls/checkbox.css +183 -0
  36. package/dist/components/form-controls/date-picker.css +26 -0
  37. package/dist/components/form-controls/file-upload.css +48 -0
  38. package/dist/components/form-controls/form-group.css +19 -0
  39. package/dist/components/form-controls/input.css +96 -0
  40. package/dist/components/form-controls/radio.css +20 -0
  41. package/dist/components/form-controls/range.css +42 -0
  42. package/dist/components/form-controls/select.css +243 -0
  43. package/dist/components/form-controls/textarea.css +28 -0
  44. package/dist/components/form-controls/toggle.css +38 -0
  45. package/dist/components/navigation/breadcrumbs.css +33 -0
  46. package/dist/components/navigation/menu.css +43 -0
  47. package/dist/components/navigation/navbar.css +64 -0
  48. package/dist/components/navigation/pagination.css +45 -0
  49. package/dist/components/navigation/sidebar.css +35 -0
  50. package/dist/components/navigation/tabs.css +25 -0
  51. package/dist/components/overlays/backdrop.css +6 -0
  52. package/dist/components/overlays/dropdown.css +77 -0
  53. package/dist/components/overlays/loader.css +28 -0
  54. package/dist/components/overlays/popover.css +54 -0
  55. package/dist/components/overlays/tooltip.css +37 -0
  56. package/dist/components/specialty/ce-atm-card.css +204 -0
  57. package/dist/components/tables-lists/data-table.css +48 -0
  58. package/dist/components/tables-lists/list.css +22 -0
  59. package/dist/components/tables-lists/table.css +40 -0
  60. package/dist/components/tables-lists/tree-view.css +37 -0
  61. package/dist/themes/core/package.json +12 -0
  62. package/dist/themes/core/tokens.css +120 -0
  63. package/dist/themes/core/tokens.d.ts +69 -0
  64. package/dist/themes/core/tokens.json +136 -0
  65. package/dist/themes/premium/package.json +12 -0
  66. package/dist/themes/premium/tokens.css +120 -0
  67. package/dist/themes/premium/tokens.d.ts +69 -0
  68. package/dist/themes/premium/tokens.json +136 -0
  69. package/dist/tokens/tokens.css +120 -0
  70. package/dist/tokens/tokens.d.ts +69 -0
  71. package/dist/tokens/tokens.json +133 -0
  72. package/package.json +61 -0
  73. package/src/abstracts/_functions.scss +34 -0
  74. package/src/abstracts/_mixins.scss +162 -0
  75. package/src/abstracts/_placeholders.scss +18 -0
  76. package/src/abstracts/_variables.scss +413 -0
  77. package/src/abstracts/_z-index.scss +9 -0
  78. package/src/accessibility/_focus-ring.scss +11 -0
  79. package/src/accessibility/_theme-switcher.scss +41 -0
  80. package/src/base/_animations.scss +32 -0
  81. package/src/base/_forms.scss +62 -0
  82. package/src/base/_reset.scss +102 -0
  83. package/src/base/_theme-base.scss +162 -0
  84. package/src/base/_typography.scss +38 -0
  85. package/src/components/advanced/_calendar.scss +47 -0
  86. package/src/components/advanced/_carousel.scss +87 -0
  87. package/src/components/advanced/_chat.scss +37 -0
  88. package/src/components/advanced/_code-block.scss +22 -0
  89. package/src/components/advanced/_editor.scss +156 -0
  90. package/src/components/advanced/_modal.scss +96 -0
  91. package/src/components/advanced/_notification-center.scss +172 -0
  92. package/src/components/advanced/_popover.scss +68 -0
  93. package/src/components/advanced/_rating.scss +22 -0
  94. package/src/components/advanced/_stepper.scss +135 -0
  95. package/src/components/advanced/_steps.scss +57 -0
  96. package/src/components/advanced/_timeline.scss +47 -0
  97. package/src/components/advanced/_wizard.scss +132 -0
  98. package/src/components/buttons/_button-group.scss +40 -0
  99. package/src/components/buttons/_button.scss +296 -0
  100. package/src/components/buttons/_icon-button.scss +42 -0
  101. package/src/components/charts/_chart-types.scss +74 -0
  102. package/src/components/containers/_accordion.scss +65 -0
  103. package/src/components/containers/_card.scss +65 -0
  104. package/src/components/containers/_drawer.scss +48 -0
  105. package/src/components/containers/_modal.scss +78 -0
  106. package/src/components/containers/_panel.scss +37 -0
  107. package/src/components/containers/_toast.scss +40 -0
  108. package/src/components/content/_avatar.scss +56 -0
  109. package/src/components/content/_badge.scss +42 -0
  110. package/src/components/content/_calendar.scss +147 -0
  111. package/src/components/content/_carousel.scss +112 -0
  112. package/src/components/content/_chip.scss +246 -0
  113. package/src/components/content/_divider.scss +49 -0
  114. package/src/components/content/_image.scss +32 -0
  115. package/src/components/content/_rating.scss +60 -0
  116. package/src/components/content/_rich-text-editor.scss +153 -0
  117. package/src/components/content/_timeline-advanced.scss +138 -0
  118. package/src/components/content/_timeline.scss +86 -0
  119. package/src/components/feedback/_advanced-notification.scss +156 -0
  120. package/src/components/feedback/_alert.scss +86 -0
  121. package/src/components/feedback/_message.scss +26 -0
  122. package/src/components/feedback/_notification-center.scss +118 -0
  123. package/src/components/feedback/_progress-bar.scss +48 -0
  124. package/src/components/feedback/_skeleton.scss +47 -0
  125. package/src/components/feedback/_snackbar.scss +38 -0
  126. package/src/components/feedback/_spinner.scss +211 -0
  127. package/src/components/feedback/_toast-queue.scss +164 -0
  128. package/src/components/form-controls/_autocomplete.scss +80 -0
  129. package/src/components/form-controls/_checkbox.scss +202 -0
  130. package/src/components/form-controls/_date-picker.scss +50 -0
  131. package/src/components/form-controls/_file-upload.scss +61 -0
  132. package/src/components/form-controls/_form-group.scss +26 -0
  133. package/src/components/form-controls/_input.scss +139 -0
  134. package/src/components/form-controls/_multi-select.scss +175 -0
  135. package/src/components/form-controls/_radio.scss +27 -0
  136. package/src/components/form-controls/_range.scss +54 -0
  137. package/src/components/form-controls/_select.scss +242 -0
  138. package/src/components/form-controls/_textarea.scss +45 -0
  139. package/src/components/form-controls/_toggle.scss +47 -0
  140. package/src/components/navigation/_breadcrumbs.scss +41 -0
  141. package/src/components/navigation/_menu.scss +75 -0
  142. package/src/components/navigation/_navbar.scss +79 -0
  143. package/src/components/navigation/_pagination.scss +85 -0
  144. package/src/components/navigation/_sidebar.scss +44 -0
  145. package/src/components/navigation/_stepper.scss +115 -0
  146. package/src/components/navigation/_tabs.scss +50 -0
  147. package/src/components/navigation/_tree-view.scss +95 -0
  148. package/src/components/navigation/_wizard.scss +132 -0
  149. package/src/components/overlays/_backdrop.scss +10 -0
  150. package/src/components/overlays/_dropdown.scss +110 -0
  151. package/src/components/overlays/_loader.scss +32 -0
  152. package/src/components/overlays/_popover.scss +64 -0
  153. package/src/components/overlays/_tooltip.scss +64 -0
  154. package/src/components/specialty/_ce-atm-card.scss +255 -0
  155. package/src/components/tables/_data-grid.scss +92 -0
  156. package/src/components/tables/_filter-grid.scss +29 -0
  157. package/src/components/tables-lists/_data-table.scss +63 -0
  158. package/src/components/tables-lists/_list.scss +30 -0
  159. package/src/components/tables-lists/_table.scss +79 -0
  160. package/src/components/tables-lists/_tree-view.scss +47 -0
  161. package/src/layout/_container.scss +20 -0
  162. package/src/layout/_footer.scss +41 -0
  163. package/src/layout/_grid.scss +23 -0
  164. package/src/layout/_header.scss +41 -0
  165. package/src/layout/_section.scss +26 -0
  166. package/src/layout/_sidebar.scss +39 -0
  167. package/src/layout/_stack.scss +23 -0
  168. package/src/main.css +3250 -0
  169. package/src/main.css.map +1 -0
  170. package/src/main.scss +158 -0
  171. package/src/minimal.scss +62 -0
  172. package/src/themes/_cool-slate.scss +11 -0
  173. package/src/themes/_dark.scss +11 -0
  174. package/src/themes/_default.scss +12 -0
  175. package/src/themes/_forest.scss +11 -0
  176. package/src/themes/_glassy-aero-windows.scss +9 -0
  177. package/src/themes/_glassy-amber.scss +21 -0
  178. package/src/themes/_glassy-aurora-sky.scss +9 -0
  179. package/src/themes/_glassy-blue.scss +10 -0
  180. package/src/themes/_glassy-cyan.scss +9 -0
  181. package/src/themes/_glassy-emerald-mist.scss +9 -0
  182. package/src/themes/_glassy-frosted-silver.scss +9 -0
  183. package/src/themes/_glassy-glass-white.scss +9 -0
  184. package/src/themes/_glassy-gold.scss +9 -0
  185. package/src/themes/_glassy-green.scss +10 -0
  186. package/src/themes/_glassy-ice-black.scss +13 -0
  187. package/src/themes/_glassy-mac-dark.scss +13 -0
  188. package/src/themes/_glassy-midnight-blue.scss +12 -0
  189. package/src/themes/_glassy-neon-cyber.scss +9 -0
  190. package/src/themes/_glassy-orange.scss +10 -0
  191. package/src/themes/_glassy-pink.scss +9 -0
  192. package/src/themes/_glassy-purple.scss +10 -0
  193. package/src/themes/_glassy-rose-gold.scss +9 -0
  194. package/src/themes/_glassy-sakura-glass.scss +9 -0
  195. package/src/themes/_glassy-silver.scss +9 -0
  196. package/src/themes/_glassy-teal.scss +9 -0
  197. package/src/themes/_high-contrast.scss +11 -0
  198. package/src/themes/_light.scss +10 -0
  199. package/src/themes/_mac.scss +10 -0
  200. package/src/themes/_minimal-mono.scss +11 -0
  201. package/src/themes/_mintwave.scss +9 -0
  202. package/src/themes/_neutral-light.scss +11 -0
  203. package/src/themes/_nordwave.scss +9 -0
  204. package/src/themes/_ocean.scss +9 -0
  205. package/src/themes/_orange.scss +9 -0
  206. package/src/themes/_purple.scss +9 -0
  207. package/src/themes/_red.scss +9 -0
  208. package/src/themes/_skyfade.scss +9 -0
  209. package/src/themes/_soft-pastel.scss +11 -0
  210. package/src/themes/_solarized.scss +9 -0
  211. package/src/themes/_standard-dark.scss +8 -0
  212. package/src/themes/_standard-default.scss +9 -0
  213. package/src/themes/_transparent.scss +9 -0
  214. package/src/themes/_true-dark.scss +11 -0
  215. package/src/themes/_warm-neutral.scss +11 -0
  216. package/src/themes.zip +0 -0
  217. package/src/tokens/tokens.json +133 -0
  218. package/src/utilities/_display.scss +11 -0
  219. package/src/utilities/_flex.scss +9 -0
  220. package/src/utilities/_position.scss +6 -0
  221. package/src/utilities/_screen-reader.scss +9 -0
  222. package/src/utilities/_spacing.scss +22 -0
  223. package/src/utilities/_text.scss +14 -0
  224. package/src/utilities/_visibility.scss +4 -0
package/dist/ce-ui.css ADDED
@@ -0,0 +1,4894 @@
1
+ @charset "UTF-8";
2
+ input,
3
+ textarea,
4
+ select {
5
+ transition: all 0.3s ease-in-out;
6
+ }
7
+
8
+ :root {
9
+ --ce-color-background: var(--theme-bg, #ffffff);
10
+ --ce-color-surface: var(--theme-surface, var(--theme-bg, #ffffff));
11
+ --ce-color-text: var(--theme-fg, #202124);
12
+ --ce-color-text-muted: var(--theme-muted, #6c757d);
13
+ --ce-color-primary: var(--theme-primary, #1a73e8);
14
+ --ce-color-accent: var(--theme-accent, var(--ce-color-primary));
15
+ --ce-color-border: var(--theme-border, #e5e7eb);
16
+ --ce-color-focus-ring: var(--theme-accent, var(--ce-color-primary));
17
+ --ce-font-family: var(--theme-font, 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif);
18
+ --ce-font-size-base: var(--font-size-base, 15px);
19
+ --ce-font-size-sm: var(--font-size-sm, 0.875rem);
20
+ --ce-font-size-md: var(--font-size-md, 1rem);
21
+ --ce-font-size-lg: var(--font-size-lg, 1.125rem);
22
+ --ce-font-weight-regular: var(--font-weight-regular, 400);
23
+ --ce-font-weight-medium: var(--font-weight-medium, 500);
24
+ --ce-font-weight-semibold: var(--font-weight-semibold, 600);
25
+ --ce-direction: ltr;
26
+ --ce-inline-start: left;
27
+ --ce-inline-end: right;
28
+ --ce-text-align-start: left;
29
+ --ce-text-align-end: right;
30
+ --theme-surface: var(--theme-bg, #ffffff);
31
+ --text-primary: var(--ce-color-text, var(--theme-fg, #202124));
32
+ --text-muted: var(--ce-color-text-muted, var(--theme-muted, #6c757d));
33
+ --font-size-base: var(--ce-font-size-base, 15px);
34
+ --font-size-sm: var(--ce-font-size-sm, 0.875rem);
35
+ --font-size-md: var(--ce-font-size-md, 1rem);
36
+ --font-size-lg: var(--ce-font-size-lg, 1.125rem);
37
+ --font-weight-regular: var(--ce-font-weight-regular, 400);
38
+ --font-weight-medium: var(--ce-font-weight-medium, 500);
39
+ --font-weight-semibold: var(--ce-font-weight-semibold, 600);
40
+ --icon-filter: brightness(0) saturate(100%);
41
+ --ce-motion-duration-xxs: 80ms;
42
+ --ce-motion-duration-xs: 120ms;
43
+ --ce-motion-duration-sm: 180ms;
44
+ --ce-motion-duration-md: 240ms;
45
+ --ce-motion-duration-lg: 320ms;
46
+ --ce-motion-duration-xl: 420ms;
47
+ --ce-motion-ease-linear: linear;
48
+ --ce-motion-ease-standard: cubic-bezier(0.2, 0, 0, 1);
49
+ --ce-motion-ease-emphasized: cubic-bezier(0.2, 0, 0, 1.2);
50
+ --ce-motion-ease-in: cubic-bezier(0.4, 0, 1, 1);
51
+ --ce-motion-ease-out: cubic-bezier(0, 0, 0.2, 1);
52
+ }
53
+
54
+ [dir=rtl],
55
+ [data-ce-dir=rtl] {
56
+ --ce-direction: rtl;
57
+ --ce-inline-start: right;
58
+ --ce-inline-end: left;
59
+ --ce-text-align-start: right;
60
+ --ce-text-align-end: left;
61
+ }
62
+
63
+ body {
64
+ font-family: var(--ce-font-family, var(--theme-font, "Segoe UI", Tahoma, Geneva, Verdana, sans-serif));
65
+ background-color: var(--ce-color-background, var(--theme-bg, #ffffff));
66
+ color: var(--text-primary);
67
+ font-size: var(--font-size-base);
68
+ line-height: 1.5;
69
+ transition: background-color var(--ce-motion-duration-md) var(--ce-motion-ease-standard), color var(--ce-motion-duration-md) var(--ce-motion-ease-standard);
70
+ }
71
+
72
+ button,
73
+ input,
74
+ textarea,
75
+ select {
76
+ font-family: var(--ce-font-family, var(--theme-font, "Segoe UI", Tahoma, Geneva, Verdana, sans-serif));
77
+ color: var(--text-primary);
78
+ transition: background-color var(--ce-motion-duration-md) var(--ce-motion-ease-standard), color var(--ce-motion-duration-md) var(--ce-motion-ease-standard);
79
+ }
80
+
81
+ a {
82
+ color: var(--ce-color-accent, var(--theme-accent, var(--theme-primary)));
83
+ text-decoration: none;
84
+ transition: color var(--ce-motion-duration-md) var(--ce-motion-ease-standard);
85
+ }
86
+ a:hover, a:focus {
87
+ color: var(--ce-color-primary, var(--theme-primary));
88
+ text-decoration: underline;
89
+ }
90
+
91
+ .container {
92
+ display: grid;
93
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
94
+ gap: var(--ce-spacing-xl, 2rem);
95
+ max-width: 1200px;
96
+ margin: 0 auto;
97
+ padding: var(--ce-spacing-xl, 2rem);
98
+ }
99
+
100
+ button {
101
+ border: none;
102
+ padding: var(--ce-button-padding, var(--ce-spacing-sm, 0.5rem) var(--ce-spacing-md, 1rem));
103
+ border-radius: var(--theme-radius, 6px);
104
+ cursor: pointer;
105
+ font-weight: 400;
106
+ transition: background-color var(--ce-motion-duration-md) var(--ce-motion-ease-standard), color var(--ce-motion-duration-md) var(--ce-motion-ease-standard);
107
+ background-color: var(--ce-color-accent, var(--theme-accent));
108
+ color: var(--ce-color-text, var(--theme-fg));
109
+ }
110
+ button:hover {
111
+ background-color: var(--ce-color-accent, var(--theme-accent));
112
+ }
113
+
114
+ input,
115
+ textarea,
116
+ select {
117
+ border: 1px solid var(--ce-color-border, var(--theme-muted, #ccc));
118
+ padding: var(--ce-spacing-sm, 0.5rem);
119
+ border-radius: var(--theme-radius, 6px);
120
+ transition: all var(--ce-motion-duration-md) var(--ce-motion-ease-standard);
121
+ }
122
+
123
+ input:focus,
124
+ textarea:focus,
125
+ select:focus {
126
+ border-color: var(--ce-color-accent, var(--theme-accent));
127
+ outline: none;
128
+ }
129
+
130
+ h1, h2, h3, h4, h5, h6 {
131
+ margin-top: 0;
132
+ margin-bottom: 0.5rem;
133
+ line-height: 1.2;
134
+ color: var(--text-primary);
135
+ }
136
+
137
+ .text-muted {
138
+ color: var(--text-muted);
139
+ }
140
+
141
+ .text-accent {
142
+ color: var(--ce-color-accent, var(--theme-accent));
143
+ }
144
+
145
+ .bg-primary {
146
+ background-color: var(--ce-color-primary, var(--theme-primary));
147
+ color: var(--ce-color-text, var(--theme-fg));
148
+ }
149
+
150
+ .border {
151
+ border: 1px solid var(--ce-color-border, var(--theme-muted, #ccc));
152
+ border-radius: var(--theme-radius, 6px);
153
+ }
154
+
155
+ body::after {
156
+ display: none;
157
+ }
158
+
159
+ :root.theme-default, :root[data-ce-theme=default], .theme-default {
160
+ --theme-bg: #f8fafc;
161
+ --theme-surface: #ffffff;
162
+ --theme-fg: #0f172a;
163
+ --theme-muted: #6b7280;
164
+ --theme-primary: #2563eb;
165
+ --theme-accent: #2563eb;
166
+ --theme-font: 'Inter', system-ui, sans-serif;
167
+ }
168
+
169
+ .theme-dark, :root[data-ce-theme=dark], :root.theme-dark {
170
+ --theme-bg: #202124;
171
+ --theme-surface: #111827;
172
+ --theme-fg: #ffffff;
173
+ --theme-accent: #1a73e8;
174
+ --theme-muted: #f8f9fa;
175
+ --theme-primary: #1a73e8;
176
+ }
177
+
178
+ .theme-light, :root[data-ce-theme=light], :root.theme-light {
179
+ --theme-bg: #f8f9fa;
180
+ --theme-fg: #202124;
181
+ --theme-accent: #1a73e8;
182
+ --theme-muted: #9e9e9e;
183
+ --theme-primary: #1a73e8;
184
+ }
185
+
186
+ .theme-solarized, :root[data-ce-theme=solarized], :root.theme-solarized {
187
+ --theme-bg: #fdf6e3;
188
+ --theme-fg: #657b83;
189
+ --theme-accent: #268bd2;
190
+ --theme-muted: #93a1a1;
191
+ --theme-primary: #268bd2;
192
+ }
193
+
194
+ .theme-ocean, :root[data-ce-theme=ocean], :root.theme-ocean {
195
+ --theme-bg: #e0f7fa;
196
+ --theme-fg: #006064;
197
+ --theme-accent: #00bcd4;
198
+ --theme-muted: #4dd0e1;
199
+ --theme-primary: #00bcd4;
200
+ }
201
+
202
+ .theme-forest, :root[data-ce-theme=forest], :root.theme-forest {
203
+ --theme-bg: #e8f5e9;
204
+ --theme-fg: #1b5e20;
205
+ --theme-accent: #4caf50;
206
+ --theme-muted: #81c784;
207
+ --theme-primary: #4caf50;
208
+ }
209
+
210
+ .theme-red, :root[data-ce-theme=red], :root.theme-red {
211
+ --theme-bg: #ffebee;
212
+ --theme-fg: #b71c1c;
213
+ --theme-accent: #ea4335;
214
+ --theme-muted: #e57373;
215
+ --theme-primary: #ea4335;
216
+ }
217
+
218
+ .theme-purple, :root[data-ce-theme=purple], :root.theme-purple {
219
+ --theme-bg: #f3e5f5;
220
+ --theme-fg: #4a148c;
221
+ --theme-accent: #9c27b0;
222
+ --theme-muted: #ba68c8;
223
+ --theme-primary: #9c27b0;
224
+ }
225
+
226
+ :root.theme-high-contrast, :root[data-ce-theme=high-contrast], .theme-high-contrast {
227
+ --theme-bg: #000000;
228
+ --theme-surface: #0f1115;
229
+ --theme-fg: #ffffff;
230
+ --theme-muted: #cbd5e1;
231
+ --theme-primary: #1d4ed8;
232
+ --theme-accent: #1d4ed8;
233
+ --theme-font: 'Inter', system-ui, sans-serif;
234
+ }
235
+
236
+ .theme-transparent, :root[data-ce-theme=transparent], :root.theme-transparent {
237
+ --theme-bg: transparent;
238
+ --theme-fg: #202124;
239
+ --theme-accent: #1a73e8;
240
+ --theme-muted: rgba(0, 0, 0, 0.4);
241
+ --theme-primary: #1a73e8;
242
+ }
243
+
244
+ .theme-mac, :root[data-ce-theme=mac], :root.theme-mac {
245
+ --theme-bg: #f5f5f7;
246
+ --theme-surface: #ffffff;
247
+ --theme-fg: #1d1d1f;
248
+ --theme-accent: #007aff;
249
+ --theme-muted: #8e8e93;
250
+ --theme-primary: #007aff;
251
+ }
252
+
253
+ .theme-orange, :root[data-ce-theme=orange], :root.theme-orange {
254
+ --theme-bg: #fff3e0;
255
+ --theme-fg: #e65100;
256
+ --theme-accent: #ff9800;
257
+ --theme-muted: #ffb74d;
258
+ --theme-primary: #00bcd4;
259
+ }
260
+
261
+ .theme-mintwave, :root[data-ce-theme=mintwave], :root.theme-mintwave {
262
+ --theme-bg: #e6f9f6;
263
+ --theme-fg: #003c3c;
264
+ --theme-accent: #00bfa5;
265
+ --theme-muted: #a7d8cc;
266
+ --theme-primary: #00bfa5;
267
+ }
268
+
269
+ .theme-skyfade, :root[data-ce-theme=skyfade], :root.theme-skyfade {
270
+ --theme-bg: #f4f9ff;
271
+ --theme-fg: #1e2a38;
272
+ --theme-accent: #3399ff;
273
+ --theme-muted: #c8ddee;
274
+ --theme-primary: #3399ff;
275
+ }
276
+
277
+ .theme-nordwave, :root[data-ce-theme=nordwave], :root.theme-nordwave {
278
+ --theme-bg: #eceff4;
279
+ --theme-fg: #2e3440;
280
+ --theme-accent: #5e81ac;
281
+ --theme-muted: #d8dee9;
282
+ --theme-primary: #5e81ac;
283
+ }
284
+
285
+ .theme-glassy-amber, :root[data-ce-theme=glassy-amber], :root.theme-glassy-amber {
286
+ --theme-bg: rgba(255, 255, 255, 0.1);
287
+ --theme-fg: #ffffff;
288
+ background: rgba(255, 191, 0, 0.2);
289
+ border: 1px solid rgba(255, 215, 0, 0.3);
290
+ -webkit-backdrop-filter: blur(12px);
291
+ backdrop-filter: blur(12px);
292
+ border-radius: 12px;
293
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
294
+ color: #000000;
295
+ }
296
+ .theme-glassy-amber *, :root[data-ce-theme=glassy-amber] *, :root.theme-glassy-amber * {
297
+ color: inherit;
298
+ }
299
+
300
+ .theme-glassy-blue, :root[data-ce-theme=glassy-blue], :root.theme-glassy-blue {
301
+ --theme-bg: rgba(255, 255, 255, 0.05);
302
+ --theme-fg: #ffffff;
303
+ --theme-accent: rgba(0, 120, 255, 0.3);
304
+ --theme-primary: #0078ff;
305
+ --theme-muted: rgba(255, 255, 255, 0.2);
306
+ --theme-border: rgba(255, 255, 255, 0.2);
307
+ --theme-radius: 16px;
308
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
309
+ }
310
+
311
+ .theme-glassy-green, :root[data-ce-theme=glassy-green], :root.theme-glassy-green {
312
+ --theme-bg: rgba(255, 255, 255, 0.05);
313
+ --theme-fg: #ffffff;
314
+ --theme-accent: rgba(46, 204, 113, 0.3);
315
+ --theme-primary: #2ecc71;
316
+ --theme-muted: rgba(255, 255, 255, 0.2);
317
+ --theme-border: rgba(255, 255, 255, 0.2);
318
+ --theme-radius: 16px;
319
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
320
+ }
321
+
322
+ .theme-glassy-blue,
323
+ .theme-glassy-orange, :root[data-ce-theme=glassy-orange], :root.theme-glassy-orange {
324
+ --theme-bg: rgba(255, 165, 0, 0.15);
325
+ --theme-fg: #000000;
326
+ --theme-accent: rgba(255, 165, 0, 0.4);
327
+ --theme-primary: #ffa500;
328
+ --theme-muted: rgba(255, 255, 255, 0.3);
329
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
330
+ --theme-radius: 12px;
331
+ }
332
+
333
+ .theme-glassy-pink, :root[data-ce-theme=glassy-pink], :root.theme-glassy-pink {
334
+ --theme-bg: rgba(255, 105, 180, 0.15);
335
+ --theme-fg: #ffffff;
336
+ --theme-accent: rgba(255, 105, 180, 0.35);
337
+ --theme-primary: #ff69b4;
338
+ --theme-muted: rgba(255, 255, 255, 0.3);
339
+ --theme-radius: 12px;
340
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
341
+ }
342
+
343
+ .theme-glassy-purple, :root[data-ce-theme=glassy-purple], :root.theme-glassy-purple {
344
+ --theme-bg: rgba(255, 255, 255, 0.05);
345
+ --theme-fg: #ffffff;
346
+ --theme-accent: rgba(155, 89, 182, 0.3);
347
+ --theme-primary: #9b59b6;
348
+ --theme-muted: rgba(255, 255, 255, 0.2);
349
+ --theme-border: rgba(255, 255, 255, 0.2);
350
+ --theme-radius: 16px;
351
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
352
+ }
353
+
354
+ .theme-glassy-mac-dark,
355
+ :root[data-ce-theme=glassy-mac-dark],
356
+ :root.theme-glassy-mac-dark,
357
+ .glassy-mac-dark {
358
+ --theme-bg: rgba(29, 29, 31, 0.6);
359
+ --theme-fg: #f5f5f5;
360
+ --theme-accent: rgba(0, 122, 255, 0.3);
361
+ --theme-primary: #007aff;
362
+ --theme-muted: rgba(255, 255, 255, 0.2);
363
+ --theme-border: rgba(255, 255, 255, 0.2);
364
+ --theme-radius: 16px;
365
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
366
+ }
367
+
368
+ .theme-glassy-silver, :root[data-ce-theme=glassy-silver], :root.theme-glassy-silver {
369
+ --theme-bg: rgba(192, 192, 192, 0.15);
370
+ --theme-fg: #111111;
371
+ --theme-accent: rgba(192, 192, 192, 0.3);
372
+ --theme-primary: #c0c0c0;
373
+ --theme-muted: rgba(255, 255, 255, 0.3);
374
+ --theme-radius: 12px;
375
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
376
+ }
377
+
378
+ .theme-glassy-teal, :root[data-ce-theme=glassy-teal], :root.theme-glassy-teal {
379
+ --theme-bg: rgba(0, 128, 128, 0.15);
380
+ --theme-fg: #ffffff;
381
+ --theme-accent: rgba(0, 128, 128, 0.4);
382
+ --theme-primary: #008080;
383
+ --theme-muted: rgba(255, 255, 255, 0.3);
384
+ --theme-radius: 12px;
385
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
386
+ }
387
+
388
+ .theme-glassy-cyan, :root[data-ce-theme=glassy-cyan], :root.theme-glassy-cyan {
389
+ --theme-bg: rgba(0, 255, 255, 0.15);
390
+ --theme-fg: #000000;
391
+ --theme-accent: rgba(0, 255, 255, 0.35);
392
+ --theme-primary: #00ffff;
393
+ --theme-muted: rgba(255, 255, 255, 0.3);
394
+ --theme-radius: 12px;
395
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
396
+ }
397
+
398
+ .theme-glassy-gold, :root[data-ce-theme=glassy-gold], :root.theme-glassy-gold {
399
+ --theme-bg: rgba(255, 215, 0, 0.15);
400
+ --theme-fg: #000000;
401
+ --theme-accent: rgba(255, 215, 0, 0.3);
402
+ --theme-primary: #ffd700;
403
+ --theme-muted: rgba(255, 255, 255, 0.3);
404
+ --theme-radius: 12px;
405
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
406
+ }
407
+
408
+ .theme-glassy-aero-windows, :root[data-ce-theme=glassy-aero-windows], :root.theme-glassy-aero-windows {
409
+ --theme-bg: rgba(180, 200, 255, 0.12);
410
+ --theme-fg: #1a1a1a;
411
+ --theme-accent: rgba(140, 180, 255, 0.3);
412
+ --theme-primary: #90caf9;
413
+ --theme-muted: rgba(255, 255, 255, 0.3);
414
+ --theme-radius: 12px;
415
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
416
+ }
417
+
418
+ .theme-glassy-aurora-sky, :root[data-ce-theme=glassy-aurora-sky], :root.theme-glassy-aurora-sky {
419
+ --theme-bg: rgba(135, 206, 250, 0.15);
420
+ --theme-fg: #000000;
421
+ --theme-accent: rgba(135, 206, 250, 0.4);
422
+ --theme-primary: #87cefa;
423
+ --theme-muted: rgba(255, 255, 255, 0.3);
424
+ --theme-radius: 12px;
425
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
426
+ }
427
+
428
+ .theme-glassy-frosted-silver, :root[data-ce-theme=glassy-frosted-silver], :root.theme-glassy-frosted-silver {
429
+ --theme-bg: rgba(245, 245, 245, 0.15);
430
+ --theme-fg: #202124;
431
+ --theme-accent: rgba(230, 230, 230, 0.25);
432
+ --theme-primary: #f0f0f0;
433
+ --theme-muted: rgba(255, 255, 255, 0.3);
434
+ --theme-radius: 12px;
435
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
436
+ }
437
+
438
+ .theme-glassy-glass-white, :root[data-ce-theme=glassy-glass-white], :root.theme-glassy-glass-white {
439
+ --theme-bg: rgba(255, 255, 255, 0.12);
440
+ --theme-fg: #000000;
441
+ --theme-accent: rgba(240, 240, 240, 0.4);
442
+ --theme-primary: #ffffff;
443
+ --theme-muted: rgba(255, 255, 255, 0.3);
444
+ --theme-radius: 12px;
445
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
446
+ }
447
+
448
+ .theme-glassy-ice-black,
449
+ :root[data-ce-theme=glassy-ice-black],
450
+ :root.theme-glassy-ice-black,
451
+ .glassy-ice-black {
452
+ --theme-bg: rgba(0, 0, 0, 0.4);
453
+ --theme-fg: #ffffff;
454
+ --theme-accent: rgba(0, 0, 0, 0.3);
455
+ --theme-primary: #000000;
456
+ --theme-muted: rgba(255, 255, 255, 0.2);
457
+ --theme-border: rgba(255, 255, 255, 0.2);
458
+ --theme-radius: 16px;
459
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
460
+ }
461
+
462
+ .theme-glassy-blue, :root[data-ce-theme=glassy-blue], :root.theme-glassy-blue {
463
+ --theme-bg: rgba(0, 120, 255, 0.15);
464
+ --theme-fg: #ffffff;
465
+ --theme-accent: rgba(0, 120, 255, 0.4);
466
+ --theme-primary: #0078ff;
467
+ --theme-muted: rgba(255, 255, 255, 0.3);
468
+ --theme-radius: 12px;
469
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
470
+ }
471
+
472
+ .theme-glassy-neon-cyber, :root[data-ce-theme=glassy-neon-cyber], :root.theme-glassy-neon-cyber {
473
+ --theme-bg: rgba(57, 255, 20, 0.12);
474
+ --theme-fg: #00ff9f;
475
+ --theme-accent: rgba(57, 255, 20, 0.4);
476
+ --theme-primary: #39ff14;
477
+ --theme-muted: rgba(255, 255, 255, 0.3);
478
+ --theme-radius: 12px;
479
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
480
+ }
481
+
482
+ .theme-glassy-rose-gold, :root[data-ce-theme=glassy-rose-gold], :root.theme-glassy-rose-gold {
483
+ --theme-bg: rgba(255, 192, 203, 0.2);
484
+ --theme-fg: #661e43;
485
+ --theme-accent: rgba(255, 192, 203, 0.3);
486
+ --theme-primary: #b76e79;
487
+ --theme-muted: rgba(255, 255, 255, 0.3);
488
+ --theme-radius: 12px;
489
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
490
+ }
491
+
492
+ .theme-glassy-sakura-glass, :root[data-ce-theme=glassy-sakura-glass], :root.theme-glassy-sakura-glass {
493
+ --theme-bg: rgba(255, 182, 193, 0.2);
494
+ --theme-fg: #6e0d25;
495
+ --theme-accent: rgba(255, 182, 193, 0.3);
496
+ --theme-primary: #ffb6c1;
497
+ --theme-muted: rgba(255, 255, 255, 0.3);
498
+ --theme-radius: 12px;
499
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
500
+ }
501
+
502
+ .theme-standard-dark, :root[data-ce-theme=standard-dark], :root.theme-standard-dark {
503
+ --theme-bg: #121212;
504
+ --theme-fg: #f1f1f1;
505
+ --theme-primary: #bb86fc;
506
+ --theme-accent: #3700b3;
507
+ --theme-muted: #999;
508
+ --theme-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
509
+ }
510
+
511
+ .theme-standard-default, :root[data-ce-theme=standard-default], :root.theme-standard-default {
512
+ --theme-bg: #ffffff;
513
+ --theme-fg: #1a1a1a;
514
+ --theme-primary: #1a73e8;
515
+ --theme-accent: #4285f4;
516
+ --theme-muted: #9aa0a6;
517
+ --theme-radius: 8px;
518
+ --theme-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
519
+ }
520
+
521
+ :root.theme-neutral-light, :root[data-ce-theme=neutral-light], .theme-neutral-light {
522
+ --theme-bg: #f8fafc;
523
+ --theme-surface: #ffffff;
524
+ --theme-fg: #0f172a;
525
+ --theme-muted: #6b7280;
526
+ --theme-primary: #2563eb;
527
+ --theme-accent: #2563eb;
528
+ --theme-font: 'Inter', system-ui, sans-serif;
529
+ }
530
+
531
+ :root.theme-true-dark, :root[data-ce-theme=true-dark], .theme-true-dark {
532
+ --theme-bg: #0b0b0f;
533
+ --theme-surface: #111827;
534
+ --theme-fg: #e5e7eb;
535
+ --theme-muted: #9ca3af;
536
+ --theme-primary: #22d3ee;
537
+ --theme-accent: #22d3ee;
538
+ --theme-font: 'Inter', system-ui, sans-serif;
539
+ }
540
+
541
+ :root.theme-cool-slate, :root[data-ce-theme=cool-slate], .theme-cool-slate {
542
+ --theme-bg: #0f172a;
543
+ --theme-surface: #111827;
544
+ --theme-fg: #e2e8f0;
545
+ --theme-muted: #94a3b8;
546
+ --theme-primary: #3b82f6;
547
+ --theme-accent: #3b82f6;
548
+ --theme-font: 'Inter', system-ui, sans-serif;
549
+ }
550
+
551
+ :root.theme-warm-neutral, :root[data-ce-theme=warm-neutral], .theme-warm-neutral {
552
+ --theme-bg: #f7f4f1;
553
+ --theme-surface: #ffffff;
554
+ --theme-fg: #1f2933;
555
+ --theme-muted: #7b8794;
556
+ --theme-primary: #d97706;
557
+ --theme-accent: #d97706;
558
+ --theme-font: 'Inter', system-ui, sans-serif;
559
+ }
560
+
561
+ :root.theme-minimal-mono, :root[data-ce-theme=minimal-mono], .theme-minimal-mono {
562
+ --theme-bg: #f5f5f5;
563
+ --theme-surface: #ffffff;
564
+ --theme-fg: #111111;
565
+ --theme-muted: #666666;
566
+ --theme-primary: #1f2937;
567
+ --theme-accent: #1f2937;
568
+ --theme-font: 'Inter', system-ui, sans-serif;
569
+ }
570
+
571
+ :root.theme-soft-pastel, :root[data-ce-theme=soft-pastel], .theme-soft-pastel {
572
+ --theme-bg: #eefcf6;
573
+ --theme-surface: #ffffff;
574
+ --theme-fg: #0f172a;
575
+ --theme-muted: #6b7280;
576
+ --theme-primary: #10b981;
577
+ --theme-accent: #10b981;
578
+ --theme-font: 'Inter', system-ui, sans-serif;
579
+ }
580
+
581
+ *,
582
+ *::before,
583
+ *::after {
584
+ box-sizing: border-box;
585
+ margin: 0;
586
+ padding: 0;
587
+ line-height: 1.5;
588
+ }
589
+
590
+ a {
591
+ text-decoration: none;
592
+ color: inherit;
593
+ }
594
+
595
+ img,
596
+ svg,
597
+ video,
598
+ canvas,
599
+ audio,
600
+ iframe,
601
+ embed,
602
+ object {
603
+ display: block;
604
+ max-width: 100%;
605
+ }
606
+
607
+ ol,
608
+ ul {
609
+ list-style: none;
610
+ padding: 0;
611
+ }
612
+
613
+ button,
614
+ input,
615
+ select,
616
+ textarea {
617
+ font: inherit;
618
+ }
619
+
620
+ html {
621
+ font-family: "Inter", sans-serif;
622
+ font-size: 12px;
623
+ -webkit-text-size-adjust: 100%;
624
+ size-adjust: 100%;
625
+ -webkit-font-smoothing: antialiased;
626
+ text-rendering: optimizeLegibility;
627
+ }
628
+
629
+ body {
630
+ min-height: 100%;
631
+ background-color: var(--ce-color-background, var(--theme-bg, #ffffff));
632
+ color: var(--ce-color-text, var(--theme-fg, #202124));
633
+ }
634
+
635
+ html,
636
+ body {
637
+ height: 100%;
638
+ }
639
+
640
+ button,
641
+ input,
642
+ select,
643
+ textarea {
644
+ color: inherit;
645
+ }
646
+
647
+ button {
648
+ cursor: pointer;
649
+ }
650
+
651
+ textarea {
652
+ resize: vertical;
653
+ }
654
+
655
+ fieldset {
656
+ min-width: 0;
657
+ margin: 0;
658
+ padding: 0;
659
+ border: 0;
660
+ }
661
+
662
+ legend {
663
+ padding: 0;
664
+ }
665
+
666
+ table {
667
+ border-collapse: collapse;
668
+ border-spacing: 0;
669
+ }
670
+
671
+ hr {
672
+ border: 0;
673
+ border-top: 1px solid var(--ce-color-border, var(--theme-border, #e5e7eb));
674
+ }
675
+
676
+ h1, h2, h3, h4, h5, h6 {
677
+ font-weight: 600;
678
+ color: var(--text-primary, #202124);
679
+ line-height: 1.2;
680
+ margin-bottom: 1rem;
681
+ }
682
+
683
+ h1 {
684
+ font-size: 2.5rem;
685
+ }
686
+ @media (min-width: 768px) {
687
+ h1 {
688
+ font-size: calc(2.5rem + (4rem - 2.5rem) * (100vw - 768px) / 672);
689
+ }
690
+ }
691
+ @media (min-width: 1440px) {
692
+ h1 {
693
+ font-size: 4rem;
694
+ }
695
+ }
696
+
697
+ h2 {
698
+ font-size: 2rem;
699
+ }
700
+ @media (min-width: 768px) {
701
+ h2 {
702
+ font-size: calc(2rem + (3rem - 2rem) * (100vw - 768px) / 672);
703
+ }
704
+ }
705
+ @media (min-width: 1440px) {
706
+ h2 {
707
+ font-size: 3rem;
708
+ }
709
+ }
710
+
711
+ h3 {
712
+ font-size: 1.75rem;
713
+ }
714
+ @media (min-width: 768px) {
715
+ h3 {
716
+ font-size: calc(1.75rem + (2.25rem - 1.75rem) * (100vw - 768px) / 672);
717
+ }
718
+ }
719
+ @media (min-width: 1440px) {
720
+ h3 {
721
+ font-size: 2.25rem;
722
+ }
723
+ }
724
+
725
+ h4 {
726
+ font-size: 1.5rem;
727
+ }
728
+
729
+ h5 {
730
+ font-size: 1.25rem;
731
+ }
732
+
733
+ h6 {
734
+ font-size: 1rem;
735
+ }
736
+
737
+ p {
738
+ margin-bottom: 1rem;
739
+ color: var(--text-primary, #202124);
740
+ }
741
+
742
+ small,
743
+ .text--small {
744
+ font-size: 0.875rem;
745
+ color: var(--text-muted, #9aa0a6);
746
+ }
747
+
748
+ .text-center {
749
+ text-align: center;
750
+ }
751
+
752
+ .text-right {
753
+ text-align: right;
754
+ }
755
+
756
+ .text-primary {
757
+ color: var(--theme-primary, #1a73e8);
758
+ }
759
+
760
+ .text-secondary {
761
+ color: var(--theme-secondary, #fbbc04);
762
+ }
763
+
764
+ .text-danger {
765
+ color: var(--theme-danger, #ea4335);
766
+ }
767
+
768
+ .text-muted {
769
+ color: var(--text-muted, #9aa0a6);
770
+ }
771
+
772
+ input,
773
+ textarea,
774
+ select {
775
+ width: var(--ce-form-control-width, 100%);
776
+ padding: var(--ce-form-control-padding, 0.5rem 1rem);
777
+ border-width: var(--ce-form-control-border-width, 1px);
778
+ border-style: var(--ce-form-control-border-style, solid);
779
+ border-color: var(--ce-form-control-border-color, #9aa0a6);
780
+ border-radius: var(--ce-form-control-radius, 4px);
781
+ background-color: var(--ce-form-control-bg, #ffffff);
782
+ color: var(--ce-form-control-color, #202124);
783
+ }
784
+ input:focus,
785
+ textarea:focus,
786
+ select:focus {
787
+ border-color: var(--ce-form-control-focus-border, #1a73e8);
788
+ outline: var(--ce-form-control-focus-outline, none);
789
+ box-shadow: var(--ce-form-control-focus-shadow, 0 0 0 3px rgba(26, 115, 232, 0.2));
790
+ }
791
+ input:disabled,
792
+ textarea:disabled,
793
+ select:disabled {
794
+ background-color: var(--ce-form-control-disabled-bg, #f8f9fa);
795
+ color: var(--ce-form-control-disabled-color, #9aa0a6);
796
+ cursor: var(--ce-form-control-disabled-cursor, not-allowed);
797
+ }
798
+
799
+ label {
800
+ display: var(--ce-form-label-display, inline-block);
801
+ margin-bottom: var(--ce-form-label-margin, 0.25rem);
802
+ font-weight: var(--ce-form-label-weight, 600);
803
+ }
804
+
805
+ .form-control--error {
806
+ border-color: var(--ce-form-control-error-border, #ea4335);
807
+ }
808
+ .form-control--error:focus {
809
+ box-shadow: var(--ce-form-control-error-shadow, 0 0 0 3px rgba(234, 67, 53, 0.2));
810
+ }
811
+
812
+ .form-error-msg {
813
+ margin-top: var(--ce-form-error-margin, 0.25rem);
814
+ color: var(--ce-form-error-color, #ea4335);
815
+ font-size: var(--ce-form-error-size, 0.875rem);
816
+ }
817
+
818
+ @keyframes fade-in {
819
+ from {
820
+ opacity: 0;
821
+ }
822
+ to {
823
+ opacity: 1;
824
+ }
825
+ }
826
+ @keyframes fade-out {
827
+ from {
828
+ opacity: 1;
829
+ }
830
+ to {
831
+ opacity: 0;
832
+ }
833
+ }
834
+ @keyframes slide-up {
835
+ from {
836
+ transform: translateY(100%);
837
+ opacity: 0;
838
+ }
839
+ to {
840
+ transform: translateY(0);
841
+ opacity: 1;
842
+ }
843
+ }
844
+ @keyframes slide-down {
845
+ from {
846
+ transform: translateY(-100%);
847
+ opacity: 0;
848
+ }
849
+ to {
850
+ transform: translateY(0);
851
+ opacity: 1;
852
+ }
853
+ }
854
+ @keyframes spin {
855
+ to {
856
+ transform: rotate(360deg);
857
+ }
858
+ }
859
+ .grid {
860
+ display: var(--ce-layout-grid-display, grid);
861
+ gap: var(--ce-layout-grid-gap, 1rem);
862
+ grid-template-columns: var(--ce-layout-grid-columns, repeat(12, 1fr));
863
+ }
864
+
865
+ .grid--2-cols {
866
+ grid-template-columns: var(--ce-layout-grid-2-columns, repeat(2, 1fr));
867
+ }
868
+
869
+ .grid--3-cols {
870
+ grid-template-columns: var(--ce-layout-grid-3-columns, repeat(3, 1fr));
871
+ }
872
+
873
+ .grid--4-cols {
874
+ grid-template-columns: var(--ce-layout-grid-4-columns, repeat(4, 1fr));
875
+ }
876
+
877
+ .grid--6-cols {
878
+ grid-template-columns: var(--ce-layout-grid-6-columns, repeat(6, 1fr));
879
+ }
880
+
881
+ @media (max-width: 768px) {
882
+ .grid--responsive {
883
+ grid-template-columns: var(--ce-layout-grid-responsive-columns, 1fr);
884
+ }
885
+ }
886
+ .header {
887
+ display: flex;
888
+ justify-content: space-between;
889
+ align-items: center;
890
+ background-color: #1a73e8;
891
+ color: #ffffff;
892
+ padding: 0.5rem 1.5rem;
893
+ height: 60px;
894
+ position: sticky;
895
+ top: 0;
896
+ z-index: 1020;
897
+ }
898
+ .header .header__logo {
899
+ font-weight: bold;
900
+ font-size: 1.25rem;
901
+ }
902
+ .header .header__nav {
903
+ display: flex;
904
+ gap: 1rem;
905
+ }
906
+ .header .header__nav a {
907
+ color: #ffffff;
908
+ text-decoration: none;
909
+ }
910
+ .header .header__nav a:hover {
911
+ text-decoration: underline;
912
+ }
913
+ @media (max-width: 768px) {
914
+ .header {
915
+ flex-direction: column;
916
+ height: auto;
917
+ gap: 0.5rem;
918
+ }
919
+ }
920
+
921
+ .header {
922
+ display: flex;
923
+ justify-content: space-between;
924
+ align-items: center;
925
+ background-color: #1a73e8;
926
+ color: #ffffff;
927
+ padding: 0.5rem 1.5rem;
928
+ height: 60px;
929
+ position: sticky;
930
+ top: 0;
931
+ z-index: 1020;
932
+ }
933
+ .header .header__logo {
934
+ font-weight: bold;
935
+ font-size: 1.25rem;
936
+ }
937
+ .header .header__nav {
938
+ display: flex;
939
+ gap: 1rem;
940
+ }
941
+ .header .header__nav a {
942
+ color: #ffffff;
943
+ text-decoration: none;
944
+ }
945
+ .header .header__nav a:hover {
946
+ text-decoration: underline;
947
+ }
948
+ @media (max-width: 768px) {
949
+ .header {
950
+ flex-direction: column;
951
+ height: auto;
952
+ gap: 0.5rem;
953
+ }
954
+ }
955
+
956
+ .sidebar {
957
+ width: 260px;
958
+ background-color: #202124;
959
+ color: #ffffff;
960
+ height: 100vh;
961
+ padding: 1.5rem 1rem;
962
+ position: sticky;
963
+ top: 0;
964
+ display: flex;
965
+ flex-direction: column;
966
+ }
967
+ .sidebar .sidebar__brand {
968
+ font-size: 1.25rem;
969
+ font-weight: bold;
970
+ margin-bottom: 2rem;
971
+ }
972
+ .sidebar .sidebar__nav {
973
+ display: flex;
974
+ flex-direction: column;
975
+ gap: 0.5rem;
976
+ }
977
+ .sidebar .sidebar__nav a {
978
+ color: #ffffff;
979
+ text-decoration: none;
980
+ padding: 0.25rem 0.5rem;
981
+ border-radius: 4px;
982
+ }
983
+ .sidebar .sidebar__nav a:hover, .sidebar .sidebar__nav a.active {
984
+ background-color: #1a73e8;
985
+ }
986
+
987
+ .container {
988
+ width: 100%;
989
+ max-width: 1280px;
990
+ margin-left: auto;
991
+ margin-right: auto;
992
+ padding-left: 1.5rem;
993
+ padding-right: 1.5rem;
994
+ }
995
+ .container--fluid {
996
+ max-width: 100%;
997
+ }
998
+ .container--narrow {
999
+ max-width: 720px;
1000
+ }
1001
+
1002
+ .stack {
1003
+ display: flex;
1004
+ flex-direction: column;
1005
+ gap: 1rem;
1006
+ }
1007
+ .stack--sm {
1008
+ gap: 0.5rem;
1009
+ }
1010
+ .stack--lg {
1011
+ gap: 1.5rem;
1012
+ }
1013
+ .stack--xl {
1014
+ gap: 2rem;
1015
+ }
1016
+ .stack--horizontal {
1017
+ flex-direction: row;
1018
+ flex-wrap: wrap;
1019
+ }
1020
+ .stack--centered {
1021
+ align-items: center;
1022
+ justify-content: center;
1023
+ }
1024
+
1025
+ .section {
1026
+ padding: 2rem 0;
1027
+ }
1028
+ .section--light {
1029
+ background-color: #f8f9fa;
1030
+ }
1031
+ .section--dark {
1032
+ background-color: #202124;
1033
+ color: #ffffff;
1034
+ }
1035
+ .section--primary {
1036
+ background-color: #1a73e8;
1037
+ color: #ffffff;
1038
+ }
1039
+ .section--bordered {
1040
+ border-top: 1px solid #9aa0a6;
1041
+ border-bottom: 1px solid #9aa0a6;
1042
+ }
1043
+
1044
+ .m-0 {
1045
+ margin: 0rem !important;
1046
+ }
1047
+
1048
+ .mt-0 {
1049
+ margin-top: 0rem !important;
1050
+ }
1051
+
1052
+ .mb-0 {
1053
+ margin-bottom: 0rem !important;
1054
+ }
1055
+
1056
+ .ml-0 {
1057
+ margin-left: 0rem !important;
1058
+ }
1059
+
1060
+ .mr-0 {
1061
+ margin-right: 0rem !important;
1062
+ }
1063
+
1064
+ .ms-0 {
1065
+ margin-inline-start: 0rem !important;
1066
+ }
1067
+
1068
+ .me-0 {
1069
+ margin-inline-end: 0rem !important;
1070
+ }
1071
+
1072
+ .mx-0 {
1073
+ margin-inline: 0rem !important;
1074
+ }
1075
+
1076
+ .p-0 {
1077
+ padding: 0rem !important;
1078
+ }
1079
+
1080
+ .pt-0 {
1081
+ padding-top: 0rem !important;
1082
+ }
1083
+
1084
+ .pb-0 {
1085
+ padding-bottom: 0rem !important;
1086
+ }
1087
+
1088
+ .pl-0 {
1089
+ padding-left: 0rem !important;
1090
+ }
1091
+
1092
+ .pr-0 {
1093
+ padding-right: 0rem !important;
1094
+ }
1095
+
1096
+ .ps-0 {
1097
+ padding-inline-start: 0rem !important;
1098
+ }
1099
+
1100
+ .pe-0 {
1101
+ padding-inline-end: 0rem !important;
1102
+ }
1103
+
1104
+ .px-0 {
1105
+ padding-inline: 0rem !important;
1106
+ }
1107
+
1108
+ .m-xs {
1109
+ margin: 0.25rem !important;
1110
+ }
1111
+
1112
+ .mt-xs {
1113
+ margin-top: 0.25rem !important;
1114
+ }
1115
+
1116
+ .mb-xs {
1117
+ margin-bottom: 0.25rem !important;
1118
+ }
1119
+
1120
+ .ml-xs {
1121
+ margin-left: 0.25rem !important;
1122
+ }
1123
+
1124
+ .mr-xs {
1125
+ margin-right: 0.25rem !important;
1126
+ }
1127
+
1128
+ .ms-xs {
1129
+ margin-inline-start: 0.25rem !important;
1130
+ }
1131
+
1132
+ .me-xs {
1133
+ margin-inline-end: 0.25rem !important;
1134
+ }
1135
+
1136
+ .mx-xs {
1137
+ margin-inline: 0.25rem !important;
1138
+ }
1139
+
1140
+ .p-xs {
1141
+ padding: 0.25rem !important;
1142
+ }
1143
+
1144
+ .pt-xs {
1145
+ padding-top: 0.25rem !important;
1146
+ }
1147
+
1148
+ .pb-xs {
1149
+ padding-bottom: 0.25rem !important;
1150
+ }
1151
+
1152
+ .pl-xs {
1153
+ padding-left: 0.25rem !important;
1154
+ }
1155
+
1156
+ .pr-xs {
1157
+ padding-right: 0.25rem !important;
1158
+ }
1159
+
1160
+ .ps-xs {
1161
+ padding-inline-start: 0.25rem !important;
1162
+ }
1163
+
1164
+ .pe-xs {
1165
+ padding-inline-end: 0.25rem !important;
1166
+ }
1167
+
1168
+ .px-xs {
1169
+ padding-inline: 0.25rem !important;
1170
+ }
1171
+
1172
+ .m-sm {
1173
+ margin: 0.5rem !important;
1174
+ }
1175
+
1176
+ .mt-sm {
1177
+ margin-top: 0.5rem !important;
1178
+ }
1179
+
1180
+ .mb-sm {
1181
+ margin-bottom: 0.5rem !important;
1182
+ }
1183
+
1184
+ .ml-sm {
1185
+ margin-left: 0.5rem !important;
1186
+ }
1187
+
1188
+ .mr-sm {
1189
+ margin-right: 0.5rem !important;
1190
+ }
1191
+
1192
+ .ms-sm {
1193
+ margin-inline-start: 0.5rem !important;
1194
+ }
1195
+
1196
+ .me-sm {
1197
+ margin-inline-end: 0.5rem !important;
1198
+ }
1199
+
1200
+ .mx-sm {
1201
+ margin-inline: 0.5rem !important;
1202
+ }
1203
+
1204
+ .p-sm {
1205
+ padding: 0.5rem !important;
1206
+ }
1207
+
1208
+ .pt-sm {
1209
+ padding-top: 0.5rem !important;
1210
+ }
1211
+
1212
+ .pb-sm {
1213
+ padding-bottom: 0.5rem !important;
1214
+ }
1215
+
1216
+ .pl-sm {
1217
+ padding-left: 0.5rem !important;
1218
+ }
1219
+
1220
+ .pr-sm {
1221
+ padding-right: 0.5rem !important;
1222
+ }
1223
+
1224
+ .ps-sm {
1225
+ padding-inline-start: 0.5rem !important;
1226
+ }
1227
+
1228
+ .pe-sm {
1229
+ padding-inline-end: 0.5rem !important;
1230
+ }
1231
+
1232
+ .px-sm {
1233
+ padding-inline: 0.5rem !important;
1234
+ }
1235
+
1236
+ .m-md {
1237
+ margin: 1rem !important;
1238
+ }
1239
+
1240
+ .mt-md {
1241
+ margin-top: 1rem !important;
1242
+ }
1243
+
1244
+ .mb-md {
1245
+ margin-bottom: 1rem !important;
1246
+ }
1247
+
1248
+ .ml-md {
1249
+ margin-left: 1rem !important;
1250
+ }
1251
+
1252
+ .mr-md {
1253
+ margin-right: 1rem !important;
1254
+ }
1255
+
1256
+ .ms-md {
1257
+ margin-inline-start: 1rem !important;
1258
+ }
1259
+
1260
+ .me-md {
1261
+ margin-inline-end: 1rem !important;
1262
+ }
1263
+
1264
+ .mx-md {
1265
+ margin-inline: 1rem !important;
1266
+ }
1267
+
1268
+ .p-md {
1269
+ padding: 1rem !important;
1270
+ }
1271
+
1272
+ .pt-md {
1273
+ padding-top: 1rem !important;
1274
+ }
1275
+
1276
+ .pb-md {
1277
+ padding-bottom: 1rem !important;
1278
+ }
1279
+
1280
+ .pl-md {
1281
+ padding-left: 1rem !important;
1282
+ }
1283
+
1284
+ .pr-md {
1285
+ padding-right: 1rem !important;
1286
+ }
1287
+
1288
+ .ps-md {
1289
+ padding-inline-start: 1rem !important;
1290
+ }
1291
+
1292
+ .pe-md {
1293
+ padding-inline-end: 1rem !important;
1294
+ }
1295
+
1296
+ .px-md {
1297
+ padding-inline: 1rem !important;
1298
+ }
1299
+
1300
+ .m-lg {
1301
+ margin: 1.5rem !important;
1302
+ }
1303
+
1304
+ .mt-lg {
1305
+ margin-top: 1.5rem !important;
1306
+ }
1307
+
1308
+ .mb-lg {
1309
+ margin-bottom: 1.5rem !important;
1310
+ }
1311
+
1312
+ .ml-lg {
1313
+ margin-left: 1.5rem !important;
1314
+ }
1315
+
1316
+ .mr-lg {
1317
+ margin-right: 1.5rem !important;
1318
+ }
1319
+
1320
+ .ms-lg {
1321
+ margin-inline-start: 1.5rem !important;
1322
+ }
1323
+
1324
+ .me-lg {
1325
+ margin-inline-end: 1.5rem !important;
1326
+ }
1327
+
1328
+ .mx-lg {
1329
+ margin-inline: 1.5rem !important;
1330
+ }
1331
+
1332
+ .p-lg {
1333
+ padding: 1.5rem !important;
1334
+ }
1335
+
1336
+ .pt-lg {
1337
+ padding-top: 1.5rem !important;
1338
+ }
1339
+
1340
+ .pb-lg {
1341
+ padding-bottom: 1.5rem !important;
1342
+ }
1343
+
1344
+ .pl-lg {
1345
+ padding-left: 1.5rem !important;
1346
+ }
1347
+
1348
+ .pr-lg {
1349
+ padding-right: 1.5rem !important;
1350
+ }
1351
+
1352
+ .ps-lg {
1353
+ padding-inline-start: 1.5rem !important;
1354
+ }
1355
+
1356
+ .pe-lg {
1357
+ padding-inline-end: 1.5rem !important;
1358
+ }
1359
+
1360
+ .px-lg {
1361
+ padding-inline: 1.5rem !important;
1362
+ }
1363
+
1364
+ .m-xl {
1365
+ margin: 2rem !important;
1366
+ }
1367
+
1368
+ .mt-xl {
1369
+ margin-top: 2rem !important;
1370
+ }
1371
+
1372
+ .mb-xl {
1373
+ margin-bottom: 2rem !important;
1374
+ }
1375
+
1376
+ .ml-xl {
1377
+ margin-left: 2rem !important;
1378
+ }
1379
+
1380
+ .mr-xl {
1381
+ margin-right: 2rem !important;
1382
+ }
1383
+
1384
+ .ms-xl {
1385
+ margin-inline-start: 2rem !important;
1386
+ }
1387
+
1388
+ .me-xl {
1389
+ margin-inline-end: 2rem !important;
1390
+ }
1391
+
1392
+ .mx-xl {
1393
+ margin-inline: 2rem !important;
1394
+ }
1395
+
1396
+ .p-xl {
1397
+ padding: 2rem !important;
1398
+ }
1399
+
1400
+ .pt-xl {
1401
+ padding-top: 2rem !important;
1402
+ }
1403
+
1404
+ .pb-xl {
1405
+ padding-bottom: 2rem !important;
1406
+ }
1407
+
1408
+ .pl-xl {
1409
+ padding-left: 2rem !important;
1410
+ }
1411
+
1412
+ .pr-xl {
1413
+ padding-right: 2rem !important;
1414
+ }
1415
+
1416
+ .ps-xl {
1417
+ padding-inline-start: 2rem !important;
1418
+ }
1419
+
1420
+ .pe-xl {
1421
+ padding-inline-end: 2rem !important;
1422
+ }
1423
+
1424
+ .px-xl {
1425
+ padding-inline: 2rem !important;
1426
+ }
1427
+
1428
+ .m-xxl {
1429
+ margin: 3rem !important;
1430
+ }
1431
+
1432
+ .mt-xxl {
1433
+ margin-top: 3rem !important;
1434
+ }
1435
+
1436
+ .mb-xxl {
1437
+ margin-bottom: 3rem !important;
1438
+ }
1439
+
1440
+ .ml-xxl {
1441
+ margin-left: 3rem !important;
1442
+ }
1443
+
1444
+ .mr-xxl {
1445
+ margin-right: 3rem !important;
1446
+ }
1447
+
1448
+ .ms-xxl {
1449
+ margin-inline-start: 3rem !important;
1450
+ }
1451
+
1452
+ .me-xxl {
1453
+ margin-inline-end: 3rem !important;
1454
+ }
1455
+
1456
+ .mx-xxl {
1457
+ margin-inline: 3rem !important;
1458
+ }
1459
+
1460
+ .p-xxl {
1461
+ padding: 3rem !important;
1462
+ }
1463
+
1464
+ .pt-xxl {
1465
+ padding-top: 3rem !important;
1466
+ }
1467
+
1468
+ .pb-xxl {
1469
+ padding-bottom: 3rem !important;
1470
+ }
1471
+
1472
+ .pl-xxl {
1473
+ padding-left: 3rem !important;
1474
+ }
1475
+
1476
+ .pr-xxl {
1477
+ padding-right: 3rem !important;
1478
+ }
1479
+
1480
+ .ps-xxl {
1481
+ padding-inline-start: 3rem !important;
1482
+ }
1483
+
1484
+ .pe-xxl {
1485
+ padding-inline-end: 3rem !important;
1486
+ }
1487
+
1488
+ .px-xxl {
1489
+ padding-inline: 3rem !important;
1490
+ }
1491
+
1492
+ .m-xxxl {
1493
+ margin: 4rem !important;
1494
+ }
1495
+
1496
+ .mt-xxxl {
1497
+ margin-top: 4rem !important;
1498
+ }
1499
+
1500
+ .mb-xxxl {
1501
+ margin-bottom: 4rem !important;
1502
+ }
1503
+
1504
+ .ml-xxxl {
1505
+ margin-left: 4rem !important;
1506
+ }
1507
+
1508
+ .mr-xxxl {
1509
+ margin-right: 4rem !important;
1510
+ }
1511
+
1512
+ .ms-xxxl {
1513
+ margin-inline-start: 4rem !important;
1514
+ }
1515
+
1516
+ .me-xxxl {
1517
+ margin-inline-end: 4rem !important;
1518
+ }
1519
+
1520
+ .mx-xxxl {
1521
+ margin-inline: 4rem !important;
1522
+ }
1523
+
1524
+ .p-xxxl {
1525
+ padding: 4rem !important;
1526
+ }
1527
+
1528
+ .pt-xxxl {
1529
+ padding-top: 4rem !important;
1530
+ }
1531
+
1532
+ .pb-xxxl {
1533
+ padding-bottom: 4rem !important;
1534
+ }
1535
+
1536
+ .pl-xxxl {
1537
+ padding-left: 4rem !important;
1538
+ }
1539
+
1540
+ .pr-xxxl {
1541
+ padding-right: 4rem !important;
1542
+ }
1543
+
1544
+ .ps-xxxl {
1545
+ padding-inline-start: 4rem !important;
1546
+ }
1547
+
1548
+ .pe-xxxl {
1549
+ padding-inline-end: 4rem !important;
1550
+ }
1551
+
1552
+ .px-xxxl {
1553
+ padding-inline: 4rem !important;
1554
+ }
1555
+
1556
+ .flex {
1557
+ display: flex !important;
1558
+ }
1559
+
1560
+ .flex-column {
1561
+ flex-direction: column !important;
1562
+ }
1563
+
1564
+ .flex-row {
1565
+ flex-direction: row !important;
1566
+ }
1567
+
1568
+ .flex-center {
1569
+ justify-content: center;
1570
+ align-items: center;
1571
+ }
1572
+
1573
+ .justify-between {
1574
+ justify-content: space-between !important;
1575
+ }
1576
+
1577
+ .align-center {
1578
+ align-items: center !important;
1579
+ }
1580
+
1581
+ .wrap {
1582
+ flex-wrap: wrap !important;
1583
+ }
1584
+
1585
+ .block {
1586
+ display: block !important;
1587
+ }
1588
+
1589
+ .inline {
1590
+ display: inline !important;
1591
+ }
1592
+
1593
+ .inline-block {
1594
+ display: inline-block !important;
1595
+ }
1596
+
1597
+ .none {
1598
+ display: none !important;
1599
+ }
1600
+
1601
+ @media (min-width: 768px) {
1602
+ .sm-block {
1603
+ display: block !important;
1604
+ }
1605
+ .sm-none {
1606
+ display: none !important;
1607
+ }
1608
+ }
1609
+ .relative {
1610
+ position: relative !important;
1611
+ }
1612
+
1613
+ .absolute {
1614
+ position: absolute !important;
1615
+ }
1616
+
1617
+ .fixed {
1618
+ position: fixed !important;
1619
+ }
1620
+
1621
+ .sticky {
1622
+ position: sticky !important;
1623
+ }
1624
+
1625
+ .text-left {
1626
+ text-align: left !important;
1627
+ }
1628
+
1629
+ .text-center {
1630
+ text-align: center !important;
1631
+ }
1632
+
1633
+ .text-right {
1634
+ text-align: right !important;
1635
+ }
1636
+
1637
+ .text-primary {
1638
+ color: var(--theme-primary, #1a73e8) !important;
1639
+ }
1640
+
1641
+ .text-success {
1642
+ color: var(--theme-success, #34a853) !important;
1643
+ }
1644
+
1645
+ .text-danger {
1646
+ color: var(--theme-danger, #ea4335) !important;
1647
+ }
1648
+
1649
+ .text-muted {
1650
+ color: var(--theme-muted, #9aa0a6) !important;
1651
+ }
1652
+
1653
+ .text-uppercase {
1654
+ text-transform: uppercase !important;
1655
+ }
1656
+
1657
+ .text-lowercase {
1658
+ text-transform: lowercase !important;
1659
+ }
1660
+
1661
+ .visible {
1662
+ visibility: visible !important;
1663
+ }
1664
+
1665
+ .invisible {
1666
+ visibility: hidden !important;
1667
+ }
1668
+
1669
+ .sr-only {
1670
+ position: absolute !important;
1671
+ height: 1px;
1672
+ width: 1px;
1673
+ overflow: hidden;
1674
+ clip: rect(1px, 1px, 1px, 1px);
1675
+ white-space: nowrap;
1676
+ }
1677
+
1678
+ *:focus {
1679
+ outline: none;
1680
+ }
1681
+
1682
+ *:focus-visible {
1683
+ outline: 2px solid var(--ce-color-focus-ring, var(--theme-accent, #1a73e8));
1684
+ outline-offset: 2px;
1685
+ }
1686
+
1687
+ .theme-switcher {
1688
+ display: inline-flex;
1689
+ align-items: center;
1690
+ gap: 0.25rem;
1691
+ }
1692
+ .theme-switcher label {
1693
+ font-weight: 500;
1694
+ color: var(--theme-fg);
1695
+ }
1696
+ .theme-switcher button,
1697
+ .theme-switcher select {
1698
+ background-color: #f8f9fa;
1699
+ border: 1px solid #9aa0a6;
1700
+ padding: 0.25rem;
1701
+ font-family: inherit;
1702
+ font-size: 1rem;
1703
+ color: var(--theme-fg);
1704
+ border-radius: 4px;
1705
+ cursor: pointer;
1706
+ transition: background-color 0.3s ease, color 0.3s ease;
1707
+ }
1708
+ .theme-switcher button:hover,
1709
+ .theme-switcher select:hover {
1710
+ background-color: #1a73e8;
1711
+ color: #ffffff;
1712
+ }
1713
+ .theme-switcher select {
1714
+ appearance: none;
1715
+ background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath d='M1.5 5l6 6 6-6'/%3E%3C/svg%3E");
1716
+ background-repeat: no-repeat;
1717
+ background-position: right 0.25rem center;
1718
+ background-size: 1rem;
1719
+ padding-right: 2rem;
1720
+ }
1721
+
1722
+ .input,
1723
+ .ce-input {
1724
+ display: var(--ce-input-display, block);
1725
+ width: var(--ce-input-width, 100%);
1726
+ padding: var(--ce-input-padding, 0.5rem 1rem);
1727
+ font-size: var(--ce-input-font-size, 1rem);
1728
+ color: var(--ce-input-color, var(--theme-input-fg, #202124));
1729
+ background-color: var(--ce-input-bg, var(--theme-input-bg, #ffffff));
1730
+ border-width: var(--ce-input-border-width, 1px);
1731
+ border-style: var(--ce-input-border-style, solid);
1732
+ border-color: var(--ce-input-border, var(--theme-input-border, #9aa0a6));
1733
+ border-radius: var(--ce-input-radius, 4px);
1734
+ line-height: var(--ce-input-line-height, 1.5);
1735
+ }
1736
+ .input:focus,
1737
+ .ce-input:focus {
1738
+ border-color: var(--ce-input-focus-border, var(--theme-input-focus, #1a73e8));
1739
+ outline: var(--ce-input-focus-outline, none);
1740
+ box-shadow: var(--ce-input-focus-shadow, 0 0 0 3px rgba(26, 115, 232, 0.2));
1741
+ }
1742
+ .input:focus-visible,
1743
+ .ce-input:focus-visible {
1744
+ outline: var(--ce-input-focus-visible-outline, 2px solid var(--theme-accent, var(--theme-primary)));
1745
+ outline-offset: var(--ce-input-focus-visible-offset, 2px);
1746
+ }
1747
+ .input:disabled,
1748
+ .ce-input:disabled {
1749
+ background-color: var(--ce-input-disabled-bg, var(--theme-input-disabled-bg, #f8f9fa));
1750
+ color: var(--ce-input-disabled-color, var(--theme-input-disabled-fg, #9aa0a6));
1751
+ cursor: var(--ce-input-disabled-cursor, not-allowed);
1752
+ }
1753
+ .input--sm,
1754
+ .ce-input--sm {
1755
+ padding: var(--ce-input-sm-padding, 0.25rem 0.5rem);
1756
+ font-size: var(--ce-input-sm-size, 0.875rem);
1757
+ }
1758
+ .input--md,
1759
+ .ce-input--md {
1760
+ padding: var(--ce-input-md-padding, 0.5rem 1rem);
1761
+ font-size: var(--ce-input-md-size, 1rem);
1762
+ }
1763
+ .input--lg,
1764
+ .ce-input--lg {
1765
+ padding: var(--ce-input-lg-padding, 1rem 1.5rem);
1766
+ font-size: var(--ce-input-lg-size, 1.125rem);
1767
+ }
1768
+ .input--error,
1769
+ .ce-input--error {
1770
+ border-color: var(--ce-input-error-border, var(--theme-input-error, #ea4335));
1771
+ }
1772
+ .input--error:focus,
1773
+ .ce-input--error:focus {
1774
+ box-shadow: var(--ce-input-error-shadow, 0 0 0 3px rgba(234, 67, 53, 0.2));
1775
+ }
1776
+ .input--success,
1777
+ .ce-input--success {
1778
+ border-color: var(--ce-input-success-border, var(--theme-input-success, #34a853));
1779
+ }
1780
+ .input--success:focus,
1781
+ .ce-input--success:focus {
1782
+ box-shadow: var(--ce-input-success-shadow, 0 0 0 3px rgba(52, 168, 83, 0.2));
1783
+ }
1784
+ .input--rounded,
1785
+ .ce-input--rounded {
1786
+ border-radius: var(--ce-input-rounded-radius, 10px);
1787
+ }
1788
+ .input--icon-left, .input--icon-right,
1789
+ .ce-input--icon-left,
1790
+ .ce-input--icon-right {
1791
+ position: var(--ce-input-icon-position, relative);
1792
+ padding-left: var(--ce-input-icon-padding-left, 2.5rem);
1793
+ }
1794
+ .input--icon-left::before, .input--icon-right::before,
1795
+ .ce-input--icon-left::before,
1796
+ .ce-input--icon-right::before {
1797
+ content: var(--ce-input-icon-content, "");
1798
+ position: var(--ce-input-icon-position, absolute);
1799
+ top: var(--ce-input-icon-top, 50%);
1800
+ transform: var(--ce-input-icon-transform, translateY(-50%));
1801
+ left: var(--ce-input-icon-left, 0.5rem);
1802
+ width: var(--ce-input-icon-size, 1rem);
1803
+ height: var(--ce-input-icon-size, 1rem);
1804
+ background-repeat: var(--ce-input-icon-repeat, no-repeat);
1805
+ background-position: var(--ce-input-icon-align, center);
1806
+ background-size: var(--ce-input-icon-scale, contain);
1807
+ pointer-events: var(--ce-input-icon-events, none);
1808
+ }
1809
+
1810
+ ce-input[size=sm] input.ce-input, ce-input[size=sm] .ce-input {
1811
+ padding: var(--ce-input-sm-padding, 0.25rem 0.5rem);
1812
+ font-size: var(--ce-input-sm-size, 0.875rem);
1813
+ }
1814
+ ce-input[size=lg] input.ce-input, ce-input[size=lg] .ce-input {
1815
+ padding: var(--ce-input-lg-padding, 1rem 1.5rem);
1816
+ font-size: var(--ce-input-lg-size, 1.125rem);
1817
+ }
1818
+
1819
+ .textarea {
1820
+ display: var(--ce-textarea-display, block);
1821
+ width: var(--ce-textarea-width, 100%);
1822
+ padding: var(--ce-textarea-padding, 0.5rem 1rem);
1823
+ font-size: var(--ce-textarea-size, 1rem);
1824
+ color: var(--ce-textarea-color, #202124);
1825
+ background-color: var(--ce-textarea-bg, #ffffff);
1826
+ border: var(--ce-textarea-border, 1px solid #9aa0a6);
1827
+ border-radius: var(--ce-textarea-radius, 4px);
1828
+ resize: var(--ce-textarea-resize, vertical);
1829
+ min-height: var(--ce-textarea-min-height, 100px);
1830
+ }
1831
+ .textarea:focus {
1832
+ border-color: var(--ce-textarea-focus-border, #1a73e8);
1833
+ outline: var(--ce-textarea-focus-outline, none);
1834
+ box-shadow: var(--ce-textarea-focus-shadow, 0 0 0 3px rgba(26, 115, 232, 0.2));
1835
+ }
1836
+ .textarea:disabled {
1837
+ background-color: var(--ce-textarea-disabled-bg, #f8f9fa);
1838
+ color: var(--ce-textarea-disabled-color, #9aa0a6);
1839
+ cursor: var(--ce-textarea-disabled-cursor, not-allowed);
1840
+ }
1841
+ .textarea--error {
1842
+ border-color: var(--ce-textarea-error-border, #ea4335);
1843
+ }
1844
+ .textarea--error:focus {
1845
+ box-shadow: var(--ce-textarea-error-shadow, 0 0 0 3px rgba(234, 67, 53, 0.2));
1846
+ }
1847
+
1848
+ .select,
1849
+ .ce-dropdown {
1850
+ position: relative;
1851
+ width: 100%;
1852
+ display: inline-block;
1853
+ }
1854
+ .select__toggle, .select__trigger,
1855
+ .ce-dropdown__toggle,
1856
+ .ce-dropdown__trigger {
1857
+ width: 100%;
1858
+ padding: var(--ce-select-padding, 0.625rem 1rem);
1859
+ min-height: 44px;
1860
+ background-color: #ffffff;
1861
+ color: #202124;
1862
+ border: 1px solid #9aa0a6;
1863
+ border-radius: 4px;
1864
+ font-size: 0.9375rem;
1865
+ line-height: 1.5;
1866
+ cursor: pointer;
1867
+ display: flex;
1868
+ align-items: center;
1869
+ justify-content: space-between;
1870
+ gap: var(--ce-select-gap, var(--ce-spacing-sm, 0.5rem));
1871
+ transition: all 0.2s ease;
1872
+ text-align: left;
1873
+ }
1874
+ .select__toggle:hover, .select__trigger:hover,
1875
+ .ce-dropdown__toggle:hover,
1876
+ .ce-dropdown__trigger:hover {
1877
+ border-color: #1a73e8;
1878
+ }
1879
+ .select__toggle:focus, .select__toggle:focus-visible, .select__trigger:focus, .select__trigger:focus-visible,
1880
+ .ce-dropdown__toggle:focus,
1881
+ .ce-dropdown__toggle:focus-visible,
1882
+ .ce-dropdown__trigger:focus,
1883
+ .ce-dropdown__trigger:focus-visible {
1884
+ border-color: #1a73e8;
1885
+ outline: none;
1886
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.1);
1887
+ }
1888
+ .select__label,
1889
+ .ce-dropdown__label {
1890
+ flex: 1;
1891
+ min-width: 0;
1892
+ margin: 0;
1893
+ font-weight: 500;
1894
+ font-size: 0.9375rem;
1895
+ line-height: 1.5;
1896
+ }
1897
+ .select__icon,
1898
+ .ce-dropdown__icon {
1899
+ flex-shrink: 0;
1900
+ width: 2rem;
1901
+ height: 2rem;
1902
+ border-radius: 10px;
1903
+ font-size: 0.85rem;
1904
+ color: var(--ce-control-handle-fg, #fff);
1905
+ background-color: var(--ce-control-handle-bg, #1a73e8);
1906
+ display: inline-flex;
1907
+ align-items: center;
1908
+ justify-content: center;
1909
+ transition: transform 0.2s ease;
1910
+ pointer-events: none;
1911
+ box-shadow: var(--ce-select-icon-shadow, 0 6px 12px rgba(16, 24, 40, 0.12));
1912
+ }
1913
+ .select__toggle[aria-expanded=true] .select__icon, .select__trigger[aria-expanded=true] .select__icon,
1914
+ .select__toggle[aria-expanded=true] .ce-dropdown__icon,
1915
+ .select__trigger[aria-expanded=true] .ce-dropdown__icon,
1916
+ .ce-dropdown__toggle[aria-expanded=true] .select__icon,
1917
+ .ce-dropdown__trigger[aria-expanded=true] .select__icon,
1918
+ .ce-dropdown__toggle[aria-expanded=true] .ce-dropdown__icon,
1919
+ .ce-dropdown__trigger[aria-expanded=true] .ce-dropdown__icon {
1920
+ transform: rotate(180deg);
1921
+ }
1922
+ .select__menu,
1923
+ .ce-dropdown__menu {
1924
+ position: absolute;
1925
+ top: calc(100% + 0.25rem);
1926
+ left: 0;
1927
+ right: 0;
1928
+ background-color: #ffffff;
1929
+ border: 1px solid #9aa0a6;
1930
+ border-radius: 4px;
1931
+ box-shadow: var(--ce-select-menu-shadow, 0 4px 12px rgba(0, 0, 0, 0.15));
1932
+ max-height: 300px;
1933
+ overflow-y: auto;
1934
+ z-index: 1000;
1935
+ display: block;
1936
+ opacity: 0;
1937
+ visibility: hidden;
1938
+ pointer-events: none;
1939
+ transform: translateY(-0.5rem);
1940
+ transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
1941
+ }
1942
+ .select__menu.is-visible,
1943
+ .ce-dropdown__menu.is-visible {
1944
+ opacity: 1 !important;
1945
+ visibility: visible !important;
1946
+ pointer-events: auto !important;
1947
+ transform: translateY(0) !important;
1948
+ }
1949
+ .select--open .select__menu,
1950
+ .select--open .ce-dropdown__menu,
1951
+ .ce-dropdown--open .select__menu,
1952
+ .ce-dropdown--open .ce-dropdown__menu {
1953
+ opacity: 1 !important;
1954
+ visibility: visible !important;
1955
+ pointer-events: auto !important;
1956
+ transform: translateY(0) !important;
1957
+ }
1958
+ .select__toggle[aria-expanded=true] ~ .select__menu,
1959
+ .select__toggle[aria-expanded=true] ~ .ce-dropdown__menu,
1960
+ .ce-dropdown__toggle[aria-expanded=true] ~ .select__menu,
1961
+ .ce-dropdown__toggle[aria-expanded=true] ~ .ce-dropdown__menu {
1962
+ opacity: 1 !important;
1963
+ visibility: visible !important;
1964
+ pointer-events: auto !important;
1965
+ transform: translateY(0) !important;
1966
+ }
1967
+ .select:focus-within .select__menu,
1968
+ .select:focus-within .ce-dropdown__menu,
1969
+ .ce-dropdown:focus-within .select__menu,
1970
+ .ce-dropdown:focus-within .ce-dropdown__menu {
1971
+ opacity: 1 !important;
1972
+ visibility: visible !important;
1973
+ pointer-events: auto !important;
1974
+ transform: translateY(0) !important;
1975
+ }
1976
+ .select:hover .select__menu,
1977
+ .select:hover .ce-dropdown__menu,
1978
+ .ce-dropdown:hover .select__menu,
1979
+ .ce-dropdown:hover .ce-dropdown__menu {
1980
+ opacity: 1 !important;
1981
+ visibility: visible !important;
1982
+ pointer-events: auto !important;
1983
+ transform: translateY(0) !important;
1984
+ }
1985
+ .select__item,
1986
+ .ce-dropdown__item {
1987
+ padding: var(--ce-select-item-padding, 0.75rem 1rem);
1988
+ cursor: pointer;
1989
+ transition: background-color 0.15s ease;
1990
+ display: flex;
1991
+ align-items: center;
1992
+ gap: var(--ce-select-item-gap, 0.75rem);
1993
+ border: none;
1994
+ background: none;
1995
+ width: 100%;
1996
+ text-align: left;
1997
+ font-size: 0.9375rem;
1998
+ color: #202124;
1999
+ }
2000
+ .select__item:hover,
2001
+ .ce-dropdown__item:hover {
2002
+ background-color: #f8f9fa;
2003
+ }
2004
+ .select__item:focus, .select__item:focus-visible,
2005
+ .ce-dropdown__item:focus,
2006
+ .ce-dropdown__item:focus-visible {
2007
+ background-color: rgba(26, 115, 232, 0.1);
2008
+ outline: none;
2009
+ }
2010
+ .select__item--selected,
2011
+ .ce-dropdown__item--selected {
2012
+ background-color: rgba(26, 115, 232, 0.1);
2013
+ color: #1a73e8;
2014
+ font-weight: 500;
2015
+ }
2016
+ .select__item--disabled,
2017
+ .ce-dropdown__item--disabled {
2018
+ opacity: 0.5;
2019
+ cursor: not-allowed;
2020
+ pointer-events: none;
2021
+ }
2022
+ .select__item-icon,
2023
+ .ce-dropdown__item-icon {
2024
+ font-size: 1.25em;
2025
+ flex-shrink: 0;
2026
+ }
2027
+ .select__item-content,
2028
+ .ce-dropdown__item-content {
2029
+ flex: 1;
2030
+ min-width: 0;
2031
+ }
2032
+ .select__item-label,
2033
+ .ce-dropdown__item-label {
2034
+ display: block;
2035
+ font-weight: 500;
2036
+ }
2037
+ .select__item-description,
2038
+ .ce-dropdown__item-description {
2039
+ display: block;
2040
+ font-size: 0.8125rem;
2041
+ color: #9aa0a6;
2042
+ margin-top: 0.125rem;
2043
+ }
2044
+ .select--error .select__trigger,
2045
+ .select--error .select__toggle,
2046
+ .select--error .ce-dropdown__trigger,
2047
+ .select--error .ce-dropdown__toggle,
2048
+ .ce-dropdown--error .select__trigger,
2049
+ .ce-dropdown--error .select__toggle,
2050
+ .ce-dropdown--error .ce-dropdown__trigger,
2051
+ .ce-dropdown--error .ce-dropdown__toggle {
2052
+ border-color: #ea4335;
2053
+ }
2054
+ .select:disabled .select__trigger,
2055
+ .select:disabled .select__toggle,
2056
+ .select:disabled .ce-dropdown__trigger,
2057
+ .select:disabled .ce-dropdown__toggle,
2058
+ .ce-dropdown:disabled .select__trigger,
2059
+ .ce-dropdown:disabled .select__toggle,
2060
+ .ce-dropdown:disabled .ce-dropdown__trigger,
2061
+ .ce-dropdown:disabled .ce-dropdown__toggle {
2062
+ background-color: #f8f9fa;
2063
+ color: #9aa0a6;
2064
+ cursor: not-allowed;
2065
+ opacity: 0.6;
2066
+ }
2067
+
2068
+ select.select {
2069
+ width: 100%;
2070
+ padding: 0.5rem 1rem;
2071
+ background-color: #ffffff;
2072
+ color: #202124;
2073
+ border: 1px solid #9aa0a6;
2074
+ border-radius: 4px;
2075
+ appearance: none;
2076
+ background-image: url('data:image/svg+xml;utf8,<svg fill="gray" height="24" width="24" viewBox="0 0 24 24"><path d="M7 10l5 5 5-5z"/></svg>');
2077
+ background-repeat: no-repeat;
2078
+ background-position: right 1rem center;
2079
+ background-size: 1rem;
2080
+ }
2081
+ select.select:focus {
2082
+ border-color: #1a73e8;
2083
+ outline: none;
2084
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
2085
+ }
2086
+ select.select:disabled {
2087
+ background-color: #f8f9fa;
2088
+ color: #9aa0a6;
2089
+ cursor: not-allowed;
2090
+ }
2091
+
2092
+ .checkbox,
2093
+ .ce-checkbox {
2094
+ display: inline-flex;
2095
+ align-items: center;
2096
+ gap: var(--ce-checkbox-gap, 0.5rem);
2097
+ cursor: var(--ce-checkbox-cursor, pointer);
2098
+ font-size: var(--ce-checkbox-size, 1rem);
2099
+ position: relative;
2100
+ color: var(--ce-checkbox-color, inherit);
2101
+ }
2102
+ .checkbox input[type=checkbox],
2103
+ .ce-checkbox input[type=checkbox] {
2104
+ appearance: none;
2105
+ -webkit-appearance: none;
2106
+ -moz-appearance: none;
2107
+ width: var(--ce-checkbox-box-size, 1.125rem) !important;
2108
+ height: var(--ce-checkbox-box-size, 1.125rem) !important;
2109
+ min-width: var(--ce-checkbox-box-size, 1.125rem) !important;
2110
+ max-width: var(--ce-checkbox-box-size, 1.125rem) !important;
2111
+ min-height: var(--ce-checkbox-box-size, 1.125rem) !important;
2112
+ max-height: var(--ce-checkbox-box-size, 1.125rem) !important;
2113
+ border-width: var(--ce-checkbox-border-width, 2px);
2114
+ border-style: var(--ce-checkbox-border-style, solid);
2115
+ border-color: var(--ce-checkbox-border-color, #cbd5e0);
2116
+ border-radius: var(--ce-checkbox-radius, 0.25rem);
2117
+ background-color: var(--ce-checkbox-bg, white);
2118
+ cursor: var(--ce-checkbox-cursor, pointer);
2119
+ margin: 0;
2120
+ padding: 0;
2121
+ flex-shrink: 0;
2122
+ position: relative;
2123
+ transition: all var(--ce-checkbox-transition, 0.2s) var(--ce-checkbox-transition-ease, ease);
2124
+ box-sizing: border-box;
2125
+ }
2126
+ .checkbox input[type=checkbox]:hover,
2127
+ .ce-checkbox input[type=checkbox]:hover {
2128
+ border-color: var(--ce-checkbox-hover-border, #3b82f6);
2129
+ }
2130
+ .checkbox input[type=checkbox]:checked,
2131
+ .ce-checkbox input[type=checkbox]:checked {
2132
+ background-color: var(--ce-checkbox-checked-bg, #3b82f6);
2133
+ border-color: var(--ce-checkbox-checked-border, #3b82f6);
2134
+ }
2135
+ .checkbox input[type=checkbox]:checked::after,
2136
+ .ce-checkbox input[type=checkbox]:checked::after {
2137
+ content: "";
2138
+ position: absolute;
2139
+ left: var(--ce-checkbox-check-left, 0.3rem);
2140
+ top: var(--ce-checkbox-check-top, 0.05rem);
2141
+ width: var(--ce-checkbox-check-width, 0.35rem);
2142
+ height: var(--ce-checkbox-check-height, 0.65rem);
2143
+ border: solid var(--ce-checkbox-check-color, white);
2144
+ border-width: 0 var(--ce-checkbox-check-stroke, 2px) var(--ce-checkbox-check-stroke, 2px) 0;
2145
+ transform: rotate(45deg);
2146
+ }
2147
+ .checkbox input[type=checkbox]:focus,
2148
+ .ce-checkbox input[type=checkbox]:focus {
2149
+ outline-width: var(--ce-checkbox-focus-outline-width, 2px);
2150
+ outline-style: var(--ce-checkbox-focus-outline-style, solid);
2151
+ outline-color: var(--ce-checkbox-focus-outline-color, rgba(59, 130, 246, 0.3));
2152
+ outline-offset: var(--ce-checkbox-focus-outline-offset, 2px);
2153
+ }
2154
+ .checkbox input[type=checkbox]:disabled,
2155
+ .ce-checkbox input[type=checkbox]:disabled {
2156
+ cursor: var(--ce-checkbox-disabled-cursor, not-allowed);
2157
+ opacity: var(--ce-checkbox-disabled-opacity, 0.5);
2158
+ background-color: var(--ce-checkbox-disabled-bg, #f7fafc);
2159
+ }
2160
+ .checkbox--disabled,
2161
+ .ce-checkbox--disabled {
2162
+ color: var(--ce-checkbox-disabled-color, #9aa0a6);
2163
+ cursor: var(--ce-checkbox-disabled-cursor, not-allowed);
2164
+ }
2165
+ .checkbox--disabled input[type=checkbox],
2166
+ .ce-checkbox--disabled input[type=checkbox] {
2167
+ cursor: var(--ce-checkbox-disabled-cursor, not-allowed);
2168
+ }
2169
+
2170
+ ce-checkbox {
2171
+ display: inline-block;
2172
+ }
2173
+ ce-checkbox > input[type=checkbox],
2174
+ ce-checkbox input[type=checkbox] {
2175
+ appearance: none;
2176
+ -webkit-appearance: none;
2177
+ -moz-appearance: none;
2178
+ display: inline-block;
2179
+ width: var(--ce-checkbox-box-size, 1.125rem) !important;
2180
+ height: var(--ce-checkbox-box-size, 1.125rem) !important;
2181
+ min-width: var(--ce-checkbox-box-size, 1.125rem) !important;
2182
+ max-width: var(--ce-checkbox-box-size, 1.125rem) !important;
2183
+ min-height: var(--ce-checkbox-box-size, 1.125rem) !important;
2184
+ max-height: var(--ce-checkbox-box-size, 1.125rem) !important;
2185
+ border-width: var(--ce-checkbox-border-width, 2px);
2186
+ border-style: var(--ce-checkbox-border-style, solid);
2187
+ border-color: var(--ce-checkbox-border-color, #cbd5e0);
2188
+ border-radius: var(--ce-checkbox-radius, 0.25rem);
2189
+ background-color: var(--ce-checkbox-bg, white);
2190
+ cursor: var(--ce-checkbox-cursor, pointer);
2191
+ margin: 0;
2192
+ padding: 0;
2193
+ flex-shrink: 0;
2194
+ position: relative;
2195
+ transition: all var(--ce-checkbox-transition, 0.2s) var(--ce-checkbox-transition-ease, ease);
2196
+ vertical-align: middle;
2197
+ box-sizing: border-box;
2198
+ }
2199
+ ce-checkbox > input[type=checkbox]:hover,
2200
+ ce-checkbox input[type=checkbox]:hover {
2201
+ border-color: var(--ce-checkbox-hover-border, #3b82f6);
2202
+ }
2203
+ ce-checkbox > input[type=checkbox]:checked,
2204
+ ce-checkbox input[type=checkbox]:checked {
2205
+ background-color: var(--ce-checkbox-checked-bg, #3b82f6);
2206
+ border-color: var(--ce-checkbox-checked-border, #3b82f6);
2207
+ }
2208
+ ce-checkbox > input[type=checkbox]:checked::after,
2209
+ ce-checkbox input[type=checkbox]:checked::after {
2210
+ content: "";
2211
+ position: absolute;
2212
+ left: var(--ce-checkbox-check-left, 0.3rem);
2213
+ top: var(--ce-checkbox-check-top, 0.05rem);
2214
+ width: var(--ce-checkbox-check-width, 0.35rem);
2215
+ height: var(--ce-checkbox-check-height, 0.65rem);
2216
+ border: solid var(--ce-checkbox-check-color, white);
2217
+ border-width: 0 var(--ce-checkbox-check-stroke, 2px) var(--ce-checkbox-check-stroke, 2px) 0;
2218
+ transform: rotate(45deg);
2219
+ }
2220
+ ce-checkbox > input[type=checkbox]:focus,
2221
+ ce-checkbox input[type=checkbox]:focus {
2222
+ outline-width: var(--ce-checkbox-focus-outline-width, 2px);
2223
+ outline-style: var(--ce-checkbox-focus-outline-style, solid);
2224
+ outline-color: var(--ce-checkbox-focus-outline-color, rgba(59, 130, 246, 0.3));
2225
+ outline-offset: var(--ce-checkbox-focus-outline-offset, 2px);
2226
+ }
2227
+ ce-checkbox > input[type=checkbox]:disabled,
2228
+ ce-checkbox input[type=checkbox]:disabled {
2229
+ cursor: var(--ce-checkbox-disabled-cursor, not-allowed);
2230
+ opacity: var(--ce-checkbox-disabled-opacity, 0.5);
2231
+ background-color: var(--ce-checkbox-disabled-bg, #f7fafc);
2232
+ }
2233
+
2234
+ ce-checkbox > div > input[type=checkbox] {
2235
+ appearance: none;
2236
+ -webkit-appearance: none;
2237
+ -moz-appearance: none;
2238
+ display: inline-block;
2239
+ width: var(--ce-checkbox-box-size, 1.125rem) !important;
2240
+ height: var(--ce-checkbox-box-size, 1.125rem) !important;
2241
+ min-width: var(--ce-checkbox-box-size, 1.125rem) !important;
2242
+ max-width: var(--ce-checkbox-box-size, 1.125rem) !important;
2243
+ min-height: var(--ce-checkbox-box-size, 1.125rem) !important;
2244
+ max-height: var(--ce-checkbox-box-size, 1.125rem) !important;
2245
+ border-width: var(--ce-checkbox-border-width, 2px);
2246
+ border-style: var(--ce-checkbox-border-style, solid);
2247
+ border-color: var(--ce-checkbox-border-color, #cbd5e0);
2248
+ border-radius: var(--ce-checkbox-radius, 0.25rem);
2249
+ background-color: var(--ce-checkbox-bg, white);
2250
+ cursor: var(--ce-checkbox-cursor, pointer);
2251
+ margin: 0;
2252
+ padding: 0;
2253
+ position: relative;
2254
+ transition: all var(--ce-checkbox-transition, 0.2s) var(--ce-checkbox-transition-ease, ease);
2255
+ box-sizing: border-box;
2256
+ }
2257
+ ce-checkbox > div > input[type=checkbox]:hover {
2258
+ border-color: var(--ce-checkbox-hover-border, #3b82f6);
2259
+ }
2260
+ ce-checkbox > div > input[type=checkbox]:checked {
2261
+ background-color: var(--ce-checkbox-checked-bg, #3b82f6);
2262
+ border-color: var(--ce-checkbox-checked-border, #3b82f6);
2263
+ }
2264
+ ce-checkbox > div > input[type=checkbox]:checked::after {
2265
+ content: "";
2266
+ position: absolute;
2267
+ left: var(--ce-checkbox-check-left, 0.3rem);
2268
+ top: var(--ce-checkbox-check-top, 0.05rem);
2269
+ width: var(--ce-checkbox-check-width, 0.35rem);
2270
+ height: var(--ce-checkbox-check-height, 0.65rem);
2271
+ border: solid var(--ce-checkbox-check-color, white);
2272
+ border-width: 0 var(--ce-checkbox-check-stroke, 2px) var(--ce-checkbox-check-stroke, 2px) 0;
2273
+ transform: rotate(45deg);
2274
+ }
2275
+
2276
+ .radio {
2277
+ display: var(--ce-radio-display, flex);
2278
+ align-items: var(--ce-radio-align, center);
2279
+ gap: var(--ce-radio-gap, 0.5rem);
2280
+ cursor: var(--ce-radio-cursor, pointer);
2281
+ font-size: var(--ce-radio-size, 1rem);
2282
+ }
2283
+ .radio input[type=radio] {
2284
+ width: var(--ce-radio-input-size, 1rem);
2285
+ height: var(--ce-radio-input-size, 1rem);
2286
+ accent-color: var(--ce-radio-input-accent, #1a73e8);
2287
+ cursor: var(--ce-radio-input-cursor, pointer);
2288
+ }
2289
+ .radio--disabled {
2290
+ color: var(--ce-radio-disabled-color, #9aa0a6);
2291
+ cursor: var(--ce-radio-disabled-cursor, not-allowed);
2292
+ }
2293
+ .radio--disabled input[type=radio] {
2294
+ cursor: var(--ce-radio-disabled-input-cursor, not-allowed);
2295
+ }
2296
+
2297
+ .toggle {
2298
+ position: relative;
2299
+ width: 2.5rem;
2300
+ height: 1.4rem;
2301
+ }
2302
+ .toggle input {
2303
+ opacity: 0;
2304
+ width: 0;
2305
+ height: 0;
2306
+ }
2307
+ .toggle .slider {
2308
+ position: absolute;
2309
+ top: 0;
2310
+ left: 0;
2311
+ right: 0;
2312
+ bottom: 0;
2313
+ background-color: #9aa0a6;
2314
+ border-radius: 10px;
2315
+ transition: 0.4s;
2316
+ cursor: pointer;
2317
+ }
2318
+ .toggle .slider::before {
2319
+ content: "";
2320
+ position: absolute;
2321
+ height: 1rem;
2322
+ width: 1rem;
2323
+ left: 4px;
2324
+ bottom: 4px;
2325
+ background-color: #ffffff;
2326
+ transition: 0.4s;
2327
+ border-radius: var(--ce-toggle-thumb-radius, var(--ce-radius-circle, 50%));
2328
+ }
2329
+ .toggle input:checked + .slider {
2330
+ background-color: #1a73e8;
2331
+ }
2332
+ .toggle input:checked + .slider::before {
2333
+ transform: translateX(1.1rem);
2334
+ }
2335
+
2336
+ .range-slider {
2337
+ width: 100%;
2338
+ max-width: 300px;
2339
+ margin: 1rem 0;
2340
+ }
2341
+ .range-slider input[type=range] {
2342
+ -webkit-appearance: none;
2343
+ appearance: none;
2344
+ width: 100%;
2345
+ height: 6px;
2346
+ background: var(--theme-range-track, #f8f9fa);
2347
+ border-radius: 4px;
2348
+ outline: none;
2349
+ transition: background 0.3s;
2350
+ }
2351
+ .range-slider input[type=range]::-webkit-slider-thumb {
2352
+ -webkit-appearance: none;
2353
+ appearance: none;
2354
+ width: 16px;
2355
+ height: 16px;
2356
+ background: var(--theme-range-thumb, #1a73e8);
2357
+ border: 2px solid var(--theme-range-thumb-border, #ffffff);
2358
+ border-radius: 50%;
2359
+ cursor: pointer;
2360
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
2361
+ transition: background 0.3s;
2362
+ }
2363
+ .range-slider input[type=range]::-moz-range-thumb {
2364
+ width: 16px;
2365
+ height: 16px;
2366
+ background: var(--theme-range-thumb, #1a73e8);
2367
+ border: 2px solid var(--theme-range-thumb-border, #ffffff);
2368
+ border-radius: 50%;
2369
+ cursor: pointer;
2370
+ }
2371
+ .range-slider input[type=range]:hover::-webkit-slider-thumb {
2372
+ background: var(--theme-range-thumb-hover, rgb(18.8928571429, 92, 188.1071428571));
2373
+ }
2374
+ .range-slider input[type=range]:hover::-webkit-slider-thumb:focus-visible {
2375
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
2376
+ outline-offset: 2px;
2377
+ }
2378
+
2379
+ .file-upload {
2380
+ display: flex;
2381
+ flex-direction: column;
2382
+ gap: 0.5rem;
2383
+ width: 100%;
2384
+ max-width: 400px;
2385
+ }
2386
+ .file-upload__label {
2387
+ font-size: 1rem;
2388
+ font-weight: 500;
2389
+ color: var(--theme-file-upload-label, #202124);
2390
+ margin-bottom: 0.25rem;
2391
+ }
2392
+ .file-upload__input {
2393
+ display: none;
2394
+ }
2395
+ .file-upload__dropzone {
2396
+ display: flex;
2397
+ align-items: center;
2398
+ justify-content: center;
2399
+ padding: 1.5rem;
2400
+ border: 2px dashed var(--theme-file-upload-border, #9aa0a6);
2401
+ border-radius: 8px;
2402
+ background-color: var(--theme-file-upload-bg, #f8f9fa);
2403
+ color: var(--theme-file-upload-fg, #202124);
2404
+ cursor: pointer;
2405
+ transition: border-color 0.2s, background-color 0.2s;
2406
+ text-align: center;
2407
+ }
2408
+ .file-upload__dropzone:hover, .file-upload__dropzone:focus-visible {
2409
+ border-color: var(--theme-file-upload-hover, #1a73e8);
2410
+ background-color: var(--theme-file-upload-hover-bg, #ffffff);
2411
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
2412
+ outline-offset: 2px;
2413
+ }
2414
+ .file-upload__list {
2415
+ margin-top: 0.5rem;
2416
+ list-style: none;
2417
+ padding: 0;
2418
+ font-size: 0.95rem;
2419
+ color: var(--theme-file-upload-list, #202124);
2420
+ }
2421
+ .file-upload__item {
2422
+ margin-bottom: 0.25rem;
2423
+ display: flex;
2424
+ align-items: center;
2425
+ gap: 0.25rem;
2426
+ }
2427
+
2428
+ .date-picker {
2429
+ width: 100%;
2430
+ }
2431
+ .date-picker input[type=date],
2432
+ .date-picker input[type=datetime-local] {
2433
+ padding: var(--ce-date-picker-padding, 0.5rem 1rem);
2434
+ border-width: var(--ce-date-picker-border-width, 1px);
2435
+ border-style: var(--ce-date-picker-border-style, solid);
2436
+ border-color: var(--ce-date-picker-border-color, var(--theme-date-picker-border, #9aa0a6));
2437
+ border-radius: var(--ce-date-picker-radius, 4px);
2438
+ background-color: var(--ce-date-picker-bg, var(--theme-date-picker-bg, #ffffff));
2439
+ color: var(--ce-date-picker-color, var(--theme-date-picker-fg, #202124));
2440
+ width: var(--ce-date-picker-width, 100%);
2441
+ }
2442
+ .date-picker input[type=date]:focus,
2443
+ .date-picker input[type=datetime-local]:focus {
2444
+ border-color: var(--ce-date-picker-focus-border, var(--theme-date-picker-focus, #1a73e8));
2445
+ box-shadow: var(--ce-date-picker-focus-shadow, 0 0 0 3px rgba(26, 115, 232, 0.2));
2446
+ }
2447
+ .date-picker input[type=date]:focus-visible,
2448
+ .date-picker input[type=datetime-local]:focus-visible {
2449
+ outline-width: var(--ce-date-picker-outline-width, 2px);
2450
+ outline-style: var(--ce-date-picker-outline-style, solid);
2451
+ outline-color: var(--ce-date-picker-outline-color, var(--theme-accent, var(--theme-primary)));
2452
+ outline-offset: var(--ce-date-picker-outline-offset, 2px);
2453
+ }
2454
+
2455
+ .form-group {
2456
+ margin-bottom: var(--ce-form-group-margin, 1.5rem);
2457
+ }
2458
+ .form-group label {
2459
+ display: var(--ce-form-group-label-display, block);
2460
+ margin-bottom: var(--ce-form-group-label-margin, 0.25rem);
2461
+ font-weight: var(--ce-form-group-label-weight, bold);
2462
+ color: var(--ce-form-group-label-color, #202124);
2463
+ }
2464
+ .form-group .form-description {
2465
+ margin-top: var(--ce-form-group-desc-margin, 0.25rem);
2466
+ font-size: var(--ce-form-group-desc-size, 0.875rem);
2467
+ color: var(--ce-form-group-desc-color, #9aa0a6);
2468
+ }
2469
+ .form-group .form-error {
2470
+ color: var(--ce-form-group-error-color, #ea4335);
2471
+ font-size: var(--ce-form-group-error-size, 0.875rem);
2472
+ margin-top: var(--ce-form-group-error-margin, 0.25rem);
2473
+ }
2474
+
2475
+ .button,
2476
+ .ce-btn {
2477
+ --ce-button-bg: var(--ce-component-button-background, var(--ce-color-primary, var(--theme-primary, #1a73e8)));
2478
+ --ce-button-color: var(--ce-component-button-foreground, var(--ce-color-text, var(--theme-fg, #ffffff)));
2479
+ --ce-button-border: var(--ce-component-button-border, var(--ce-color-primary, var(--theme-primary, #1a73e8)));
2480
+ --ce-button-radius: var(--ce-component-button-radius, var(--ce-radius-md, 8px));
2481
+ --ce-button-padding-y: var(--ce-component-button-padding-y, var(--ce-space-8, 0.5rem));
2482
+ --ce-button-padding-x: var(--ce-component-button-padding-x, var(--ce-space-16, 1rem));
2483
+ --ce-button-font-size: var(--ce-component-button-font-size, 1rem);
2484
+ --ce-button-font-weight: var(--ce-component-button-font-weight, 500);
2485
+ --ce-button-line-height: var(--ce-component-button-line-height, 1.2);
2486
+ --ce-button-focus-ring: var(--ce-component-button-focus-ring, var(--ce-color-focus-ring, var(--theme-accent, #1a73e8)));
2487
+ --ce-button-hover-bg: var(--ce-component-button-hover-background, var(--ce-button-bg));
2488
+ background-color: var(--ce-button-bg);
2489
+ color: var(--ce-button-color);
2490
+ display: inline-flex;
2491
+ align-items: center;
2492
+ justify-content: center;
2493
+ font-family: inherit;
2494
+ font-size: var(--ce-button-font-size);
2495
+ font-weight: var(--ce-button-font-weight);
2496
+ line-height: var(--ce-button-line-height);
2497
+ padding: var(--ce-button-padding-y) var(--ce-button-padding-x);
2498
+ border-radius: var(--ce-button-radius);
2499
+ cursor: pointer;
2500
+ text-align: center;
2501
+ text-decoration: none;
2502
+ border: 1px solid var(--ce-button-border);
2503
+ outline: none;
2504
+ transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
2505
+ width: fit-content;
2506
+ max-width: 100%;
2507
+ min-width: auto;
2508
+ white-space: nowrap;
2509
+ flex-shrink: 0;
2510
+ box-sizing: border-box;
2511
+ }
2512
+ .button:disabled,
2513
+ .ce-btn:disabled {
2514
+ cursor: not-allowed;
2515
+ opacity: 0.6;
2516
+ pointer-events: none;
2517
+ }
2518
+ .button--primary,
2519
+ .ce-btn--primary {
2520
+ --ce-button-bg: var(--ce-button-primary-bg, var(--ce-color-primary, var(--theme-primary, #1a73e8)));
2521
+ --ce-button-color: var(--ce-button-primary-color, var(--ce-color-text, var(--theme-fg, #ffffff)));
2522
+ --ce-button-border: var(--ce-button-primary-border, var(--ce-button-bg));
2523
+ --ce-button-hover-bg: var(--ce-button-primary-hover, var(--theme-primary-hover, rgb(20.2892857143, 98.8, 202.0107142857)));
2524
+ }
2525
+ .button--primary:hover:not(:disabled),
2526
+ .ce-btn--primary:hover:not(:disabled) {
2527
+ background-color: var(--ce-button-hover-bg);
2528
+ }
2529
+ .button--secondary,
2530
+ .ce-btn--secondary {
2531
+ --ce-button-bg: var(--ce-button-secondary-bg, #fbbc04);
2532
+ --ce-button-color: var(--ce-button-secondary-color, #202124);
2533
+ --ce-button-border: var(--ce-button-secondary-border, #fbbc04);
2534
+ --ce-button-hover-bg: var(--ce-button-secondary-hover, rgb(215.86, 161.68, 3.44));
2535
+ }
2536
+ .button--secondary:hover:not(:disabled),
2537
+ .ce-btn--secondary:hover:not(:disabled) {
2538
+ background-color: var(--ce-button-hover-bg);
2539
+ }
2540
+ .button--glass,
2541
+ .ce-btn--glass {
2542
+ --ce-button-bg: var(--ce-button-glass-bg, rgba(255, 255, 255, 0.1));
2543
+ --ce-button-border: var(--ce-button-glass-border, rgba(255, 255, 255, 0.2));
2544
+ --ce-button-color: var(--ce-button-glass-color, var(--theme-fg, #ffffff));
2545
+ background-color: var(--ce-button-bg);
2546
+ -webkit-backdrop-filter: blur(10px);
2547
+ backdrop-filter: blur(10px);
2548
+ border: 1px solid var(--ce-button-border);
2549
+ color: var(--ce-button-color);
2550
+ }
2551
+ .button--success,
2552
+ .ce-btn--success {
2553
+ --ce-button-bg: var(--ce-button-success-bg, #34a853);
2554
+ --ce-button-color: var(--ce-button-success-color, #ffffff);
2555
+ --ce-button-border: var(--ce-button-success-border, #34a853);
2556
+ --ce-button-hover-bg: var(--ce-button-success-hover, rgb(43.5618181818, 140.7381818182, 69.5313636364));
2557
+ }
2558
+ .button--success:hover:not(:disabled),
2559
+ .ce-btn--success:hover:not(:disabled) {
2560
+ background-color: var(--ce-button-hover-bg);
2561
+ }
2562
+ .button--danger,
2563
+ .ce-btn--danger {
2564
+ --ce-button-bg: var(--ce-button-danger-bg, #ea4335);
2565
+ --ce-button-color: var(--ce-button-danger-color, #ffffff);
2566
+ --ce-button-border: var(--ce-button-danger-border, #ea4335);
2567
+ --ce-button-hover-bg: var(--ce-button-danger-hover, rgb(227.6349775785, 39.4417040359, 23.6650224215));
2568
+ }
2569
+ .button--danger:hover:not(:disabled),
2570
+ .ce-btn--danger:hover:not(:disabled) {
2571
+ background-color: var(--ce-button-hover-bg);
2572
+ }
2573
+ .button--warning,
2574
+ .ce-btn--warning {
2575
+ --ce-button-bg: var(--ce-button-warning-bg, #f9ab00);
2576
+ --ce-button-color: var(--ce-button-warning-color, #000000);
2577
+ --ce-button-border: var(--ce-button-warning-border, #f9ab00);
2578
+ --ce-button-hover-bg: var(--ce-button-warning-hover, rgb(213.3, 146.4831325301, 0));
2579
+ }
2580
+ .button--warning:hover:not(:disabled),
2581
+ .ce-btn--warning:hover:not(:disabled) {
2582
+ background-color: var(--ce-button-hover-bg);
2583
+ }
2584
+ .button--info,
2585
+ .ce-btn--info {
2586
+ --ce-button-bg: var(--ce-button-info-bg, #4285f4);
2587
+ --ce-button-color: var(--ce-button-info-color, #ffffff);
2588
+ --ce-button-border: var(--ce-button-info-border, #4285f4);
2589
+ --ce-button-hover-bg: var(--ce-button-info-hover, rgb(32.2635, 111.223, 242.0365));
2590
+ }
2591
+ .button--info:hover:not(:disabled),
2592
+ .ce-btn--info:hover:not(:disabled) {
2593
+ background-color: var(--ce-button-hover-bg);
2594
+ }
2595
+ .button--light,
2596
+ .ce-btn--light {
2597
+ --ce-button-bg: var(--ce-button-light-bg, #f8f9fa);
2598
+ --ce-button-color: var(--ce-button-light-color, #202124);
2599
+ --ce-button-border: var(--ce-button-light-border, #f8f9fa);
2600
+ --ce-button-hover-bg: var(--ce-button-light-hover, rgb(218.25, 223.5, 228.75));
2601
+ }
2602
+ .button--light:hover:not(:disabled),
2603
+ .ce-btn--light:hover:not(:disabled) {
2604
+ background-color: var(--ce-button-hover-bg);
2605
+ }
2606
+ .button--dark,
2607
+ .ce-btn--dark {
2608
+ --ce-button-bg: var(--ce-button-dark-bg, #202124);
2609
+ --ce-button-color: var(--ce-button-dark-color, #ffffff);
2610
+ --ce-button-border: var(--ce-button-dark-border, #202124);
2611
+ --ce-button-hover-bg: var(--ce-button-dark-hover, rgb(44, 45.375, 49.5));
2612
+ }
2613
+ .button--dark:hover:not(:disabled),
2614
+ .ce-btn--dark:hover:not(:disabled) {
2615
+ background-color: var(--ce-button-hover-bg);
2616
+ }
2617
+ .button--outline,
2618
+ .ce-btn--outline {
2619
+ background-color: transparent !important;
2620
+ border: 1px solid currentColor;
2621
+ }
2622
+ .button--outline.ce-btn--primary, .button--outline.button--primary,
2623
+ .ce-btn--outline.ce-btn--primary,
2624
+ .ce-btn--outline.button--primary {
2625
+ color: var(--ce-button-outline-primary-color, #1a73e8);
2626
+ border-color: var(--ce-button-outline-primary-border, #1a73e8);
2627
+ }
2628
+ .button--outline.ce-btn--primary:hover:not(:disabled), .button--outline.button--primary:hover:not(:disabled),
2629
+ .ce-btn--outline.ce-btn--primary:hover:not(:disabled),
2630
+ .ce-btn--outline.button--primary:hover:not(:disabled) {
2631
+ background-color: var(--ce-button-outline-primary-hover, rgba(26, 115, 232, 0.1)) !important;
2632
+ }
2633
+ .button--outline.ce-btn--secondary, .button--outline.button--secondary,
2634
+ .ce-btn--outline.ce-btn--secondary,
2635
+ .ce-btn--outline.button--secondary {
2636
+ color: var(--ce-button-outline-secondary-color, #fbbc04);
2637
+ border-color: var(--ce-button-outline-secondary-border, #fbbc04);
2638
+ }
2639
+ .button--outline.ce-btn--secondary:hover:not(:disabled), .button--outline.button--secondary:hover:not(:disabled),
2640
+ .ce-btn--outline.ce-btn--secondary:hover:not(:disabled),
2641
+ .ce-btn--outline.button--secondary:hover:not(:disabled) {
2642
+ background-color: var(--ce-button-outline-secondary-hover, rgba(251, 188, 4, 0.1)) !important;
2643
+ }
2644
+ .button--outline.ce-btn--success, .button--outline.button--success,
2645
+ .ce-btn--outline.ce-btn--success,
2646
+ .ce-btn--outline.button--success {
2647
+ color: var(--ce-button-outline-success-color, #34a853);
2648
+ border-color: var(--ce-button-outline-success-border, #34a853);
2649
+ }
2650
+ .button--outline.ce-btn--success:hover:not(:disabled), .button--outline.button--success:hover:not(:disabled),
2651
+ .ce-btn--outline.ce-btn--success:hover:not(:disabled),
2652
+ .ce-btn--outline.button--success:hover:not(:disabled) {
2653
+ background-color: var(--ce-button-outline-success-hover, rgba(52, 168, 83, 0.1)) !important;
2654
+ }
2655
+ .button--outline.ce-btn--danger, .button--outline.button--danger,
2656
+ .ce-btn--outline.ce-btn--danger,
2657
+ .ce-btn--outline.button--danger {
2658
+ color: var(--ce-button-outline-danger-color, #ea4335);
2659
+ border-color: var(--ce-button-outline-danger-border, #ea4335);
2660
+ }
2661
+ .button--outline.ce-btn--danger:hover:not(:disabled), .button--outline.button--danger:hover:not(:disabled),
2662
+ .ce-btn--outline.ce-btn--danger:hover:not(:disabled),
2663
+ .ce-btn--outline.button--danger:hover:not(:disabled) {
2664
+ background-color: var(--ce-button-outline-danger-hover, rgba(234, 67, 53, 0.1)) !important;
2665
+ }
2666
+ .button--ghost,
2667
+ .ce-btn--ghost {
2668
+ background-color: transparent !important;
2669
+ border: none;
2670
+ }
2671
+ .button--ghost.ce-btn--primary, .button--ghost.button--primary,
2672
+ .ce-btn--ghost.ce-btn--primary,
2673
+ .ce-btn--ghost.button--primary {
2674
+ color: var(--ce-button-ghost-primary-color, #1a73e8);
2675
+ }
2676
+ .button--ghost.ce-btn--primary:hover:not(:disabled), .button--ghost.button--primary:hover:not(:disabled),
2677
+ .ce-btn--ghost.ce-btn--primary:hover:not(:disabled),
2678
+ .ce-btn--ghost.button--primary:hover:not(:disabled) {
2679
+ background-color: var(--ce-button-ghost-primary-hover, rgba(26, 115, 232, 0.05)) !important;
2680
+ }
2681
+ .button--ghost.ce-btn--secondary, .button--ghost.button--secondary,
2682
+ .ce-btn--ghost.ce-btn--secondary,
2683
+ .ce-btn--ghost.button--secondary {
2684
+ color: var(--ce-button-ghost-secondary-color, #fbbc04);
2685
+ }
2686
+ .button--ghost.ce-btn--secondary:hover:not(:disabled), .button--ghost.button--secondary:hover:not(:disabled),
2687
+ .ce-btn--ghost.ce-btn--secondary:hover:not(:disabled),
2688
+ .ce-btn--ghost.button--secondary:hover:not(:disabled) {
2689
+ background-color: var(--ce-button-ghost-secondary-hover, rgba(251, 188, 4, 0.05)) !important;
2690
+ }
2691
+ .button--ghost.ce-btn--success, .button--ghost.button--success,
2692
+ .ce-btn--ghost.ce-btn--success,
2693
+ .ce-btn--ghost.button--success {
2694
+ color: var(--ce-button-ghost-success-color, #34a853);
2695
+ }
2696
+ .button--ghost.ce-btn--success:hover:not(:disabled), .button--ghost.button--success:hover:not(:disabled),
2697
+ .ce-btn--ghost.ce-btn--success:hover:not(:disabled),
2698
+ .ce-btn--ghost.button--success:hover:not(:disabled) {
2699
+ background-color: var(--ce-button-ghost-success-hover, rgba(52, 168, 83, 0.05)) !important;
2700
+ }
2701
+ .button--ghost.ce-btn--danger, .button--ghost.button--danger,
2702
+ .ce-btn--ghost.ce-btn--danger,
2703
+ .ce-btn--ghost.button--danger {
2704
+ color: var(--ce-button-ghost-danger-color, #ea4335);
2705
+ }
2706
+ .button--ghost.ce-btn--danger:hover:not(:disabled), .button--ghost.button--danger:hover:not(:disabled),
2707
+ .ce-btn--ghost.ce-btn--danger:hover:not(:disabled),
2708
+ .ce-btn--ghost.button--danger:hover:not(:disabled) {
2709
+ background-color: var(--ce-button-ghost-danger-hover, rgba(234, 67, 53, 0.05)) !important;
2710
+ }
2711
+ .button--xs,
2712
+ .ce-btn--xs {
2713
+ --ce-button-font-size: 0.75rem;
2714
+ --ce-button-padding-y: var(--ce-space-4, 0.25rem);
2715
+ --ce-button-padding-x: var(--ce-space-4, 0.25rem);
2716
+ --ce-button-line-height: 1;
2717
+ }
2718
+ .button--sm,
2719
+ .ce-btn--sm {
2720
+ --ce-button-font-size: 0.875rem;
2721
+ --ce-button-padding-y: var(--ce-space-4, 0.25rem);
2722
+ --ce-button-padding-x: var(--ce-space-8, 0.5rem);
2723
+ --ce-button-line-height: 1;
2724
+ letter-spacing: var(--ce-button-letter-spacing, -0.2px);
2725
+ }
2726
+ .button--lg,
2727
+ .ce-btn--lg {
2728
+ --ce-button-font-size: 1.125rem;
2729
+ --ce-button-padding-y: var(--ce-space-16, 1rem);
2730
+ --ce-button-padding-x: var(--ce-space-24, 1.5rem);
2731
+ --ce-button-line-height: 1.4;
2732
+ }
2733
+ .button--xl,
2734
+ .ce-btn--xl {
2735
+ --ce-button-font-size: 1.25rem;
2736
+ --ce-button-padding-y: var(--ce-space-24, 1.5rem);
2737
+ --ce-button-padding-x: var(--ce-space-32, 2rem);
2738
+ --ce-button-line-height: 1.5;
2739
+ }
2740
+ .button--xxl,
2741
+ .ce-btn--xxl {
2742
+ --ce-button-font-size: 1.375rem;
2743
+ --ce-button-padding-y: var(--ce-space-24, 1.5rem);
2744
+ --ce-button-padding-x: var(--ce-space-48, 3rem);
2745
+ --ce-button-line-height: 1.5;
2746
+ }
2747
+ .button--block, .button--full,
2748
+ .ce-btn--block,
2749
+ .ce-btn--full {
2750
+ display: flex;
2751
+ width: 100%;
2752
+ }
2753
+ .button--rounded,
2754
+ .ce-btn--rounded {
2755
+ --ce-button-radius: var(--ce-radius-md, 8px);
2756
+ }
2757
+ .button--pill,
2758
+ .ce-btn--pill {
2759
+ --ce-button-radius: var(--ce-radius-pill, 10px);
2760
+ }
2761
+ .button--circle, .button--square,
2762
+ .ce-btn--circle,
2763
+ .ce-btn--square {
2764
+ --ce-button-padding-y: var(--ce-space-8, 0.5rem);
2765
+ --ce-button-padding-x: var(--ce-space-8, 0.5rem);
2766
+ --ce-button-radius: 50%;
2767
+ width: var(--ce-button-square-size, 2.5rem);
2768
+ height: var(--ce-button-square-size, 2.5rem);
2769
+ justify-content: center;
2770
+ }
2771
+ .button--square,
2772
+ .ce-btn--square {
2773
+ --ce-button-radius: var(--ce-radius-md, 8px);
2774
+ }
2775
+ .button:focus-visible,
2776
+ .ce-btn:focus-visible {
2777
+ outline: 2px solid var(--ce-button-focus-ring);
2778
+ outline-offset: 2px;
2779
+ }
2780
+
2781
+ .icon-button {
2782
+ display: inline-flex;
2783
+ align-items: center;
2784
+ justify-content: center;
2785
+ padding: 0.5rem;
2786
+ width: 2.5rem;
2787
+ height: 2.5rem;
2788
+ border: none;
2789
+ border-radius: 50%;
2790
+ background-color: #f8f9fa;
2791
+ color: #1a73e8;
2792
+ font-size: 1.25rem;
2793
+ cursor: pointer;
2794
+ }
2795
+ .icon-button:hover {
2796
+ background-color: #1a73e8;
2797
+ color: #ffffff;
2798
+ }
2799
+ .icon-button:disabled {
2800
+ opacity: 0.5;
2801
+ cursor: not-allowed;
2802
+ }
2803
+ .icon-button--sm {
2804
+ width: 2rem;
2805
+ height: 2rem;
2806
+ font-size: 1rem;
2807
+ }
2808
+ .icon-button--lg {
2809
+ width: 3rem;
2810
+ height: 3rem;
2811
+ font-size: 1.5rem;
2812
+ }
2813
+
2814
+ .button-group {
2815
+ display: flex;
2816
+ flex-wrap: wrap;
2817
+ border-radius: 8px;
2818
+ overflow: hidden;
2819
+ }
2820
+ .button-group .button {
2821
+ border-radius: 0;
2822
+ margin: 0;
2823
+ }
2824
+ .button-group .button:not(:last-child) {
2825
+ border-right: 1px solid #9aa0a6;
2826
+ }
2827
+ .button-group--vertical {
2828
+ flex-direction: column;
2829
+ }
2830
+ .button-group--vertical .button:not(:last-child) {
2831
+ border-right: none;
2832
+ border-bottom: 1px solid #9aa0a6;
2833
+ }
2834
+ .button-group--rounded .button:first-child {
2835
+ border-top-left-radius: 8px;
2836
+ border-bottom-left-radius: 8px;
2837
+ }
2838
+ .button-group--rounded .button:last-child {
2839
+ border-top-right-radius: 8px;
2840
+ border-bottom-right-radius: 8px;
2841
+ }
2842
+
2843
+ .navbar {
2844
+ display: var(--ce-navbar-display, flex);
2845
+ align-items: var(--ce-navbar-align, center);
2846
+ justify-content: var(--ce-navbar-justify, space-between);
2847
+ padding: var(--ce-navbar-padding, 1rem 2rem);
2848
+ background-color: var(--ce-navbar-bg, #1a73e8);
2849
+ color: var(--ce-navbar-color, #ffffff);
2850
+ z-index: var(--ce-navbar-z, 1020);
2851
+ }
2852
+ .navbar .navbar__brand {
2853
+ font-weight: var(--ce-navbar-brand-weight, bold);
2854
+ font-size: var(--ce-navbar-brand-size, 1.25rem);
2855
+ color: var(--ce-navbar-brand-color, #ffffff);
2856
+ text-decoration: var(--ce-navbar-brand-decoration, none);
2857
+ }
2858
+ .navbar .navbar__links {
2859
+ display: var(--ce-navbar-links-display, flex);
2860
+ gap: var(--ce-navbar-links-gap, 1rem);
2861
+ }
2862
+ .navbar .navbar__links a {
2863
+ color: var(--ce-navbar-link-color, #ffffff);
2864
+ text-decoration: var(--ce-navbar-link-decoration, none);
2865
+ font-weight: var(--ce-navbar-link-weight, 500);
2866
+ }
2867
+ .navbar .navbar__links a:hover {
2868
+ text-decoration: var(--ce-navbar-link-hover-decoration, underline);
2869
+ }
2870
+ .navbar .navbar__menu-toggle {
2871
+ display: var(--ce-navbar-toggle-display, none);
2872
+ background: var(--ce-navbar-toggle-bg, transparent);
2873
+ border: var(--ce-navbar-toggle-border, none);
2874
+ color: var(--ce-navbar-toggle-color, #ffffff);
2875
+ font-size: var(--ce-navbar-toggle-size, 1.5rem);
2876
+ }
2877
+ @media (min-width: 576px) {
2878
+ .navbar .navbar__menu-toggle {
2879
+ display: var(--ce-navbar-toggle-desktop-display, none);
2880
+ }
2881
+ }
2882
+ @media (min-width: 576px) {
2883
+ .navbar .navbar__links {
2884
+ display: var(--ce-navbar-links-desktop-display, flex);
2885
+ }
2886
+ }
2887
+ @media (max-width: 767px) {
2888
+ .navbar {
2889
+ flex-direction: var(--ce-navbar-mobile-direction, column);
2890
+ align-items: var(--ce-navbar-mobile-align, flex-start);
2891
+ }
2892
+ .navbar .navbar__links {
2893
+ display: var(--ce-navbar-mobile-links-display, none);
2894
+ flex-direction: var(--ce-navbar-mobile-links-direction, column);
2895
+ width: var(--ce-navbar-mobile-links-width, 100%);
2896
+ }
2897
+ .navbar .navbar__links.open {
2898
+ display: var(--ce-navbar-mobile-links-open-display, flex);
2899
+ }
2900
+ .navbar .navbar__links a {
2901
+ padding: var(--ce-navbar-mobile-link-padding, 0.5rem 0);
2902
+ border-bottom-width: var(--ce-navbar-mobile-link-border-width, 1px);
2903
+ border-bottom-style: var(--ce-navbar-mobile-link-border-style, solid);
2904
+ border-bottom-color: var(--ce-navbar-mobile-link-border, rgba(255, 255, 255, 0.2));
2905
+ }
2906
+ }
2907
+
2908
+ .sidebar {
2909
+ width: 250px;
2910
+ background-color: #202124;
2911
+ color: #ffffff;
2912
+ height: 100vh;
2913
+ padding: 1.5rem;
2914
+ display: flex;
2915
+ flex-direction: column;
2916
+ position: fixed;
2917
+ top: 0;
2918
+ left: 0;
2919
+ }
2920
+ .sidebar .sidebar__header {
2921
+ font-size: 1.25rem;
2922
+ font-weight: bold;
2923
+ margin-bottom: 2rem;
2924
+ }
2925
+ .sidebar .sidebar__nav {
2926
+ display: flex;
2927
+ flex-direction: column;
2928
+ gap: 0.5rem;
2929
+ }
2930
+ .sidebar .sidebar__nav a {
2931
+ color: #ffffff;
2932
+ text-decoration: none;
2933
+ padding: 0.5rem;
2934
+ border-radius: 4px;
2935
+ }
2936
+ .sidebar .sidebar__nav a:hover {
2937
+ background-color: #1a73e8;
2938
+ }
2939
+ .sidebar .sidebar__nav a.active {
2940
+ background-color: #1a73e8;
2941
+ font-weight: bold;
2942
+ }
2943
+
2944
+ .breadcrumbs {
2945
+ display: flex;
2946
+ align-items: center;
2947
+ gap: var(--ce-breadcrumbs-gap, var(--ce-spacing-sm, 0.5rem));
2948
+ font-size: 0.95rem;
2949
+ color: var(--theme-breadcrumbs-fg, #9aa0a6);
2950
+ padding: 0.25rem 0;
2951
+ list-style: none;
2952
+ }
2953
+ .breadcrumbs__item {
2954
+ display: flex;
2955
+ align-items: center;
2956
+ color: var(--theme-breadcrumbs-item, #202124);
2957
+ text-decoration: none;
2958
+ cursor: pointer;
2959
+ transition: color 0.2s;
2960
+ }
2961
+ .breadcrumbs__item:hover, .breadcrumbs__item:focus-visible {
2962
+ color: var(--theme-breadcrumbs-hover, #1a73e8);
2963
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
2964
+ outline-offset: 2px;
2965
+ }
2966
+ .breadcrumbs__item.active {
2967
+ color: var(--theme-breadcrumbs-active, #1a73e8);
2968
+ font-weight: 600;
2969
+ cursor: default;
2970
+ }
2971
+ .breadcrumbs__separator {
2972
+ color: var(--theme-breadcrumbs-separator, #9aa0a6);
2973
+ margin: var(--ce-breadcrumbs-separator-margin, 0 0.25rem);
2974
+ -webkit-user-select: none;
2975
+ user-select: none;
2976
+ }
2977
+
2978
+ .tabs {
2979
+ display: var(--ce-tabs-display, flex);
2980
+ border-bottom: var(--ce-tabs-border, 2px solid var(--theme-tabs-border, #9aa0a6));
2981
+ overflow-x: var(--ce-tabs-overflow, auto);
2982
+ gap: var(--ce-tabs-gap, 1rem);
2983
+ }
2984
+ .tabs .tab {
2985
+ padding: var(--ce-tabs-tab-padding, 0.5rem 1rem);
2986
+ cursor: var(--ce-tabs-tab-cursor, pointer);
2987
+ font-weight: var(--ce-tabs-tab-weight, 500);
2988
+ border-bottom: var(--ce-tabs-tab-underline, 2px solid transparent);
2989
+ color: var(--ce-tabs-tab-color, var(--theme-tabs-fg, #202124));
2990
+ transition: var(--ce-tabs-tab-transition, border-color 0.2s);
2991
+ }
2992
+ .tabs .tab.active {
2993
+ border-color: var(--ce-tabs-tab-active-border, var(--theme-tabs-active-border, #1a73e8));
2994
+ color: var(--ce-tabs-tab-active-color, var(--theme-tabs-active-fg, #1a73e8));
2995
+ }
2996
+ .tabs .tab:hover {
2997
+ border-color: var(--ce-tabs-tab-hover-border, var(--theme-tabs-hover-border, #1a73e8));
2998
+ }
2999
+ .tabs .tab:hover:focus-visible {
3000
+ outline: var(--ce-tabs-tab-focus-outline, 2px solid var(--theme-accent, var(--theme-primary)));
3001
+ outline-offset: var(--ce-tabs-tab-focus-offset, 2px);
3002
+ }
3003
+
3004
+ .menu {
3005
+ display: var(--ce-menu-display, flex);
3006
+ flex-direction: var(--ce-menu-direction, column);
3007
+ min-width: var(--ce-menu-min-width, 180px);
3008
+ background-color: var(--ce-menu-bg, var(--theme-menu-bg, #ffffff));
3009
+ color: var(--ce-menu-color, var(--theme-menu-fg, #202124));
3010
+ border-radius: var(--ce-menu-radius, 8px);
3011
+ box-shadow: var(--ce-menu-shadow, 0 1px 3px rgba(0, 0, 0, 0.08));
3012
+ border-width: var(--ce-menu-border-width, 1px);
3013
+ border-style: var(--ce-menu-border-style, solid);
3014
+ border-color: var(--ce-menu-border, var(--theme-menu-border, #9aa0a6));
3015
+ padding: var(--ce-menu-padding, 0.25rem 0);
3016
+ font-size: var(--ce-menu-size, 1rem);
3017
+ z-index: var(--ce-menu-z, );
3018
+ }
3019
+ .menu__item {
3020
+ display: var(--ce-menu-item-display, flex);
3021
+ align-items: var(--ce-menu-item-align, center);
3022
+ padding: var(--ce-menu-item-padding, 0.25rem 1rem);
3023
+ cursor: var(--ce-menu-item-cursor, pointer);
3024
+ color: var(--ce-menu-item-color, var(--theme-menu-item-fg, #202124));
3025
+ background: var(--ce-menu-item-bg, none);
3026
+ border: var(--ce-menu-item-border, none);
3027
+ font-size: var(--ce-menu-item-size, inherit);
3028
+ transition: var(--ce-menu-item-transition, background-color 0.2s, color 0.2s);
3029
+ outline: var(--ce-menu-item-outline, none);
3030
+ }
3031
+ .menu__item:hover, .menu__item:focus-visible {
3032
+ background-color: var(--ce-menu-item-hover-bg, var(--theme-menu-item-hover, #1a73e8));
3033
+ color: var(--ce-menu-item-hover-color, var(--theme-menu-item-hover-fg, #ffffff));
3034
+ outline: var(--ce-menu-item-focus-outline, 2px solid var(--theme-accent, var(--theme-primary)));
3035
+ outline-offset: var(--ce-menu-item-focus-offset, 2px);
3036
+ }
3037
+ .menu__item.active {
3038
+ background-color: var(--ce-menu-item-active-bg, var(--theme-menu-item-active, #1a73e8));
3039
+ color: var(--ce-menu-item-active-color, var(--theme-menu-item-active-fg, #ffffff));
3040
+ }
3041
+ .menu__divider {
3042
+ height: var(--ce-menu-divider-height, 1px);
3043
+ background-color: var(--ce-menu-divider-bg, var(--theme-menu-divider, #9aa0a6));
3044
+ margin: var(--ce-menu-divider-margin, 0.25rem 0);
3045
+ border: var(--ce-menu-divider-border, none);
3046
+ }
3047
+
3048
+ .pagination {
3049
+ display: var(--ce-pagination-display, flex);
3050
+ align-items: var(--ce-pagination-align, center);
3051
+ gap: var(--ce-pagination-gap, 0.5rem);
3052
+ list-style: var(--ce-pagination-list-style, none);
3053
+ padding: var(--ce-pagination-padding, 0);
3054
+ margin: var(--ce-pagination-margin, 1rem 0);
3055
+ }
3056
+ .pagination__item {
3057
+ display: var(--ce-pagination-item-display, inline-flex);
3058
+ align-items: var(--ce-pagination-item-align, center);
3059
+ justify-content: var(--ce-pagination-item-justify, center);
3060
+ min-width: var(--ce-pagination-item-min-width, 2rem);
3061
+ height: var(--ce-pagination-item-height, 2rem);
3062
+ border-radius: var(--ce-pagination-item-radius, 4px);
3063
+ background-color: var(--ce-pagination-item-bg, var(--theme-pagination-bg, #f8f9fa));
3064
+ color: var(--ce-pagination-item-fg, var(--theme-pagination-fg, #202124));
3065
+ font-size: var(--ce-pagination-item-size, 1rem);
3066
+ font-weight: var(--ce-pagination-item-weight, 500);
3067
+ cursor: var(--ce-pagination-item-cursor, pointer);
3068
+ transition: var(--ce-pagination-item-transition, background-color 0.2s, color 0.2s);
3069
+ border: var(--ce-pagination-item-border, 1px solid var(--theme-pagination-border, #9aa0a6));
3070
+ }
3071
+ .pagination__item.active {
3072
+ background-color: var(--ce-pagination-item-active-bg, var(--theme-pagination-active-bg, #1a73e8));
3073
+ color: var(--ce-pagination-item-active-fg, var(--theme-pagination-active-fg, #ffffff));
3074
+ border-color: var(--ce-pagination-item-active-border, var(--theme-pagination-active-border, #1a73e8));
3075
+ }
3076
+ .pagination__item:hover {
3077
+ background-color: var(--ce-pagination-item-hover-bg, var(--theme-pagination-hover-bg, #1a73e8));
3078
+ color: var(--ce-pagination-item-hover-fg, var(--theme-pagination-hover-fg, #ffffff));
3079
+ }
3080
+ .pagination__item:focus-visible {
3081
+ outline: var(--ce-pagination-item-focus-outline, 2px solid var(--theme-accent, var(--theme-primary)));
3082
+ outline-offset: var(--ce-pagination-item-focus-offset, 2px);
3083
+ }
3084
+ .pagination__ellipsis {
3085
+ min-width: var(--ce-pagination-ellipsis-min-width, 2rem);
3086
+ height: var(--ce-pagination-ellipsis-height, 2rem);
3087
+ display: var(--ce-pagination-ellipsis-display, flex);
3088
+ align-items: var(--ce-pagination-ellipsis-align, center);
3089
+ justify-content: var(--ce-pagination-ellipsis-justify, center);
3090
+ color: var(--ce-pagination-ellipsis-color, var(--theme-pagination-ellipsis, #9aa0a6));
3091
+ font-size: var(--ce-pagination-ellipsis-size, 1rem);
3092
+ }
3093
+
3094
+ .card,
3095
+ .ce-card {
3096
+ background-color: var(--ce-card-bg, var(--theme-bg, #ffffff));
3097
+ border-width: var(--ce-card-border-width, 1px);
3098
+ border-style: var(--ce-card-border-style, solid);
3099
+ border-color: var(--ce-card-border-color, var(--theme-border, #9aa0a6));
3100
+ border-radius: var(--ce-card-radius, 8px);
3101
+ gap: var(--ce-card-gap, 1rem);
3102
+ box-shadow: var(--ce-card-shadow, 0 4px 6px rgba(0, 0, 0, 0.1));
3103
+ padding: var(--ce-card-padding, 1.5rem);
3104
+ transition: box-shadow var(--ce-card-transition-shadow, 0.2s);
3105
+ display: flex;
3106
+ flex-direction: column;
3107
+ color: var(--ce-card-color, inherit);
3108
+ }
3109
+ .card:hover,
3110
+ .ce-card:hover {
3111
+ box-shadow: var(--ce-card-hover-shadow, 0 4px 6px rgba(0, 0, 0, 0.1));
3112
+ }
3113
+ .card__header,
3114
+ .ce-card__header {
3115
+ font-weight: var(--ce-card-header-weight, 600);
3116
+ font-size: var(--ce-card-header-size, 1.125rem);
3117
+ margin-bottom: var(--ce-card-header-margin-bottom, 1rem);
3118
+ color: var(--ce-card-header-color, inherit);
3119
+ }
3120
+ .card__body,
3121
+ .ce-card__body {
3122
+ flex: 1;
3123
+ color: var(--ce-card-body-color, inherit);
3124
+ }
3125
+ .card__footer,
3126
+ .ce-card__footer {
3127
+ margin-top: var(--ce-card-footer-margin-top, 1rem);
3128
+ text-align: var(--ce-card-footer-align, right);
3129
+ color: var(--ce-card-footer-color, inherit);
3130
+ }
3131
+ .card--hover,
3132
+ .ce-card--hover {
3133
+ cursor: var(--ce-card-hover-cursor, pointer);
3134
+ }
3135
+ .card--hover:hover,
3136
+ .ce-card--hover:hover {
3137
+ box-shadow: var(--ce-card-hover-shadow, 0 4px 6px rgba(0, 0, 0, 0.1));
3138
+ }
3139
+ .card--hover:focus-visible,
3140
+ .ce-card--hover:focus-visible {
3141
+ outline-width: var(--ce-card-focus-outline-width, 2px);
3142
+ outline-style: var(--ce-card-focus-outline-style, solid);
3143
+ outline-color: var(--ce-card-focus-outline-color, var(--theme-accent, var(--theme-primary)));
3144
+ outline-offset: var(--ce-card-focus-outline-offset, 2px);
3145
+ }
3146
+ .card--borderless,
3147
+ .ce-card--borderless {
3148
+ --ce-card-border-width: 0;
3149
+ }
3150
+ .card--elevated,
3151
+ .ce-card--elevated {
3152
+ --ce-card-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
3153
+ }
3154
+
3155
+ .modal {
3156
+ position: fixed;
3157
+ inset: 0;
3158
+ z-index: 1050;
3159
+ display: flex;
3160
+ align-items: center;
3161
+ justify-content: center;
3162
+ background-color: var(--theme-modal-overlay, rgba(0, 0, 0, 0.4));
3163
+ -webkit-backdrop-filter: blur(6px);
3164
+ backdrop-filter: blur(6px);
3165
+ padding: 1.5rem;
3166
+ }
3167
+ .modal.hidden {
3168
+ display: none !important;
3169
+ }
3170
+ .modal__content {
3171
+ background-color: var(--theme-modal-bg, rgba(255, 255, 255, 0.06));
3172
+ -webkit-backdrop-filter: blur(12px);
3173
+ backdrop-filter: blur(12px);
3174
+ border-radius: 8px;
3175
+ width: 100%;
3176
+ max-width: 600px;
3177
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
3178
+ overflow: hidden;
3179
+ animation: fade-in 0.3s ease-in-out;
3180
+ color: var(--theme-modal-fg, #ffffff);
3181
+ }
3182
+ .modal__header {
3183
+ padding: 1rem;
3184
+ font-size: 1.25rem;
3185
+ font-weight: 600;
3186
+ border-bottom: 1px solid var(--theme-modal-border, #9aa0a6);
3187
+ }
3188
+ .modal__body {
3189
+ padding: 1.5rem;
3190
+ }
3191
+ .modal__footer {
3192
+ padding: 1rem;
3193
+ text-align: right;
3194
+ border-top: 1px solid var(--theme-modal-border, #9aa0a6);
3195
+ }
3196
+ .modal__close {
3197
+ position: absolute;
3198
+ top: 0.5rem;
3199
+ right: 0.5rem;
3200
+ background: none;
3201
+ border: none;
3202
+ font-size: 1.5rem;
3203
+ color: #9aa0a6;
3204
+ cursor: pointer;
3205
+ }
3206
+ .modal__close:hover {
3207
+ color: #ea4335;
3208
+ }
3209
+ .modal__close:focus-visible {
3210
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
3211
+ outline-offset: 2px;
3212
+ }
3213
+ .modal .hidden {
3214
+ display: none !important;
3215
+ }
3216
+
3217
+ .drawer {
3218
+ position: fixed;
3219
+ top: var(--ce-drawer-top, 0);
3220
+ right: var(--ce-drawer-right, 0);
3221
+ width: var(--ce-drawer-width, 300px);
3222
+ max-width: var(--ce-drawer-max-width, 100%);
3223
+ height: var(--ce-drawer-height, 100vh);
3224
+ background-color: var(--ce-drawer-bg, #ffffff);
3225
+ box-shadow: var(--ce-drawer-shadow, 0 10px 15px rgba(0, 0, 0, 0.15));
3226
+ z-index: var(--ce-drawer-z, 1050);
3227
+ display: flex;
3228
+ flex-direction: column;
3229
+ animation: var(--ce-drawer-animation, slide-in) var(--ce-drawer-animation-duration, 0.3s) var(--ce-drawer-animation-ease, ease-in-out);
3230
+ }
3231
+ .drawer__header {
3232
+ padding: var(--ce-drawer-header-padding, 1rem);
3233
+ font-weight: var(--ce-drawer-header-weight, 600);
3234
+ border-bottom-width: var(--ce-drawer-header-border-width, 1px);
3235
+ border-bottom-style: var(--ce-drawer-header-border-style, solid);
3236
+ border-bottom-color: var(--ce-drawer-header-border-color, #9aa0a6);
3237
+ }
3238
+ .drawer__body {
3239
+ flex: 1;
3240
+ overflow-y: var(--ce-drawer-body-overflow, auto);
3241
+ padding: var(--ce-drawer-body-padding, 1.5rem);
3242
+ }
3243
+ .drawer__footer {
3244
+ padding: var(--ce-drawer-footer-padding, 1rem);
3245
+ border-top-width: var(--ce-drawer-footer-border-width, 1px);
3246
+ border-top-style: var(--ce-drawer-footer-border-style, solid);
3247
+ border-top-color: var(--ce-drawer-footer-border-color, #9aa0a6);
3248
+ text-align: var(--ce-drawer-footer-align, right);
3249
+ }
3250
+
3251
+ .accordion,
3252
+ .ce-accordion {
3253
+ border: 1px solid var(--theme-accordion-border, #9aa0a6);
3254
+ border-radius: 8px;
3255
+ overflow: hidden;
3256
+ }
3257
+ .accordion__item,
3258
+ .ce-accordion__item {
3259
+ border-bottom: 1px solid var(--theme-accordion-border, #9aa0a6);
3260
+ }
3261
+ .accordion__item:last-child,
3262
+ .ce-accordion__item:last-child {
3263
+ border-bottom: none;
3264
+ }
3265
+ .accordion__header,
3266
+ .ce-accordion__header {
3267
+ padding: 1rem;
3268
+ font-weight: 500;
3269
+ cursor: pointer;
3270
+ background-color: var(--theme-accordion-header-bg, #f8f9fa);
3271
+ display: flex;
3272
+ justify-content: space-between;
3273
+ align-items: center;
3274
+ transition: background-color 0.2s ease;
3275
+ }
3276
+ .accordion__header:hover,
3277
+ .ce-accordion__header:hover {
3278
+ background-color: var(--theme-accordion-header-hover, rgba(0, 0, 0, 0.05));
3279
+ }
3280
+ .accordion__header:focus-visible,
3281
+ .ce-accordion__header:focus-visible {
3282
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
3283
+ outline-offset: 2px;
3284
+ }
3285
+ .accordion__header::after,
3286
+ .ce-accordion__header::after {
3287
+ content: "▼";
3288
+ font-size: 0.75rem;
3289
+ transition: transform 0.2s ease;
3290
+ }
3291
+ .accordion__item.is-open .accordion__header::after,
3292
+ .accordion__item.is-open .ce-accordion__header::after,
3293
+ .ce-accordion__item.is-open .accordion__header::after,
3294
+ .ce-accordion__item.is-open .ce-accordion__header::after {
3295
+ transform: rotate(180deg);
3296
+ }
3297
+ .accordion__content, .accordion__body,
3298
+ .ce-accordion__content,
3299
+ .ce-accordion__body {
3300
+ padding: 0 1rem 1rem 1rem;
3301
+ max-height: 0;
3302
+ overflow: hidden;
3303
+ opacity: 0;
3304
+ transition: max-height 0.3s ease, opacity 0.2s ease, padding 0.3s ease;
3305
+ }
3306
+ .accordion__content.is-open, .accordion__content.open, .accordion__body.is-open, .accordion__body.open,
3307
+ .ce-accordion__content.is-open,
3308
+ .ce-accordion__content.open,
3309
+ .ce-accordion__body.is-open,
3310
+ .ce-accordion__body.open {
3311
+ max-height: 1000px;
3312
+ opacity: 1;
3313
+ padding-top: 0.5rem;
3314
+ }
3315
+
3316
+ .panel {
3317
+ padding: 1.5rem;
3318
+ border-left: 4px solid #1a73e8;
3319
+ background-color: #f8f9fa;
3320
+ border-radius: 4px;
3321
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
3322
+ margin-bottom: 1.5rem;
3323
+ }
3324
+ .panel--info {
3325
+ border-color: #4285f4;
3326
+ }
3327
+ .panel--success {
3328
+ border-color: #34a853;
3329
+ }
3330
+ .panel--warning {
3331
+ border-color: #f9ab00;
3332
+ }
3333
+ .panel--danger {
3334
+ border-color: #ea4335;
3335
+ }
3336
+ .panel__title {
3337
+ font-weight: bold;
3338
+ margin-bottom: 0.5rem;
3339
+ }
3340
+ .panel__content {
3341
+ font-size: 0.95rem;
3342
+ }
3343
+
3344
+ .toast {
3345
+ position: var(--ce-toast-position, fixed);
3346
+ bottom: var(--ce-toast-bottom, 1.5rem);
3347
+ right: var(--ce-toast-right, 1.5rem);
3348
+ background-color: var(--ce-toast-bg, #202124);
3349
+ color: var(--ce-toast-color, #ffffff);
3350
+ padding: var(--ce-toast-padding, 1rem);
3351
+ border-radius: var(--ce-toast-radius, 8px);
3352
+ box-shadow: var(--ce-toast-shadow, 0 10px 15px rgba(0, 0, 0, 0.15));
3353
+ z-index: var(--ce-toast-z, 1080);
3354
+ animation: var(--ce-toast-animation, fade-in 0.3s ease-in-out);
3355
+ min-width: var(--ce-toast-min-width, 250px);
3356
+ }
3357
+ .toast--success {
3358
+ background-color: var(--ce-toast-success-bg, #34a853);
3359
+ }
3360
+ .toast--error {
3361
+ background-color: var(--ce-toast-error-bg, #ea4335);
3362
+ }
3363
+ .toast--info {
3364
+ background-color: var(--ce-toast-info-bg, #4285f4);
3365
+ }
3366
+ .toast__message {
3367
+ font-size: var(--ce-toast-message-size, 0.95rem);
3368
+ }
3369
+ .toast__close {
3370
+ position: var(--ce-toast-close-position, absolute);
3371
+ top: var(--ce-toast-close-top, 0.25rem);
3372
+ right: var(--ce-toast-close-right, 0.25rem);
3373
+ background: var(--ce-toast-close-bg, none);
3374
+ border: var(--ce-toast-close-border, none);
3375
+ color: var(--ce-toast-close-color, #ffffff);
3376
+ font-size: var(--ce-toast-close-size, 1.25rem);
3377
+ cursor: var(--ce-toast-close-cursor, pointer);
3378
+ }
3379
+ .toast__close:hover {
3380
+ opacity: var(--ce-toast-close-hover-opacity, 0.7);
3381
+ }
3382
+
3383
+ .tooltip {
3384
+ position: var(--ce-tooltip-position, relative);
3385
+ cursor: var(--ce-tooltip-cursor, help);
3386
+ }
3387
+ .tooltip__content {
3388
+ position: var(--ce-tooltip-content-position, absolute);
3389
+ bottom: var(--ce-tooltip-content-bottom, 100%);
3390
+ left: var(--ce-tooltip-content-left, 50%);
3391
+ transform: var(--ce-tooltip-content-transform, translateX(-50%) translateY(0.25rem));
3392
+ background-color: var(--ce-tooltip-content-bg, var(--theme-tooltip-bg, #202124));
3393
+ color: var(--ce-tooltip-content-color, var(--theme-tooltip-fg, #ffffff));
3394
+ padding: var(--ce-tooltip-content-padding, 0.25rem 0.5rem);
3395
+ font-size: var(--ce-tooltip-content-size, 0.75rem);
3396
+ white-space: var(--ce-tooltip-content-whitespace, nowrap);
3397
+ border-radius: var(--ce-tooltip-content-radius, 4px);
3398
+ opacity: var(--ce-tooltip-content-opacity, 0);
3399
+ pointer-events: var(--ce-tooltip-content-pointer, none);
3400
+ transition: var(--ce-tooltip-content-transition, opacity 0.2s);
3401
+ z-index: var(--ce-tooltip-content-z, 1090);
3402
+ }
3403
+ .tooltip__content::after {
3404
+ content: var(--ce-tooltip-arrow-content, "");
3405
+ position: var(--ce-tooltip-arrow-position, absolute);
3406
+ top: var(--ce-tooltip-arrow-top, 100%);
3407
+ left: var(--ce-tooltip-arrow-left, 50%);
3408
+ margin-left: var(--ce-tooltip-arrow-offset, -6px);
3409
+ border-width: var(--ce-tooltip-arrow-size, 6px);
3410
+ border-style: var(--ce-tooltip-arrow-style, solid);
3411
+ border-color: var(--ce-tooltip-arrow-color, var(--theme-tooltip-bg, #202124) transparent transparent transparent);
3412
+ }
3413
+ .tooltip__content::after:focus-visible {
3414
+ outline: var(--ce-tooltip-focus-outline, 2px solid var(--theme-accent, var(--theme-primary)));
3415
+ outline-offset: var(--ce-tooltip-focus-offset, 2px);
3416
+ }
3417
+ .tooltip:hover .tooltip__content, .tooltip:focus-within .tooltip__content {
3418
+ opacity: var(--ce-tooltip-content-visible-opacity, 1);
3419
+ }
3420
+
3421
+ .popover {
3422
+ position: absolute;
3423
+ min-width: 200px;
3424
+ max-width: 320px;
3425
+ background-color: var(--theme-popover-bg, #ffffff);
3426
+ color: var(--theme-popover-fg, #202124);
3427
+ border-radius: 8px;
3428
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
3429
+ border: 1px solid var(--theme-popover-border, #9aa0a6);
3430
+ z-index: 1060;
3431
+ padding: 1rem;
3432
+ font-size: 1rem;
3433
+ transition: opacity 0.2s, transform 0.2s;
3434
+ opacity: 0;
3435
+ pointer-events: none;
3436
+ }
3437
+ .popover__trigger {
3438
+ cursor: pointer;
3439
+ }
3440
+ .popover__content {
3441
+ position: static;
3442
+ background: none;
3443
+ border: none;
3444
+ box-shadow: none;
3445
+ padding: 0;
3446
+ min-width: unset;
3447
+ z-index: auto;
3448
+ display: contents;
3449
+ }
3450
+ .popover__content.open {
3451
+ opacity: 1;
3452
+ pointer-events: auto;
3453
+ }
3454
+ .popover__content__arrow {
3455
+ position: absolute;
3456
+ width: 1rem;
3457
+ height: 1rem;
3458
+ background: var(--theme-popover-bg, #ffffff);
3459
+ border: 1px solid var(--theme-popover-border, #9aa0a6);
3460
+ transform: rotate(45deg);
3461
+ z-index: -1;
3462
+ }
3463
+ .popover__content:focus-visible {
3464
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
3465
+ outline-offset: 2px;
3466
+ }
3467
+ .popover--right .popover__content {
3468
+ left: auto;
3469
+ right: 0;
3470
+ }
3471
+ .popover--top .popover__content {
3472
+ top: auto;
3473
+ bottom: calc(100% + 0.25rem);
3474
+ }
3475
+
3476
+ .dropdown,
3477
+ .ce-dropdown {
3478
+ position: relative;
3479
+ display: inline-block;
3480
+ }
3481
+ .dropdown__trigger, .dropdown__toggle,
3482
+ .ce-dropdown__trigger,
3483
+ .ce-dropdown__toggle {
3484
+ cursor: var(--ce-dropdown-trigger-cursor, pointer);
3485
+ padding: var(--ce-dropdown-trigger-padding, 0.5rem 1rem);
3486
+ border-width: var(--ce-dropdown-trigger-border-width, 1px);
3487
+ border-style: var(--ce-dropdown-trigger-border-style, solid);
3488
+ border-color: var(--ce-dropdown-trigger-border-color, var(--theme-dropdown-trigger-border, #9aa0a6));
3489
+ border-radius: var(--ce-dropdown-trigger-radius, 4px);
3490
+ background-color: var(--ce-dropdown-trigger-bg, var(--theme-dropdown-trigger-bg, #ffffff));
3491
+ color: var(--ce-dropdown-trigger-color, var(--theme-dropdown-trigger-fg, #202124));
3492
+ }
3493
+ .dropdown__menu,
3494
+ .ce-dropdown__menu {
3495
+ position: absolute;
3496
+ top: var(--ce-dropdown-menu-top, calc(100% + 0.25rem));
3497
+ left: var(--ce-dropdown-menu-left, 0);
3498
+ right: var(--ce-dropdown-menu-right, auto);
3499
+ background-color: var(--ce-dropdown-menu-bg, var(--theme-dropdown-bg, #ffffff));
3500
+ border-width: var(--ce-dropdown-menu-border-width, 1px);
3501
+ border-style: var(--ce-dropdown-menu-border-style, solid);
3502
+ border-color: var(--ce-dropdown-menu-border-color, var(--theme-dropdown-border, #9aa0a6));
3503
+ border-radius: var(--ce-dropdown-menu-radius, 4px);
3504
+ box-shadow: var(--ce-dropdown-menu-shadow, 0 4px 6px rgba(0, 0, 0, 0.1));
3505
+ min-width: var(--ce-dropdown-menu-min-width, 160px);
3506
+ max-height: var(--ce-dropdown-menu-max-height, 300px);
3507
+ overflow-y: var(--ce-dropdown-menu-overflow, auto);
3508
+ z-index: var(--ce-dropdown-menu-z, 1000);
3509
+ display: block;
3510
+ opacity: var(--ce-dropdown-menu-opacity, 0);
3511
+ visibility: var(--ce-dropdown-menu-visibility, hidden);
3512
+ pointer-events: var(--ce-dropdown-menu-events, none);
3513
+ transform: var(--ce-dropdown-menu-transform, translateY(-0.5rem));
3514
+ transition: opacity var(--ce-dropdown-menu-transition, 0.2s) var(--ce-dropdown-menu-transition-ease, ease), visibility var(--ce-dropdown-menu-transition, 0.2s) var(--ce-dropdown-menu-transition-ease, ease), transform var(--ce-dropdown-menu-transition, 0.2s) var(--ce-dropdown-menu-transition-ease, ease);
3515
+ }
3516
+ .dropdown__menu.is-visible, .dropdown__menu.open, .dropdown--open .dropdown__menu, .ce-dropdown--open .dropdown__menu, .dropdown__toggle[aria-expanded=true] ~ .dropdown__menu, .ce-dropdown__toggle[aria-expanded=true] ~ .dropdown__menu, .dropdown__trigger[aria-expanded=true] ~ .dropdown__menu, .ce-dropdown__trigger[aria-expanded=true] ~ .dropdown__menu, .dropdown:focus-within .dropdown__menu, .ce-dropdown:focus-within .dropdown__menu, .dropdown:hover .dropdown__menu, .ce-dropdown:hover .dropdown__menu,
3517
+ .ce-dropdown__menu.is-visible,
3518
+ .ce-dropdown__menu.open,
3519
+ .dropdown--open .ce-dropdown__menu,
3520
+ .ce-dropdown--open .ce-dropdown__menu,
3521
+ .dropdown__toggle[aria-expanded=true] ~ .ce-dropdown__menu,
3522
+ .ce-dropdown__toggle[aria-expanded=true] ~ .ce-dropdown__menu,
3523
+ .dropdown__trigger[aria-expanded=true] ~ .ce-dropdown__menu,
3524
+ .ce-dropdown__trigger[aria-expanded=true] ~ .ce-dropdown__menu,
3525
+ .dropdown:focus-within .ce-dropdown__menu,
3526
+ .ce-dropdown:focus-within .ce-dropdown__menu,
3527
+ .dropdown:hover .ce-dropdown__menu,
3528
+ .ce-dropdown:hover .ce-dropdown__menu {
3529
+ opacity: 1 !important;
3530
+ visibility: visible !important;
3531
+ pointer-events: auto !important;
3532
+ transform: translateY(0) !important;
3533
+ display: block !important;
3534
+ }
3535
+ .dropdown__menu a,
3536
+ .ce-dropdown__menu a {
3537
+ display: block;
3538
+ padding: var(--ce-dropdown-item-padding, 0.5rem 1rem);
3539
+ color: var(--ce-dropdown-item-color, var(--theme-dropdown-item-fg, #202124));
3540
+ text-decoration: none;
3541
+ }
3542
+ .dropdown__menu a:hover,
3543
+ .ce-dropdown__menu a:hover {
3544
+ background-color: var(--ce-dropdown-item-hover-bg, var(--theme-dropdown-item-hover, #f8f9fa));
3545
+ }
3546
+ .dropdown__menu a:hover:focus-visible,
3547
+ .ce-dropdown__menu a:hover:focus-visible {
3548
+ outline-width: var(--ce-dropdown-item-outline-width, 2px);
3549
+ outline-style: var(--ce-dropdown-item-outline-style, solid);
3550
+ outline-color: var(--ce-dropdown-item-outline-color, var(--theme-accent, var(--theme-primary)));
3551
+ outline-offset: var(--ce-dropdown-item-outline-offset, 2px);
3552
+ }
3553
+
3554
+ .backdrop {
3555
+ position: fixed;
3556
+ inset: 0;
3557
+ background-color: rgba(0, 0, 0, 0.5);
3558
+ z-index: 1050;
3559
+ }
3560
+
3561
+ .loader,
3562
+ .ce-loader {
3563
+ width: var(--ce-loader-size, 2rem);
3564
+ height: var(--ce-loader-size, 2rem);
3565
+ border-width: var(--ce-loader-border-width, 3px);
3566
+ border-style: var(--ce-loader-border-style, solid);
3567
+ border-color: var(--ce-loader-border-color, #f8f9fa);
3568
+ border-top-color: var(--ce-loader-border-top-color, #1a73e8);
3569
+ border-radius: var(--ce-loader-radius, 50%);
3570
+ animation: var(--ce-loader-spin, spin 0.75s linear infinite);
3571
+ margin: var(--ce-loader-margin, auto);
3572
+ }
3573
+ .loader--sm,
3574
+ .ce-loader--sm {
3575
+ width: var(--ce-loader-sm-size, 1.5rem);
3576
+ height: var(--ce-loader-sm-size, 1.5rem);
3577
+ }
3578
+ .loader--lg,
3579
+ .ce-loader--lg {
3580
+ width: var(--ce-loader-lg-size, 3rem);
3581
+ height: var(--ce-loader-lg-size, 3rem);
3582
+ }
3583
+
3584
+ @keyframes spin {
3585
+ to {
3586
+ transform: rotate(360deg);
3587
+ }
3588
+ }
3589
+ .table {
3590
+ width: var(--ce-table-width, 100%);
3591
+ border-collapse: var(--ce-table-collapse, collapse);
3592
+ font-size: var(--ce-table-size, 0.95rem);
3593
+ background-color: var(--ce-table-bg, var(--theme-table-bg, #ffffff));
3594
+ }
3595
+ .table thead {
3596
+ background-color: var(--ce-table-thead-bg, var(--theme-table-thead-bg, #f8f9fa));
3597
+ border-bottom: var(--ce-table-thead-border, 2px solid var(--theme-table-border, #9aa0a6));
3598
+ }
3599
+ .table th,
3600
+ .table td {
3601
+ padding: var(--ce-table-cell-padding, 0.5rem 1rem);
3602
+ text-align: var(--ce-table-cell-align, left);
3603
+ border-bottom: var(--ce-table-cell-border, 1px solid var(--theme-table-border, #9aa0a6));
3604
+ }
3605
+ .table th:focus-visible,
3606
+ .table td:focus-visible {
3607
+ outline: var(--ce-table-cell-focus-outline, 2px solid var(--theme-accent, var(--theme-primary)));
3608
+ outline-offset: var(--ce-table-cell-focus-offset, 2px);
3609
+ }
3610
+ .table th {
3611
+ font-weight: var(--ce-table-th-weight, 600);
3612
+ color: var(--ce-table-th-color, var(--theme-table-th-fg, #202124));
3613
+ }
3614
+ .table tbody tr:hover {
3615
+ background-color: var(--ce-table-row-hover, var(--theme-table-row-hover, rgba(26, 115, 232, 0.05)));
3616
+ }
3617
+ .table--striped tbody tr:nth-child(odd) {
3618
+ background-color: var(--ce-table-row-striped, var(--theme-table-row-striped, #f8f9fa));
3619
+ }
3620
+ .table--bordered, .table--bordered th, .table--bordered td {
3621
+ border: var(--ce-table-bordered, 1px solid var(--theme-table-border, #9aa0a6));
3622
+ }
3623
+ .table--responsive {
3624
+ display: var(--ce-table-responsive-display, block);
3625
+ width: var(--ce-table-responsive-width, 100%);
3626
+ overflow-x: var(--ce-table-responsive-overflow, auto);
3627
+ white-space: var(--ce-table-responsive-nowrap, nowrap);
3628
+ }
3629
+
3630
+ .data-table {
3631
+ position: relative;
3632
+ }
3633
+ .data-table .data-table__toolbar {
3634
+ display: flex;
3635
+ justify-content: space-between;
3636
+ margin-bottom: 1rem;
3637
+ }
3638
+ .data-table .data-table__toolbar .search-input {
3639
+ max-width: 300px;
3640
+ }
3641
+ .data-table .data-table__sort {
3642
+ cursor: pointer;
3643
+ }
3644
+ .data-table .data-table__sort::after {
3645
+ content: " ⇅";
3646
+ font-size: 0.8rem;
3647
+ color: #9aa0a6;
3648
+ }
3649
+ .data-table .data-table__sort.asc::after {
3650
+ content: " ↑";
3651
+ }
3652
+ .data-table .data-table__sort.desc::after {
3653
+ content: " ↓";
3654
+ }
3655
+ .data-table .data-table__status {
3656
+ font-size: 0.875rem;
3657
+ padding: 0.25rem;
3658
+ border-radius: 4px;
3659
+ background-color: #f8f9fa;
3660
+ color: #202124;
3661
+ }
3662
+ .data-table .data-table__status--active {
3663
+ background-color: #34a853;
3664
+ color: #ffffff;
3665
+ }
3666
+ .data-table .data-table__status--inactive {
3667
+ background-color: #9aa0a6;
3668
+ }
3669
+ .data-table .data-table__status--error {
3670
+ background-color: #ea4335;
3671
+ color: #ffffff;
3672
+ }
3673
+ .data-table .data-table__actions {
3674
+ display: flex;
3675
+ gap: 0.5rem;
3676
+ }
3677
+
3678
+ .list {
3679
+ margin: 0;
3680
+ padding-left: 1.5rem;
3681
+ color: #202124;
3682
+ line-height: 1.6;
3683
+ }
3684
+ .list--inline {
3685
+ display: flex;
3686
+ gap: 1rem;
3687
+ list-style: none;
3688
+ padding-left: 0;
3689
+ }
3690
+ .list--unstyled {
3691
+ list-style: none;
3692
+ padding-left: 0;
3693
+ }
3694
+ .list--bulleted {
3695
+ list-style-type: disc;
3696
+ }
3697
+ .list--numbered {
3698
+ list-style-type: decimal;
3699
+ }
3700
+
3701
+ .tree-view {
3702
+ list-style: none;
3703
+ padding-left: 1rem;
3704
+ }
3705
+ .tree-view .tree-node {
3706
+ margin-bottom: 0.25rem;
3707
+ position: relative;
3708
+ }
3709
+ .tree-view .tree-node__label {
3710
+ cursor: pointer;
3711
+ display: flex;
3712
+ align-items: center;
3713
+ gap: 0.25rem;
3714
+ padding: 0.25rem 0.5rem;
3715
+ border-radius: 4px;
3716
+ }
3717
+ .tree-view .tree-node__label:hover {
3718
+ background-color: #f8f9fa;
3719
+ }
3720
+ .tree-view .tree-node__label.expanded::before {
3721
+ content: "▼";
3722
+ font-size: 0.75rem;
3723
+ color: #9aa0a6;
3724
+ }
3725
+ .tree-view .tree-node__label::before {
3726
+ content: "▶";
3727
+ font-size: 0.75rem;
3728
+ color: #9aa0a6;
3729
+ }
3730
+ .tree-view .tree-node .tree-children {
3731
+ display: none;
3732
+ padding-left: 1rem;
3733
+ }
3734
+ .tree-view .tree-node.expanded .tree-children {
3735
+ display: block;
3736
+ }
3737
+
3738
+ .avatar,
3739
+ .ce-avatar {
3740
+ display: inline-flex;
3741
+ align-items: center;
3742
+ justify-content: center;
3743
+ width: var(--ce-avatar-size, 2.5rem);
3744
+ height: var(--ce-avatar-size, 2.5rem);
3745
+ border-radius: var(--ce-avatar-radius, 50%);
3746
+ background-color: var(--ce-avatar-bg, var(--theme-avatar-bg, #9aa0a6));
3747
+ color: var(--ce-avatar-color, var(--theme-avatar-fg, #ffffff));
3748
+ font-size: var(--ce-avatar-font-size, 1.25rem);
3749
+ font-weight: var(--ce-avatar-weight, 600);
3750
+ overflow: hidden;
3751
+ position: relative;
3752
+ border-width: var(--ce-avatar-border-width, 0);
3753
+ border-style: var(--ce-avatar-border-style, solid);
3754
+ border-color: var(--ce-avatar-border-color, transparent);
3755
+ box-shadow: var(--ce-avatar-shadow, none);
3756
+ }
3757
+ .avatar__img,
3758
+ .ce-avatar__img {
3759
+ width: 100%;
3760
+ height: 100%;
3761
+ object-fit: var(--ce-avatar-image-fit, cover);
3762
+ border-radius: inherit;
3763
+ display: block;
3764
+ }
3765
+ .avatar__status,
3766
+ .ce-avatar__status {
3767
+ position: absolute;
3768
+ bottom: var(--ce-avatar-status-offset, 0.15rem);
3769
+ right: var(--ce-avatar-status-offset, 0.15rem);
3770
+ width: var(--ce-avatar-status-size, 0.7rem);
3771
+ height: var(--ce-avatar-status-size, 0.7rem);
3772
+ border-radius: var(--ce-avatar-status-radius, 50%);
3773
+ background-color: var(--ce-avatar-status-bg, var(--theme-avatar-status, #34a853));
3774
+ border-width: var(--ce-avatar-status-border-width, 2px);
3775
+ border-style: var(--ce-avatar-status-border-style, solid);
3776
+ border-color: var(--ce-avatar-status-border-color, var(--theme-avatar-bg, #9aa0a6));
3777
+ }
3778
+ .avatar--sm,
3779
+ .ce-avatar--sm {
3780
+ --ce-avatar-size: 1.5rem;
3781
+ --ce-avatar-font-size: 0.75rem;
3782
+ }
3783
+ .avatar--lg,
3784
+ .ce-avatar--lg {
3785
+ --ce-avatar-size: 4rem;
3786
+ --ce-avatar-font-size: 2rem;
3787
+ }
3788
+ .avatar--square,
3789
+ .ce-avatar--square {
3790
+ --ce-avatar-radius: 8px;
3791
+ }
3792
+
3793
+ .badge,
3794
+ .ce-badge {
3795
+ display: inline-block;
3796
+ padding: var(--ce-badge-padding, 0.25em 0.6em);
3797
+ font-size: var(--ce-badge-size, 0.75rem);
3798
+ border-radius: var(--ce-badge-radius, 10px);
3799
+ font-weight: var(--ce-badge-weight, 600);
3800
+ background-color: var(--ce-badge-bg, var(--theme-badge-bg, #9aa0a6));
3801
+ color: var(--ce-badge-color, var(--theme-badge-fg, #ffffff));
3802
+ line-height: var(--ce-badge-line-height, 1);
3803
+ border-width: var(--ce-badge-border-width, 0);
3804
+ border-style: var(--ce-badge-border-style, solid);
3805
+ border-color: var(--ce-badge-border-color, transparent);
3806
+ box-shadow: var(--ce-badge-shadow, none);
3807
+ }
3808
+ .badge--primary,
3809
+ .ce-badge--primary {
3810
+ --ce-badge-bg: var(--ce-badge-primary-bg, var(--theme-badge-primary, #1a73e8));
3811
+ }
3812
+ .badge--success,
3813
+ .ce-badge--success {
3814
+ --ce-badge-bg: var(--ce-badge-success-bg, var(--theme-badge-success, #34a853));
3815
+ }
3816
+ .badge--danger,
3817
+ .ce-badge--danger {
3818
+ --ce-badge-bg: var(--ce-badge-danger-bg, var(--theme-badge-danger, #ea4335));
3819
+ }
3820
+ .badge--warning,
3821
+ .ce-badge--warning {
3822
+ --ce-badge-bg: var(--ce-badge-warning-bg, var(--theme-badge-warning, #f9ab00));
3823
+ }
3824
+ .badge--info,
3825
+ .ce-badge--info {
3826
+ --ce-badge-bg: var(--ce-badge-info-bg, var(--theme-badge-info, #4285f4));
3827
+ }
3828
+ .badge--light,
3829
+ .ce-badge--light {
3830
+ --ce-badge-bg: var(--ce-badge-light-bg, var(--theme-badge-light, #f8f9fa));
3831
+ --ce-badge-color: var(--ce-badge-light-color, var(--theme-badge-light-fg, #202124));
3832
+ }
3833
+ .badge--dark,
3834
+ .ce-badge--dark {
3835
+ --ce-badge-bg: var(--ce-badge-dark-bg, var(--theme-badge-dark, #202124));
3836
+ }
3837
+
3838
+ .chip,
3839
+ .ce-chip {
3840
+ display: inline-flex;
3841
+ align-items: center;
3842
+ gap: var(--ce-chip-gap, 0.25rem);
3843
+ padding: var(--ce-chip-padding, 0.375rem 0.875rem);
3844
+ font-size: var(--ce-chip-font-size, 0.875rem);
3845
+ line-height: var(--ce-chip-line-height, 1.5);
3846
+ border-radius: var(--ce-chip-radius, 10px);
3847
+ background-color: var(--ce-chip-bg, var(--theme-chip-bg, #f8f9fa));
3848
+ color: var(--ce-chip-color, var(--theme-chip-fg, #202124));
3849
+ font-weight: var(--ce-chip-weight, 500);
3850
+ border-width: var(--ce-chip-border-width, 1px);
3851
+ border-style: var(--ce-chip-border-style, solid);
3852
+ border-color: var(--ce-chip-border-color, var(--theme-chip-border, #9aa0a6));
3853
+ transition: all var(--ce-chip-transition, 0.2s) var(--ce-chip-transition-ease, ease);
3854
+ cursor: var(--ce-chip-cursor, default);
3855
+ white-space: var(--ce-chip-white-space, nowrap);
3856
+ max-width: var(--ce-chip-max-width, 100%);
3857
+ }
3858
+ .chip--sm,
3859
+ .ce-chip--sm {
3860
+ --ce-chip-padding: 0.25rem 0.625rem;
3861
+ --ce-chip-font-size: 0.75rem;
3862
+ --ce-chip-gap: 0.25rem;
3863
+ }
3864
+ .chip--md,
3865
+ .ce-chip--md {
3866
+ --ce-chip-padding: 0.375rem 0.875rem;
3867
+ --ce-chip-font-size: 0.875rem;
3868
+ }
3869
+ .chip--lg,
3870
+ .ce-chip--lg {
3871
+ --ce-chip-padding: 0.5rem 1rem;
3872
+ --ce-chip-font-size: 1rem;
3873
+ }
3874
+ .chip--primary,
3875
+ .ce-chip--primary {
3876
+ --ce-chip-bg: var(--ce-chip-primary-bg, var(--theme-chip-primary, #1a73e8));
3877
+ --ce-chip-color: var(--ce-chip-primary-color, #ffffff);
3878
+ --ce-chip-border-color: var(
3879
+ --ce-chip-primary-border,
3880
+ var(--theme-chip-primary-border, #1a73e8)
3881
+ );
3882
+ }
3883
+ .chip--secondary,
3884
+ .ce-chip--secondary {
3885
+ --ce-chip-bg: var(--ce-chip-secondary-bg, var(--theme-chip-secondary, #fbbc04));
3886
+ --ce-chip-color: var(--ce-chip-secondary-color, #ffffff);
3887
+ --ce-chip-border-color: var(
3888
+ --ce-chip-secondary-border,
3889
+ var(--theme-chip-secondary-border, #fbbc04)
3890
+ );
3891
+ }
3892
+ .chip--success,
3893
+ .ce-chip--success {
3894
+ --ce-chip-bg: var(--ce-chip-success-bg, var(--theme-chip-success, #34a853));
3895
+ --ce-chip-color: var(--ce-chip-success-color, #ffffff);
3896
+ --ce-chip-border-color: var(
3897
+ --ce-chip-success-border,
3898
+ var(--theme-chip-success-border, #34a853)
3899
+ );
3900
+ }
3901
+ .chip--danger,
3902
+ .ce-chip--danger {
3903
+ --ce-chip-bg: var(--ce-chip-danger-bg, var(--theme-chip-danger, #ea4335));
3904
+ --ce-chip-color: var(--ce-chip-danger-color, #ffffff);
3905
+ --ce-chip-border-color: var(
3906
+ --ce-chip-danger-border,
3907
+ var(--theme-chip-danger-border, #ea4335)
3908
+ );
3909
+ }
3910
+ .chip--warning,
3911
+ .ce-chip--warning {
3912
+ --ce-chip-bg: var(--ce-chip-warning-bg, var(--theme-chip-warning, #f9ab00));
3913
+ --ce-chip-color: var(--ce-chip-warning-color, #202124);
3914
+ --ce-chip-border-color: var(
3915
+ --ce-chip-warning-border,
3916
+ var(--theme-chip-warning-border, #f9ab00)
3917
+ );
3918
+ }
3919
+ .chip--info,
3920
+ .ce-chip--info {
3921
+ --ce-chip-bg: var(--ce-chip-info-bg, var(--theme-chip-info, #4285f4));
3922
+ --ce-chip-color: var(--ce-chip-info-color, #ffffff);
3923
+ --ce-chip-border-color: var(
3924
+ --ce-chip-info-border,
3925
+ var(--theme-chip-info-border, #4285f4)
3926
+ );
3927
+ }
3928
+ .chip--outlined,
3929
+ .ce-chip--outlined {
3930
+ --ce-chip-bg: var(--ce-chip-outlined-bg, transparent);
3931
+ --ce-chip-border-color: var(--ce-chip-outlined-border, currentColor);
3932
+ }
3933
+ .chip--outlined.chip--primary, .chip--outlined.ce-chip--primary,
3934
+ .ce-chip--outlined.chip--primary,
3935
+ .ce-chip--outlined.ce-chip--primary {
3936
+ --ce-chip-color: var(--ce-chip-outlined-primary-color, #1a73e8);
3937
+ --ce-chip-border-color: var(--ce-chip-outlined-primary-border, #1a73e8);
3938
+ }
3939
+ .chip--outlined.chip--secondary, .chip--outlined.ce-chip--secondary,
3940
+ .ce-chip--outlined.chip--secondary,
3941
+ .ce-chip--outlined.ce-chip--secondary {
3942
+ --ce-chip-color: var(--ce-chip-outlined-secondary-color, #fbbc04);
3943
+ --ce-chip-border-color: var(--ce-chip-outlined-secondary-border, #fbbc04);
3944
+ }
3945
+ .chip--outlined.chip--success, .chip--outlined.ce-chip--success,
3946
+ .ce-chip--outlined.chip--success,
3947
+ .ce-chip--outlined.ce-chip--success {
3948
+ --ce-chip-color: var(--ce-chip-outlined-success-color, #34a853);
3949
+ --ce-chip-border-color: var(--ce-chip-outlined-success-border, #34a853);
3950
+ }
3951
+ .chip--outlined.chip--danger, .chip--outlined.ce-chip--danger,
3952
+ .ce-chip--outlined.chip--danger,
3953
+ .ce-chip--outlined.ce-chip--danger {
3954
+ --ce-chip-color: var(--ce-chip-outlined-danger-color, #ea4335);
3955
+ --ce-chip-border-color: var(--ce-chip-outlined-danger-border, #ea4335);
3956
+ }
3957
+ .chip--outlined.chip--warning, .chip--outlined.ce-chip--warning,
3958
+ .ce-chip--outlined.chip--warning,
3959
+ .ce-chip--outlined.ce-chip--warning {
3960
+ --ce-chip-color: var(--ce-chip-outlined-warning-color, );
3961
+ --ce-chip-border-color: var(--ce-chip-outlined-warning-border, #f9ab00);
3962
+ }
3963
+ .chip--outlined.chip--info, .chip--outlined.ce-chip--info,
3964
+ .ce-chip--outlined.chip--info,
3965
+ .ce-chip--outlined.ce-chip--info {
3966
+ --ce-chip-color: var(--ce-chip-outlined-info-color, #4285f4);
3967
+ --ce-chip-border-color: var(--ce-chip-outlined-info-border, #4285f4);
3968
+ }
3969
+ .chip--ghost,
3970
+ .ce-chip--ghost {
3971
+ --ce-chip-border-color: var(--ce-chip-ghost-border, transparent);
3972
+ }
3973
+ .chip--ghost.chip--primary, .chip--ghost.ce-chip--primary,
3974
+ .ce-chip--ghost.chip--primary,
3975
+ .ce-chip--ghost.ce-chip--primary {
3976
+ --ce-chip-bg: var(--ce-chip-ghost-primary-bg, rgba(fn.color(primary), 0.1));
3977
+ --ce-chip-color: var(--ce-chip-ghost-primary-color, #1a73e8);
3978
+ }
3979
+ .chip--ghost.chip--secondary, .chip--ghost.ce-chip--secondary,
3980
+ .ce-chip--ghost.chip--secondary,
3981
+ .ce-chip--ghost.ce-chip--secondary {
3982
+ --ce-chip-bg: var(
3983
+ --ce-chip-ghost-secondary-bg,
3984
+ rgba(fn.color(secondary), 0.1)
3985
+ );
3986
+ --ce-chip-color: var(--ce-chip-ghost-secondary-color, #fbbc04);
3987
+ }
3988
+ .chip--ghost.chip--success, .chip--ghost.ce-chip--success,
3989
+ .ce-chip--ghost.chip--success,
3990
+ .ce-chip--ghost.ce-chip--success {
3991
+ --ce-chip-bg: var(--ce-chip-ghost-success-bg, rgba(fn.color(success), 0.1));
3992
+ --ce-chip-color: var(--ce-chip-ghost-success-color, #34a853);
3993
+ }
3994
+ .chip--ghost.chip--danger, .chip--ghost.ce-chip--danger,
3995
+ .ce-chip--ghost.chip--danger,
3996
+ .ce-chip--ghost.ce-chip--danger {
3997
+ --ce-chip-bg: var(--ce-chip-ghost-danger-bg, rgba(fn.color(danger), 0.1));
3998
+ --ce-chip-color: var(--ce-chip-ghost-danger-color, #ea4335);
3999
+ }
4000
+ .chip--ghost.chip--warning, .chip--ghost.ce-chip--warning,
4001
+ .ce-chip--ghost.chip--warning,
4002
+ .ce-chip--ghost.ce-chip--warning {
4003
+ --ce-chip-bg: var(--ce-chip-ghost-warning-bg, rgba(fn.color(warning), 0.15));
4004
+ --ce-chip-color: var(--ce-chip-ghost-warning-color, );
4005
+ }
4006
+ .chip--ghost.chip--info, .chip--ghost.ce-chip--info,
4007
+ .ce-chip--ghost.chip--info,
4008
+ .ce-chip--ghost.ce-chip--info {
4009
+ --ce-chip-bg: var(--ce-chip-ghost-info-bg, rgba(fn.color(info), 0.1));
4010
+ --ce-chip-color: var(--ce-chip-ghost-info-color, #4285f4);
4011
+ }
4012
+ .chip.active,
4013
+ .ce-chip.active {
4014
+ --ce-chip-bg: var(
4015
+ --ce-chip-active-bg,
4016
+ var(--theme-chip-active-bg, #1a73e8)
4017
+ );
4018
+ --ce-chip-color: var(
4019
+ --ce-chip-active-color,
4020
+ var(--theme-chip-active-fg, #ffffff)
4021
+ );
4022
+ --ce-chip-border-color: var(
4023
+ --ce-chip-active-border,
4024
+ var(--theme-chip-active-border, #1a73e8)
4025
+ );
4026
+ }
4027
+ .chip--removable,
4028
+ .ce-chip--removable {
4029
+ --ce-chip-padding: var(--ce-chip-removable-padding, 0.375rem 0.5rem 0.375rem 0.875rem);
4030
+ }
4031
+ .chip__close,
4032
+ .ce-chip__close {
4033
+ display: inline-flex;
4034
+ align-items: center;
4035
+ justify-content: center;
4036
+ background-color: var(--ce-chip-close-bg, transparent);
4037
+ border-width: var(--ce-chip-close-border-width, 0);
4038
+ border-style: var(--ce-chip-close-border-style, solid);
4039
+ border-color: var(--ce-chip-close-border-color, transparent);
4040
+ color: var(--ce-chip-close-color, currentColor);
4041
+ font-size: var(--ce-chip-close-size, 1.25em);
4042
+ cursor: var(--ce-chip-close-cursor, pointer);
4043
+ padding: var(--ce-chip-close-padding, 0);
4044
+ margin-left: var(--ce-chip-close-gap, 0.375rem);
4045
+ opacity: var(--ce-chip-close-opacity, 0.6);
4046
+ transition: opacity var(--ce-chip-close-transition, 0.2s) var(--ce-chip-close-transition-ease, ease);
4047
+ width: var(--ce-chip-close-width, 1em);
4048
+ height: var(--ce-chip-close-height, 1em);
4049
+ line-height: var(--ce-chip-close-line-height, 1);
4050
+ }
4051
+ .chip__close:hover, .chip__close:focus-visible,
4052
+ .ce-chip__close:hover,
4053
+ .ce-chip__close:focus-visible {
4054
+ opacity: var(--ce-chip-close-hover-opacity, 1);
4055
+ outline-width: var(--ce-chip-close-outline-width, 2px);
4056
+ outline-style: var(--ce-chip-close-outline-style, solid);
4057
+ outline-color: var(--ce-chip-close-outline-color, currentColor);
4058
+ outline-offset: var(--ce-chip-close-outline-offset, 2px);
4059
+ border-radius: var(--ce-chip-close-radius, 4px);
4060
+ }
4061
+ .chip__icon,
4062
+ .ce-chip__icon {
4063
+ display: inline-flex;
4064
+ font-size: var(--ce-chip-icon-size, 1.1em);
4065
+ }
4066
+ .chip:disabled, .chip.disabled,
4067
+ .ce-chip:disabled,
4068
+ .ce-chip.disabled {
4069
+ opacity: var(--ce-chip-disabled-opacity, 0.5);
4070
+ cursor: var(--ce-chip-disabled-cursor, not-allowed);
4071
+ }
4072
+
4073
+ .divider {
4074
+ border: none;
4075
+ border-top: var(--ce-divider-thickness, 1px) var(--ce-divider-style, solid) var(--ce-divider-color, #9aa0a6);
4076
+ margin: var(--ce-divider-margin, 1rem) 0;
4077
+ background: none;
4078
+ display: block;
4079
+ width: 100%;
4080
+ box-sizing: border-box;
4081
+ }
4082
+ .divider--vertical {
4083
+ border-top: none;
4084
+ border-left: var(--ce-divider-thickness, 1px) var(--ce-divider-style, solid) var(--ce-divider-color, #9aa0a6);
4085
+ height: 100%;
4086
+ margin: 0 var(--ce-divider-margin, 1rem);
4087
+ width: auto;
4088
+ min-height: 1em;
4089
+ display: inline-block;
4090
+ vertical-align: middle;
4091
+ }
4092
+ .divider--dashed {
4093
+ border-top-style: dashed;
4094
+ border-left-style: dashed;
4095
+ }
4096
+ .divider--thick {
4097
+ border-top-width: 2px;
4098
+ border-left-width: 2px;
4099
+ }
4100
+
4101
+ .image {
4102
+ max-width: 100%;
4103
+ display: block;
4104
+ height: auto;
4105
+ border-radius: 4px;
4106
+ }
4107
+ .image--rounded {
4108
+ border-radius: 8px;
4109
+ }
4110
+ .image--circle {
4111
+ border-radius: 50%;
4112
+ }
4113
+ .image--shadow {
4114
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
4115
+ }
4116
+ .image--cover {
4117
+ object-fit: cover;
4118
+ width: 100%;
4119
+ height: 100%;
4120
+ }
4121
+ .image--contain {
4122
+ object-fit: contain;
4123
+ }
4124
+
4125
+ .alert {
4126
+ padding: 1rem;
4127
+ border-radius: 4px;
4128
+ border-left: 4px solid;
4129
+ background-color: var(--theme-alert-bg, #f8f9fa);
4130
+ color: var(--theme-alert-fg, #202124);
4131
+ position: relative;
4132
+ margin-bottom: 1rem;
4133
+ }
4134
+ .alert--success {
4135
+ border-color: var(--theme-alert-success-border, #34a853);
4136
+ background-color: var(--theme-alert-success-bg, rgb(208.8, 240.7, 217.325));
4137
+ color: var(--theme-alert-success-fg, rgb(14.2380952381, 69.3333333333, 141.7619047619));
4138
+ }
4139
+ .alert--danger {
4140
+ border-color: var(--theme-alert-danger-border, #ea4335);
4141
+ background-color: var(--theme-alert-danger-bg, rgb(208.8, 240.7, 217.325));
4142
+ color: var(--theme-alert-danger-fg, rgb(14.2380952381, 69.3333333333, 141.7619047619));
4143
+ }
4144
+ .alert--warning {
4145
+ border-color: var(--theme-alert-warning-border, #f9ab00);
4146
+ background-color: var(--theme-alert-warning-bg, rgb(189.3272727273, 234.6727272727, 201.4454545455));
4147
+ color: var(--theme-alert-warning-fg, rgb(14.2380952381, 69.3333333333, 141.7619047619));
4148
+ }
4149
+ .alert--info {
4150
+ border-color: var(--theme-alert-info-border, #4285f4);
4151
+ background-color: var(--theme-alert-info-bg, rgb(208.8, 240.7, 217.325));
4152
+ color: var(--theme-alert-info-fg, rgb(14.2380952381, 69.3333333333, 141.7619047619));
4153
+ }
4154
+ .alert__title {
4155
+ font-weight: bold;
4156
+ margin-bottom: 0.25rem;
4157
+ }
4158
+ .alert__close {
4159
+ position: absolute;
4160
+ right: 0.5rem;
4161
+ top: 0.5rem;
4162
+ background: none;
4163
+ border: none;
4164
+ color: #9aa0a6;
4165
+ font-size: 1.25rem;
4166
+ cursor: pointer;
4167
+ }
4168
+ .alert__close:hover {
4169
+ color: #ea4335;
4170
+ }
4171
+ .alert__close:focus-visible {
4172
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
4173
+ outline-offset: 2px;
4174
+ }
4175
+
4176
+ .message {
4177
+ padding: 0.5rem;
4178
+ font-size: 0.875rem;
4179
+ border-radius: 4px;
4180
+ color: #202124;
4181
+ }
4182
+ .message--success {
4183
+ background-color: rgb(189.3272727273, 234.6727272727, 201.4454545455);
4184
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
4185
+ }
4186
+ .message--error {
4187
+ background-color: rgb(253.2107623318, 238.9820627803, 237.7892376682);
4188
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
4189
+ }
4190
+ .message--info {
4191
+ background-color: rgb(189.3272727273, 234.6727272727, 201.4454545455);
4192
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
4193
+ }
4194
+
4195
+ .progress-bar {
4196
+ width: var(--ce-progress-bar-width, 100%);
4197
+ background-color: var(--ce-progress-bar-bg, var(--theme-progress-bg, #f8f9fa));
4198
+ height: var(--ce-progress-bar-height, 0.75rem);
4199
+ border-radius: var(--ce-progress-bar-radius, 8px);
4200
+ overflow: var(--ce-progress-bar-overflow, hidden);
4201
+ }
4202
+ .progress-bar__fill {
4203
+ height: var(--ce-progress-bar-fill-height, 100%);
4204
+ width: var(--ce-progress-bar-fill-width, 0%);
4205
+ background-color: var(--ce-progress-bar-fill-bg, var(--theme-progress-fill, #1a73e8));
4206
+ transition: var(--ce-progress-bar-fill-transition, width 0.3s ease-in-out);
4207
+ }
4208
+ .progress-bar__fill--success {
4209
+ background-color: var(--ce-progress-bar-success-bg, var(--theme-progress-success, #34a853));
4210
+ }
4211
+ .progress-bar__fill--danger {
4212
+ background-color: var(--ce-progress-bar-danger-bg, var(--theme-progress-danger, #ea4335));
4213
+ }
4214
+ .progress-bar__fill--warning {
4215
+ background-color: var(--ce-progress-bar-warning-bg, var(--theme-progress-warning, #f9ab00));
4216
+ }
4217
+
4218
+ .snackbar {
4219
+ position: fixed;
4220
+ bottom: 1.5rem;
4221
+ left: 50%;
4222
+ transform: translateX(-50%);
4223
+ background-color: var(--theme-snackbar-bg, #202124);
4224
+ color: var(--theme-snackbar-fg, #ffffff);
4225
+ padding: 0.5rem 1rem;
4226
+ border-radius: 4px;
4227
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
4228
+ font-size: 0.875rem;
4229
+ z-index: 1080;
4230
+ animation: fade-in 0.3s ease-in-out;
4231
+ }
4232
+ .snackbar--success {
4233
+ background-color: var(--theme-snackbar-success, #34a853);
4234
+ }
4235
+ .snackbar--error {
4236
+ background-color: var(--theme-snackbar-error, #ea4335);
4237
+ }
4238
+ .snackbar--info {
4239
+ background-color: var(--theme-snackbar-info, #4285f4);
4240
+ }
4241
+ .snackbar--warning {
4242
+ background-color: var(--theme-snackbar-warning, #f9ab00);
4243
+ }
4244
+ .snackbar--warning:focus-visible {
4245
+ outline: 2px solid var(--theme-accent, var(--theme-primary));
4246
+ outline-offset: 2px;
4247
+ }
4248
+
4249
+ .skeleton {
4250
+ background-color: var(--theme-skeleton-bg, #f8f9fa);
4251
+ border-radius: 4px;
4252
+ width: 100%;
4253
+ height: 1rem;
4254
+ position: relative;
4255
+ overflow: hidden;
4256
+ }
4257
+ .skeleton::after {
4258
+ content: "";
4259
+ position: absolute;
4260
+ top: 0;
4261
+ left: -50%;
4262
+ height: 100%;
4263
+ width: 50%;
4264
+ background: linear-gradient(to right, transparent, var(--theme-skeleton-shimmer, rgba(255, 255, 255, 0.3)), transparent);
4265
+ animation: shimmer 1.5s infinite;
4266
+ }
4267
+ .skeleton--sm {
4268
+ height: 0.75rem;
4269
+ }
4270
+ .skeleton--lg {
4271
+ height: 1.5rem;
4272
+ }
4273
+ .skeleton--circle {
4274
+ border-radius: 50%;
4275
+ height: 2rem;
4276
+ width: 2rem;
4277
+ }
4278
+
4279
+ @keyframes shimmer {
4280
+ 100% {
4281
+ transform: translateX(100%);
4282
+ }
4283
+ }
4284
+ .carousel {
4285
+ position: relative;
4286
+ overflow: hidden;
4287
+ border-radius: var(--ce-carousel-radius, 8px);
4288
+ background-color: var(--ce-carousel-bg, var(--theme-carousel-bg, var(--theme-surface, #f8f9fa)));
4289
+ box-shadow: var(--ce-carousel-shadow, none);
4290
+ color: var(--ce-carousel-color, inherit);
4291
+ }
4292
+ .carousel__track {
4293
+ display: flex;
4294
+ transition: transform var(--ce-carousel-track-duration, 0.5s) var(--ce-carousel-track-ease, ease-in-out);
4295
+ will-change: transform;
4296
+ }
4297
+ .carousel__slide {
4298
+ min-width: 100%;
4299
+ flex-shrink: 0;
4300
+ padding: var(--ce-carousel-slide-padding, 1.5rem);
4301
+ background: var(--ce-carousel-slide-bg, var(--theme-carousel-slide-bg, var(--theme-surface, #f8f9fa)));
4302
+ color: var(--ce-carousel-slide-color, var(--theme-carousel-slide-fg, var(--theme-fg, #202124)));
4303
+ }
4304
+ .carousel__controls {
4305
+ position: absolute;
4306
+ top: 50%;
4307
+ width: 100%;
4308
+ display: flex;
4309
+ justify-content: space-between;
4310
+ transform: translateY(-50%);
4311
+ padding: var(--ce-carousel-controls-padding, 0 1rem);
4312
+ pointer-events: none;
4313
+ }
4314
+ .carousel__controls button {
4315
+ background: var(--ce-carousel-btn-bg, var(--theme-carousel-btn-bg, rgba(0, 0, 0, 0.4)));
4316
+ border: none;
4317
+ border-radius: var(--ce-carousel-btn-radius, 50%);
4318
+ color: var(--ce-carousel-btn-color, var(--theme-carousel-btn-fg, #ffffff));
4319
+ font-size: var(--ce-carousel-btn-size, 1.25rem);
4320
+ cursor: var(--ce-carousel-btn-cursor, pointer);
4321
+ padding: var(--ce-carousel-btn-padding, 0.25rem);
4322
+ pointer-events: auto;
4323
+ }
4324
+ .carousel__controls button:hover {
4325
+ background: var(--ce-carousel-btn-hover-bg, var(--theme-carousel-btn-hover, var(--theme-accent, #1a73e8)));
4326
+ }
4327
+ .carousel__indicators {
4328
+ display: flex;
4329
+ justify-content: center;
4330
+ margin-top: var(--ce-carousel-indicators-margin, 1rem);
4331
+ }
4332
+ .carousel__indicators .dot {
4333
+ width: var(--ce-carousel-dot-size, 0.75rem);
4334
+ height: var(--ce-carousel-dot-size, 0.75rem);
4335
+ margin: var(--ce-carousel-dot-margin, 0 0.25rem);
4336
+ background-color: var(--ce-carousel-dot-bg, var(--theme-carousel-indicator, var(--theme-muted, #9aa0a6)));
4337
+ border-radius: var(--ce-carousel-dot-radius, 50%);
4338
+ cursor: var(--ce-carousel-dot-cursor, pointer);
4339
+ }
4340
+ .carousel__indicators .dot.active {
4341
+ background-color: var(--ce-carousel-dot-active-bg, var(--theme-carousel-indicator-active, var(--theme-accent, #1a73e8)));
4342
+ }
4343
+
4344
+ .steps {
4345
+ display: flex;
4346
+ justify-content: space-between;
4347
+ align-items: center;
4348
+ gap: 1rem;
4349
+ }
4350
+ .steps .step {
4351
+ flex: 1;
4352
+ text-align: center;
4353
+ position: relative;
4354
+ }
4355
+ .steps .step .circle {
4356
+ display: inline-flex;
4357
+ align-items: center;
4358
+ justify-content: center;
4359
+ width: 2rem;
4360
+ height: 2rem;
4361
+ background-color: #9aa0a6;
4362
+ color: #ffffff;
4363
+ border-radius: 50%;
4364
+ font-weight: bold;
4365
+ margin-bottom: 0.25rem;
4366
+ }
4367
+ .steps .step .circle.active {
4368
+ background-color: #1a73e8;
4369
+ }
4370
+ .steps .step .circle.completed {
4371
+ background-color: #34a853;
4372
+ }
4373
+ .steps .step .label {
4374
+ font-size: 0.875rem;
4375
+ color: #202124;
4376
+ }
4377
+ .steps .step::after {
4378
+ content: "";
4379
+ position: absolute;
4380
+ top: 1rem;
4381
+ right: -50%;
4382
+ width: 100%;
4383
+ height: 2px;
4384
+ background-color: #9aa0a6;
4385
+ z-index: -1;
4386
+ }
4387
+ .steps .step:last-child::after {
4388
+ display: none;
4389
+ }
4390
+
4391
+ .timeline {
4392
+ position: var(--ce-timeline-advanced-position, relative);
4393
+ padding-left: var(--ce-timeline-advanced-padding, 2rem);
4394
+ border-left: var(--ce-timeline-advanced-border, 2px solid #9aa0a6);
4395
+ }
4396
+ .timeline .timeline__event {
4397
+ margin-bottom: var(--ce-timeline-advanced-event-margin, 2rem);
4398
+ position: var(--ce-timeline-advanced-event-position, relative);
4399
+ }
4400
+ .timeline .timeline__event::before {
4401
+ content: var(--ce-timeline-advanced-dot-content, "");
4402
+ position: var(--ce-timeline-advanced-dot-position, absolute);
4403
+ left: var(--ce-timeline-advanced-dot-left, 1.5rem);
4404
+ top: var(--ce-timeline-advanced-dot-top, 0.25rem);
4405
+ width: var(--ce-timeline-advanced-dot-size, 1rem);
4406
+ height: var(--ce-timeline-advanced-dot-size, 1rem);
4407
+ background-color: var(--ce-timeline-advanced-dot-bg, #1a73e8);
4408
+ border-radius: var(--ce-timeline-advanced-dot-radius, 50%);
4409
+ border: var(--ce-timeline-advanced-dot-border, 2px solid #ffffff);
4410
+ }
4411
+ .timeline .timeline__event .title {
4412
+ font-weight: var(--ce-timeline-advanced-title-weight, bold);
4413
+ color: var(--ce-timeline-advanced-title-color, #202124);
4414
+ }
4415
+ .timeline .timeline__event .timestamp {
4416
+ font-size: var(--ce-timeline-advanced-time-size, 0.75rem);
4417
+ color: var(--ce-timeline-advanced-time-color, #9aa0a6);
4418
+ }
4419
+ .timeline .timeline__event .content {
4420
+ margin-top: var(--ce-timeline-advanced-content-margin, 0.5rem);
4421
+ font-size: var(--ce-timeline-advanced-content-size, 0.9rem);
4422
+ }
4423
+
4424
+ .calendar {
4425
+ display: grid;
4426
+ grid-template-columns: repeat(7, 1fr);
4427
+ gap: 0.25rem;
4428
+ font-size: 0.85rem;
4429
+ }
4430
+ .calendar .day {
4431
+ text-align: center;
4432
+ padding: 0.5rem;
4433
+ border-radius: 4px;
4434
+ background-color: #ffffff;
4435
+ cursor: pointer;
4436
+ transition: 0.2s;
4437
+ }
4438
+ .calendar .day:hover {
4439
+ background-color: #f8f9fa;
4440
+ }
4441
+ .calendar .day--today {
4442
+ border: 1px solid #1a73e8;
4443
+ }
4444
+ .calendar .day--selected {
4445
+ background-color: #1a73e8;
4446
+ color: #ffffff;
4447
+ }
4448
+ .calendar .day--disabled {
4449
+ color: #9aa0a6;
4450
+ pointer-events: none;
4451
+ }
4452
+ .calendar .weekdays {
4453
+ font-weight: bold;
4454
+ text-transform: uppercase;
4455
+ font-size: 0.75rem;
4456
+ grid-column: span 7;
4457
+ display: grid;
4458
+ grid-template-columns: repeat(7, 1fr);
4459
+ margin-bottom: 0.25rem;
4460
+ }
4461
+
4462
+ .rating {
4463
+ display: var(--ce-rating-advanced-display, inline-flex);
4464
+ gap: var(--ce-rating-advanced-gap, 0.25rem);
4465
+ font-size: var(--ce-rating-advanced-size, 1.25rem);
4466
+ color: var(--ce-rating-advanced-color, #9aa0a6);
4467
+ cursor: var(--ce-rating-advanced-cursor, pointer);
4468
+ }
4469
+ .rating .star {
4470
+ transition: var(--ce-rating-advanced-star-transition, color 0.2s);
4471
+ }
4472
+ .rating .star.filled {
4473
+ color: var(--ce-rating-advanced-star-filled, #f9ab00);
4474
+ }
4475
+ .rating--sm {
4476
+ font-size: var(--ce-rating-advanced-sm-size, 1rem);
4477
+ }
4478
+ .rating--lg {
4479
+ font-size: var(--ce-rating-advanced-lg-size, 1.75rem);
4480
+ }
4481
+
4482
+ .chat {
4483
+ display: flex;
4484
+ flex-direction: column;
4485
+ gap: var(--ce-chat-gap, 1rem);
4486
+ color: var(--ce-chat-color, inherit);
4487
+ }
4488
+ .chat .chat__message {
4489
+ max-width: var(--ce-chat-message-max-width, 70%);
4490
+ padding: var(--ce-chat-message-padding, 0.5rem 1rem);
4491
+ border-radius: var(--ce-chat-message-radius, 8px);
4492
+ background-color: var(--ce-chat-message-bg, #f8f9fa);
4493
+ color: var(--ce-chat-message-color, inherit);
4494
+ position: relative;
4495
+ word-wrap: break-word;
4496
+ }
4497
+ .chat .chat__message--sent {
4498
+ align-self: flex-end;
4499
+ --ce-chat-message-bg: #1a73e8;
4500
+ --ce-chat-message-color: #ffffff;
4501
+ }
4502
+ .chat .chat__message--received {
4503
+ align-self: flex-start;
4504
+ }
4505
+ .chat .chat__message .timestamp {
4506
+ font-size: var(--ce-chat-timestamp-size, 0.7rem);
4507
+ margin-top: var(--ce-chat-timestamp-margin, 0.25rem);
4508
+ opacity: var(--ce-chat-timestamp-opacity, 0.6);
4509
+ color: var(--ce-chat-timestamp-color, inherit);
4510
+ }
4511
+
4512
+ .code-block {
4513
+ background-color: #202124;
4514
+ color: #ffffff;
4515
+ font-family: "Fira Code", monospace;
4516
+ font-size: 0.85rem;
4517
+ padding: 1rem;
4518
+ border-radius: 8px;
4519
+ overflow-x: auto;
4520
+ }
4521
+ .code-block--light {
4522
+ background-color: #f8f9fa;
4523
+ color: #202124;
4524
+ }
4525
+ .code-block code {
4526
+ white-space: pre;
4527
+ }
4528
+
4529
+ .chart-wrapper {
4530
+ background-color: var(--ce-chart-bg, #ffffff);
4531
+ padding: var(--ce-chart-padding, 1rem);
4532
+ border-radius: var(--ce-chart-radius, 4px);
4533
+ box-shadow: var(--ce-chart-shadow, 0 1px 3px rgba(0, 0, 0, 0.08));
4534
+ border: 1px solid var(--ce-chart-border, #9aa0a6);
4535
+ margin-bottom: var(--ce-chart-margin, 1.5rem);
4536
+ width: 100%;
4537
+ max-width: 100%;
4538
+ overflow-x: auto;
4539
+ outline: none;
4540
+ transition: box-shadow 0.2s;
4541
+ }
4542
+ .chart-wrapper:focus {
4543
+ box-shadow: 0 0 0 2px var(--ce-chart-focus, #0078d4);
4544
+ }
4545
+ .chart-wrapper--bar canvas, .chart-wrapper--line canvas, .chart-wrapper--pie canvas, .chart-wrapper--radar canvas {
4546
+ width: 100% !important;
4547
+ height: var(--ce-chart-canvas-height, 280px) !important;
4548
+ max-width: 100%;
4549
+ border-radius: var(--ce-chart-canvas-radius, 0.3em);
4550
+ background: var(--ce-chart-canvas-bg, transparent);
4551
+ outline: none;
4552
+ }
4553
+ .chart-wrapper__title {
4554
+ font-weight: bold;
4555
+ font-size: var(--ce-chart-title-size, 1.1rem);
4556
+ margin-bottom: var(--ce-chart-title-margin, 0.5rem);
4557
+ color: var(--ce-chart-title-color, #202124);
4558
+ line-height: 1.3;
4559
+ letter-spacing: 0.01em;
4560
+ outline: none;
4561
+ }
4562
+ .chart-wrapper__title:focus {
4563
+ text-decoration: underline;
4564
+ }
4565
+
4566
+ .editor {
4567
+ border-width: var(--ce-editor-border-width, 1px);
4568
+ border-style: var(--ce-editor-border-style, solid);
4569
+ border-color: var(--ce-editor-border-color, #9aa0a6);
4570
+ border-radius: var(--ce-editor-radius, 4px);
4571
+ background-color: var(--ce-editor-bg, #ffffff);
4572
+ padding: var(--ce-editor-padding, 0.5rem);
4573
+ font-size: var(--ce-editor-size, 1rem);
4574
+ line-height: var(--ce-editor-line-height, 1.6);
4575
+ display: flex;
4576
+ flex-direction: column;
4577
+ gap: var(--ce-editor-gap, 0.5rem);
4578
+ min-height: var(--ce-editor-min-height, 250px);
4579
+ }
4580
+ .editor__toolbar {
4581
+ display: flex;
4582
+ flex-wrap: wrap;
4583
+ gap: var(--ce-editor-toolbar-gap, 0.25rem);
4584
+ border-bottom-width: var(--ce-editor-toolbar-border-width, 1px);
4585
+ border-bottom-style: var(--ce-editor-toolbar-border-style, solid);
4586
+ border-bottom-color: var(--ce-editor-toolbar-border-color, #9aa0a6);
4587
+ padding-bottom: var(--ce-editor-toolbar-padding, 0.25rem);
4588
+ }
4589
+ .editor__toolbar button {
4590
+ background-color: var(--ce-editor-button-bg, #f8f9fa);
4591
+ border-width: var(--ce-editor-button-border-width, 1px);
4592
+ border-style: var(--ce-editor-button-border-style, solid);
4593
+ border-color: var(--ce-editor-button-border-color, #dadce0);
4594
+ padding: var(--ce-editor-button-padding, 0.25rem 0.5rem);
4595
+ border-radius: var(--ce-editor-button-radius, 2px);
4596
+ font-size: var(--ce-editor-button-size, 0.85rem);
4597
+ cursor: var(--ce-editor-button-cursor, pointer);
4598
+ }
4599
+ .editor__toolbar button:hover {
4600
+ background-color: var(--ce-editor-button-hover-bg, #1a73e8);
4601
+ color: var(--ce-editor-button-hover-color, #ffffff);
4602
+ }
4603
+ .editor__toolbar button.active {
4604
+ background-color: var(--ce-editor-button-active-bg, #1a73e8);
4605
+ color: var(--ce-editor-button-active-color, #ffffff);
4606
+ }
4607
+ .editor__content {
4608
+ flex: 1;
4609
+ min-height: var(--ce-editor-content-min-height, 160px);
4610
+ padding: var(--ce-editor-content-padding, 0.5rem);
4611
+ border-radius: var(--ce-editor-content-radius, 2px);
4612
+ border: var(--ce-editor-content-border, none);
4613
+ outline: var(--ce-editor-content-outline, none);
4614
+ color: var(--ce-editor-content-color, #202124);
4615
+ background: var(--ce-editor-content-bg, #ffffff);
4616
+ font-size: var(--ce-editor-content-size, 1rem);
4617
+ }
4618
+ .editor__content p {
4619
+ margin-bottom: var(--ce-editor-paragraph-margin, 0.5rem);
4620
+ }
4621
+ .editor__content h1, .editor__content h2, .editor__content h3 {
4622
+ margin: var(--ce-editor-heading-margin, 0.5rem 0);
4623
+ font-weight: var(--ce-editor-heading-weight, bold);
4624
+ }
4625
+ .editor__content ul, .editor__content ol {
4626
+ padding-left: var(--ce-editor-list-padding, 1rem);
4627
+ margin: var(--ce-editor-list-margin, 0.5rem 0);
4628
+ }
4629
+ .editor__content blockquote {
4630
+ border-left-width: var(--ce-editor-blockquote-border-width, 4px);
4631
+ border-left-style: var(--ce-editor-blockquote-border-style, solid);
4632
+ border-left-color: var(--ce-editor-blockquote-border-color, #1a73e8);
4633
+ padding-left: var(--ce-editor-blockquote-padding, 0.5rem);
4634
+ color: var(--ce-editor-blockquote-color, #9aa0a6);
4635
+ margin: var(--ce-editor-blockquote-margin, 0.5rem 0);
4636
+ }
4637
+ .editor__content pre {
4638
+ font-family: var(--ce-editor-pre-font, monospace);
4639
+ background: var(--ce-editor-pre-bg, #202124);
4640
+ color: var(--ce-editor-pre-color, #ffffff);
4641
+ padding: var(--ce-editor-pre-padding, 0.5rem);
4642
+ border-radius: var(--ce-editor-pre-radius, 4px);
4643
+ overflow-x: var(--ce-editor-pre-overflow, auto);
4644
+ }
4645
+ .editor__content code {
4646
+ background: var(--ce-editor-code-bg, #f8f9fa);
4647
+ padding: var(--ce-editor-code-padding, 2px 6px);
4648
+ border-radius: var(--ce-editor-code-radius, 2px);
4649
+ font-size: var(--ce-editor-code-size, 0.9rem);
4650
+ }
4651
+ .editor__content img {
4652
+ max-width: var(--ce-editor-image-max-width, 100%);
4653
+ height: var(--ce-editor-image-height, auto);
4654
+ border-radius: var(--ce-editor-image-radius, 2px);
4655
+ margin: var(--ce-editor-image-margin, 0.5rem 0);
4656
+ }
4657
+ .editor__content table {
4658
+ width: 100%;
4659
+ border-collapse: collapse;
4660
+ margin: var(--ce-editor-table-margin, 0.5rem 0);
4661
+ }
4662
+ .editor__content table th, .editor__content table td {
4663
+ border-width: var(--ce-editor-table-border-width, 1px);
4664
+ border-style: var(--ce-editor-table-border-style, solid);
4665
+ border-color: var(--ce-editor-table-border-color, #dadce0);
4666
+ padding: var(--ce-editor-table-cell-padding, 0.25rem);
4667
+ text-align: left;
4668
+ }
4669
+ .editor__content table th {
4670
+ background: var(--ce-editor-table-header-bg, #f1f3f4);
4671
+ }
4672
+ .editor__content a {
4673
+ color: var(--ce-editor-link-color, #1a73e8);
4674
+ text-decoration: var(--ce-editor-link-decoration, underline);
4675
+ }
4676
+ .editor__content a:hover {
4677
+ color: var(--ce-editor-link-hover-color, rgb(18.8928571429, 92, 188.1071428571));
4678
+ }
4679
+ .editor--readonly {
4680
+ pointer-events: none;
4681
+ background-color: var(--ce-editor-readonly-bg, #f8f9fa);
4682
+ border-style: var(--ce-editor-readonly-border-style, dashed);
4683
+ }
4684
+ .editor--disabled {
4685
+ opacity: var(--ce-editor-disabled-opacity, 0.6);
4686
+ pointer-events: var(--ce-editor-disabled-events, none);
4687
+ }
4688
+
4689
+ .ce-atmcard {
4690
+ position: relative;
4691
+ width: var(--ce-atmcard-width, 100%);
4692
+ max-width: var(--ce-atmcard-max-width, 380px);
4693
+ height: var(--ce-atmcard-height, 240px);
4694
+ border-radius: var(--ce-atmcard-radius, 12px);
4695
+ border-width: var(--ce-atmcard-border-width, 1px);
4696
+ border-style: var(--ce-atmcard-border-style, solid);
4697
+ border-color: var(--ce-atmcard-border-color, rgba(255, 255, 255, 0.2));
4698
+ padding: var(--ce-atmcard-padding, 1.5rem);
4699
+ background: var(--ce-atmcard-bg, linear-gradient(135deg, #667eea 0%, #764ba2 100%));
4700
+ box-shadow: var(--ce-atmcard-shadow, 0 10px 30px rgba(0, 0, 0, 0.2));
4701
+ color: var(--ce-atmcard-color, white);
4702
+ font-family: var(--ce-atmcard-font, "Courier New", monospace);
4703
+ display: flex;
4704
+ flex-direction: column;
4705
+ justify-content: space-between;
4706
+ overflow: hidden;
4707
+ }
4708
+ .ce-atmcard::before {
4709
+ content: "";
4710
+ position: absolute;
4711
+ top: var(--ce-atmcard-chip-top, 1.5rem);
4712
+ right: var(--ce-atmcard-chip-right, 1.5rem);
4713
+ width: var(--ce-atmcard-chip-width, 50px);
4714
+ height: var(--ce-atmcard-chip-height, 40px);
4715
+ background: var(--ce-atmcard-chip-bg, linear-gradient(135deg, #ffd700 0%, #ffed4e 100%));
4716
+ border-radius: var(--ce-atmcard-chip-radius, 4px);
4717
+ opacity: var(--ce-atmcard-chip-opacity, 0.8);
4718
+ }
4719
+ .ce-atmcard--light {
4720
+ --ce-atmcard-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
4721
+ --ce-atmcard-color: white;
4722
+ }
4723
+ .ce-atmcard--dark {
4724
+ --ce-atmcard-bg: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
4725
+ --ce-atmcard-color: white;
4726
+ }
4727
+ .ce-atmcard--visa {
4728
+ --ce-atmcard-bg: linear-gradient(135deg, #1434CB 0%, #0F2896 100%);
4729
+ }
4730
+ .ce-atmcard--mastercard {
4731
+ --ce-atmcard-bg: linear-gradient(135deg, #EB001B 0%, #F79E1B 100%);
4732
+ }
4733
+ .ce-atmcard--amex {
4734
+ --ce-atmcard-bg: linear-gradient(135deg, #006FCF 0%, #0048A0 100%);
4735
+ }
4736
+ .ce-atmcard--discover {
4737
+ --ce-atmcard-bg: linear-gradient(135deg, #FF6000 0%, #F05A28 100%);
4738
+ }
4739
+ .ce-atmcard__brand {
4740
+ font-size: var(--ce-atmcard-brand-size, 0.875rem);
4741
+ font-weight: var(--ce-atmcard-brand-weight, 600);
4742
+ text-transform: var(--ce-atmcard-brand-transform, uppercase);
4743
+ letter-spacing: var(--ce-atmcard-brand-letter-spacing, 1px);
4744
+ opacity: var(--ce-atmcard-brand-opacity, 0.9);
4745
+ margin-bottom: var(--ce-atmcard-brand-margin-bottom, 0.5rem);
4746
+ }
4747
+ .ce-atmcard__chip {
4748
+ position: absolute;
4749
+ top: var(--ce-atmcard-chip-top, 2rem);
4750
+ left: var(--ce-atmcard-chip-left, 1.5rem);
4751
+ width: var(--ce-atmcard-chip-width, 50px);
4752
+ height: var(--ce-atmcard-chip-height, 40px);
4753
+ background: var(--ce-atmcard-chip-bg, linear-gradient(135deg, #ffd700 0%, #ffed4e 100%));
4754
+ border-radius: var(--ce-atmcard-chip-radius, 6px);
4755
+ opacity: var(--ce-atmcard-chip-opacity, 0.9);
4756
+ }
4757
+ .ce-atmcard__chip::before {
4758
+ content: "";
4759
+ position: absolute;
4760
+ top: 50%;
4761
+ left: 50%;
4762
+ transform: translate(-50%, -50%);
4763
+ width: var(--ce-atmcard-chip-inner-width, 30px);
4764
+ height: var(--ce-atmcard-chip-inner-height, 25px);
4765
+ border-width: var(--ce-atmcard-chip-inner-border-width, 2px);
4766
+ border-style: var(--ce-atmcard-chip-inner-border-style, solid);
4767
+ border-color: var(--ce-atmcard-chip-inner-border-color, rgba(0, 0, 0, 0.1));
4768
+ border-radius: var(--ce-atmcard-chip-inner-radius, 2px);
4769
+ }
4770
+ .ce-atmcard__number {
4771
+ font-size: var(--ce-atmcard-number-size, 1.5rem);
4772
+ letter-spacing: var(--ce-atmcard-number-letter-spacing, 3px);
4773
+ margin: var(--ce-atmcard-number-margin, 1.5rem 0);
4774
+ text-shadow: var(--ce-atmcard-number-shadow, 0 2px 4px rgba(0, 0, 0, 0.2));
4775
+ }
4776
+ .ce-atmcard__meta {
4777
+ display: flex;
4778
+ justify-content: space-between;
4779
+ gap: var(--ce-atmcard-meta-gap, 1.5rem);
4780
+ }
4781
+ .ce-atmcard__holder, .ce-atmcard__expiry {
4782
+ display: flex;
4783
+ flex-direction: column;
4784
+ gap: var(--ce-atmcard-meta-field-gap, 0.25rem);
4785
+ }
4786
+ .ce-atmcard__holder span, .ce-atmcard__expiry span {
4787
+ font-size: var(--ce-atmcard-meta-label-size, 0.625rem);
4788
+ text-transform: var(--ce-atmcard-meta-label-transform, uppercase);
4789
+ letter-spacing: var(--ce-atmcard-meta-label-letter-spacing, 1px);
4790
+ opacity: var(--ce-atmcard-meta-label-opacity, 0.8);
4791
+ }
4792
+ .ce-atmcard__holder strong, .ce-atmcard__expiry strong {
4793
+ font-size: var(--ce-atmcard-meta-value-size, 0.875rem);
4794
+ font-weight: var(--ce-atmcard-meta-value-weight, 600);
4795
+ }
4796
+ .ce-atmcard__logo {
4797
+ position: absolute;
4798
+ top: var(--ce-atmcard-logo-top, 1rem);
4799
+ right: var(--ce-atmcard-logo-right, 1rem);
4800
+ width: var(--ce-atmcard-logo-width, 60px);
4801
+ height: var(--ce-atmcard-logo-height, 40px);
4802
+ display: flex;
4803
+ align-items: center;
4804
+ justify-content: center;
4805
+ font-size: var(--ce-atmcard-logo-size, 1.5rem);
4806
+ font-weight: var(--ce-atmcard-logo-weight, bold);
4807
+ opacity: var(--ce-atmcard-logo-opacity, 0.8);
4808
+ }
4809
+ .ce-atmcard__logo--visa::after {
4810
+ content: "VISA";
4811
+ color: var(--ce-atmcard-logo-visa-color, white);
4812
+ font-family: var(--ce-atmcard-logo-font, sans-serif);
4813
+ }
4814
+ .ce-atmcard__logo--mastercard::before {
4815
+ content: "";
4816
+ position: absolute;
4817
+ width: 24px;
4818
+ height: 24px;
4819
+ border-radius: var(--ce-atmcard-logo-radius, var(--ce-radius-circle, 50%));
4820
+ background: var(--ce-atmcard-logo-mastercard-left-bg, #EB001B);
4821
+ left: 0;
4822
+ }
4823
+ .ce-atmcard__logo--mastercard::after {
4824
+ content: "";
4825
+ position: absolute;
4826
+ width: 24px;
4827
+ height: 24px;
4828
+ border-radius: var(--ce-atmcard-logo-radius, var(--ce-radius-circle, 50%));
4829
+ background: var(--ce-atmcard-logo-mastercard-right-bg, #F79E1B);
4830
+ left: 12px;
4831
+ }
4832
+ .ce-atmcard__logo--amex::after {
4833
+ content: "AMEX";
4834
+ color: var(--ce-atmcard-logo-amex-color, white);
4835
+ font-family: var(--ce-atmcard-logo-font, sans-serif);
4836
+ font-size: var(--ce-atmcard-logo-amex-size, 1rem);
4837
+ }
4838
+ .ce-atmcard__logo--discover::after {
4839
+ content: "DISCOVER";
4840
+ color: var(--ce-atmcard-logo-discover-color, white);
4841
+ font-family: var(--ce-atmcard-logo-font, sans-serif);
4842
+ font-size: var(--ce-atmcard-logo-discover-size, 0.75rem);
4843
+ }
4844
+ .ce-atmcard__number {
4845
+ font-size: var(--ce-atmcard-number-size, 1.5rem);
4846
+ letter-spacing: var(--ce-atmcard-number-letter-spacing, 3px);
4847
+ font-weight: var(--ce-atmcard-number-weight, 500);
4848
+ text-align: center;
4849
+ margin: var(--ce-atmcard-number-margin, 1rem 0);
4850
+ text-shadow: var(--ce-atmcard-number-shadow, 0 2px 4px rgba(0, 0, 0, 0.2));
4851
+ }
4852
+ .ce-atmcard__details {
4853
+ display: flex;
4854
+ justify-content: space-between;
4855
+ align-items: flex-end;
4856
+ font-size: var(--ce-atmcard-details-size, 0.875rem);
4857
+ }
4858
+ .ce-atmcard__holder, .ce-atmcard__expiry {
4859
+ display: flex;
4860
+ flex-direction: column;
4861
+ gap: var(--ce-atmcard-details-gap, 0.25rem);
4862
+ }
4863
+ .ce-atmcard__holder label, .ce-atmcard__expiry label {
4864
+ font-size: var(--ce-atmcard-details-label-size, 0.625rem);
4865
+ text-transform: var(--ce-atmcard-details-label-transform, uppercase);
4866
+ letter-spacing: var(--ce-atmcard-details-label-letter-spacing, 0.5px);
4867
+ opacity: var(--ce-atmcard-details-label-opacity, 0.8);
4868
+ }
4869
+ .ce-atmcard__holder strong, .ce-atmcard__expiry strong {
4870
+ font-size: var(--ce-atmcard-details-value-size, 0.875rem);
4871
+ font-weight: var(--ce-atmcard-details-value-weight, 600);
4872
+ text-transform: var(--ce-atmcard-details-value-transform, uppercase);
4873
+ }
4874
+ .ce-atmcard:hover {
4875
+ transform: var(--ce-atmcard-hover-transform, translateY(-5px));
4876
+ box-shadow: var(--ce-atmcard-hover-shadow, 0 15px 40px rgba(0, 0, 0, 0.3));
4877
+ transition: all var(--ce-atmcard-hover-transition-duration, 0.3s) var(--ce-atmcard-hover-transition-ease, ease);
4878
+ }
4879
+ @media (max-width: 480px) {
4880
+ .ce-atmcard {
4881
+ max-width: var(--ce-atmcard-max-width-mobile, 100%);
4882
+ height: var(--ce-atmcard-height-mobile, 200px);
4883
+ padding: var(--ce-atmcard-padding-mobile, 1rem);
4884
+ }
4885
+ .ce-atmcard__number {
4886
+ font-size: var(--ce-atmcard-number-size-mobile, 1.25rem);
4887
+ letter-spacing: var(--ce-atmcard-number-letter-spacing-mobile, 2px);
4888
+ }
4889
+ .ce-atmcard__details {
4890
+ font-size: var(--ce-atmcard-details-size-mobile, 0.75rem);
4891
+ }
4892
+ }
4893
+
4894
+ /*# sourceMappingURL=ce-ui.css.map */