@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/src/main.css ADDED
@@ -0,0 +1,3250 @@
1
+ @charset "UTF-8";
2
+ input,
3
+ textarea,
4
+ select {
5
+ transition: all 0.3s ease-in-out;
6
+ }
7
+
8
+ body {
9
+ font-family: var(--theme-font, "Segoe UI", Tahoma, Geneva, Verdana, sans-serif);
10
+ color: var(--theme-fg, #202124);
11
+ transition: background-color 0.3s ease, color 0.3s ease;
12
+ }
13
+
14
+ button,
15
+ input,
16
+ textarea,
17
+ select {
18
+ font-family: var(--theme-font, "Segoe UI", Tahoma, Geneva, Verdana, sans-serif);
19
+ color: var(--theme-fg, #202124);
20
+ transition: background-color 0.3s ease, color 0.3s ease;
21
+ }
22
+
23
+ a {
24
+ color: var(--theme-accent, var(--theme-primary));
25
+ text-decoration: none;
26
+ transition: color 0.3s ease;
27
+ }
28
+ a:hover, a:focus {
29
+ color: var(--theme-primary);
30
+ text-decoration: underline;
31
+ }
32
+
33
+ .container {
34
+ display: grid;
35
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
36
+ gap: 2rem;
37
+ max-width: 1200px;
38
+ margin: 0 auto;
39
+ padding: 2rem;
40
+ }
41
+
42
+ button {
43
+ border: none;
44
+ padding: 0.5rem 1rem;
45
+ border-radius: var(--theme-radius, 6px);
46
+ cursor: pointer;
47
+ font-weight: 400;
48
+ transition: background-color 0.3s ease, color 0.3s ease;
49
+ background-color: var(--theme-accent);
50
+ color: var(--theme-fg);
51
+ }
52
+ button:hover {
53
+ background-color: var(--theme-accent);
54
+ }
55
+
56
+ input,
57
+ textarea,
58
+ select {
59
+ border: 1px solid var(--theme-muted, #ccc);
60
+ padding: 0.5rem;
61
+ border-radius: var(--theme-radius, 6px);
62
+ transition: all 0.3s ease;
63
+ }
64
+
65
+ input:focus,
66
+ textarea:focus,
67
+ select:focus {
68
+ border-color: var(--theme-accent);
69
+ outline: none;
70
+ }
71
+
72
+ h1, h2, h3, h4, h5, h6 {
73
+ margin-top: 0;
74
+ margin-bottom: 0.5rem;
75
+ line-height: 1.2;
76
+ color: var(--theme-fg);
77
+ }
78
+
79
+ .text-muted {
80
+ color: var(--theme-muted, #6c757d);
81
+ }
82
+
83
+ .text-accent {
84
+ color: var(--theme-accent);
85
+ }
86
+
87
+ .bg-primary {
88
+ background-color: var(--theme-primary);
89
+ color: var(--theme-fg);
90
+ }
91
+
92
+ .border {
93
+ border: 1px solid var(--theme-muted, #ccc);
94
+ border-radius: var(--theme-radius, 6px);
95
+ }
96
+
97
+ body::after {
98
+ content: "Theme: " attr(class);
99
+ position: fixed;
100
+ bottom: 10px;
101
+ right: 10px;
102
+ background: var(--theme-bg);
103
+ color: var(--theme-fg);
104
+ padding: 0.5rem 1rem;
105
+ font-weight: bold;
106
+ z-index: 9999;
107
+ }
108
+
109
+ :root.theme-default {
110
+ --theme-bg: #ffffff;
111
+ --theme-fg: #202124;
112
+ --theme-accent: #1a73e8;
113
+ --theme-muted: #9aa0a6;
114
+ --theme-primary: #1a73e8;
115
+ --theme-font: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
116
+ }
117
+
118
+ .theme-dark {
119
+ --theme-bg: #202124;
120
+ --theme-fg: #ffffff;
121
+ --theme-accent: #1a73e8;
122
+ --theme-muted: #f8f9fa;
123
+ --theme-primary: #1a73e8;
124
+ }
125
+
126
+ .theme-light {
127
+ --theme-bg: #f8f9fa;
128
+ --theme-fg: #202124;
129
+ --theme-accent: #1a73e8;
130
+ --theme-muted: #9e9e9e;
131
+ --theme-primary: #1a73e8;
132
+ }
133
+
134
+ .theme-solarized {
135
+ --theme-bg: #fdf6e3;
136
+ --theme-fg: #657b83;
137
+ --theme-accent: #268bd2;
138
+ --theme-muted: #93a1a1;
139
+ --theme-primary: #268bd2;
140
+ }
141
+
142
+ .theme-ocean {
143
+ --theme-bg: #e0f7fa;
144
+ --theme-fg: #006064;
145
+ --theme-accent: #00bcd4;
146
+ --theme-muted: #4dd0e1;
147
+ --theme-primary: #00bcd4;
148
+ }
149
+
150
+ .theme-forest {
151
+ --theme-bg: #e8f5e9;
152
+ --theme-fg: #1b5e20;
153
+ --theme-accent: #4caf50;
154
+ --theme-muted: #81c784;
155
+ --theme-primary: #4caf50;
156
+ }
157
+
158
+ .theme-red {
159
+ --theme-bg: #ffebee;
160
+ --theme-fg: #b71c1c;
161
+ --theme-accent: #ea4335;
162
+ --theme-muted: #e57373;
163
+ --theme-primary: #ea4335;
164
+ }
165
+
166
+ .theme-purple {
167
+ --theme-bg: #f3e5f5;
168
+ --theme-fg: #4a148c;
169
+ --theme-accent: #9c27b0;
170
+ --theme-muted: #ba68c8;
171
+ --theme-primary: #9c27b0;
172
+ }
173
+
174
+ .theme-high-contrast {
175
+ --theme-bg: #000000;
176
+ --theme-fg: #ffffff;
177
+ --theme-accent: #fdd835;
178
+ --theme-muted: ;
179
+ --theme-primary: #fdd835;
180
+ }
181
+
182
+ .theme-transparent {
183
+ --theme-bg: transparent;
184
+ --theme-fg: #202124;
185
+ --theme-accent: #1a73e8;
186
+ --theme-muted: rgba(0, 0, 0, 0.4);
187
+ --theme-primary: #1a73e8;
188
+ }
189
+
190
+ .theme-mac {
191
+ --theme-bg: #f5f5f7;
192
+ --theme-fg: #1d1d1f;
193
+ --theme-accent: #007aff;
194
+ --theme-muted: #8e8e93;
195
+ --theme-primary: #007aff;
196
+ }
197
+
198
+ .theme-orange {
199
+ --theme-bg: #fff3e0;
200
+ --theme-fg: #e65100;
201
+ --theme-accent: #ff9800;
202
+ --theme-muted: #ffb74d;
203
+ --theme-primary: #00bcd4;
204
+ }
205
+
206
+ .theme-mintwave {
207
+ --theme-bg: #e6f9f6;
208
+ --theme-fg: #003c3c;
209
+ --theme-accent: #00bfa5;
210
+ --theme-muted: #a7d8cc;
211
+ --theme-primary: #00bfa5;
212
+ }
213
+
214
+ .theme-skyfade {
215
+ --theme-bg: #f4f9ff;
216
+ --theme-fg: #1e2a38;
217
+ --theme-accent: #3399ff;
218
+ --theme-muted: #c8ddee;
219
+ --theme-primary: #3399ff;
220
+ }
221
+
222
+ .theme-nordwave {
223
+ --theme-bg: #eceff4;
224
+ --theme-fg: #2e3440;
225
+ --theme-accent: #5e81ac;
226
+ --theme-muted: #d8dee9;
227
+ --theme-primary: #5e81ac;
228
+ }
229
+
230
+ .theme-glassy-amber {
231
+ --theme-bg: rgba(255, 255, 255, 0.1);
232
+ --theme-fg: #ffffff;
233
+ background: rgba(255, 191, 0, 0.2);
234
+ border: 1px solid rgba(255, 215, 0, 0.3);
235
+ backdrop-filter: blur(12px);
236
+ -webkit-backdrop-filter: blur(12px);
237
+ border-radius: 16px;
238
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
239
+ color: #000000;
240
+ }
241
+ .theme-glassy-amber * {
242
+ color: inherit;
243
+ }
244
+
245
+ .theme-glassy-blue {
246
+ --theme-bg: rgba(255, 255, 255, 0.05);
247
+ --theme-fg: #ffffff;
248
+ --theme-accent: rgba(0, 120, 255, 0.3);
249
+ --theme-primary: #0078ff;
250
+ --theme-muted: rgba(255, 255, 255, 0.2);
251
+ --theme-border: rgba(255, 255, 255, 0.2);
252
+ --theme-radius: 16px;
253
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
254
+ }
255
+
256
+ .theme-glassy-green {
257
+ --theme-bg: rgba(255, 255, 255, 0.05);
258
+ --theme-fg: #ffffff;
259
+ --theme-accent: rgba(46, 204, 113, 0.3);
260
+ --theme-primary: #2ecc71;
261
+ --theme-muted: rgba(255, 255, 255, 0.2);
262
+ --theme-border: rgba(255, 255, 255, 0.2);
263
+ --theme-radius: 16px;
264
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
265
+ }
266
+
267
+ .theme-glassy-blue,
268
+ .theme-glassy-orange {
269
+ --theme-bg: rgba(255, 165, 0, 0.15);
270
+ --theme-fg: #000000;
271
+ --theme-accent: rgba(255, 165, 0, 0.4);
272
+ --theme-primary: #ffa500;
273
+ --theme-muted: rgba(255, 255, 255, 0.3);
274
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
275
+ --theme-radius: 12px;
276
+ }
277
+
278
+ .theme-glassy-pink {
279
+ --theme-bg: rgba(255, 105, 180, 0.15);
280
+ --theme-fg: #ffffff;
281
+ --theme-accent: rgba(255, 105, 180, 0.35);
282
+ --theme-primary: #ff69b4;
283
+ --theme-muted: rgba(255, 255, 255, 0.3);
284
+ --theme-radius: 12px;
285
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
286
+ }
287
+
288
+ .theme-glassy-purple {
289
+ --theme-bg: rgba(255, 255, 255, 0.05);
290
+ --theme-fg: #ffffff;
291
+ --theme-accent: rgba(155, 89, 182, 0.3);
292
+ --theme-primary: #9b59b6;
293
+ --theme-muted: rgba(255, 255, 255, 0.2);
294
+ --theme-border: rgba(255, 255, 255, 0.2);
295
+ --theme-radius: 16px;
296
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
297
+ }
298
+
299
+ .glassy-mac-dark {
300
+ --theme-bg: rgba(29, 29, 31, 0.6);
301
+ --theme-fg: #f5f5f5;
302
+ --theme-accent: rgba(0, 122, 255, 0.3);
303
+ --theme-primary: #007aff;
304
+ --theme-muted: rgba(255, 255, 255, 0.2);
305
+ --theme-border: rgba(255, 255, 255, 0.2);
306
+ --theme-radius: 16px;
307
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
308
+ }
309
+
310
+ .theme-glassy-silver {
311
+ --theme-bg: rgba(192, 192, 192, 0.15);
312
+ --theme-fg: #111111;
313
+ --theme-accent: rgba(192, 192, 192, 0.3);
314
+ --theme-primary: #c0c0c0;
315
+ --theme-muted: rgba(255, 255, 255, 0.3);
316
+ --theme-radius: 12px;
317
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
318
+ }
319
+
320
+ .theme-glassy-teal {
321
+ --theme-bg: rgba(0, 128, 128, 0.15);
322
+ --theme-fg: #ffffff;
323
+ --theme-accent: rgba(0, 128, 128, 0.4);
324
+ --theme-primary: #008080;
325
+ --theme-muted: rgba(255, 255, 255, 0.3);
326
+ --theme-radius: 12px;
327
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
328
+ }
329
+
330
+ .theme-glassy-cyan {
331
+ --theme-bg: rgba(0, 255, 255, 0.15);
332
+ --theme-fg: #000000;
333
+ --theme-accent: rgba(0, 255, 255, 0.35);
334
+ --theme-primary: #00ffff;
335
+ --theme-muted: rgba(255, 255, 255, 0.3);
336
+ --theme-radius: 12px;
337
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
338
+ }
339
+
340
+ .theme-glassy-gold {
341
+ --theme-bg: rgba(255, 215, 0, 0.15);
342
+ --theme-fg: #000000;
343
+ --theme-accent: rgba(255, 215, 0, 0.3);
344
+ --theme-primary: #ffd700;
345
+ --theme-muted: rgba(255, 255, 255, 0.3);
346
+ --theme-radius: 12px;
347
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
348
+ }
349
+
350
+ .theme-glassy-aero-windows {
351
+ --theme-bg: rgba(180, 200, 255, 0.12);
352
+ --theme-fg: #1a1a1a;
353
+ --theme-accent: rgba(140, 180, 255, 0.3);
354
+ --theme-primary: #90caf9;
355
+ --theme-muted: rgba(255, 255, 255, 0.3);
356
+ --theme-radius: 12px;
357
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
358
+ }
359
+
360
+ .theme-glassy-aurora-sky {
361
+ --theme-bg: rgba(135, 206, 250, 0.15);
362
+ --theme-fg: #000000;
363
+ --theme-accent: rgba(135, 206, 250, 0.4);
364
+ --theme-primary: #87cefa;
365
+ --theme-muted: rgba(255, 255, 255, 0.3);
366
+ --theme-radius: 12px;
367
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
368
+ }
369
+
370
+ .theme-glassy-frosted-silver {
371
+ --theme-bg: rgba(245, 245, 245, 0.15);
372
+ --theme-fg: #202124;
373
+ --theme-accent: rgba(230, 230, 230, 0.25);
374
+ --theme-primary: #f0f0f0;
375
+ --theme-muted: rgba(255, 255, 255, 0.3);
376
+ --theme-radius: 12px;
377
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
378
+ }
379
+
380
+ .theme-glassy-glass-white {
381
+ --theme-bg: rgba(255, 255, 255, 0.12);
382
+ --theme-fg: #000000;
383
+ --theme-accent: rgba(240, 240, 240, 0.4);
384
+ --theme-primary: #ffffff;
385
+ --theme-muted: rgba(255, 255, 255, 0.3);
386
+ --theme-radius: 12px;
387
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
388
+ }
389
+
390
+ .glassy-ice-black {
391
+ --theme-bg: rgba(0, 0, 0, 0.4);
392
+ --theme-fg: #ffffff;
393
+ --theme-accent: rgba(0, 0, 0, 0.3);
394
+ --theme-primary: #000000;
395
+ --theme-muted: rgba(255, 255, 255, 0.2);
396
+ --theme-border: rgba(255, 255, 255, 0.2);
397
+ --theme-radius: 16px;
398
+ --theme-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
399
+ }
400
+
401
+ .theme-glassy-blue {
402
+ --theme-bg: rgba(0, 120, 255, 0.15);
403
+ --theme-fg: #ffffff;
404
+ --theme-accent: rgba(0, 120, 255, 0.4);
405
+ --theme-primary: #0078ff;
406
+ --theme-muted: rgba(255, 255, 255, 0.3);
407
+ --theme-radius: 12px;
408
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
409
+ }
410
+
411
+ .theme-glassy-neon-cyber {
412
+ --theme-bg: rgba(57, 255, 20, 0.12);
413
+ --theme-fg: #00ff9f;
414
+ --theme-accent: rgba(57, 255, 20, 0.4);
415
+ --theme-primary: #39ff14;
416
+ --theme-muted: rgba(255, 255, 255, 0.3);
417
+ --theme-radius: 12px;
418
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
419
+ }
420
+
421
+ .theme-glassy-rose-gold {
422
+ --theme-bg: rgba(255, 192, 203, 0.2);
423
+ --theme-fg: #661e43;
424
+ --theme-accent: rgba(255, 192, 203, 0.3);
425
+ --theme-primary: #b76e79;
426
+ --theme-muted: rgba(255, 255, 255, 0.3);
427
+ --theme-radius: 12px;
428
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
429
+ }
430
+
431
+ .theme-glassy-sakura-glass {
432
+ --theme-bg: rgba(255, 182, 193, 0.2);
433
+ --theme-fg: #6e0d25;
434
+ --theme-accent: rgba(255, 182, 193, 0.3);
435
+ --theme-primary: #ffb6c1;
436
+ --theme-muted: rgba(255, 255, 255, 0.3);
437
+ --theme-radius: 12px;
438
+ --theme-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
439
+ }
440
+
441
+ .theme-standard-dark {
442
+ --theme-bg: #121212;
443
+ --theme-fg: #f1f1f1;
444
+ --theme-primary: #bb86fc;
445
+ --theme-accent: #3700b3;
446
+ --theme-muted: #999;
447
+ --theme-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
448
+ }
449
+
450
+ .theme-standard-default {
451
+ --theme-bg: #ffffff;
452
+ --theme-fg: #1a1a1a;
453
+ --theme-primary: #1a73e8;
454
+ --theme-accent: #4285f4;
455
+ --theme-muted: #9aa0a6;
456
+ --theme-radius: 8px;
457
+ --theme-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
458
+ }
459
+
460
+ *,
461
+ *::before,
462
+ *::after {
463
+ box-sizing: border-box;
464
+ margin: 0;
465
+ padding: 0;
466
+ line-height: 1.5;
467
+ }
468
+
469
+ a {
470
+ text-decoration: none;
471
+ color: inherit;
472
+ }
473
+
474
+ img,
475
+ svg,
476
+ video,
477
+ canvas,
478
+ audio,
479
+ iframe,
480
+ embed,
481
+ object {
482
+ display: block;
483
+ max-width: 100%;
484
+ }
485
+
486
+ ol,
487
+ ul {
488
+ list-style: none;
489
+ padding: 0;
490
+ }
491
+
492
+ button,
493
+ input,
494
+ select,
495
+ textarea {
496
+ font: inherit;
497
+ }
498
+
499
+ html {
500
+ font-family: "Inter", sans-serif;
501
+ font-size: 14px;
502
+ -webkit-text-size-adjust: 100%;
503
+ -webkit-font-smoothing: antialiased;
504
+ }
505
+
506
+ h1, h2, h3, h4, h5, h6 {
507
+ font-weight: 600;
508
+ color: #202124;
509
+ line-height: 1.2;
510
+ margin-bottom: 1rem;
511
+ }
512
+
513
+ h1 {
514
+ font-size: 2.5rem;
515
+ }
516
+ @media (min-width: 768px) {
517
+ h1 {
518
+ font-size: calc(2.5rem + (4rem - 2.5rem) * (100vw - 768px) / 672);
519
+ }
520
+ }
521
+ @media (min-width: 1440px) {
522
+ h1 {
523
+ font-size: 4rem;
524
+ }
525
+ }
526
+
527
+ h2 {
528
+ font-size: 2rem;
529
+ }
530
+ @media (min-width: 768px) {
531
+ h2 {
532
+ font-size: calc(2rem + (3rem - 2rem) * (100vw - 768px) / 672);
533
+ }
534
+ }
535
+ @media (min-width: 1440px) {
536
+ h2 {
537
+ font-size: 3rem;
538
+ }
539
+ }
540
+
541
+ h3 {
542
+ font-size: 1.75rem;
543
+ }
544
+ @media (min-width: 768px) {
545
+ h3 {
546
+ font-size: calc(1.75rem + (2.25rem - 1.75rem) * (100vw - 768px) / 672);
547
+ }
548
+ }
549
+ @media (min-width: 1440px) {
550
+ h3 {
551
+ font-size: 2.25rem;
552
+ }
553
+ }
554
+
555
+ h4 {
556
+ font-size: 1.5rem;
557
+ }
558
+
559
+ h5 {
560
+ font-size: 1.25rem;
561
+ }
562
+
563
+ h6 {
564
+ font-size: 1rem;
565
+ }
566
+
567
+ p {
568
+ margin-bottom: 1rem;
569
+ color: #202124;
570
+ }
571
+
572
+ small,
573
+ .text--small {
574
+ font-size: 0.875rem;
575
+ color: #9aa0a6;
576
+ }
577
+
578
+ .text-center {
579
+ text-align: center;
580
+ }
581
+
582
+ .text-right {
583
+ text-align: right;
584
+ }
585
+
586
+ .text-primary {
587
+ color: #1a73e8;
588
+ }
589
+
590
+ .text-secondary {
591
+ color: #fbbc04;
592
+ }
593
+
594
+ .text-danger {
595
+ color: #ea4335;
596
+ }
597
+
598
+ .text-muted {
599
+ color: #9aa0a6;
600
+ }
601
+
602
+ input,
603
+ textarea,
604
+ select {
605
+ width: 100%;
606
+ padding: 0.5rem 1rem;
607
+ border: 1px solid #9aa0a6;
608
+ border-radius: 4px;
609
+ background-color: #ffffff;
610
+ color: #202124;
611
+ }
612
+ input:focus,
613
+ textarea:focus,
614
+ select:focus {
615
+ border-color: #1a73e8;
616
+ outline: none;
617
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
618
+ }
619
+ input:disabled,
620
+ textarea:disabled,
621
+ select:disabled {
622
+ background-color: #f8f9fa;
623
+ color: #9aa0a6;
624
+ cursor: not-allowed;
625
+ }
626
+
627
+ label {
628
+ display: inline-block;
629
+ margin-bottom: 0.25rem;
630
+ font-weight: 600;
631
+ }
632
+
633
+ .form-control--error {
634
+ border-color: #ea4335;
635
+ }
636
+ .form-control--error:focus {
637
+ box-shadow: 0 0 0 3px rgba(234, 67, 53, 0.2);
638
+ }
639
+
640
+ .form-error-msg {
641
+ margin-top: 0.25rem;
642
+ color: #ea4335;
643
+ font-size: 0.875rem;
644
+ }
645
+
646
+ @keyframes fade-in {
647
+ from {
648
+ opacity: 0;
649
+ }
650
+ to {
651
+ opacity: 1;
652
+ }
653
+ }
654
+ @keyframes fade-out {
655
+ from {
656
+ opacity: 1;
657
+ }
658
+ to {
659
+ opacity: 0;
660
+ }
661
+ }
662
+ @keyframes slide-up {
663
+ from {
664
+ transform: translateY(100%);
665
+ opacity: 0;
666
+ }
667
+ to {
668
+ transform: translateY(0);
669
+ opacity: 1;
670
+ }
671
+ }
672
+ @keyframes slide-down {
673
+ from {
674
+ transform: translateY(-100%);
675
+ opacity: 0;
676
+ }
677
+ to {
678
+ transform: translateY(0);
679
+ opacity: 1;
680
+ }
681
+ }
682
+ @keyframes spin {
683
+ to {
684
+ transform: rotate(360deg);
685
+ }
686
+ }
687
+ .grid {
688
+ display: grid;
689
+ gap: 1rem;
690
+ grid-template-columns: repeat(12, 1fr);
691
+ }
692
+
693
+ .grid--2-cols {
694
+ grid-template-columns: repeat(2, 1fr);
695
+ }
696
+
697
+ .grid--3-cols {
698
+ grid-template-columns: repeat(3, 1fr);
699
+ }
700
+
701
+ .grid--4-cols {
702
+ grid-template-columns: repeat(4, 1fr);
703
+ }
704
+
705
+ .grid--6-cols {
706
+ grid-template-columns: repeat(6, 1fr);
707
+ }
708
+
709
+ @media (max-width: 768px) {
710
+ .grid--responsive {
711
+ grid-template-columns: 1fr;
712
+ }
713
+ }
714
+ .header {
715
+ display: flex;
716
+ justify-content: space-between;
717
+ align-items: center;
718
+ background-color: #1a73e8;
719
+ color: #ffffff;
720
+ padding: 0.5rem 1.5rem;
721
+ height: 60px;
722
+ position: sticky;
723
+ top: 0;
724
+ z-index: 1020;
725
+ }
726
+ .header .header__logo {
727
+ font-weight: bold;
728
+ font-size: 1.25rem;
729
+ }
730
+ .header .header__nav {
731
+ display: flex;
732
+ gap: 1rem;
733
+ }
734
+ .header .header__nav a {
735
+ color: #ffffff;
736
+ text-decoration: none;
737
+ }
738
+ .header .header__nav a:hover {
739
+ text-decoration: underline;
740
+ }
741
+ @media (max-width: 768px) {
742
+ .header {
743
+ flex-direction: column;
744
+ height: auto;
745
+ gap: 0.5rem;
746
+ }
747
+ }
748
+
749
+ .header {
750
+ display: flex;
751
+ justify-content: space-between;
752
+ align-items: center;
753
+ background-color: #1a73e8;
754
+ color: #ffffff;
755
+ padding: 0.5rem 1.5rem;
756
+ height: 60px;
757
+ position: sticky;
758
+ top: 0;
759
+ z-index: 1020;
760
+ }
761
+ .header .header__logo {
762
+ font-weight: bold;
763
+ font-size: 1.25rem;
764
+ }
765
+ .header .header__nav {
766
+ display: flex;
767
+ gap: 1rem;
768
+ }
769
+ .header .header__nav a {
770
+ color: #ffffff;
771
+ text-decoration: none;
772
+ }
773
+ .header .header__nav a:hover {
774
+ text-decoration: underline;
775
+ }
776
+ @media (max-width: 768px) {
777
+ .header {
778
+ flex-direction: column;
779
+ height: auto;
780
+ gap: 0.5rem;
781
+ }
782
+ }
783
+
784
+ .sidebar {
785
+ width: 260px;
786
+ background-color: #202124;
787
+ color: #ffffff;
788
+ height: 100vh;
789
+ padding: 1.5rem 1rem;
790
+ position: sticky;
791
+ top: 0;
792
+ display: flex;
793
+ flex-direction: column;
794
+ }
795
+ .sidebar .sidebar__brand {
796
+ font-size: 1.25rem;
797
+ font-weight: bold;
798
+ margin-bottom: 2rem;
799
+ }
800
+ .sidebar .sidebar__nav {
801
+ display: flex;
802
+ flex-direction: column;
803
+ gap: 0.5rem;
804
+ }
805
+ .sidebar .sidebar__nav a {
806
+ color: #ffffff;
807
+ text-decoration: none;
808
+ padding: 0.25rem 0.5rem;
809
+ border-radius: 4px;
810
+ }
811
+ .sidebar .sidebar__nav a:hover, .sidebar .sidebar__nav a.active {
812
+ background-color: #1a73e8;
813
+ }
814
+
815
+ .container {
816
+ width: 100%;
817
+ max-width: 1280px;
818
+ margin-left: auto;
819
+ margin-right: auto;
820
+ padding-left: 1.5rem;
821
+ padding-right: 1.5rem;
822
+ }
823
+ .container--fluid {
824
+ max-width: 100%;
825
+ }
826
+ .container--narrow {
827
+ max-width: 720px;
828
+ }
829
+
830
+ .stack {
831
+ display: flex;
832
+ flex-direction: column;
833
+ gap: 1rem;
834
+ }
835
+ .stack--sm {
836
+ gap: 0.5rem;
837
+ }
838
+ .stack--lg {
839
+ gap: 1.5rem;
840
+ }
841
+ .stack--xl {
842
+ gap: 2rem;
843
+ }
844
+ .stack--horizontal {
845
+ flex-direction: row;
846
+ flex-wrap: wrap;
847
+ }
848
+ .stack--centered {
849
+ align-items: center;
850
+ justify-content: center;
851
+ }
852
+
853
+ .section {
854
+ padding: 2rem 0;
855
+ }
856
+ .section--light {
857
+ background-color: #f8f9fa;
858
+ }
859
+ .section--dark {
860
+ background-color: #202124;
861
+ color: #ffffff;
862
+ }
863
+ .section--primary {
864
+ background-color: #1a73e8;
865
+ color: #ffffff;
866
+ }
867
+ .section--bordered {
868
+ border-top: 1px solid #9aa0a6;
869
+ border-bottom: 1px solid #9aa0a6;
870
+ }
871
+
872
+ .m-0 {
873
+ margin: 0rem !important;
874
+ }
875
+
876
+ .mt-0 {
877
+ margin-top: 0rem !important;
878
+ }
879
+
880
+ .mb-0 {
881
+ margin-bottom: 0rem !important;
882
+ }
883
+
884
+ .ml-0 {
885
+ margin-left: 0rem !important;
886
+ }
887
+
888
+ .mr-0 {
889
+ margin-right: 0rem !important;
890
+ }
891
+
892
+ .p-0 {
893
+ padding: 0rem !important;
894
+ }
895
+
896
+ .pt-0 {
897
+ padding-top: 0rem !important;
898
+ }
899
+
900
+ .pb-0 {
901
+ padding-bottom: 0rem !important;
902
+ }
903
+
904
+ .pl-0 {
905
+ padding-left: 0rem !important;
906
+ }
907
+
908
+ .pr-0 {
909
+ padding-right: 0rem !important;
910
+ }
911
+
912
+ .m-xs {
913
+ margin: 0.25rem !important;
914
+ }
915
+
916
+ .mt-xs {
917
+ margin-top: 0.25rem !important;
918
+ }
919
+
920
+ .mb-xs {
921
+ margin-bottom: 0.25rem !important;
922
+ }
923
+
924
+ .ml-xs {
925
+ margin-left: 0.25rem !important;
926
+ }
927
+
928
+ .mr-xs {
929
+ margin-right: 0.25rem !important;
930
+ }
931
+
932
+ .p-xs {
933
+ padding: 0.25rem !important;
934
+ }
935
+
936
+ .pt-xs {
937
+ padding-top: 0.25rem !important;
938
+ }
939
+
940
+ .pb-xs {
941
+ padding-bottom: 0.25rem !important;
942
+ }
943
+
944
+ .pl-xs {
945
+ padding-left: 0.25rem !important;
946
+ }
947
+
948
+ .pr-xs {
949
+ padding-right: 0.25rem !important;
950
+ }
951
+
952
+ .m-sm {
953
+ margin: 0.5rem !important;
954
+ }
955
+
956
+ .mt-sm {
957
+ margin-top: 0.5rem !important;
958
+ }
959
+
960
+ .mb-sm {
961
+ margin-bottom: 0.5rem !important;
962
+ }
963
+
964
+ .ml-sm {
965
+ margin-left: 0.5rem !important;
966
+ }
967
+
968
+ .mr-sm {
969
+ margin-right: 0.5rem !important;
970
+ }
971
+
972
+ .p-sm {
973
+ padding: 0.5rem !important;
974
+ }
975
+
976
+ .pt-sm {
977
+ padding-top: 0.5rem !important;
978
+ }
979
+
980
+ .pb-sm {
981
+ padding-bottom: 0.5rem !important;
982
+ }
983
+
984
+ .pl-sm {
985
+ padding-left: 0.5rem !important;
986
+ }
987
+
988
+ .pr-sm {
989
+ padding-right: 0.5rem !important;
990
+ }
991
+
992
+ .m-md {
993
+ margin: 1rem !important;
994
+ }
995
+
996
+ .mt-md {
997
+ margin-top: 1rem !important;
998
+ }
999
+
1000
+ .mb-md {
1001
+ margin-bottom: 1rem !important;
1002
+ }
1003
+
1004
+ .ml-md {
1005
+ margin-left: 1rem !important;
1006
+ }
1007
+
1008
+ .mr-md {
1009
+ margin-right: 1rem !important;
1010
+ }
1011
+
1012
+ .p-md {
1013
+ padding: 1rem !important;
1014
+ }
1015
+
1016
+ .pt-md {
1017
+ padding-top: 1rem !important;
1018
+ }
1019
+
1020
+ .pb-md {
1021
+ padding-bottom: 1rem !important;
1022
+ }
1023
+
1024
+ .pl-md {
1025
+ padding-left: 1rem !important;
1026
+ }
1027
+
1028
+ .pr-md {
1029
+ padding-right: 1rem !important;
1030
+ }
1031
+
1032
+ .m-lg {
1033
+ margin: 1.5rem !important;
1034
+ }
1035
+
1036
+ .mt-lg {
1037
+ margin-top: 1.5rem !important;
1038
+ }
1039
+
1040
+ .mb-lg {
1041
+ margin-bottom: 1.5rem !important;
1042
+ }
1043
+
1044
+ .ml-lg {
1045
+ margin-left: 1.5rem !important;
1046
+ }
1047
+
1048
+ .mr-lg {
1049
+ margin-right: 1.5rem !important;
1050
+ }
1051
+
1052
+ .p-lg {
1053
+ padding: 1.5rem !important;
1054
+ }
1055
+
1056
+ .pt-lg {
1057
+ padding-top: 1.5rem !important;
1058
+ }
1059
+
1060
+ .pb-lg {
1061
+ padding-bottom: 1.5rem !important;
1062
+ }
1063
+
1064
+ .pl-lg {
1065
+ padding-left: 1.5rem !important;
1066
+ }
1067
+
1068
+ .pr-lg {
1069
+ padding-right: 1.5rem !important;
1070
+ }
1071
+
1072
+ .m-xl {
1073
+ margin: 2rem !important;
1074
+ }
1075
+
1076
+ .mt-xl {
1077
+ margin-top: 2rem !important;
1078
+ }
1079
+
1080
+ .mb-xl {
1081
+ margin-bottom: 2rem !important;
1082
+ }
1083
+
1084
+ .ml-xl {
1085
+ margin-left: 2rem !important;
1086
+ }
1087
+
1088
+ .mr-xl {
1089
+ margin-right: 2rem !important;
1090
+ }
1091
+
1092
+ .p-xl {
1093
+ padding: 2rem !important;
1094
+ }
1095
+
1096
+ .pt-xl {
1097
+ padding-top: 2rem !important;
1098
+ }
1099
+
1100
+ .pb-xl {
1101
+ padding-bottom: 2rem !important;
1102
+ }
1103
+
1104
+ .pl-xl {
1105
+ padding-left: 2rem !important;
1106
+ }
1107
+
1108
+ .pr-xl {
1109
+ padding-right: 2rem !important;
1110
+ }
1111
+
1112
+ .m-xxl {
1113
+ margin: 3rem !important;
1114
+ }
1115
+
1116
+ .mt-xxl {
1117
+ margin-top: 3rem !important;
1118
+ }
1119
+
1120
+ .mb-xxl {
1121
+ margin-bottom: 3rem !important;
1122
+ }
1123
+
1124
+ .ml-xxl {
1125
+ margin-left: 3rem !important;
1126
+ }
1127
+
1128
+ .mr-xxl {
1129
+ margin-right: 3rem !important;
1130
+ }
1131
+
1132
+ .p-xxl {
1133
+ padding: 3rem !important;
1134
+ }
1135
+
1136
+ .pt-xxl {
1137
+ padding-top: 3rem !important;
1138
+ }
1139
+
1140
+ .pb-xxl {
1141
+ padding-bottom: 3rem !important;
1142
+ }
1143
+
1144
+ .pl-xxl {
1145
+ padding-left: 3rem !important;
1146
+ }
1147
+
1148
+ .pr-xxl {
1149
+ padding-right: 3rem !important;
1150
+ }
1151
+
1152
+ .m-xxxl {
1153
+ margin: 4rem !important;
1154
+ }
1155
+
1156
+ .mt-xxxl {
1157
+ margin-top: 4rem !important;
1158
+ }
1159
+
1160
+ .mb-xxxl {
1161
+ margin-bottom: 4rem !important;
1162
+ }
1163
+
1164
+ .ml-xxxl {
1165
+ margin-left: 4rem !important;
1166
+ }
1167
+
1168
+ .mr-xxxl {
1169
+ margin-right: 4rem !important;
1170
+ }
1171
+
1172
+ .p-xxxl {
1173
+ padding: 4rem !important;
1174
+ }
1175
+
1176
+ .pt-xxxl {
1177
+ padding-top: 4rem !important;
1178
+ }
1179
+
1180
+ .pb-xxxl {
1181
+ padding-bottom: 4rem !important;
1182
+ }
1183
+
1184
+ .pl-xxxl {
1185
+ padding-left: 4rem !important;
1186
+ }
1187
+
1188
+ .pr-xxxl {
1189
+ padding-right: 4rem !important;
1190
+ }
1191
+
1192
+ .flex {
1193
+ display: flex !important;
1194
+ }
1195
+
1196
+ .flex-column {
1197
+ flex-direction: column !important;
1198
+ }
1199
+
1200
+ .flex-row {
1201
+ flex-direction: row !important;
1202
+ }
1203
+
1204
+ .flex-center {
1205
+ justify-content: center;
1206
+ align-items: center;
1207
+ }
1208
+
1209
+ .justify-between {
1210
+ justify-content: space-between !important;
1211
+ }
1212
+
1213
+ .align-center {
1214
+ align-items: center !important;
1215
+ }
1216
+
1217
+ .wrap {
1218
+ flex-wrap: wrap !important;
1219
+ }
1220
+
1221
+ .block {
1222
+ display: block !important;
1223
+ }
1224
+
1225
+ .inline {
1226
+ display: inline !important;
1227
+ }
1228
+
1229
+ .inline-block {
1230
+ display: inline-block !important;
1231
+ }
1232
+
1233
+ .none {
1234
+ display: none !important;
1235
+ }
1236
+
1237
+ @media (min-width: 768px) {
1238
+ .sm-block {
1239
+ display: block !important;
1240
+ }
1241
+ .sm-none {
1242
+ display: none !important;
1243
+ }
1244
+ }
1245
+ .relative {
1246
+ position: relative !important;
1247
+ }
1248
+
1249
+ .absolute {
1250
+ position: absolute !important;
1251
+ }
1252
+
1253
+ .fixed {
1254
+ position: fixed !important;
1255
+ }
1256
+
1257
+ .sticky {
1258
+ position: sticky !important;
1259
+ }
1260
+
1261
+ .text-left {
1262
+ text-align: left !important;
1263
+ }
1264
+
1265
+ .text-center {
1266
+ text-align: center !important;
1267
+ }
1268
+
1269
+ .text-right {
1270
+ text-align: right !important;
1271
+ }
1272
+
1273
+ .text-primary {
1274
+ color: #1a73e8 !important;
1275
+ }
1276
+
1277
+ .text-success {
1278
+ color: #34a853 !important;
1279
+ }
1280
+
1281
+ .text-danger {
1282
+ color: #ea4335 !important;
1283
+ }
1284
+
1285
+ .text-muted {
1286
+ color: #9aa0a6 !important;
1287
+ }
1288
+
1289
+ .text-uppercase {
1290
+ text-transform: uppercase !important;
1291
+ }
1292
+
1293
+ .text-lowercase {
1294
+ text-transform: lowercase !important;
1295
+ }
1296
+
1297
+ .visible {
1298
+ visibility: visible !important;
1299
+ }
1300
+
1301
+ .invisible {
1302
+ visibility: hidden !important;
1303
+ }
1304
+
1305
+ .sr-only {
1306
+ position: absolute !important;
1307
+ height: 1px;
1308
+ width: 1px;
1309
+ overflow: hidden;
1310
+ clip: rect(1px, 1px, 1px, 1px);
1311
+ white-space: nowrap;
1312
+ }
1313
+
1314
+ *:focus {
1315
+ outline: 2px solid #1a73e8;
1316
+ outline-offset: 2px;
1317
+ }
1318
+
1319
+ .theme-switcher {
1320
+ display: inline-flex;
1321
+ align-items: center;
1322
+ gap: 0.25rem;
1323
+ }
1324
+ .theme-switcher label {
1325
+ font-weight: 500;
1326
+ color: var(--theme-fg);
1327
+ }
1328
+ .theme-switcher button,
1329
+ .theme-switcher select {
1330
+ background-color: #f8f9fa;
1331
+ border: 1px solid #9aa0a6;
1332
+ padding: 0.25rem;
1333
+ font-family: inherit;
1334
+ font-size: 1rem;
1335
+ color: var(--theme-fg);
1336
+ border-radius: 4px;
1337
+ cursor: pointer;
1338
+ transition: background-color 0.3s ease, color 0.3s ease;
1339
+ }
1340
+ .theme-switcher button:hover,
1341
+ .theme-switcher select:hover {
1342
+ background-color: #1a73e8;
1343
+ color: #ffffff;
1344
+ }
1345
+ .theme-switcher select {
1346
+ appearance: none;
1347
+ 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");
1348
+ background-repeat: no-repeat;
1349
+ background-position: right 0.25rem center;
1350
+ background-size: 1rem;
1351
+ padding-right: 2rem;
1352
+ }
1353
+
1354
+ .input {
1355
+ display: block;
1356
+ width: 100%;
1357
+ padding: 0.5rem 1rem;
1358
+ font-size: 1rem;
1359
+ color: #202124;
1360
+ background-color: #ffffff;
1361
+ border: 1px solid #9aa0a6;
1362
+ border-radius: 4px;
1363
+ line-height: 1.5;
1364
+ }
1365
+ .input:focus {
1366
+ border-color: #1a73e8;
1367
+ outline: none;
1368
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
1369
+ }
1370
+ .input:disabled {
1371
+ background-color: #f8f9fa;
1372
+ color: #9aa0a6;
1373
+ cursor: not-allowed;
1374
+ }
1375
+ .input--sm {
1376
+ padding: 0.25rem 0.5rem;
1377
+ font-size: 0.875rem;
1378
+ }
1379
+ .input--lg {
1380
+ padding: 1rem 1.5rem;
1381
+ font-size: 1.125rem;
1382
+ }
1383
+ .input--error {
1384
+ border-color: #ea4335;
1385
+ }
1386
+ .input--error:focus {
1387
+ box-shadow: 0 0 0 3px rgba(234, 67, 53, 0.2);
1388
+ }
1389
+ .input--success {
1390
+ border-color: #34a853;
1391
+ }
1392
+ .input--success:focus {
1393
+ box-shadow: 0 0 0 3px rgba(52, 168, 83, 0.2);
1394
+ }
1395
+ .input--rounded {
1396
+ border-radius: 9999px;
1397
+ }
1398
+ .input--icon-left, .input--icon-right {
1399
+ position: relative;
1400
+ padding-left: 2.5rem;
1401
+ }
1402
+ .input--icon-left::before, .input--icon-right::before {
1403
+ content: "";
1404
+ position: absolute;
1405
+ top: 50%;
1406
+ transform: translateY(-50%);
1407
+ left: 0.5rem;
1408
+ width: 1rem;
1409
+ height: 1rem;
1410
+ background-repeat: no-repeat;
1411
+ background-position: center;
1412
+ background-size: contain;
1413
+ pointer-events: none;
1414
+ }
1415
+
1416
+ .textarea {
1417
+ display: block;
1418
+ width: 100%;
1419
+ padding: 0.5rem 1rem;
1420
+ font-size: 1rem;
1421
+ color: #202124;
1422
+ background-color: #ffffff;
1423
+ border: 1px solid #9aa0a6;
1424
+ border-radius: 4px;
1425
+ resize: vertical;
1426
+ min-height: 100px;
1427
+ }
1428
+ .textarea:focus {
1429
+ border-color: #1a73e8;
1430
+ outline: none;
1431
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
1432
+ }
1433
+ .textarea:disabled {
1434
+ background-color: #f8f9fa;
1435
+ color: #9aa0a6;
1436
+ cursor: not-allowed;
1437
+ }
1438
+ .textarea--error {
1439
+ border-color: #ea4335;
1440
+ }
1441
+ .textarea--error:focus {
1442
+ box-shadow: 0 0 0 3px rgba(234, 67, 53, 0.2);
1443
+ }
1444
+
1445
+ .select {
1446
+ width: 100%;
1447
+ padding: 0.5rem 1rem;
1448
+ background-color: #ffffff;
1449
+ color: #202124;
1450
+ border: 1px solid #9aa0a6;
1451
+ border-radius: 4px;
1452
+ appearance: none;
1453
+ 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>');
1454
+ background-repeat: no-repeat;
1455
+ background-position: right 1rem center;
1456
+ background-size: 1rem;
1457
+ }
1458
+ .select:focus {
1459
+ border-color: #1a73e8;
1460
+ outline: none;
1461
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
1462
+ }
1463
+ .select:disabled {
1464
+ background-color: #f8f9fa;
1465
+ color: #9aa0a6;
1466
+ cursor: not-allowed;
1467
+ }
1468
+ .select--error {
1469
+ border-color: #ea4335;
1470
+ }
1471
+
1472
+ .checkbox {
1473
+ display: flex;
1474
+ align-items: center;
1475
+ gap: 0.5rem;
1476
+ cursor: pointer;
1477
+ font-size: 1rem;
1478
+ }
1479
+ .checkbox input[type=checkbox] {
1480
+ width: 1rem;
1481
+ height: 1rem;
1482
+ accent-color: #1a73e8;
1483
+ cursor: pointer;
1484
+ }
1485
+ .checkbox--disabled {
1486
+ color: #9aa0a6;
1487
+ cursor: not-allowed;
1488
+ }
1489
+ .checkbox--disabled input[type=checkbox] {
1490
+ cursor: not-allowed;
1491
+ }
1492
+
1493
+ .radio {
1494
+ display: flex;
1495
+ align-items: center;
1496
+ gap: 0.5rem;
1497
+ cursor: pointer;
1498
+ font-size: 1rem;
1499
+ }
1500
+ .radio input[type=radio] {
1501
+ width: 1rem;
1502
+ height: 1rem;
1503
+ accent-color: #1a73e8;
1504
+ cursor: pointer;
1505
+ }
1506
+ .radio--disabled {
1507
+ color: #9aa0a6;
1508
+ cursor: not-allowed;
1509
+ }
1510
+ .radio--disabled input[type=radio] {
1511
+ cursor: not-allowed;
1512
+ }
1513
+
1514
+ .toggle {
1515
+ position: relative;
1516
+ width: 2.5rem;
1517
+ height: 1.4rem;
1518
+ }
1519
+ .toggle input {
1520
+ opacity: 0;
1521
+ width: 0;
1522
+ height: 0;
1523
+ }
1524
+ .toggle .slider {
1525
+ position: absolute;
1526
+ top: 0;
1527
+ left: 0;
1528
+ right: 0;
1529
+ bottom: 0;
1530
+ background-color: #9aa0a6;
1531
+ border-radius: 9999px;
1532
+ transition: 0.4s;
1533
+ cursor: pointer;
1534
+ }
1535
+ .toggle .slider::before {
1536
+ content: "";
1537
+ position: absolute;
1538
+ height: 1rem;
1539
+ width: 1rem;
1540
+ left: 4px;
1541
+ bottom: 4px;
1542
+ background-color: #ffffff;
1543
+ transition: 0.4s;
1544
+ border-radius: 50%;
1545
+ }
1546
+ .toggle input:checked + .slider {
1547
+ background-color: #1a73e8;
1548
+ }
1549
+ .toggle input:checked + .slider::before {
1550
+ transform: translateX(1.1rem);
1551
+ }
1552
+
1553
+ .range-slider {
1554
+ width: 100%;
1555
+ max-width: 300px;
1556
+ margin: 1rem 0;
1557
+ }
1558
+ .range-slider input[type=range] {
1559
+ -webkit-appearance: none;
1560
+ width: 100%;
1561
+ height: 6px;
1562
+ background: #f8f9fa;
1563
+ border-radius: 4px;
1564
+ outline: none;
1565
+ transition: background 0.3s;
1566
+ }
1567
+ .range-slider input[type=range]::-webkit-slider-thumb {
1568
+ -webkit-appearance: none;
1569
+ appearance: none;
1570
+ width: 16px;
1571
+ height: 16px;
1572
+ background: #1a73e8;
1573
+ border: 2px solid #ffffff;
1574
+ border-radius: 50%;
1575
+ cursor: pointer;
1576
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
1577
+ transition: background 0.3s;
1578
+ }
1579
+ .range-slider input[type=range]::-moz-range-thumb {
1580
+ width: 16px;
1581
+ height: 16px;
1582
+ background: #1a73e8;
1583
+ border: 2px solid #ffffff;
1584
+ border-radius: 50%;
1585
+ cursor: pointer;
1586
+ }
1587
+ .range-slider input[type=range]:hover::-webkit-slider-thumb {
1588
+ background: rgb(18.8928571429, 92, 188.1071428571);
1589
+ }
1590
+
1591
+ .file-upload {
1592
+ position: relative;
1593
+ display: inline-block;
1594
+ }
1595
+ .file-upload input[type=file] {
1596
+ opacity: 0;
1597
+ width: 100%;
1598
+ height: 100%;
1599
+ position: absolute;
1600
+ top: 0;
1601
+ left: 0;
1602
+ z-index: 2;
1603
+ cursor: pointer;
1604
+ }
1605
+ .file-upload .label {
1606
+ display: inline-block;
1607
+ background-color: #1a73e8;
1608
+ color: #ffffff;
1609
+ padding: 0.5rem 1rem;
1610
+ border-radius: 4px;
1611
+ z-index: 1;
1612
+ position: relative;
1613
+ }
1614
+ .file-upload .label:hover {
1615
+ background-color: rgb(21.2202380952, 103.3333333333, 211.2797619048);
1616
+ }
1617
+
1618
+ .date-picker {
1619
+ width: 100%;
1620
+ }
1621
+ .date-picker input[type=date],
1622
+ .date-picker input[type=datetime-local] {
1623
+ padding: 0.5rem 1rem;
1624
+ border: 1px solid #9aa0a6;
1625
+ border-radius: 4px;
1626
+ background-color: #ffffff;
1627
+ color: #202124;
1628
+ width: 100%;
1629
+ }
1630
+ .date-picker input[type=date]:focus,
1631
+ .date-picker input[type=datetime-local]:focus {
1632
+ border-color: #1a73e8;
1633
+ box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
1634
+ }
1635
+
1636
+ .form-group {
1637
+ margin-bottom: 1.5rem;
1638
+ }
1639
+ .form-group label {
1640
+ display: block;
1641
+ margin-bottom: 0.25rem;
1642
+ font-weight: bold;
1643
+ color: #202124;
1644
+ }
1645
+ .form-group .form-description {
1646
+ margin-top: 0.25rem;
1647
+ font-size: 0.875rem;
1648
+ color: #9aa0a6;
1649
+ }
1650
+ .form-group .form-error {
1651
+ color: #ea4335;
1652
+ font-size: 0.875rem;
1653
+ margin-top: 0.25rem;
1654
+ }
1655
+
1656
+ .button {
1657
+ background-color: var(--theme-primary);
1658
+ color: var(--theme-fg);
1659
+ display: inline-flex;
1660
+ align-items: center;
1661
+ justify-content: center;
1662
+ font-family: inherit;
1663
+ font-size: 1rem;
1664
+ font-weight: 500;
1665
+ line-height: 1.2;
1666
+ padding: 0.5rem 1rem;
1667
+ border-radius: 8px;
1668
+ cursor: pointer;
1669
+ text-align: center;
1670
+ text-decoration: none;
1671
+ border: 1px solid transparent;
1672
+ outline: none;
1673
+ transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
1674
+ width: fit-content;
1675
+ max-width: 100%;
1676
+ min-width: auto;
1677
+ white-space: nowrap;
1678
+ flex-shrink: 0;
1679
+ box-sizing: border-box;
1680
+ }
1681
+ .button:disabled {
1682
+ cursor: not-allowed;
1683
+ opacity: 0.6;
1684
+ }
1685
+ .button--primary {
1686
+ background-color: var(--theme-primary);
1687
+ color: var(--theme-fg);
1688
+ border-color: var(--theme-primary);
1689
+ }
1690
+ .button--primary:hover {
1691
+ background-color: rgba(0, 122, 255, 0.85);
1692
+ }
1693
+ .button--secondary {
1694
+ background-color: #fbbc04;
1695
+ color: #202124;
1696
+ }
1697
+ .button--secondary:hover {
1698
+ background-color: rgb(215.86, 161.68, 3.44);
1699
+ }
1700
+ .button--glass {
1701
+ background-color: rgba(255, 255, 255, 0.1);
1702
+ backdrop-filter: blur(10px);
1703
+ border: 1px solid rgba(255, 255, 255, 0.2);
1704
+ color: var(--theme-fg);
1705
+ }
1706
+ .button--success {
1707
+ background-color: #34a853;
1708
+ color: #ffffff;
1709
+ }
1710
+ .button--success:hover {
1711
+ background-color: rgb(43.5618181818, 140.7381818182, 69.5313636364);
1712
+ }
1713
+ .button--danger {
1714
+ background-color: #ea4335;
1715
+ color: #ffffff;
1716
+ }
1717
+ .button--danger:hover {
1718
+ background-color: rgb(227.6349775785, 39.4417040359, 23.6650224215);
1719
+ }
1720
+ .button--warning {
1721
+ background-color: #f9ab00;
1722
+ color: #000000;
1723
+ }
1724
+ .button--warning:hover {
1725
+ background-color: rgb(213.3, 146.4831325301, 0);
1726
+ }
1727
+ .button--info {
1728
+ background-color: #4285f4;
1729
+ color: #ffffff;
1730
+ }
1731
+ .button--info:hover {
1732
+ background-color: rgb(32.2635, 111.223, 242.0365);
1733
+ }
1734
+ .button--light {
1735
+ background-color: #f8f9fa;
1736
+ color: #202124;
1737
+ }
1738
+ .button--light:hover {
1739
+ background-color: rgb(218.25, 223.5, 228.75);
1740
+ }
1741
+ .button--dark {
1742
+ background-color: #202124;
1743
+ color: #ffffff;
1744
+ }
1745
+ .button--dark:hover {
1746
+ background-color: rgb(44, 45.375, 49.5);
1747
+ }
1748
+ .button.--outline {
1749
+ background-color: transparent;
1750
+ border: 1px solid #1a73e8;
1751
+ color: #1a73e8;
1752
+ }
1753
+ .button.--outline:hover {
1754
+ background-color: rgba(26, 115, 232, 0.1);
1755
+ }
1756
+ .button.--ghost {
1757
+ background: transparent;
1758
+ color: #1a73e8;
1759
+ border: none;
1760
+ }
1761
+ .button.--ghost:hover {
1762
+ background-color: rgba(26, 115, 232, 0.05);
1763
+ }
1764
+ .button.--xs {
1765
+ font-size: 0.75rem;
1766
+ padding: 0.25rem 0.25rem;
1767
+ line-height: 1;
1768
+ }
1769
+ .button.--sm {
1770
+ font-size: 0.875rem;
1771
+ padding: 0.25rem 0.5rem;
1772
+ line-height: 1;
1773
+ letter-spacing: -0.2px;
1774
+ }
1775
+ .button.--lg {
1776
+ font-size: 1.125rem;
1777
+ padding: 1rem 1.5rem;
1778
+ line-height: 1.4;
1779
+ }
1780
+ .button.--xl {
1781
+ font-size: 1.25rem;
1782
+ padding: 1.5rem 2rem;
1783
+ line-height: 1.5;
1784
+ }
1785
+ .button.--xxl {
1786
+ font-size: 1.375rem;
1787
+ padding: 1.5rem 3rem;
1788
+ line-height: 1.5;
1789
+ }
1790
+ .button.--block {
1791
+ display: flex;
1792
+ width: 100%;
1793
+ }
1794
+ .button.--rounded {
1795
+ border-radius: 8px;
1796
+ }
1797
+ .button.--pill {
1798
+ border-radius: 9999px;
1799
+ }
1800
+ .button.--circle {
1801
+ padding: 0.5rem;
1802
+ border-radius: 50%;
1803
+ width: 2.5rem;
1804
+ height: 2.5rem;
1805
+ justify-content: center;
1806
+ }
1807
+ .button .button:focus-visible {
1808
+ outline: 2px solid var(--theme-accent);
1809
+ outline-offset: 2px;
1810
+ }
1811
+
1812
+ .icon-button {
1813
+ display: inline-flex;
1814
+ align-items: center;
1815
+ justify-content: center;
1816
+ padding: 0.5rem;
1817
+ width: 2.5rem;
1818
+ height: 2.5rem;
1819
+ border: none;
1820
+ border-radius: 50%;
1821
+ background-color: #f8f9fa;
1822
+ color: #1a73e8;
1823
+ font-size: 1.25rem;
1824
+ cursor: pointer;
1825
+ }
1826
+ .icon-button:hover {
1827
+ background-color: #1a73e8;
1828
+ color: #ffffff;
1829
+ }
1830
+ .icon-button:disabled {
1831
+ opacity: 0.5;
1832
+ cursor: not-allowed;
1833
+ }
1834
+ .icon-button--sm {
1835
+ width: 2rem;
1836
+ height: 2rem;
1837
+ font-size: 1rem;
1838
+ }
1839
+ .icon-button--lg {
1840
+ width: 3rem;
1841
+ height: 3rem;
1842
+ font-size: 1.5rem;
1843
+ }
1844
+
1845
+ .button-group {
1846
+ display: flex;
1847
+ flex-wrap: wrap;
1848
+ border-radius: 8px;
1849
+ overflow: hidden;
1850
+ }
1851
+ .button-group .button {
1852
+ border-radius: 0;
1853
+ margin: 0;
1854
+ }
1855
+ .button-group .button:not(:last-child) {
1856
+ border-right: 1px solid #9aa0a6;
1857
+ }
1858
+ .button-group--vertical {
1859
+ flex-direction: column;
1860
+ }
1861
+ .button-group--vertical .button:not(:last-child) {
1862
+ border-right: none;
1863
+ border-bottom: 1px solid #9aa0a6;
1864
+ }
1865
+ .button-group--rounded .button:first-child {
1866
+ border-top-left-radius: 8px;
1867
+ border-bottom-left-radius: 8px;
1868
+ }
1869
+ .button-group--rounded .button:last-child {
1870
+ border-top-right-radius: 8px;
1871
+ border-bottom-right-radius: 8px;
1872
+ }
1873
+
1874
+ .navbar {
1875
+ display: flex;
1876
+ align-items: center;
1877
+ justify-content: space-between;
1878
+ padding: 1rem 2rem;
1879
+ background-color: #1a73e8;
1880
+ color: #ffffff;
1881
+ z-index: 1020;
1882
+ }
1883
+ .navbar .navbar__brand {
1884
+ font-weight: bold;
1885
+ font-size: 1.25rem;
1886
+ color: #ffffff;
1887
+ text-decoration: none;
1888
+ }
1889
+ .navbar .navbar__links {
1890
+ display: flex;
1891
+ gap: 1rem;
1892
+ }
1893
+ .navbar .navbar__links a {
1894
+ color: #ffffff;
1895
+ text-decoration: none;
1896
+ font-weight: 500;
1897
+ }
1898
+ .navbar .navbar__links a:hover {
1899
+ text-decoration: underline;
1900
+ }
1901
+ .navbar .navbar__menu-toggle {
1902
+ display: none;
1903
+ background: transparent;
1904
+ border: none;
1905
+ color: #ffffff;
1906
+ font-size: 1.5rem;
1907
+ }
1908
+ @media (min-width: 576px) {
1909
+ .navbar .navbar__menu-toggle {
1910
+ display: none;
1911
+ }
1912
+ }
1913
+ @media (min-width: 576px) {
1914
+ .navbar .navbar__links {
1915
+ display: flex;
1916
+ }
1917
+ }
1918
+ @media (max-width: 767px) {
1919
+ .navbar {
1920
+ flex-direction: column;
1921
+ align-items: flex-start;
1922
+ }
1923
+ .navbar .navbar__links {
1924
+ display: none;
1925
+ flex-direction: column;
1926
+ width: 100%;
1927
+ }
1928
+ .navbar .navbar__links.open {
1929
+ display: flex;
1930
+ }
1931
+ .navbar .navbar__links a {
1932
+ padding: 0.5rem 0;
1933
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
1934
+ }
1935
+ }
1936
+
1937
+ .sidebar {
1938
+ width: 250px;
1939
+ background-color: #202124;
1940
+ color: #ffffff;
1941
+ height: 100vh;
1942
+ padding: 1.5rem;
1943
+ display: flex;
1944
+ flex-direction: column;
1945
+ position: fixed;
1946
+ top: 0;
1947
+ left: 0;
1948
+ }
1949
+ .sidebar .sidebar__header {
1950
+ font-size: 1.25rem;
1951
+ font-weight: bold;
1952
+ margin-bottom: 2rem;
1953
+ }
1954
+ .sidebar .sidebar__nav {
1955
+ display: flex;
1956
+ flex-direction: column;
1957
+ gap: 0.5rem;
1958
+ }
1959
+ .sidebar .sidebar__nav a {
1960
+ color: #ffffff;
1961
+ text-decoration: none;
1962
+ padding: 0.5rem;
1963
+ border-radius: 4px;
1964
+ }
1965
+ .sidebar .sidebar__nav a:hover {
1966
+ background-color: #1a73e8;
1967
+ }
1968
+ .sidebar .sidebar__nav a.active {
1969
+ background-color: #1a73e8;
1970
+ font-weight: bold;
1971
+ }
1972
+
1973
+ .breadcrumbs {
1974
+ display: flex;
1975
+ flex-wrap: wrap;
1976
+ font-size: 0.875rem;
1977
+ gap: 0.25rem;
1978
+ color: #9aa0a6;
1979
+ }
1980
+ .breadcrumbs a {
1981
+ color: #1a73e8;
1982
+ text-decoration: none;
1983
+ }
1984
+ .breadcrumbs a:hover {
1985
+ text-decoration: underline;
1986
+ }
1987
+ .breadcrumbs .separator {
1988
+ margin: 0 0.25rem;
1989
+ color: #9aa0a6;
1990
+ }
1991
+
1992
+ .tabs {
1993
+ display: flex;
1994
+ border-bottom: 2px solid #9aa0a6;
1995
+ overflow-x: auto;
1996
+ gap: 1rem;
1997
+ }
1998
+ .tabs .tab {
1999
+ padding: 0.5rem 1rem;
2000
+ cursor: pointer;
2001
+ font-weight: 500;
2002
+ border-bottom: 2px solid transparent;
2003
+ color: #202124;
2004
+ transition: border-color 0.2s;
2005
+ }
2006
+ .tabs .tab.active {
2007
+ border-color: #1a73e8;
2008
+ color: #1a73e8;
2009
+ }
2010
+ .tabs .tab:hover {
2011
+ border-color: #1a73e8;
2012
+ }
2013
+
2014
+ .menu {
2015
+ display: inline-block;
2016
+ position: relative;
2017
+ }
2018
+ .menu .menu__button {
2019
+ background-color: #f8f9fa;
2020
+ padding: 0.5rem 1rem;
2021
+ border-radius: 4px;
2022
+ cursor: pointer;
2023
+ border: 1px solid #9aa0a6;
2024
+ color: #202124;
2025
+ }
2026
+ .menu .menu__button:hover {
2027
+ background-color: #ffffff;
2028
+ }
2029
+ .menu .menu__dropdown {
2030
+ position: absolute;
2031
+ top: 100%;
2032
+ left: 0;
2033
+ margin-top: 0.25rem;
2034
+ background-color: #ffffff;
2035
+ border: 1px solid #9aa0a6;
2036
+ border-radius: 4px;
2037
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2038
+ min-width: 200px;
2039
+ z-index: 1000;
2040
+ display: none;
2041
+ }
2042
+ .menu .menu__dropdown.open {
2043
+ display: block;
2044
+ }
2045
+ .menu .menu__dropdown a {
2046
+ display: block;
2047
+ padding: 0.5rem 1rem;
2048
+ color: #202124;
2049
+ text-decoration: none;
2050
+ }
2051
+ .menu .menu__dropdown a:hover {
2052
+ background-color: #f8f9fa;
2053
+ }
2054
+
2055
+ .pagination {
2056
+ display: flex;
2057
+ list-style: none;
2058
+ gap: 0.5rem;
2059
+ }
2060
+ .pagination .page-item {
2061
+ display: inline-block;
2062
+ }
2063
+ .pagination .page-item a {
2064
+ display: inline-block;
2065
+ padding: 0.25rem 0.5rem;
2066
+ border-radius: 4px;
2067
+ border: 1px solid #9aa0a6;
2068
+ color: #202124;
2069
+ text-decoration: none;
2070
+ }
2071
+ .pagination .page-item a:hover {
2072
+ background-color: #1a73e8;
2073
+ color: #ffffff;
2074
+ border-color: #1a73e8;
2075
+ }
2076
+ .pagination .page-item a.active {
2077
+ background-color: #1a73e8;
2078
+ color: #ffffff;
2079
+ }
2080
+
2081
+ .card {
2082
+ background-color: #ffffff;
2083
+ border: 1px solid #9aa0a6;
2084
+ border-radius: 8px;
2085
+ gap: 1rem;
2086
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2087
+ padding: 1.5rem;
2088
+ transition: box-shadow 0.2s;
2089
+ display: flex;
2090
+ flex-direction: column;
2091
+ }
2092
+ .card:hover {
2093
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2094
+ }
2095
+ .card__header {
2096
+ font-weight: 600;
2097
+ font-size: 1.125rem;
2098
+ margin-bottom: 1rem;
2099
+ }
2100
+ .card__body {
2101
+ flex: 1;
2102
+ }
2103
+ .card__footer {
2104
+ margin-top: 1rem;
2105
+ text-align: right;
2106
+ }
2107
+ .card--hover {
2108
+ cursor: pointer;
2109
+ }
2110
+ .card--hover:hover {
2111
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2112
+ }
2113
+ .card--borderless {
2114
+ border: none;
2115
+ }
2116
+ .card--elevated {
2117
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2118
+ }
2119
+
2120
+ .modal {
2121
+ position: fixed;
2122
+ inset: 0;
2123
+ z-index: 1050;
2124
+ display: flex;
2125
+ align-items: center;
2126
+ justify-content: center;
2127
+ background-color: rgba(0, 0, 0, 0.4);
2128
+ backdrop-filter: blur(6px);
2129
+ -webkit-backdrop-filter: blur(6px);
2130
+ padding: 1.5rem;
2131
+ }
2132
+ .modal.hidden {
2133
+ display: none !important;
2134
+ }
2135
+ .modal__content {
2136
+ background-color: rgba(255, 255, 255, 0.06);
2137
+ backdrop-filter: blur(12px);
2138
+ -webkit-backdrop-filter: blur(12px);
2139
+ border-radius: 8px;
2140
+ width: 100%;
2141
+ max-width: 600px;
2142
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
2143
+ overflow: hidden;
2144
+ animation: fade-in 0.3s ease-in-out;
2145
+ color: #ffffff;
2146
+ }
2147
+ .modal__header {
2148
+ padding: 1rem;
2149
+ font-size: 1.25rem;
2150
+ font-weight: 600;
2151
+ border-bottom: 1px solid #9aa0a6;
2152
+ }
2153
+ .modal__body {
2154
+ padding: 1.5rem;
2155
+ }
2156
+ .modal__footer {
2157
+ padding: 1rem;
2158
+ text-align: right;
2159
+ border-top: 1px solid #9aa0a6;
2160
+ }
2161
+ .modal__close {
2162
+ position: absolute;
2163
+ top: 0.5rem;
2164
+ right: 0.5rem;
2165
+ background: none;
2166
+ border: none;
2167
+ font-size: 1.5rem;
2168
+ color: #9aa0a6;
2169
+ cursor: pointer;
2170
+ }
2171
+ .modal__close:hover {
2172
+ color: #ea4335;
2173
+ }
2174
+ .modal .hidden {
2175
+ display: none !important;
2176
+ }
2177
+
2178
+ .drawer {
2179
+ position: fixed;
2180
+ top: 0;
2181
+ right: 0;
2182
+ width: 300px;
2183
+ max-width: 100%;
2184
+ height: 100vh;
2185
+ background-color: #ffffff;
2186
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
2187
+ z-index: 1050;
2188
+ display: flex;
2189
+ flex-direction: column;
2190
+ animation: slide-in 0.3s ease-in-out;
2191
+ }
2192
+ .drawer__header {
2193
+ padding: 1rem;
2194
+ font-weight: 600;
2195
+ border-bottom: 1px solid #9aa0a6;
2196
+ }
2197
+ .drawer__body {
2198
+ flex: 1;
2199
+ overflow-y: auto;
2200
+ padding: 1.5rem;
2201
+ }
2202
+ .drawer__footer {
2203
+ padding: 1rem;
2204
+ border-top: 1px solid #9aa0a6;
2205
+ text-align: right;
2206
+ }
2207
+
2208
+ .accordion {
2209
+ border: 1px solid #9aa0a6;
2210
+ border-radius: 8px;
2211
+ overflow: hidden;
2212
+ }
2213
+ .accordion__item {
2214
+ border-bottom: 1px solid #9aa0a6;
2215
+ }
2216
+ .accordion__item:last-child {
2217
+ border-bottom: none;
2218
+ }
2219
+ .accordion__header {
2220
+ padding: 1rem;
2221
+ font-weight: 500;
2222
+ cursor: pointer;
2223
+ background-color: #f8f9fa;
2224
+ display: flex;
2225
+ justify-content: space-between;
2226
+ align-items: center;
2227
+ }
2228
+ .accordion__header:hover {
2229
+ background-color: #ffffff;
2230
+ }
2231
+ .accordion__body {
2232
+ padding: 1rem;
2233
+ display: none;
2234
+ }
2235
+ .accordion__body.open {
2236
+ display: block;
2237
+ }
2238
+
2239
+ .panel {
2240
+ padding: 1.5rem;
2241
+ border-left: 4px solid #1a73e8;
2242
+ background-color: #f8f9fa;
2243
+ border-radius: 4px;
2244
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
2245
+ margin-bottom: 1.5rem;
2246
+ }
2247
+ .panel--info {
2248
+ border-color: #4285f4;
2249
+ }
2250
+ .panel--success {
2251
+ border-color: #34a853;
2252
+ }
2253
+ .panel--warning {
2254
+ border-color: #f9ab00;
2255
+ }
2256
+ .panel--danger {
2257
+ border-color: #ea4335;
2258
+ }
2259
+ .panel__title {
2260
+ font-weight: bold;
2261
+ margin-bottom: 0.5rem;
2262
+ }
2263
+ .panel__content {
2264
+ font-size: 0.95rem;
2265
+ }
2266
+
2267
+ .toast {
2268
+ position: fixed;
2269
+ bottom: 1.5rem;
2270
+ right: 1.5rem;
2271
+ background-color: #202124;
2272
+ color: #ffffff;
2273
+ padding: 1rem;
2274
+ border-radius: 8px;
2275
+ box-shadow: 0 10px 15px rgba(0, 0, 0, 0.15);
2276
+ z-index: 1080;
2277
+ animation: fade-in 0.3s ease-in-out;
2278
+ min-width: 250px;
2279
+ }
2280
+ .toast--success {
2281
+ background-color: #34a853;
2282
+ }
2283
+ .toast--error {
2284
+ background-color: #ea4335;
2285
+ }
2286
+ .toast--info {
2287
+ background-color: #4285f4;
2288
+ }
2289
+ .toast__message {
2290
+ font-size: 0.95rem;
2291
+ }
2292
+ .toast__close {
2293
+ position: absolute;
2294
+ top: 0.25rem;
2295
+ right: 0.25rem;
2296
+ background: none;
2297
+ border: none;
2298
+ color: #ffffff;
2299
+ font-size: 1.25rem;
2300
+ cursor: pointer;
2301
+ }
2302
+ .toast__close:hover {
2303
+ opacity: 0.7;
2304
+ }
2305
+
2306
+ .tooltip {
2307
+ position: relative;
2308
+ cursor: help;
2309
+ }
2310
+ .tooltip__content {
2311
+ position: absolute;
2312
+ bottom: 100%;
2313
+ left: 50%;
2314
+ transform: translateX(-50%) translateY(0.25rem);
2315
+ background-color: #202124;
2316
+ color: #ffffff;
2317
+ padding: 0.25rem 0.5rem;
2318
+ font-size: 0.75rem;
2319
+ white-space: nowrap;
2320
+ border-radius: 4px;
2321
+ opacity: 0;
2322
+ pointer-events: none;
2323
+ transition: opacity 0.2s;
2324
+ z-index: 1090;
2325
+ }
2326
+ .tooltip__content::after {
2327
+ content: "";
2328
+ position: absolute;
2329
+ top: 100%;
2330
+ left: 50%;
2331
+ margin-left: -6px;
2332
+ border-width: 6px;
2333
+ border-style: solid;
2334
+ border-color: #202124 transparent transparent transparent;
2335
+ }
2336
+ .tooltip:hover .tooltip__content, .tooltip:focus-within .tooltip__content {
2337
+ opacity: 1;
2338
+ }
2339
+
2340
+ .popover {
2341
+ position: relative;
2342
+ }
2343
+ .popover__trigger {
2344
+ cursor: pointer;
2345
+ }
2346
+ .popover__content {
2347
+ position: absolute;
2348
+ top: calc(100% + 0.25rem);
2349
+ left: 0;
2350
+ min-width: 200px;
2351
+ background-color: #ffffff;
2352
+ border: 1px solid #9aa0a6;
2353
+ border-radius: 8px;
2354
+ padding: 1rem;
2355
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2356
+ z-index: 1060;
2357
+ display: none;
2358
+ }
2359
+ .popover__content.open {
2360
+ display: block;
2361
+ }
2362
+ .popover--right .popover__content {
2363
+ left: auto;
2364
+ right: 0;
2365
+ }
2366
+ .popover--top .popover__content {
2367
+ top: auto;
2368
+ bottom: calc(100% + 0.25rem);
2369
+ }
2370
+
2371
+ .dropdown {
2372
+ position: relative;
2373
+ display: inline-block;
2374
+ }
2375
+ .dropdown__trigger {
2376
+ cursor: pointer;
2377
+ padding: 0.5rem 1rem;
2378
+ border: 1px solid #9aa0a6;
2379
+ border-radius: 4px;
2380
+ background-color: #ffffff;
2381
+ color: #202124;
2382
+ }
2383
+ .dropdown__menu {
2384
+ display: none;
2385
+ position: absolute;
2386
+ top: 100%;
2387
+ left: 0;
2388
+ background-color: #ffffff;
2389
+ border: 1px solid #9aa0a6;
2390
+ border-radius: 4px;
2391
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2392
+ min-width: 160px;
2393
+ z-index: 1000;
2394
+ }
2395
+ .dropdown__menu.open {
2396
+ display: block;
2397
+ }
2398
+ .dropdown__menu a {
2399
+ display: block;
2400
+ padding: 0.5rem 1rem;
2401
+ color: #202124;
2402
+ text-decoration: none;
2403
+ }
2404
+ .dropdown__menu a:hover {
2405
+ background-color: #f8f9fa;
2406
+ }
2407
+
2408
+ .backdrop {
2409
+ position: fixed;
2410
+ inset: 0;
2411
+ background-color: rgba(0, 0, 0, 0.5);
2412
+ z-index: 1050;
2413
+ }
2414
+
2415
+ .loader {
2416
+ width: 2rem;
2417
+ height: 2rem;
2418
+ border: 3px solid #f8f9fa;
2419
+ border-top-color: #1a73e8;
2420
+ border-radius: 50%;
2421
+ animation: spin 0.75s linear infinite;
2422
+ margin: auto;
2423
+ }
2424
+ .loader--sm {
2425
+ width: 1.5rem;
2426
+ height: 1.5rem;
2427
+ }
2428
+ .loader--lg {
2429
+ width: 3rem;
2430
+ height: 3rem;
2431
+ }
2432
+
2433
+ @keyframes spin {
2434
+ to {
2435
+ transform: rotate(360deg);
2436
+ }
2437
+ }
2438
+ .table {
2439
+ width: 100%;
2440
+ border-collapse: collapse;
2441
+ font-size: 0.95rem;
2442
+ background-color: #ffffff;
2443
+ }
2444
+ .table thead {
2445
+ background-color: #f8f9fa;
2446
+ border-bottom: 2px solid #9aa0a6;
2447
+ }
2448
+ .table th,
2449
+ .table td {
2450
+ padding: 0.5rem 1rem;
2451
+ text-align: left;
2452
+ border-bottom: 1px solid #9aa0a6;
2453
+ }
2454
+ .table th {
2455
+ font-weight: 600;
2456
+ color: #202124;
2457
+ }
2458
+ .table tbody tr:hover {
2459
+ background-color: rgba(26, 115, 232, 0.05);
2460
+ }
2461
+ .table--striped tbody tr:nth-child(odd) {
2462
+ background-color: #f8f9fa;
2463
+ }
2464
+ .table--bordered, .table--bordered th, .table--bordered td {
2465
+ border: 1px solid #9aa0a6;
2466
+ }
2467
+ .table--responsive {
2468
+ display: block;
2469
+ width: 100%;
2470
+ overflow-x: auto;
2471
+ white-space: nowrap;
2472
+ }
2473
+
2474
+ .data-table {
2475
+ position: relative;
2476
+ }
2477
+ .data-table .data-table__toolbar {
2478
+ display: flex;
2479
+ justify-content: space-between;
2480
+ margin-bottom: 1rem;
2481
+ }
2482
+ .data-table .data-table__toolbar .search-input {
2483
+ max-width: 300px;
2484
+ }
2485
+ .data-table .data-table__sort {
2486
+ cursor: pointer;
2487
+ }
2488
+ .data-table .data-table__sort::after {
2489
+ content: " ⇅";
2490
+ font-size: 0.8rem;
2491
+ color: #9aa0a6;
2492
+ }
2493
+ .data-table .data-table__sort.asc::after {
2494
+ content: " ↑";
2495
+ }
2496
+ .data-table .data-table__sort.desc::after {
2497
+ content: " ↓";
2498
+ }
2499
+ .data-table .data-table__status {
2500
+ font-size: 0.875rem;
2501
+ padding: 0.25rem;
2502
+ border-radius: 4px;
2503
+ background-color: #f8f9fa;
2504
+ color: #202124;
2505
+ }
2506
+ .data-table .data-table__status--active {
2507
+ background-color: #34a853;
2508
+ color: #ffffff;
2509
+ }
2510
+ .data-table .data-table__status--inactive {
2511
+ background-color: #9aa0a6;
2512
+ }
2513
+ .data-table .data-table__status--error {
2514
+ background-color: #ea4335;
2515
+ color: #ffffff;
2516
+ }
2517
+ .data-table .data-table__actions {
2518
+ display: flex;
2519
+ gap: 0.5rem;
2520
+ }
2521
+
2522
+ .list {
2523
+ margin: 0;
2524
+ padding-left: 1.5rem;
2525
+ color: #202124;
2526
+ line-height: 1.6;
2527
+ }
2528
+ .list--inline {
2529
+ display: flex;
2530
+ gap: 1rem;
2531
+ list-style: none;
2532
+ padding-left: 0;
2533
+ }
2534
+ .list--unstyled {
2535
+ list-style: none;
2536
+ padding-left: 0;
2537
+ }
2538
+ .list--bulleted {
2539
+ list-style-type: disc;
2540
+ }
2541
+ .list--numbered {
2542
+ list-style-type: decimal;
2543
+ }
2544
+
2545
+ .tree-view {
2546
+ list-style: none;
2547
+ padding-left: 1rem;
2548
+ }
2549
+ .tree-view .tree-node {
2550
+ margin-bottom: 0.25rem;
2551
+ position: relative;
2552
+ }
2553
+ .tree-view .tree-node__label {
2554
+ cursor: pointer;
2555
+ display: flex;
2556
+ align-items: center;
2557
+ gap: 0.25rem;
2558
+ padding: 0.25rem 0.5rem;
2559
+ border-radius: 4px;
2560
+ }
2561
+ .tree-view .tree-node__label:hover {
2562
+ background-color: #f8f9fa;
2563
+ }
2564
+ .tree-view .tree-node__label.expanded::before {
2565
+ content: "▼";
2566
+ font-size: 0.75rem;
2567
+ color: #9aa0a6;
2568
+ }
2569
+ .tree-view .tree-node__label::before {
2570
+ content: "▶";
2571
+ font-size: 0.75rem;
2572
+ color: #9aa0a6;
2573
+ }
2574
+ .tree-view .tree-node .tree-children {
2575
+ display: none;
2576
+ padding-left: 1rem;
2577
+ }
2578
+ .tree-view .tree-node.expanded .tree-children {
2579
+ display: block;
2580
+ }
2581
+
2582
+ .avatar {
2583
+ display: inline-flex;
2584
+ align-items: center;
2585
+ justify-content: center;
2586
+ border-radius: 50%;
2587
+ background-color: #9aa0a6;
2588
+ color: #ffffff;
2589
+ font-size: 1rem;
2590
+ font-weight: 600;
2591
+ text-transform: uppercase;
2592
+ overflow: hidden;
2593
+ }
2594
+ .avatar--sm {
2595
+ width: 2rem;
2596
+ height: 2rem;
2597
+ font-size: 0.875rem;
2598
+ }
2599
+ .avatar--md {
2600
+ width: 3rem;
2601
+ height: 3rem;
2602
+ font-size: 1rem;
2603
+ }
2604
+ .avatar--lg {
2605
+ width: 4rem;
2606
+ height: 4rem;
2607
+ font-size: 1.25rem;
2608
+ }
2609
+ .avatar img {
2610
+ width: 100%;
2611
+ height: 100%;
2612
+ object-fit: cover;
2613
+ border-radius: 50%;
2614
+ }
2615
+
2616
+ .badge {
2617
+ display: inline-block;
2618
+ padding: 0.25em 0.6em;
2619
+ font-size: 0.75rem;
2620
+ border-radius: 9999px;
2621
+ font-weight: 600;
2622
+ background-color: #9aa0a6;
2623
+ color: #ffffff;
2624
+ line-height: 1;
2625
+ }
2626
+ .badge--primary {
2627
+ background-color: #1a73e8;
2628
+ }
2629
+ .badge--success {
2630
+ background-color: #34a853;
2631
+ }
2632
+ .badge--danger {
2633
+ background-color: #ea4335;
2634
+ }
2635
+ .badge--warning {
2636
+ background-color: #f9ab00;
2637
+ }
2638
+ .badge--info {
2639
+ background-color: #4285f4;
2640
+ }
2641
+ .badge--light {
2642
+ background-color: #f8f9fa;
2643
+ color: #202124;
2644
+ }
2645
+ .badge--dark {
2646
+ background-color: #202124;
2647
+ }
2648
+
2649
+ .chip {
2650
+ display: inline-flex;
2651
+ align-items: center;
2652
+ gap: 0.25rem;
2653
+ padding: 0.25rem 0.5rem;
2654
+ font-size: 0.8rem;
2655
+ background-color: #f8f9fa;
2656
+ border-radius: 9999px;
2657
+ color: #202124;
2658
+ border: 1px solid #9aa0a6;
2659
+ }
2660
+ .chip .chip__remove {
2661
+ font-size: 1rem;
2662
+ cursor: pointer;
2663
+ background: none;
2664
+ border: none;
2665
+ color: #9aa0a6;
2666
+ }
2667
+ .chip .chip__remove:hover {
2668
+ color: #ea4335;
2669
+ }
2670
+ .chip--primary {
2671
+ background-color: #1a73e8;
2672
+ color: #ffffff;
2673
+ }
2674
+ .chip--success {
2675
+ background-color: #34a853;
2676
+ color: #ffffff;
2677
+ }
2678
+ .chip--danger {
2679
+ background-color: #ea4335;
2680
+ color: #ffffff;
2681
+ }
2682
+ .chip--info {
2683
+ background-color: #4285f4;
2684
+ color: #ffffff;
2685
+ }
2686
+
2687
+ .divider {
2688
+ border: none;
2689
+ border-top: 1px solid #9aa0a6;
2690
+ margin: 1rem 0;
2691
+ }
2692
+ .divider--vertical {
2693
+ border-top: none;
2694
+ border-left: 1px solid #9aa0a6;
2695
+ height: 100%;
2696
+ margin: 0 1rem;
2697
+ }
2698
+ .divider--dashed {
2699
+ border-style: dashed;
2700
+ }
2701
+ .divider--thick {
2702
+ border-width: 2px;
2703
+ }
2704
+
2705
+ .image {
2706
+ max-width: 100%;
2707
+ display: block;
2708
+ height: auto;
2709
+ border-radius: 4px;
2710
+ }
2711
+ .image--rounded {
2712
+ border-radius: 8px;
2713
+ }
2714
+ .image--circle {
2715
+ border-radius: 50%;
2716
+ }
2717
+ .image--shadow {
2718
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2719
+ }
2720
+ .image--cover {
2721
+ object-fit: cover;
2722
+ width: 100%;
2723
+ height: 100%;
2724
+ }
2725
+ .image--contain {
2726
+ object-fit: contain;
2727
+ }
2728
+
2729
+ .alert {
2730
+ padding: 1rem;
2731
+ border-radius: 4px;
2732
+ border-left: 4px solid;
2733
+ background-color: #f8f9fa;
2734
+ color: #202124;
2735
+ position: relative;
2736
+ margin-bottom: 1rem;
2737
+ }
2738
+ .alert--success {
2739
+ border-color: #34a853;
2740
+ background-color: rgb(208.8, 240.7, 217.325);
2741
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2742
+ }
2743
+ .alert--danger {
2744
+ border-color: #ea4335;
2745
+ background-color: rgb(208.8, 240.7, 217.325);
2746
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2747
+ }
2748
+ .alert--warning {
2749
+ border-color: #f9ab00;
2750
+ background-color: rgb(189.3272727273, 234.6727272727, 201.4454545455);
2751
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2752
+ }
2753
+ .alert--info {
2754
+ border-color: #4285f4;
2755
+ background-color: rgb(208.8, 240.7, 217.325);
2756
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2757
+ }
2758
+ .alert__title {
2759
+ font-weight: bold;
2760
+ margin-bottom: 0.25rem;
2761
+ }
2762
+ .alert__close {
2763
+ position: absolute;
2764
+ right: 0.5rem;
2765
+ top: 0.5rem;
2766
+ background: none;
2767
+ border: none;
2768
+ color: #9aa0a6;
2769
+ font-size: 1.25rem;
2770
+ cursor: pointer;
2771
+ }
2772
+ .alert__close:hover {
2773
+ color: #ea4335;
2774
+ }
2775
+
2776
+ .message {
2777
+ padding: 0.5rem;
2778
+ font-size: 0.875rem;
2779
+ border-radius: 4px;
2780
+ color: #202124;
2781
+ }
2782
+ .message--success {
2783
+ background-color: rgb(189.3272727273, 234.6727272727, 201.4454545455);
2784
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2785
+ }
2786
+ .message--error {
2787
+ background-color: rgb(253.2107623318, 238.9820627803, 237.7892376682);
2788
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2789
+ }
2790
+ .message--info {
2791
+ background-color: rgb(189.3272727273, 234.6727272727, 201.4454545455);
2792
+ color: rgb(14.2380952381, 69.3333333333, 141.7619047619);
2793
+ }
2794
+
2795
+ .progress-bar {
2796
+ width: 100%;
2797
+ background-color: #f8f9fa;
2798
+ height: 0.75rem;
2799
+ border-radius: 8px;
2800
+ overflow: hidden;
2801
+ }
2802
+ .progress-bar__fill {
2803
+ height: 100%;
2804
+ width: 0%;
2805
+ background-color: #1a73e8;
2806
+ transition: width 0.3s ease-in-out;
2807
+ }
2808
+ .progress-bar__fill--success {
2809
+ background-color: #34a853;
2810
+ }
2811
+ .progress-bar__fill--danger {
2812
+ background-color: #ea4335;
2813
+ }
2814
+ .progress-bar__fill--warning {
2815
+ background-color: #f9ab00;
2816
+ }
2817
+
2818
+ .snackbar {
2819
+ position: fixed;
2820
+ bottom: 1.5rem;
2821
+ left: 50%;
2822
+ transform: translateX(-50%);
2823
+ background-color: #202124;
2824
+ color: #ffffff;
2825
+ padding: 0.5rem 1rem;
2826
+ border-radius: 4px;
2827
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2828
+ font-size: 0.875rem;
2829
+ z-index: 1080;
2830
+ animation: fade-in 0.3s ease-in-out;
2831
+ }
2832
+ .snackbar--success {
2833
+ background-color: #34a853;
2834
+ }
2835
+ .snackbar--error {
2836
+ background-color: #ea4335;
2837
+ }
2838
+ .snackbar--info {
2839
+ background-color: #4285f4;
2840
+ }
2841
+ .snackbar--warning {
2842
+ background-color: #f9ab00;
2843
+ }
2844
+
2845
+ .skeleton {
2846
+ background-color: #f8f9fa;
2847
+ border-radius: 4px;
2848
+ width: 100%;
2849
+ height: 1rem;
2850
+ position: relative;
2851
+ overflow: hidden;
2852
+ }
2853
+ .skeleton::after {
2854
+ content: "";
2855
+ position: absolute;
2856
+ top: 0;
2857
+ left: -50%;
2858
+ height: 100%;
2859
+ width: 50%;
2860
+ background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent);
2861
+ animation: shimmer 1.5s infinite;
2862
+ }
2863
+ .skeleton--sm {
2864
+ height: 0.75rem;
2865
+ }
2866
+ .skeleton--lg {
2867
+ height: 1.5rem;
2868
+ }
2869
+ .skeleton--circle {
2870
+ border-radius: 50%;
2871
+ height: 2rem;
2872
+ width: 2rem;
2873
+ }
2874
+
2875
+ @keyframes shimmer {
2876
+ 100% {
2877
+ transform: translateX(100%);
2878
+ }
2879
+ }
2880
+ .carousel {
2881
+ position: relative;
2882
+ overflow: hidden;
2883
+ border-radius: 8px;
2884
+ background-color: #f8f9fa;
2885
+ }
2886
+ .carousel__track {
2887
+ display: flex;
2888
+ transition: transform 0.5s ease-in-out;
2889
+ will-change: transform;
2890
+ }
2891
+ .carousel__slide {
2892
+ min-width: 100%;
2893
+ flex-shrink: 0;
2894
+ padding: 1.5rem;
2895
+ }
2896
+ .carousel__controls {
2897
+ position: absolute;
2898
+ top: 50%;
2899
+ width: 100%;
2900
+ display: flex;
2901
+ justify-content: space-between;
2902
+ transform: translateY(-50%);
2903
+ padding: 0 1rem;
2904
+ pointer-events: none;
2905
+ }
2906
+ .carousel__controls button {
2907
+ background: rgba(32, 33, 36, 0.4);
2908
+ border: none;
2909
+ border-radius: 50%;
2910
+ color: #ffffff;
2911
+ font-size: 1.25rem;
2912
+ cursor: pointer;
2913
+ padding: 0.25rem;
2914
+ pointer-events: auto;
2915
+ }
2916
+ .carousel__controls button:hover {
2917
+ background: #1a73e8;
2918
+ }
2919
+ .carousel__indicators {
2920
+ display: flex;
2921
+ justify-content: center;
2922
+ margin-top: 1rem;
2923
+ }
2924
+ .carousel__indicators .dot {
2925
+ width: 0.75rem;
2926
+ height: 0.75rem;
2927
+ margin: 0 0.25rem;
2928
+ background-color: #9aa0a6;
2929
+ border-radius: 50%;
2930
+ cursor: pointer;
2931
+ }
2932
+ .carousel__indicators .dot.active {
2933
+ background-color: #1a73e8;
2934
+ }
2935
+
2936
+ .steps {
2937
+ display: flex;
2938
+ justify-content: space-between;
2939
+ align-items: center;
2940
+ gap: 1rem;
2941
+ }
2942
+ .steps .step {
2943
+ flex: 1;
2944
+ text-align: center;
2945
+ position: relative;
2946
+ }
2947
+ .steps .step .circle {
2948
+ display: inline-flex;
2949
+ align-items: center;
2950
+ justify-content: center;
2951
+ width: 2rem;
2952
+ height: 2rem;
2953
+ background-color: #9aa0a6;
2954
+ color: #ffffff;
2955
+ border-radius: 50%;
2956
+ font-weight: bold;
2957
+ margin-bottom: 0.25rem;
2958
+ }
2959
+ .steps .step .circle.active {
2960
+ background-color: #1a73e8;
2961
+ }
2962
+ .steps .step .circle.completed {
2963
+ background-color: #34a853;
2964
+ }
2965
+ .steps .step .label {
2966
+ font-size: 0.875rem;
2967
+ color: #202124;
2968
+ }
2969
+ .steps .step::after {
2970
+ content: "";
2971
+ position: absolute;
2972
+ top: 1rem;
2973
+ right: -50%;
2974
+ width: 100%;
2975
+ height: 2px;
2976
+ background-color: #9aa0a6;
2977
+ z-index: -1;
2978
+ }
2979
+ .steps .step:last-child::after {
2980
+ display: none;
2981
+ }
2982
+
2983
+ .timeline {
2984
+ position: relative;
2985
+ padding-left: 2rem;
2986
+ border-left: 2px solid #9aa0a6;
2987
+ }
2988
+ .timeline .timeline__event {
2989
+ margin-bottom: 2rem;
2990
+ position: relative;
2991
+ }
2992
+ .timeline .timeline__event::before {
2993
+ content: "";
2994
+ position: absolute;
2995
+ left: 1.5rem;
2996
+ top: 0.25rem;
2997
+ width: 1rem;
2998
+ height: 1rem;
2999
+ background-color: #1a73e8;
3000
+ border-radius: 50%;
3001
+ border: 2px solid #ffffff;
3002
+ }
3003
+ .timeline .timeline__event .title {
3004
+ font-weight: bold;
3005
+ color: #202124;
3006
+ }
3007
+ .timeline .timeline__event .timestamp {
3008
+ font-size: 0.75rem;
3009
+ color: #9aa0a6;
3010
+ }
3011
+ .timeline .timeline__event .content {
3012
+ margin-top: 0.5rem;
3013
+ font-size: 0.9rem;
3014
+ }
3015
+
3016
+ .calendar {
3017
+ display: grid;
3018
+ grid-template-columns: repeat(7, 1fr);
3019
+ gap: 0.25rem;
3020
+ font-size: 0.85rem;
3021
+ }
3022
+ .calendar .day {
3023
+ text-align: center;
3024
+ padding: 0.5rem;
3025
+ border-radius: 4px;
3026
+ background-color: #ffffff;
3027
+ cursor: pointer;
3028
+ transition: 0.2s;
3029
+ }
3030
+ .calendar .day:hover {
3031
+ background-color: #f8f9fa;
3032
+ }
3033
+ .calendar .day--today {
3034
+ border: 1px solid #1a73e8;
3035
+ }
3036
+ .calendar .day--selected {
3037
+ background-color: #1a73e8;
3038
+ color: #ffffff;
3039
+ }
3040
+ .calendar .day--disabled {
3041
+ color: #9aa0a6;
3042
+ pointer-events: none;
3043
+ }
3044
+ .calendar .weekdays {
3045
+ font-weight: bold;
3046
+ text-transform: uppercase;
3047
+ font-size: 0.75rem;
3048
+ grid-column: span 7;
3049
+ display: grid;
3050
+ grid-template-columns: repeat(7, 1fr);
3051
+ margin-bottom: 0.25rem;
3052
+ }
3053
+
3054
+ .rating {
3055
+ display: inline-flex;
3056
+ gap: 0.25rem;
3057
+ font-size: 1.25rem;
3058
+ color: #9aa0a6;
3059
+ cursor: pointer;
3060
+ }
3061
+ .rating .star {
3062
+ transition: color 0.2s;
3063
+ }
3064
+ .rating .star.filled {
3065
+ color: #f9ab00;
3066
+ }
3067
+ .rating--sm {
3068
+ font-size: 1rem;
3069
+ }
3070
+ .rating--lg {
3071
+ font-size: 1.75rem;
3072
+ }
3073
+
3074
+ .chat {
3075
+ display: flex;
3076
+ flex-direction: column;
3077
+ gap: 1rem;
3078
+ }
3079
+ .chat .chat__message {
3080
+ max-width: 70%;
3081
+ padding: 0.5rem 1rem;
3082
+ border-radius: 8px;
3083
+ background-color: #f8f9fa;
3084
+ position: relative;
3085
+ word-wrap: break-word;
3086
+ }
3087
+ .chat .chat__message--sent {
3088
+ align-self: flex-end;
3089
+ background-color: #1a73e8;
3090
+ color: #ffffff;
3091
+ }
3092
+ .chat .chat__message--received {
3093
+ align-self: flex-start;
3094
+ }
3095
+ .chat .chat__message .timestamp {
3096
+ font-size: 0.7rem;
3097
+ margin-top: 0.25rem;
3098
+ opacity: 0.6;
3099
+ }
3100
+
3101
+ .code-block {
3102
+ background-color: #202124;
3103
+ color: #ffffff;
3104
+ font-family: "Fira Code", monospace;
3105
+ font-size: 0.85rem;
3106
+ padding: 1rem;
3107
+ border-radius: 8px;
3108
+ overflow-x: auto;
3109
+ }
3110
+ .code-block--light {
3111
+ background-color: #f8f9fa;
3112
+ color: #202124;
3113
+ }
3114
+ .code-block code {
3115
+ white-space: pre;
3116
+ }
3117
+
3118
+ .chart-wrapper {
3119
+ background-color: #ffffff;
3120
+ padding: 1rem;
3121
+ border-radius: 4px;
3122
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
3123
+ border: 1px solid #9aa0a6;
3124
+ margin-bottom: 1.5rem;
3125
+ }
3126
+ .chart-wrapper--bar canvas, .chart-wrapper--line canvas, .chart-wrapper--pie canvas, .chart-wrapper--radar canvas {
3127
+ width: 100% !important;
3128
+ height: 280px !important;
3129
+ }
3130
+ .chart-wrapper__title {
3131
+ font-weight: bold;
3132
+ font-size: 1.1rem;
3133
+ margin-bottom: 0.5rem;
3134
+ color: #202124;
3135
+ }
3136
+
3137
+ .editor {
3138
+ border: 1px solid #9aa0a6;
3139
+ border-radius: 4px;
3140
+ background-color: #ffffff;
3141
+ padding: 0.5rem;
3142
+ font-size: 1rem;
3143
+ line-height: 1.6;
3144
+ display: flex;
3145
+ flex-direction: column;
3146
+ gap: 0.5rem;
3147
+ min-height: 250px;
3148
+ }
3149
+ .editor__toolbar {
3150
+ display: flex;
3151
+ flex-wrap: wrap;
3152
+ gap: 0.25rem;
3153
+ border-bottom: 1px solid #9aa0a6;
3154
+ padding-bottom: 0.25rem;
3155
+ }
3156
+ .editor__toolbar button {
3157
+ background-color: #f8f9fa;
3158
+ border: 1px solid #dadce0;
3159
+ padding: 0.25rem 0.5rem;
3160
+ border-radius: 2px;
3161
+ font-size: 0.85rem;
3162
+ cursor: pointer;
3163
+ }
3164
+ .editor__toolbar button:hover {
3165
+ background-color: #1a73e8;
3166
+ color: #ffffff;
3167
+ }
3168
+ .editor__toolbar button.active {
3169
+ background-color: #1a73e8;
3170
+ color: #ffffff;
3171
+ }
3172
+ .editor__content {
3173
+ flex: 1;
3174
+ min-height: 160px;
3175
+ padding: 0.5rem;
3176
+ border-radius: 2px;
3177
+ border: none;
3178
+ outline: none;
3179
+ color: #202124;
3180
+ background: #ffffff;
3181
+ font-size: 1rem;
3182
+ }
3183
+ .editor__content p {
3184
+ margin-bottom: 0.5rem;
3185
+ }
3186
+ .editor__content h1, .editor__content h2, .editor__content h3 {
3187
+ margin: 0.5rem 0;
3188
+ font-weight: bold;
3189
+ }
3190
+ .editor__content ul, .editor__content ol {
3191
+ padding-left: 1rem;
3192
+ margin: 0.5rem 0;
3193
+ }
3194
+ .editor__content blockquote {
3195
+ border-left: 4px solid #1a73e8;
3196
+ padding-left: 0.5rem;
3197
+ color: #9aa0a6;
3198
+ margin: 0.5rem 0;
3199
+ }
3200
+ .editor__content pre {
3201
+ font-family: monospace;
3202
+ background: #202124;
3203
+ color: #ffffff;
3204
+ padding: 0.5rem;
3205
+ border-radius: 4px;
3206
+ overflow-x: auto;
3207
+ }
3208
+ .editor__content code {
3209
+ background: #f8f9fa;
3210
+ padding: 2px 6px;
3211
+ border-radius: 2px;
3212
+ font-size: 0.9rem;
3213
+ }
3214
+ .editor__content img {
3215
+ max-width: 100%;
3216
+ height: auto;
3217
+ border-radius: 2px;
3218
+ margin: 0.5rem 0;
3219
+ }
3220
+ .editor__content table {
3221
+ width: 100%;
3222
+ border-collapse: collapse;
3223
+ margin: 0.5rem 0;
3224
+ }
3225
+ .editor__content table th, .editor__content table td {
3226
+ border: 1px solid #dadce0;
3227
+ padding: 0.25rem;
3228
+ text-align: left;
3229
+ }
3230
+ .editor__content table th {
3231
+ background: #f1f3f4;
3232
+ }
3233
+ .editor__content a {
3234
+ color: #1a73e8;
3235
+ text-decoration: underline;
3236
+ }
3237
+ .editor__content a:hover {
3238
+ color: rgb(18.8928571429, 92, 188.1071428571);
3239
+ }
3240
+ .editor--readonly {
3241
+ pointer-events: none;
3242
+ background-color: #f8f9fa;
3243
+ border-style: dashed;
3244
+ }
3245
+ .editor--disabled {
3246
+ opacity: 0.6;
3247
+ pointer-events: none;
3248
+ }
3249
+
3250
+ /*# sourceMappingURL=main.css.map */