adminator-admin-dashboard 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/CLAUDE.md +162 -0
  2. package/LICENSE +21 -0
  3. package/README.md +376 -0
  4. package/RELEASE_NOTES.md +92 -0
  5. package/dist/1e59d2330b4c6deb84b3.ttf +0 -0
  6. package/dist/20fd1704ea223900efa9.woff2 +0 -0
  7. package/dist/29b39089170885ae2967.woff +0 -0
  8. package/dist/404.html +24 -0
  9. package/dist/500.html +24 -0
  10. package/dist/55b07f26c86c8e3d3754.svg +1 -0
  11. package/dist/8b43027f47b20503057d.eot +0 -0
  12. package/dist/9bad94440d49256265a5.eot +0 -0
  13. package/dist/9fad440d8ee7a949a9a9.svg +1 -0
  14. package/dist/assets/c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg +2671 -0
  15. package/dist/assets/f0fc8c798eac5636249c4ea287832422.svg +362 -0
  16. package/dist/assets/static/fonts/icons/fontawesome/FontAwesome.otf +0 -0
  17. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.eot +0 -0
  18. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.svg +2671 -0
  19. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.ttf +0 -0
  20. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff +0 -0
  21. package/dist/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff2 +0 -0
  22. package/dist/assets/static/fonts/icons/themify/themify.eot +0 -0
  23. package/dist/assets/static/fonts/icons/themify/themify.svg +362 -0
  24. package/dist/assets/static/fonts/icons/themify/themify.ttf +0 -0
  25. package/dist/assets/static/fonts/icons/themify/themify.woff +0 -0
  26. package/dist/assets/static/images/404.png +0 -0
  27. package/dist/assets/static/images/500.png +0 -0
  28. package/dist/assets/static/images/bg.jpg +0 -0
  29. package/dist/assets/static/images/datatables/sort_asc.png +0 -0
  30. package/dist/assets/static/images/datatables/sort_asc_disabled.png +0 -0
  31. package/dist/assets/static/images/datatables/sort_both.png +0 -0
  32. package/dist/assets/static/images/datatables/sort_desc.png +0 -0
  33. package/dist/assets/static/images/datatables/sort_desc_disabled.png +0 -0
  34. package/dist/assets/static/images/logo-circle.svg +7 -0
  35. package/dist/assets/static/images/logo-gradient.svg +13 -0
  36. package/dist/assets/static/images/logo-outline.svg +7 -0
  37. package/dist/assets/static/images/logo.png +0 -0
  38. package/dist/assets/static/images/logo.svg +5 -0
  39. package/dist/basic-table.html +715 -0
  40. package/dist/blank.html +522 -0
  41. package/dist/buttons.html +467 -0
  42. package/dist/calendar.html +692 -0
  43. package/dist/charts.html +681 -0
  44. package/dist/chat.html +730 -0
  45. package/dist/compose.html +643 -0
  46. package/dist/datatable.html +1009 -0
  47. package/dist/eda8b94308c6f538f04a.ttf +0 -0
  48. package/dist/email.html +992 -0
  49. package/dist/f691f37e57f04c152e23.woff +0 -0
  50. package/dist/forms.html +760 -0
  51. package/dist/google-maps.html +530 -0
  52. package/dist/index.html +1090 -0
  53. package/dist/main.js +61239 -0
  54. package/dist/main.js.map +1 -0
  55. package/dist/signin.html +107 -0
  56. package/dist/signup.html +104 -0
  57. package/dist/test.html +91 -0
  58. package/dist/ui.html +931 -0
  59. package/dist/vector-maps.html +529 -0
  60. package/package.json +112 -0
  61. package/src/404.html +24 -0
  62. package/src/500.html +24 -0
  63. package/src/assets/scripts/app.js +644 -0
  64. package/src/assets/scripts/charts/chartJS/index.js +148 -0
  65. package/src/assets/scripts/charts/easyPieChart/index.js +200 -0
  66. package/src/assets/scripts/charts/index.js +3 -0
  67. package/src/assets/scripts/charts/sparkline/index.js +208 -0
  68. package/src/assets/scripts/chat/index.js +11 -0
  69. package/src/assets/scripts/components/Chart.js +1390 -0
  70. package/src/assets/scripts/components/Sidebar.js +241 -0
  71. package/src/assets/scripts/constants/colors.js +274 -0
  72. package/src/assets/scripts/datatable/index.js +379 -0
  73. package/src/assets/scripts/datepicker/index.js +302 -0
  74. package/src/assets/scripts/email/index.js +25 -0
  75. package/src/assets/scripts/fullcalendar/index.js +86 -0
  76. package/src/assets/scripts/googleMaps/index.js +93 -0
  77. package/src/assets/scripts/index.js +18 -0
  78. package/src/assets/scripts/masonry/index.js +14 -0
  79. package/src/assets/scripts/popover/index.js +109 -0
  80. package/src/assets/scripts/scrollbar/index.js +10 -0
  81. package/src/assets/scripts/search/index.js +15 -0
  82. package/src/assets/scripts/sidebar/index.js +140 -0
  83. package/src/assets/scripts/skycons/index.js +52 -0
  84. package/src/assets/scripts/ui/index.js +412 -0
  85. package/src/assets/scripts/utils/date.js +242 -0
  86. package/src/assets/scripts/utils/dom.js +349 -0
  87. package/src/assets/scripts/utils/index.js +45 -0
  88. package/src/assets/scripts/utils/theme.js +105 -0
  89. package/src/assets/scripts/vectorMaps/index.js +277 -0
  90. package/src/assets/static/fonts/icons/fontawesome/FontAwesome.otf +0 -0
  91. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.eot +0 -0
  92. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.svg +2671 -0
  93. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.ttf +0 -0
  94. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff +0 -0
  95. package/src/assets/static/fonts/icons/fontawesome/fontawesome-webfont.woff2 +0 -0
  96. package/src/assets/static/fonts/icons/themify/themify.eot +0 -0
  97. package/src/assets/static/fonts/icons/themify/themify.svg +362 -0
  98. package/src/assets/static/fonts/icons/themify/themify.ttf +0 -0
  99. package/src/assets/static/fonts/icons/themify/themify.woff +0 -0
  100. package/src/assets/static/images/404.png +0 -0
  101. package/src/assets/static/images/500.png +0 -0
  102. package/src/assets/static/images/bg.jpg +0 -0
  103. package/src/assets/static/images/datatables/sort_asc.png +0 -0
  104. package/src/assets/static/images/datatables/sort_asc_disabled.png +0 -0
  105. package/src/assets/static/images/datatables/sort_both.png +0 -0
  106. package/src/assets/static/images/datatables/sort_desc.png +0 -0
  107. package/src/assets/static/images/datatables/sort_desc_disabled.png +0 -0
  108. package/src/assets/static/images/logo-circle.svg +7 -0
  109. package/src/assets/static/images/logo-gradient.svg +13 -0
  110. package/src/assets/static/images/logo-outline.svg +7 -0
  111. package/src/assets/static/images/logo.png +0 -0
  112. package/src/assets/static/images/logo.svg +5 -0
  113. package/src/assets/styles/index.scss +801 -0
  114. package/src/assets/styles/spec/components/easyPieChart.scss +11 -0
  115. package/src/assets/styles/spec/components/footer.scss +4 -0
  116. package/src/assets/styles/spec/components/forms.scss +288 -0
  117. package/src/assets/styles/spec/components/index.scss +9 -0
  118. package/src/assets/styles/spec/components/loader.scss +46 -0
  119. package/src/assets/styles/spec/components/masonry.scss +1 -0
  120. package/src/assets/styles/spec/components/pageContainer.scss +255 -0
  121. package/src/assets/styles/spec/components/progressBar.scss +6 -0
  122. package/src/assets/styles/spec/components/sidebar.scss +642 -0
  123. package/src/assets/styles/spec/components/topbar.scss +455 -0
  124. package/src/assets/styles/spec/generic/base.scss +102 -0
  125. package/src/assets/styles/spec/generic/index.scss +1 -0
  126. package/src/assets/styles/spec/index.scss +4 -0
  127. package/src/assets/styles/spec/screens/chat.scss +147 -0
  128. package/src/assets/styles/spec/screens/email.scss +108 -0
  129. package/src/assets/styles/spec/screens/index.scss +2 -0
  130. package/src/assets/styles/spec/settings/baseColors.scss +103 -0
  131. package/src/assets/styles/spec/settings/borders.scss +6 -0
  132. package/src/assets/styles/spec/settings/breakpoints.scss +26 -0
  133. package/src/assets/styles/spec/settings/fonts.scss +4 -0
  134. package/src/assets/styles/spec/settings/index.scss +4 -0
  135. package/src/assets/styles/spec/settings/materialColors.scss +550 -0
  136. package/src/assets/styles/spec/tools/index.scss +1 -0
  137. package/src/assets/styles/spec/tools/mixins/clearfix.scss +15 -0
  138. package/src/assets/styles/spec/tools/mixins/index.scss +3 -0
  139. package/src/assets/styles/spec/tools/mixins/mediaQueriesRanges.scss +58 -0
  140. package/src/assets/styles/spec/tools/mixins/placeholder.scss +10 -0
  141. package/src/assets/styles/spec/utils/colors.scss +33 -0
  142. package/src/assets/styles/spec/utils/index.scss +2 -0
  143. package/src/assets/styles/spec/utils/layout/helpers/border.scss +78 -0
  144. package/src/assets/styles/spec/utils/layout/helpers/flex.scss +220 -0
  145. package/src/assets/styles/spec/utils/layout/helpers/index.scss +11 -0
  146. package/src/assets/styles/spec/utils/layout/helpers/layout.scss +137 -0
  147. package/src/assets/styles/spec/utils/layout/helpers/lists.scss +23 -0
  148. package/src/assets/styles/spec/utils/layout/helpers/margin.scss +266 -0
  149. package/src/assets/styles/spec/utils/layout/helpers/objects.scss +91 -0
  150. package/src/assets/styles/spec/utils/layout/helpers/padding.scss +147 -0
  151. package/src/assets/styles/spec/utils/layout/helpers/positions.scss +118 -0
  152. package/src/assets/styles/spec/utils/layout/helpers/pseudo.scss +6 -0
  153. package/src/assets/styles/spec/utils/layout/helpers/sizes.scss +157 -0
  154. package/src/assets/styles/spec/utils/layout/helpers/typography.scss +127 -0
  155. package/src/assets/styles/spec/utils/layout/index.scss +3 -0
  156. package/src/assets/styles/spec/utils/layout/mixins/generateResponsive.scss +25 -0
  157. package/src/assets/styles/spec/utils/layout/mixins/index.scss +2 -0
  158. package/src/assets/styles/spec/utils/layout/mixins/mediaQueryCondition.scss +28 -0
  159. package/src/assets/styles/spec/utils/layout/utils/center.scss +54 -0
  160. package/src/assets/styles/spec/utils/layout/utils/gap.scss +229 -0
  161. package/src/assets/styles/spec/utils/layout/utils/index.scss +5 -0
  162. package/src/assets/styles/spec/utils/layout/utils/layers.scss +5 -0
  163. package/src/assets/styles/spec/utils/layout/utils/peers.scss +35 -0
  164. package/src/assets/styles/utils/mobile.scss +954 -0
  165. package/src/assets/styles/utils/theme.css +97 -0
  166. package/src/assets/styles/vendor/datepicker.scss +183 -0
  167. package/src/assets/styles/vendor/font-awesome.css +2337 -0
  168. package/src/assets/styles/vendor/fullcalendar.scss +217 -0
  169. package/src/assets/styles/vendor/index.scss +8 -0
  170. package/src/assets/styles/vendor/jquery.datatables.scss +162 -0
  171. package/src/assets/styles/vendor/perfectScrollbar.scss +4 -0
  172. package/src/assets/styles/vendor/sparkline.scss +6 -0
  173. package/src/assets/styles/vendor/themify-icons.css +1081 -0
  174. package/src/basic-table.html +725 -0
  175. package/src/blank.html +532 -0
  176. package/src/buttons.html +477 -0
  177. package/src/calendar.html +702 -0
  178. package/src/charts.html +691 -0
  179. package/src/chat.html +740 -0
  180. package/src/compose.html +653 -0
  181. package/src/datatable.html +1019 -0
  182. package/src/email.html +1002 -0
  183. package/src/forms.html +770 -0
  184. package/src/google-maps.html +540 -0
  185. package/src/index.html +1100 -0
  186. package/src/signin.html +107 -0
  187. package/src/signup.html +104 -0
  188. package/src/test.html +96 -0
  189. package/src/ui.html +941 -0
  190. package/src/vector-maps.html +539 -0
  191. package/webpack.config.js +3 -0
