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,954 @@
1
+ // Mobile Utility Classes and Fixes
2
+ // This file contains mobile-specific utility classes and responsive fixes
3
+
4
+ // Mobile text utilities - Only hide theme labels on very small screens
5
+ @media (max-width: 480px) {
6
+ .theme-toggle .form-check-label {
7
+ display: none !important;
8
+ }
9
+
10
+ .theme-toggle {
11
+ padding: 0 6px !important;
12
+ height: 60px !important; // Match header height
13
+ justify-content: center !important;
14
+ min-height: 60px !important;
15
+
16
+ .form-check {
17
+ height: 100% !important;
18
+
19
+ .form-check-label {
20
+ font-size: 11px !important; // Slightly smaller for very small screens
21
+ font-weight: 500 !important;
22
+
23
+ i {
24
+ font-size: 14px !important; // Still reasonable for tiny screens
25
+ }
26
+ }
27
+
28
+ .form-check-input {
29
+ margin: 0 6px !important;
30
+ width: 38px !important; // Bigger than before but not huge for tiny screens
31
+ height: 22px !important; // Bigger than before but not huge for tiny screens
32
+ border-radius: 11px !important;
33
+ border-width: 2px !important;
34
+ }
35
+ }
36
+ }
37
+
38
+ // Very small screen adjustments
39
+ .d-none-xs {
40
+ display: none !important;
41
+ }
42
+
43
+ .fs-xs {
44
+ font-size: 10px !important;
45
+ }
46
+
47
+ .p-xs {
48
+ padding: 5px !important;
49
+ }
50
+
51
+ .m-xs {
52
+ margin: 5px !important;
53
+ }
54
+ }
55
+
56
+ // Mobile dropdown improvements
57
+ @media (max-width: 767px) {
58
+ .dropdown-menu {
59
+ // Ensure all dropdowns are mobile-friendly
60
+ &.show {
61
+ position: fixed !important;
62
+ top: 65px !important;
63
+ left: 5px !important;
64
+ right: 5px !important;
65
+ width: auto !important;
66
+ transform: none !important;
67
+ z-index: 1050;
68
+ max-height: calc(100vh - 85px);
69
+ overflow-y: auto;
70
+ }
71
+ }
72
+
73
+ // Mobile notification improvements
74
+ .notifications .dropdown-menu {
75
+ .scrollable {
76
+ max-height: 300px;
77
+ overflow-y: auto;
78
+ }
79
+ }
80
+ }
81
+
82
+ // Mobile header compact mode
83
+ @media (max-width: 991px) {
84
+ .header .nav-right > li > a {
85
+ padding: 0 6px !important;
86
+ }
87
+
88
+ .header .nav-left > li > a {
89
+ padding: 0 8px !important;
90
+ }
91
+ }
92
+
93
+ // Ultra-compact mode for very small screens
94
+ @media (max-width: 480px) {
95
+ .header .nav-right > li > a {
96
+ padding: 0 4px !important;
97
+ font-size: 14px !important;
98
+ }
99
+
100
+ .header .nav-left > li > a {
101
+ padding: 0 6px !important;
102
+ }
103
+
104
+ // Hide search on very small screens when not active
105
+ .search-box:not(.active) {
106
+ display: none !important;
107
+ }
108
+ }
109
+
110
+ // Mobile-specific spacing utilities
111
+ .mobile-compact {
112
+ @media (max-width: 767px) {
113
+ padding: 5px !important;
114
+ margin: 2px !important;
115
+ }
116
+ }
117
+
118
+ .mobile-hidden {
119
+ @media (max-width: 767px) {
120
+ display: none !important;
121
+ }
122
+ }
123
+
124
+ .mobile-only {
125
+ display: none !important;
126
+
127
+ @media (max-width: 767px) {
128
+ display: block !important;
129
+ }
130
+ }
131
+
132
+ // Prevent horizontal scroll on mobile
133
+ .mobile-no-scroll {
134
+ @media (max-width: 767px) {
135
+ overflow-x: hidden !important;
136
+ }
137
+ }
138
+
139
+ // COMPREHENSIVE Mobile Header Fixes
140
+ // Better layout, bigger icons, full-width search, and desktop fixes
141
+
142
+ // =============================================================================
143
+ // DESKTOP FIXES - Remove top spacing issue
144
+ // =============================================================================
145
+
146
+ @media screen and (min-width: 768px) {
147
+ .header {
148
+ margin-top: 0 !important;
149
+ top: 0 !important;
150
+ }
151
+
152
+ .page-container {
153
+ padding-top: 61px !important; // Standard header height + 1px border
154
+ }
155
+
156
+ .main-content {
157
+ margin-top: 0 !important;
158
+ padding-top: 20px !important;
159
+ }
160
+
161
+ // DESKTOP THEME TOGGLE - Make sure it's fully visible
162
+ .theme-toggle {
163
+ display: flex !important;
164
+ align-items: center !important;
165
+ height: 65px !important;
166
+ padding: 0 15px !important;
167
+
168
+ .form-check {
169
+ margin: 0 !important;
170
+ display: flex !important;
171
+ align-items: center !important;
172
+
173
+ .form-check-label {
174
+ color: var(--c-text-muted) !important;
175
+ font-size: 11px !important;
176
+ font-weight: 500 !important;
177
+ text-transform: uppercase !important;
178
+ letter-spacing: 0.5px !important;
179
+ display: inline !important;
180
+
181
+ i {
182
+ font-size: 12px !important;
183
+ }
184
+ }
185
+
186
+ .form-check-input {
187
+ width: 2.5rem !important;
188
+ height: 1.25rem !important;
189
+ background-color: var(--c-border) !important;
190
+ border: 1px solid var(--c-border) !important;
191
+ cursor: pointer !important;
192
+ margin: 0 8px !important;
193
+
194
+ &:checked {
195
+ background-color: var(--c-primary) !important;
196
+ border-color: var(--c-primary) !important;
197
+ }
198
+
199
+ &:focus {
200
+ box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--c-primary) 25%, transparent) !important;
201
+ border-color: var(--c-primary) !important;
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+
208
+ // =============================================================================
209
+ // HEADER NAVIGATION MOBILE FIXES - ENHANCED LAYOUT
210
+ // =============================================================================
211
+
212
+ // Mobile header fixes with improved spacing and layout
213
+ @media screen and (max-width: 767px) {
214
+
215
+ // Force header to be fixed and proper height
216
+ .header {
217
+ position: fixed !important;
218
+ top: 0 !important;
219
+ left: 0 !important;
220
+ right: 0 !important;
221
+ z-index: 1000 !important;
222
+ width: 100% !important;
223
+ height: auto !important;
224
+ min-height: 60px !important;
225
+ padding: 0 !important;
226
+ margin: 0 !important;
227
+ margin-top: 0 !important; // Ensure no top margin on mobile
228
+ }
229
+
230
+ // Header container - IMPROVED EDGE-TO-EDGE LAYOUT
231
+ .header .header-container {
232
+ display: flex !important;
233
+ align-items: center !important;
234
+ justify-content: space-between !important;
235
+ flex-wrap: nowrap !important;
236
+ padding: 8px 8px !important; // Reduced side padding for more space
237
+ height: auto !important;
238
+ min-height: 60px !important;
239
+ max-height: 60px !important;
240
+ overflow: visible !important;
241
+ gap: 12px !important; // Larger gap to push items apart
242
+ }
243
+
244
+ // LEFT SECTION: Logo + Hamburger + Search - PUSHED MORE LEFT
245
+ .header .nav-left {
246
+ display: flex !important;
247
+ align-items: center !important;
248
+ flex: 1 1 auto !important;
249
+ margin: 0 !important;
250
+ padding: 0 !important;
251
+ float: none !important;
252
+ max-width: 65% !important; // Increased width
253
+ gap: 4px !important; // Tighter spacing between left items
254
+ justify-content: flex-start !important; // Push to left edge
255
+
256
+ // Logo first - positioned at far left
257
+ &::before {
258
+ content: "A" !important;
259
+ display: inline-flex !important;
260
+ align-items: center !important;
261
+ justify-content: center !important;
262
+ width: 32px !important;
263
+ height: 32px !important;
264
+ background: #007bff !important;
265
+ color: white !important;
266
+ border-radius: 6px !important;
267
+ font-weight: bold !important;
268
+ font-size: 18px !important;
269
+ flex-shrink: 0 !important;
270
+ order: -1 !important;
271
+ margin-right: 6px !important; // Small margin to separate from hamburger
272
+ }
273
+
274
+ > li {
275
+ display: inline-flex !important;
276
+ align-items: center !important;
277
+ margin: 0 !important;
278
+ float: none !important;
279
+
280
+ > a {
281
+ padding: 8px 6px !important; // Reduced padding for tighter spacing
282
+ margin: 0 !important;
283
+ min-height: auto !important;
284
+ line-height: 1 !important;
285
+ display: flex !important;
286
+ align-items: center !important;
287
+ border-radius: 4px !important;
288
+
289
+ i {
290
+ font-size: 20px !important;
291
+ margin: 0 !important;
292
+ }
293
+
294
+ // Hover state for better UX
295
+ &:hover {
296
+ background: rgba(0, 0, 0, 0.05) !important;
297
+ }
298
+ }
299
+
300
+ // Sidebar toggle (hamburger)
301
+ &:first-child > a {
302
+ padding: 8px 6px !important;
303
+
304
+ i {
305
+ font-size: 22px !important;
306
+ }
307
+ }
308
+
309
+ // Search toggle
310
+ &.search-box > a {
311
+ padding: 8px 6px !important;
312
+
313
+ i {
314
+ font-size: 20px !important;
315
+ }
316
+ }
317
+ }
318
+
319
+ // FULL-WIDTH SEARCH BAR - CLEANER DESIGN
320
+ .search-input {
321
+ display: none !important; // Hidden by default
322
+ position: fixed !important; // Fixed positioning for full control
323
+ top: 60px !important; // Right below header
324
+ left: 0 !important;
325
+ right: 0 !important;
326
+ background: var(--c-bkg-card) !important;
327
+ border-bottom: 1px solid var(--c-border) !important;
328
+ padding: 15px 20px !important; // More padding for better appearance
329
+ z-index: 9999 !important;
330
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important; // Subtle shadow
331
+
332
+ &.active {
333
+ display: block !important;
334
+ }
335
+
336
+ input {
337
+ width: 100% !important;
338
+ padding: 12px 16px !important; // Better padding
339
+ font-size: 16px !important;
340
+ border: 1px solid var(--c-border) !important;
341
+ border-radius: 8px !important; // Rounded corners
342
+ background: var(--c-bkg-body) !important;
343
+ color: var(--c-text-base) !important;
344
+ margin: 0 !important;
345
+ outline: none !important;
346
+
347
+ &::placeholder {
348
+ color: var(--c-text-muted) !important;
349
+ }
350
+
351
+ &:focus {
352
+ outline: none !important;
353
+ border-color: var(--c-primary) !important;
354
+ box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25) !important;
355
+ }
356
+ }
357
+ }
358
+ }
359
+
360
+ // RIGHT SECTION: Notifications + Messages + Theme Toggle + Profile - PERFECT ALIGNMENT
361
+ .header .nav-right {
362
+ display: flex !important;
363
+ align-items: center !important;
364
+ flex: 0 0 auto !important;
365
+ margin: 0 !important;
366
+ padding: 0 !important;
367
+ float: none !important;
368
+ flex-wrap: nowrap !important;
369
+ gap: 4px !important; // Consistent spacing
370
+ justify-content: flex-end !important; // Push to right edge
371
+ height: 60px !important; // Match header height exactly
372
+
373
+ > li {
374
+ display: flex !important;
375
+ align-items: center !important;
376
+ justify-content: center !important;
377
+ margin: 0 !important;
378
+ padding: 0 !important;
379
+ float: none !important;
380
+ flex: 0 0 auto !important;
381
+ position: relative !important;
382
+ height: 60px !important; // Force exact height for all items
383
+ min-height: 60px !important; // Ensure minimum height
384
+
385
+ > a {
386
+ padding: 0 !important; // NO padding for perfect alignment
387
+ margin: 0 !important;
388
+ width: 44px !important; // Fixed width for all nav items
389
+ height: 44px !important; // Fixed height for all nav items
390
+ line-height: 1 !important;
391
+ display: flex !important;
392
+ align-items: center !important; // Perfect vertical centering
393
+ justify-content: center !important; // Perfect horizontal centering
394
+ position: relative !important;
395
+ border-radius: 50% !important; // Circular touch targets
396
+ background: transparent !important;
397
+ transition: all 0.2s ease !important; // Smooth transitions
398
+
399
+ i {
400
+ font-size: 20px !important; // Consistent icon size for all nav items
401
+ margin: 0 !important;
402
+ display: block !important;
403
+ line-height: 1 !important;
404
+ text-align: center !important;
405
+ }
406
+
407
+ // Hide text content, keep only icons
408
+ span:not(.counter) {
409
+ display: none !important;
410
+ }
411
+
412
+ // Hide user avatar text
413
+ .peer:last-child {
414
+ display: none !important;
415
+ }
416
+
417
+ // Hover state - subtle and theme-consistent
418
+ &:hover {
419
+ background: var(--c-grey-100) !important;
420
+ transform: scale(1.05) !important;
421
+ transition: all 0.2s ease !important;
422
+ }
423
+ }
424
+
425
+ // User dropdown - special styling for avatar
426
+ &:last-child > a {
427
+ .peer {
428
+ &:first-child {
429
+ margin-right: 0 !important;
430
+ display: flex !important;
431
+ align-items: center !important;
432
+ justify-content: center !important;
433
+ }
434
+
435
+ img {
436
+ width: 36px !important;
437
+ height: 36px !important;
438
+ max-width: 36px !important;
439
+ max-height: 36px !important;
440
+ border-radius: 50% !important;
441
+ object-fit: cover !important;
442
+ }
443
+ }
444
+ }
445
+ }
446
+
447
+ // NOTIFICATION COUNTERS - CORRECTLY ANCHORED
448
+ > li {
449
+ position: relative !important; // This is the anchor
450
+
451
+ .counter {
452
+ position: absolute !important;
453
+ top: 10px !important;
454
+ right: 10px !important;
455
+ z-index: 10 !important;
456
+
457
+ // The design of the counter itself is inherited
458
+ }
459
+ }
460
+
461
+ // Theme toggle - perfectly aligned with other nav icons
462
+ .theme-toggle {
463
+ padding: 0 !important;
464
+ display: flex !important;
465
+ align-items: center !important;
466
+ justify-content: center !important;
467
+ height: 60px !important; // Match header height exactly
468
+ min-height: 60px !important; // Force exact height
469
+ width: 44px !important; // Same width as other nav items
470
+
471
+ .form-check {
472
+ margin: 0 !important;
473
+ padding: 0 !important;
474
+ align-items: center !important;
475
+ justify-content: center !important;
476
+ display: flex !important;
477
+ height: 44px !important; // Same height as other nav items
478
+ width: 44px !important; // Same width as other nav items
479
+ border-radius: 50% !important; // Match other nav items
480
+ position: relative !important;
481
+
482
+ .form-check-label {
483
+ display: none !important; // Hide labels on mobile for consistency
484
+ }
485
+
486
+ .form-check-input {
487
+ width: 28px !important; // Smaller switch to fit in circular area
488
+ height: 16px !important; // Smaller switch to fit in circular area
489
+ margin: 0 !important; // No margin for perfect centering
490
+ flex-shrink: 0 !important;
491
+ border-radius: 8px !important; // Proportional border radius
492
+ border-width: 1px !important; // Standard border
493
+ position: absolute !important;
494
+ top: 50% !important;
495
+ left: 50% !important;
496
+ transform: translate(-50%, -50%) !important; // Perfect centering
497
+ }
498
+
499
+ // Hover state to match other nav items
500
+ &:hover {
501
+ background: var(--c-grey-100) !important;
502
+ transform: scale(1.05) !important;
503
+ transition: all 0.2s ease !important;
504
+ }
505
+ }
506
+ }
507
+ }
508
+
509
+ // Full-screen mobile dropdowns
510
+ .header .nav-right .dropdown-menu {
511
+ position: fixed !important;
512
+ top: 60px !important;
513
+ left: 0 !important;
514
+ right: 0 !important;
515
+ bottom: 0 !important;
516
+ width: 100vw !important;
517
+ height: calc(100vh - 60px) !important;
518
+ max-width: none !important;
519
+ min-width: auto !important;
520
+ transform: none !important;
521
+ border-radius: 0 !important;
522
+ z-index: 9999 !important;
523
+ overflow-y: auto !important;
524
+ border: none !important;
525
+ margin: 0 !important;
526
+ padding: 0 !important;
527
+
528
+ // Mobile close button
529
+ &::before {
530
+ content: "✕ Close" !important;
531
+ position: sticky !important;
532
+ top: 0 !important;
533
+ display: block !important;
534
+ background: var(--c-primary) !important;
535
+ color: white !important;
536
+ text-align: center !important;
537
+ padding: 15px !important;
538
+ cursor: pointer !important;
539
+ font-weight: bold !important;
540
+ z-index: 10000 !important;
541
+ font-size: 16px !important;
542
+ }
543
+
544
+ // UNIFIED EMAIL/NOTIFICATION MOBILE LAYOUT
545
+ .peers {
546
+ padding: 15px 20px !important;
547
+ flex-wrap: wrap !important;
548
+ align-items: flex-start !important;
549
+
550
+ .peer {
551
+ max-width: 100% !important;
552
+
553
+ img {
554
+ width: 40px !important;
555
+ height: 40px !important;
556
+ margin-right: 12px !important;
557
+ flex-shrink: 0 !important;
558
+ }
559
+
560
+ &.peer-greed {
561
+ flex: 1 !important;
562
+ min-width: 0 !important;
563
+
564
+ // NOTIFICATIONS STYLE - Direct content (span > fw-500 + c-grey-600, then p > small)
565
+ > span {
566
+ display: block !important;
567
+ margin-bottom: 4px !important;
568
+
569
+ .fw-500 {
570
+ font-size: 14px !important;
571
+ font-weight: 600 !important;
572
+ margin: 0 !important;
573
+ color: var(--c-text-base) !important;
574
+ display: inline !important;
575
+ }
576
+
577
+ .c-grey-600 {
578
+ font-size: 13px !important;
579
+ color: var(--c-text-muted) !important;
580
+ line-height: 1.4 !important;
581
+ display: inline !important;
582
+ }
583
+ }
584
+
585
+ > p {
586
+ margin: 0 !important;
587
+
588
+ small {
589
+ font-size: 12px !important;
590
+ color: var(--c-text-muted) !important;
591
+ }
592
+ }
593
+
594
+ // EMAILS STYLE - Match notifications exactly
595
+ > div {
596
+ // Completely restructure emails to match notification layout
597
+ display: block !important;
598
+
599
+ .peers {
600
+ display: inline !important; // Make name and action on same line
601
+ margin: 0 !important;
602
+
603
+ .peer {
604
+ &:first-child {
605
+ // Name section
606
+ p {
607
+ font-size: 14px !important;
608
+ font-weight: 600 !important;
609
+ margin: 0 !important;
610
+ color: var(--c-text-base) !important;
611
+ display: inline !important;
612
+ }
613
+
614
+ // Add action text after name
615
+ &::after {
616
+ content: " sent you a message" !important;
617
+ font-size: 13px !important;
618
+ color: var(--c-text-muted) !important;
619
+ font-weight: normal !important;
620
+ }
621
+ }
622
+
623
+ &:last-child {
624
+ // Move timestamp to its own line below (like notifications)
625
+ display: block !important;
626
+ margin-top: 2px !important;
627
+
628
+ small {
629
+ font-size: 12px !important;
630
+ color: var(--c-text-muted) !important;
631
+ display: block !important;
632
+ }
633
+ }
634
+ }
635
+ }
636
+
637
+ // Hide the email preview text completely to match notifications
638
+ > .c-grey-600,
639
+ .c-grey-600.fsz-sm {
640
+ display: none !important;
641
+ }
642
+ }
643
+ }
644
+ }
645
+ }
646
+
647
+ // Header items in dropdown
648
+ .pX-20 {
649
+ padding-left: 20px !important;
650
+ padding-right: 20px !important;
651
+
652
+ .fw-600 {
653
+ font-size: 16px !important;
654
+ font-weight: 600 !important;
655
+ }
656
+ }
657
+
658
+ // Footer links in dropdown
659
+ .ta-c {
660
+ padding: 15px 20px !important;
661
+
662
+ a {
663
+ font-size: 14px !important;
664
+ font-weight: 500 !important;
665
+ }
666
+ }
667
+ }
668
+ }
669
+
670
+ // Extra small screens - refined adjustments
671
+ @media screen and (max-width: 479px) {
672
+ .header .header-container {
673
+ padding: 8px 5px !important; // Even less padding for tiny screens
674
+ gap: 8px !important;
675
+ }
676
+
677
+ .header .nav-left {
678
+ max-width: 60% !important;
679
+ gap: 2px !important; // Even tighter spacing
680
+
681
+ &::before {
682
+ width: 28px !important;
683
+ height: 28px !important;
684
+ font-size: 16px !important;
685
+ margin-right: 4px !important;
686
+ }
687
+
688
+ > li > a {
689
+ padding: 8px 4px !important;
690
+
691
+ i {
692
+ font-size: 18px !important;
693
+ }
694
+ }
695
+ }
696
+
697
+ .header .nav-right {
698
+ gap: 1px !important; // Minimal spacing
699
+
700
+ > li > a {
701
+ padding: 8px 4px !important;
702
+
703
+ i {
704
+ font-size: 18px !important; // Slightly smaller for tiny screens
705
+ }
706
+ }
707
+
708
+ .theme-toggle .form-check-input {
709
+ width: 28px !important;
710
+ height: 16px !important;
711
+ }
712
+ }
713
+
714
+ // Full-width search bar on tiny screens
715
+ .header .nav-left .search-input {
716
+ padding: 12px 15px !important;
717
+
718
+ input {
719
+ padding: 10px 12px !important;
720
+ font-size: 16px !important; // Prevent zoom on iOS
721
+ }
722
+ }
723
+ }
724
+
725
+ // =============================================================================
726
+ // FOOTER OVERLAP FIXES - MAINTAINING PREVIOUS FIXES
727
+ // =============================================================================
728
+
729
+ // Global layout fixes
730
+ html, body {
731
+ height: 100% !important;
732
+ margin: 0 !important;
733
+ padding: 0 !important;
734
+ overflow-x: hidden !important;
735
+ }
736
+
737
+ // Page container - force flexbox layout
738
+ .page-container {
739
+ display: flex !important;
740
+ flex-direction: column !important;
741
+ min-height: 100vh !important;
742
+ margin: 0 !important;
743
+ padding-top: 60px !important;
744
+ }
745
+
746
+ // Main content - flexible
747
+ .main-content {
748
+ flex: 1 0 auto !important;
749
+ padding: 20px 10px 40px !important;
750
+ margin: 0 !important;
751
+ min-height: 0 !important;
752
+ overflow-x: hidden !important;
753
+ }
754
+
755
+ // Footer - fixed to bottom
756
+ footer {
757
+ flex: 0 0 auto !important;
758
+ margin-top: auto !important;
759
+ padding: 15px 10px !important;
760
+ background: var(--c-bkg-card) !important;
761
+ border-top: 1px solid var(--c-border) !important;
762
+ text-align: center !important;
763
+ font-size: 11px !important;
764
+ line-height: 1.3 !important;
765
+ z-index: 10 !important;
766
+ position: relative !important;
767
+ width: 100% !important;
768
+ clear: both !important;
769
+
770
+ // CRITICAL: Override lh-0 class that causes overlap
771
+ &.lh-0 {
772
+ line-height: 1.3 !important; // Force proper line height
773
+ }
774
+ }
775
+
776
+ @media screen and (max-width: 767px) {
777
+ .page-container {
778
+ padding-left: 0 !important;
779
+ min-height: 100vh !important; // Ensure full height
780
+ position: relative !important; // Ensure positioning context
781
+ }
782
+
783
+ .main-content {
784
+ padding: 15px 8px 60px !important; // Increased bottom padding for footer space
785
+ margin-bottom: 0 !important;
786
+ width: 100% !important;
787
+ box-sizing: border-box !important;
788
+ }
789
+
790
+ footer {
791
+ position: relative !important; // Ensure footer stays in flow
792
+ width: 100% !important;
793
+ padding: 15px 10px !important; // Increased padding for better spacing
794
+ font-size: 11px !important; // Slightly larger for readability
795
+ line-height: 1.4 !important; // Better line height for mobile
796
+ background: var(--c-bkg-card) !important;
797
+ border-top: 1px solid var(--c-border) !important;
798
+ margin-top: auto !important;
799
+ box-sizing: border-box !important;
800
+
801
+ // CRITICAL MOBILE FIXES: Override all conflicting utility classes
802
+ &.lh-0 {
803
+ line-height: 1.4 !important; // Override line-height: 0 that causes overlap
804
+ }
805
+
806
+ &.p-30 {
807
+ padding: 15px 10px !important; // Override desktop padding
808
+ }
809
+
810
+ &.fsz-sm {
811
+ font-size: 11px !important; // Ensure readable font size on mobile
812
+ }
813
+
814
+ span {
815
+ display: block !important; // Force block for better wrapping
816
+ word-wrap: break-word !important;
817
+ max-width: 100% !important;
818
+ text-align: center !important;
819
+ line-height: 1.4 !important;
820
+
821
+ // Handle long text better
822
+ hyphens: auto !important;
823
+ word-break: break-word !important;
824
+
825
+ a {
826
+ color: var(--c-primary) !important;
827
+ text-decoration: none !important;
828
+ display: inline !important; // Keep link inline within text
829
+
830
+ &:hover {
831
+ text-decoration: underline !important;
832
+ }
833
+ }
834
+ }
835
+ }
836
+ }
837
+
838
+ @media screen and (max-width: 479px) {
839
+ .main-content {
840
+ padding: 10px 8px 50px !important; // Adequate bottom space for footer
841
+ }
842
+
843
+ footer {
844
+ padding: 12px 8px !important;
845
+ font-size: 10px !important;
846
+ line-height: 1.5 !important; // Better readability on small screens
847
+
848
+ // Override utility classes for small screens
849
+ &.lh-0 {
850
+ line-height: 1.5 !important; // Override line-height: 0
851
+ }
852
+
853
+ &.p-30 {
854
+ padding: 12px 8px !important; // Override desktop padding
855
+ }
856
+
857
+ &.fsz-sm {
858
+ font-size: 10px !important; // Ensure readable font size
859
+ }
860
+
861
+ span {
862
+ display: block !important;
863
+ margin: 0 !important; // Remove extra margins
864
+ padding: 0 !important;
865
+ text-align: center !important;
866
+
867
+ // Split long copyright text into multiple lines if needed
868
+ word-spacing: normal !important;
869
+ letter-spacing: normal !important;
870
+
871
+ // Ensure links are readable
872
+ a {
873
+ display: inline !important;
874
+ white-space: nowrap !important; // Keep "Colorlib" as one word
875
+ }
876
+ }
877
+ }
878
+ }
879
+
880
+ // Additional mobile footer fixes
881
+ @media screen and (max-width: 360px) {
882
+ footer {
883
+ font-size: 9px !important;
884
+ padding: 10px 5px !important;
885
+
886
+ // Override utility classes for extra small screens
887
+ &.lh-0 {
888
+ line-height: 1.6 !important; // Even better line height for tiny screens
889
+ }
890
+
891
+ &.p-30 {
892
+ padding: 10px 5px !important; // Override desktop padding
893
+ }
894
+
895
+ &.fsz-sm {
896
+ font-size: 9px !important; // Readable font size for tiny screens
897
+ }
898
+
899
+ span {
900
+ line-height: 1.6 !important; // Ensure good readability
901
+
902
+ // For very small screens, ensure text doesn't overlap
903
+ word-break: break-word !important;
904
+ overflow-wrap: break-word !important;
905
+
906
+ // Ensure links are readable
907
+ a {
908
+ font-weight: bold !important;
909
+ color: var(--c-primary) !important;
910
+ }
911
+ }
912
+ }
913
+ }
914
+
915
+ // =============================================================================
916
+ // UTILITY CLASSES FOR MOBILE
917
+ // =============================================================================
918
+
919
+ // Prevent body scroll when mobile menus are open
920
+ body.mobile-menu-open {
921
+ overflow: hidden !important;
922
+ position: fixed !important;
923
+ width: 100% !important;
924
+ }
925
+
926
+ // Emergency fixes for any remaining issues
927
+ @media screen and (max-width: 767px) {
928
+ // Ensure dropdowns don't break layout
929
+ .dropdown-menu.show {
930
+ position: fixed !important;
931
+ }
932
+
933
+ // Prevent content overflow
934
+ .row {
935
+ margin-left: 0 !important;
936
+ margin-right: 0 !important;
937
+ }
938
+
939
+ [class*="col-"] {
940
+ padding-left: 5px !important;
941
+ padding-right: 5px !important;
942
+ }
943
+
944
+ // Hide on mobile utility
945
+ .d-none-mobile {
946
+ display: none !important;
947
+ }
948
+
949
+ // Force no horizontal scroll
950
+ * {
951
+ max-width: 100% !important;
952
+ box-sizing: border-box !important;
953
+ }
954
+ }