@@ -0,0 +1,801 @@
1
+ @use 'spec/settings/index' as *;
2
+ @use 'spec/tools/index' as *;
3
+ @use "bootstrap/scss/bootstrap" as *;
4
+ @use 'spec/index' as *;
5
+ @use 'vendor/index' as *;
6
+ @import "utils/theme.css";
7
+ @import "utils/mobile.scss";
8
+
9
+ body {
10
+ background: var(--c-bkg-body);
11
+ color: var(--c-text-base);
12
+ }
13
+
14
+ .sidebar {
15
+ background: var(--c-bkg-sidebar);
16
+ }
17
+
18
+ .bgc-white {
19
+ background: var(--c-bkg-card) !important;
20
+ }
21
+
22
+ // Dark-mode aware Header & Dropdown --------------------------------
23
+ .header {
24
+ background: var(--c-bkg-card);
25
+ border-bottom: 1px solid var(--c-border);
26
+
27
+ .dropdown-menu {
28
+ background: var(--c-bkg-card);
29
+ border: 1px solid var(--c-border);
30
+ }
31
+
32
+ .nav-left > li > a,
33
+ .nav-right > li > a {
34
+ color: var(--c-text-base);
35
+
36
+ &:hover,
37
+ &:focus {
38
+ color: var(--c-primary);
39
+ }
40
+ }
41
+
42
+ .notifications .counter {
43
+ background: var(--c-danger);
44
+ color: #fff;
45
+ }
46
+
47
+ // Theme toggle switch styling
48
+ .theme-toggle {
49
+ display: flex;
50
+ align-items: center;
51
+ height: 65px; // Match header height
52
+ padding: 0 15px;
53
+
54
+ .form-check {
55
+ margin: 0;
56
+
57
+ .form-check-label {
58
+ color: var(--c-text-muted);
59
+ font-size: 11px;
60
+ font-weight: 500;
61
+ text-transform: uppercase;
62
+ letter-spacing: 0.5px;
63
+
64
+ i {
65
+ font-size: 12px;
66
+ }
67
+ }
68
+
69
+ .form-check-input {
70
+ width: 2.5rem;
71
+ height: 1.25rem;
72
+ background-color: var(--c-border);
73
+ border: 1px solid var(--c-border);
74
+ cursor: pointer;
75
+
76
+ &:checked {
77
+ background-color: var(--c-primary);
78
+ border-color: var(--c-primary);
79
+ }
80
+
81
+ &:focus {
82
+ box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--c-primary) 25%, transparent);
83
+ border-color: var(--c-primary);
84
+ }
85
+ }
86
+ }
87
+
88
+ // Mobile theme toggle adjustments
89
+ @media (max-width: 991px) {
90
+ padding: 0 6px;
91
+ height: 65px;
92
+
93
+ .form-check {
94
+ .form-check-label {
95
+ font-size: 10px;
96
+
97
+ &:first-child {
98
+ margin-right: 4px;
99
+ }
100
+
101
+ &:last-child {
102
+ margin-left: 4px;
103
+ }
104
+ }
105
+
106
+ .form-check-input {
107
+ width: 2rem;
108
+ height: 1rem;
109
+ }
110
+ }
111
+ }
112
+
113
+ // Very small mobile adjustments
114
+ @media (max-width: 480px) {
115
+ padding: 0 4px;
116
+
117
+ .form-check {
118
+ flex-direction: column;
119
+ align-items: center;
120
+ text-align: center;
121
+
122
+ .form-check-label {
123
+ font-size: 8px;
124
+ margin: 1px 0;
125
+ white-space: nowrap;
126
+
127
+ i {
128
+ margin: 0 2px;
129
+ }
130
+ }
131
+
132
+ .form-check-input {
133
+ width: 1.5rem;
134
+ height: 0.8rem;
135
+ margin: 2px 0;
136
+ }
137
+ }
138
+ }
139
+ }
140
+ }
141
+
142
+ // Mobile dropdown menu improvements
143
+ @media (max-width: 767px) {
144
+ .header {
145
+ .nav-right {
146
+ .dropdown-menu {
147
+ position: fixed !important;
148
+ top: 65px !important;
149
+ left: 5px !important;
150
+ right: 5px !important;
151
+ width: auto !important;
152
+ max-width: none !important;
153
+ min-width: auto !important;
154
+ transform: none !important;
155
+ z-index: 1050;
156
+ border-radius: 8px;
157
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
158
+ max-height: calc(100vh - 85px);
159
+ overflow-y: auto;
160
+ }
161
+
162
+ .notifications .dropdown-menu {
163
+ max-height: calc(100vh - 85px);
164
+ overflow-y: auto;
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ // Mobile search input overlay
171
+ @media (max-width: 480px) {
172
+ .header {
173
+ .search-input {
174
+ &.active {
175
+ position: absolute;
176
+ top: 65px;
177
+ left: 0;
178
+ right: 0;
179
+ background: var(--c-bkg-card);
180
+ border-top: 1px solid var(--c-border);
181
+ padding: 10px;
182
+ z-index: 999;
183
+
184
+ input {
185
+ margin-top: 0;
186
+ width: 100%;
187
+ padding: 10px;
188
+ border: 1px solid var(--c-border);
189
+ border-radius: 4px;
190
+ background: var(--c-bkg-card);
191
+ color: var(--c-text-base);
192
+
193
+ &::placeholder {
194
+ color: var(--c-text-muted);
195
+ }
196
+ }
197
+ }
198
+ }
199
+ }
200
+ }
201
+
202
+ // Tables -------------------------------------------------
203
+ .table {
204
+ background: var(--c-bkg-card);
205
+ color: var(--c-text-base);
206
+
207
+ thead th {
208
+ background: var(--c-bkg-card);
209
+ color: var(--c-text-base);
210
+ border-color: var(--c-border);
211
+ }
212
+
213
+ tbody {
214
+ td, th {
215
+ border-color: var(--c-border);
216
+ color: var(--c-text-base);
217
+ background: var(--c-bkg-card);
218
+ }
219
+
220
+ tr:nth-child(even) {
221
+ td, th {
222
+ background: color-mix(in srgb, var(--c-bkg-card) 95%, var(--c-border));
223
+ }
224
+ }
225
+ }
226
+
227
+ tfoot th {
228
+ background: var(--c-bkg-card);
229
+ color: var(--c-text-base);
230
+ border-color: var(--c-border);
231
+ }
232
+
233
+ // Bootstrap table variants
234
+ &.table-striped {
235
+ tbody tr:nth-child(odd) {
236
+ td, th {
237
+ background: var(--c-bkg-card);
238
+ }
239
+ }
240
+
241
+ tbody tr:nth-child(even) {
242
+ td, th {
243
+ background: color-mix(in srgb, var(--c-bkg-card) 95%, var(--c-border));
244
+ }
245
+ }
246
+ }
247
+
248
+ &.table-hover {
249
+ tbody tr:hover {
250
+ td, th {
251
+ background: color-mix(in srgb, var(--c-bkg-card) 90%, var(--c-border)) !important;
252
+ color: var(--c-text-base);
253
+ }
254
+ }
255
+ }
256
+
257
+ &.table-bordered {
258
+ border: 1px solid var(--c-border);
259
+
260
+ th, td {
261
+ border: 1px solid var(--c-border);
262
+ }
263
+ }
264
+
265
+ // Table head variants
266
+ .table-dark {
267
+ background: color-mix(in srgb, var(--c-bkg-card) 80%, #000);
268
+
269
+ th {
270
+ background: color-mix(in srgb, var(--c-bkg-card) 80%, #000);
271
+ color: var(--c-text-base);
272
+ border-color: var(--c-border);
273
+ }
274
+ }
275
+
276
+ .table-light {
277
+ background: var(--c-bkg-card);
278
+
279
+ th {
280
+ background: var(--c-bkg-card);
281
+ color: var(--c-text-base);
282
+ border-color: var(--c-border);
283
+ }
284
+ }
285
+ }
286
+
287
+ // Forms --------------------------------------------------
288
+ .form-control,
289
+ .form-select {
290
+ background: var(--c-bkg-card);
291
+ color: var(--c-text-base);
292
+ border: 1px solid var(--c-border);
293
+
294
+ &:focus {
295
+ border-color: var(--c-primary);
296
+ box-shadow: 0 0 0 0.1rem rgba(75, 124, 243, .25);
297
+ }
298
+ }
299
+
300
+ input::placeholder {
301
+ color: var(--c-text-muted);
302
+ }
303
+
304
+ // Cards --------------------------------------------------
305
+ .card,
306
+ .bgc-white.bd,
307
+ .bgc-white.bdT,
308
+ .bgc-white.bdB {
309
+ background: var(--c-bkg-card);
310
+ border-color: var(--c-border) !important;
311
+ color: var(--c-text-base);
312
+ }
313
+
314
+ // Alerts -------------------------------------------------
315
+ .alert {
316
+ color: var(--c-text-base);
317
+ border-color: var(--c-border);
318
+ background: color-mix(in srgb, var(--c-bkg-card) 85%, var(--c-border));
319
+
320
+ &.alert-primary {
321
+ background: color-mix(in srgb, var(--c-primary) 20%, var(--c-bkg-card));
322
+ border-color: var(--c-primary);
323
+ color: var(--c-primary);
324
+ }
325
+ }
326
+
327
+ // Modals -------------------------------------------------
328
+ .modal-content {
329
+ background: var(--c-bkg-card);
330
+ color: var(--c-text-base);
331
+ border: 1px solid var(--c-border);
332
+ }
333
+
334
+ // Logo colours ------------------------------------------
335
+ .logo img,
336
+ .logo-auth {
337
+ // Light mode: invert the "A" to make it white (if default is dark)
338
+ filter: invert(1) hue-rotate(180deg) brightness(1.2);
339
+ }
340
+
341
+ [data-theme="dark"] .logo img,
342
+ [data-theme="dark"] .logo-auth {
343
+ // Dark mode: keep original colors (dark "A" on blue background)
344
+ filter: brightness(1) contrast(1);
345
+ }
346
+
347
+ .logo-text {
348
+ color: var(--c-text-base);
349
+ }
350
+
351
+ // Ensure auth page logos are properly sized
352
+ .logo-auth {
353
+ max-width: 60px !important;
354
+ max-height: 60px !important;
355
+ width: auto;
356
+ height: auto;
357
+ }
358
+
359
+ // Generic border utility override -----------------------
360
+ .bd,
361
+ .bdT,
362
+ .bdB,
363
+ .bdL,
364
+ .bdR {
365
+ border-color: var(--c-border) !important;
366
+ }
367
+
368
+ // Sidebar logo border -----------------------------------
369
+ .sidebar-logo {
370
+ border-color: var(--c-border) !important;
371
+ }
372
+
373
+ // Grey-100 utility override -----------------------------
374
+ .bgc-grey-100 { background: color-mix(in srgb, var(--c-bkg-body) 90%, #000) !important; }
375
+
376
+ // Sales Report widget styling -------------------------------
377
+ .sales-report-header {
378
+ background-color: var(--c-primary) !important;
379
+ color: #ffffff !important;
380
+
381
+ h5, h3, p {
382
+ color: #ffffff !important;
383
+ }
384
+ }
385
+
386
+ // Hover background utilities for dark mode ----------------
387
+ [data-theme="dark"] .bgcH-grey-100:hover {
388
+ background: color-mix(in srgb, var(--c-bkg-card) 85%, var(--c-border)) !important;
389
+ }
390
+
391
+ // Sidebar right border ----------------------------------
392
+ .sidebar,
393
+ .sidebar-menu {
394
+ border-right: 1px solid var(--c-border);
395
+ }
396
+
397
+ // Dark mode text color overrides for better visibility -------
398
+ [data-theme="dark"] .c-grey-900 {
399
+ color: var(--c-text-base) !important;
400
+ }
401
+
402
+ [data-theme="dark"] .c-grey-800 {
403
+ color: var(--c-text-base) !important;
404
+ }
405
+
406
+ [data-theme="dark"] .c-grey-700 {
407
+ color: var(--c-text-muted) !important;
408
+ }
409
+
410
+ [data-theme="dark"] .c-grey-600 {
411
+ color: var(--c-text-muted) !important;
412
+ }
413
+
414
+ [data-theme="dark"] .text-dark {
415
+ color: var(--c-text-base) !important;
416
+ }
417
+
418
+ // Ensure all headings are theme-aware ----------------------
419
+ h1, h2, h3, h4, h5, h6 {
420
+ color: var(--c-text-base);
421
+ }
422
+
423
+ // Email & Compose dark mode fixes ---------------------------
424
+ .email-app {
425
+ .email-side-nav {
426
+ background: var(--c-bkg-card);
427
+ border-color: var(--c-border);
428
+ }
429
+
430
+ .email-list,
431
+ .email-content,
432
+ .email-wrapper {
433
+ background: var(--c-bkg-card) !important;
434
+ color: var(--c-text-base);
435
+ }
436
+
437
+ .email-list-item {
438
+ border-color: var(--c-border) !important;
439
+
440
+ &:hover {
441
+ background: color-mix(in srgb, var(--c-bkg-card) 85%, var(--c-border)) !important;
442
+ }
443
+ }
444
+ }
445
+
446
+ // Badge colors for dark mode ---------------------------------
447
+ [data-theme="dark"] .badge {
448
+ &.bgc-deep-purple-50 {
449
+ background: #8b5cf6 !important;
450
+ color: #fff !important;
451
+ }
452
+
453
+ &.c-deep-purple-700 {
454
+ color: #fff !important;
455
+ }
456
+
457
+ &.bgc-green-50 {
458
+ background: var(--c-success) !important;
459
+ color: #fff !important;
460
+ }
461
+
462
+ &.c-green-700 {
463
+ color: #fff !important;
464
+ }
465
+
466
+ &.bgc-blue-50 {
467
+ background: var(--c-primary) !important;
468
+ color: #fff !important;
469
+ }
470
+
471
+ &.c-blue-700 {
472
+ color: #fff !important;
473
+ }
474
+
475
+ &.bgc-amber-50 {
476
+ background: #f59e0b !important;
477
+ color: #000 !important;
478
+ }
479
+
480
+ &.c-amber-700 {
481
+ color: #000 !important;
482
+ }
483
+
484
+ &.bgc-red-50 {
485
+ background: var(--c-danger) !important;
486
+ color: #fff !important;
487
+ }
488
+
489
+ &.c-red-700 {
490
+ color: #fff !important;
491
+ }
492
+ }
493
+
494
+ // Email buttons in dark mode ---------------------------------
495
+ [data-theme="dark"] .email-app {
496
+ .btn.bgc-white {
497
+ background: var(--c-bkg-card) !important;
498
+ color: var(--c-text-base) !important;
499
+ border: 1px solid var(--c-border) !important;
500
+
501
+ &:hover {
502
+ background: color-mix(in srgb, var(--c-bkg-card) 85%, var(--c-border)) !important;
503
+ }
504
+ }
505
+ }
506
+
507
+ // Additional table styling for consistency ----------------
508
+ .table-responsive {
509
+ border: 1px solid var(--c-border);
510
+ border-radius: 3px;
511
+ }
512
+
513
+ // Table inside cards should blend seamlessly
514
+ .bgc-white .table {
515
+ background: var(--c-bkg-card);
516
+ border: none;
517
+
518
+ thead th {
519
+ border-top: none;
520
+ }
521
+ }
522
+
523
+ // Status badges in tables need proper theming
524
+ .table .badge {
525
+ &.bgc-red-50.c-red-700 {
526
+ background: var(--c-danger) !important;
527
+ color: #fff !important;
528
+ }
529
+
530
+ &.bgc-deep-purple-50.c-deep-purple-700 {
531
+ background: #8b5cf6 !important;
532
+ color: #fff !important;
533
+ }
534
+
535
+ &.bgc-pink-50.c-pink-700 {
536
+ background: #ec4899 !important;
537
+ color: #fff !important;
538
+ }
539
+ }
540
+
541
+ // Chat page specific dark mode fixes ----------------------
542
+ [data-theme="dark"] {
543
+ // Chat page loader
544
+ #loader {
545
+ background: var(--c-bkg-body) !important;
546
+ }
547
+
548
+ // Chat message bubbles - different styling for sent vs received
549
+ .ai-fs .pY-3.pX-10.bgc-white {
550
+ background: var(--c-bkg-card) !important;
551
+ border: 1px solid var(--c-border);
552
+ }
553
+
554
+ .ai-fe .pY-3.pX-10.bgc-white {
555
+ background: var(--c-primary) !important;
556
+ border: 1px solid var(--c-primary);
557
+ color: white !important;
558
+
559
+ small {
560
+ color: rgba(255, 255, 255, 0.8) !important;
561
+ }
562
+
563
+ span {
564
+ color: white !important;
565
+ }
566
+ }
567
+
568
+ // Chat status indicators (preserve their semantic colors)
569
+ .c-green-500 {
570
+ color: var(--c-success) !important;
571
+ }
572
+
573
+ .c-amber-500 {
574
+ color: #f59e0b !important;
575
+ }
576
+
577
+ .c-red-500 {
578
+ color: var(--c-danger) !important;
579
+ }
580
+
581
+ // Chat typing indicator
582
+ .lh-1 i {
583
+ color: var(--c-text-muted);
584
+ }
585
+
586
+ // Chat backgrounds
587
+ .bgc-grey-200 {
588
+ background: var(--c-bkg-body) !important;
589
+ }
590
+ }
591
+
592
+ // Todo List dark mode fixes ---------------------------------
593
+ [data-theme="dark"] {
594
+ .list-task {
595
+ background: var(--c-bkg-card);
596
+ border: 1px solid var(--c-border);
597
+
598
+ .list-group-item {
599
+ background: var(--c-bkg-card);
600
+ border-color: var(--c-border);
601
+ color: var(--c-text-base);
602
+
603
+ &:first-child {
604
+ border-top-color: var(--c-border);
605
+ }
606
+
607
+ &:last-child {
608
+ border-bottom-color: var(--c-border);
609
+ }
610
+
611
+ .form-label {
612
+ color: var(--c-text-base);
613
+ }
614
+
615
+ // Checkbox styling for dark mode
616
+ .checkbox {
617
+ input[type="checkbox"] {
618
+ &:checked + label::before {
619
+ background: var(--c-primary);
620
+ border-color: var(--c-primary);
621
+ }
622
+
623
+ &:focus + label::before {
624
+ border-color: var(--c-primary);
625
+ box-shadow: 0 0 0 0.2rem rgba(var(--c-primary-rgb), 0.25);
626
+ }
627
+ }
628
+
629
+ label::before {
630
+ background: var(--c-bkg-card);
631
+ border-color: var(--c-border);
632
+ }
633
+ }
634
+
635
+ // Todo badges
636
+ .badge {
637
+ &.bg-success {
638
+ background: var(--c-success) !important;
639
+ color: white !important;
640
+ }
641
+
642
+ &.bg-danger {
643
+ background: var(--c-danger) !important;
644
+ color: white !important;
645
+ }
646
+
647
+ &.bg-warning {
648
+ background: #f59e0b !important;
649
+ color: #000 !important;
650
+ }
651
+
652
+ &.bg-info {
653
+ background: var(--c-primary) !important;
654
+ color: white !important;
655
+ }
656
+ }
657
+ }
658
+ }
659
+ }
660
+
661
+ // Calendar page dark mode fixes -----------------------------
662
+ [data-theme="dark"] {
663
+ // Calendar event sidebar
664
+ .bgc-white.bd {
665
+ background: var(--c-bkg-card) !important;
666
+ border-color: var(--c-border) !important;
667
+
668
+ .bdB {
669
+ border-bottom-color: var(--c-border) !important;
670
+ }
671
+
672
+ // Calendar event items
673
+ .peers.ai-c.jc-sb.fxw-nw {
674
+ border-bottom-color: var(--c-border) !important;
675
+
676
+ .c-grey-900 {
677
+ color: var(--c-text-base) !important;
678
+ }
679
+
680
+ .c-grey-600 {
681
+ color: var(--c-text-muted) !important;
682
+ }
683
+
684
+ .c-grey-700 {
685
+ color: var(--c-text-muted) !important;
686
+ }
687
+
688
+ // Action buttons (edit, delete)
689
+ .c-deep-purple-500 {
690
+ &:hover.cH-blue-500 {
691
+ color: var(--c-primary) !important;
692
+ }
693
+ }
694
+
695
+ .c-red-500 {
696
+ &:hover.cH-blue-500 {
697
+ color: var(--c-danger) !important;
698
+ }
699
+ }
700
+ }
701
+
702
+ // Add event button
703
+ .btn-warning {
704
+ background: #f59e0b;
705
+ border-color: #f59e0b;
706
+ color: #000;
707
+
708
+ &:hover {
709
+ background: #d97706;
710
+ border-color: #d97706;
711
+ }
712
+ }
713
+ }
714
+
715
+ // Calendar modal
716
+ .modal-content {
717
+ background: var(--c-bkg-card);
718
+ border: 1px solid var(--c-border);
719
+ color: var(--c-text-base);
720
+
721
+ .modal-body {
722
+ .form-label {
723
+ color: var(--c-text-base);
724
+ }
725
+
726
+ .form-control {
727
+ background: var(--c-bkg-body);
728
+ border-color: var(--c-border);
729
+ color: var(--c-text-base);
730
+
731
+ &::placeholder {
732
+ color: var(--c-text-muted);
733
+ }
734
+
735
+ &:focus {
736
+ background: var(--c-bkg-body);
737
+ border-color: var(--c-primary);
738
+ box-shadow: 0 0 0 0.2rem rgba(var(--c-primary-rgb), 0.25);
739
+ }
740
+ }
741
+
742
+ .input-group-text {
743
+ background: var(--c-bkg-card) !important;
744
+ border-color: var(--c-border);
745
+ color: var(--c-text-base);
746
+
747
+ &.bgc-white {
748
+ background: var(--c-bkg-card) !important;
749
+ }
750
+ }
751
+
752
+ .btn-primary {
753
+ background: var(--c-primary);
754
+ border-color: var(--c-primary);
755
+
756
+ &:hover {
757
+ background: var(--c-primary-hover);
758
+ border-color: var(--c-primary-hover);
759
+ }
760
+ }
761
+ }
762
+ }
763
+
764
+ // Calendar grid improvements
765
+ .fc {
766
+ // Calendar day cells
767
+ .fc-day {
768
+ background: var(--c-bkg-card);
769
+
770
+ &:hover {
771
+ background: color-mix(in srgb, var(--c-bkg-card) 90%, var(--c-border));
772
+ }
773
+ }
774
+
775
+ // Calendar header
776
+ .fc-head {
777
+ background: var(--c-bkg-card);
778
+ }
779
+
780
+ // Weekend styling
781
+ .fc-sun,
782
+ .fc-sat {
783
+ background: color-mix(in srgb, var(--c-bkg-card) 95%, var(--c-border));
784
+ }
785
+
786
+ // Other days
787
+ .fc-other-month {
788
+ .fc-day-number {
789
+ color: var(--c-text-muted) !important;
790
+ }
791
+ }
792
+
793
+ // Event hover effects
794
+ .fc-event {
795
+ &:hover {
796
+ opacity: 0.9;
797
+ }
798
+ }
799
+ }
800
+ }
801
+