@actabldesign/bellhop-styles 0.0.3 → 0.0.4

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 (73) hide show
  1. package/README.md +3 -3
  2. package/dist/index.css +1505 -0
  3. package/llms.txt +206 -0
  4. package/package.json +27 -23
  5. package/project.json +29 -0
  6. package/rollup.config.js +29 -0
  7. package/{base → src/base}/normalize.css +4 -0
  8. package/src/index.css +22 -0
  9. package/src/tokens/bellhop-animations.css +392 -0
  10. package/src/tokens/bellhop-global.css +175 -0
  11. package/src/tokens/bellhop-icons.css +77 -0
  12. package/src/tokens/bellhop-layout.css +216 -0
  13. package/src/tokens/bellhop-primary-colors.css +96 -0
  14. package/src/tokens/bellhop-radius.css +14 -0
  15. package/src/tokens/bellhop-secondary-colors.css +154 -0
  16. package/src/tokens/bellhop-shadows.css +55 -0
  17. package/src/tokens/bellhop-spacing.css +66 -0
  18. package/src/tokens/bellhop-styles.css +174 -0
  19. package/src/tokens/bellhop-typography.css +112 -0
  20. package/src/tokens/colors.json +737 -0
  21. package/src/tokens/colors.mdx +59 -0
  22. package/src/tokens/index.css +17 -0
  23. package/components/appbar.css +0 -167
  24. package/components/autocomplete-menu.css +0 -142
  25. package/components/avatar-add.css +0 -112
  26. package/components/avatar.css +0 -253
  27. package/components/badge-dot.css +0 -78
  28. package/components/badge.css +0 -337
  29. package/components/bar-chart-card.css +0 -261
  30. package/components/bar-chart.css +0 -149
  31. package/components/breadcrumbs.css +0 -136
  32. package/components/button.css +0 -266
  33. package/components/chart-tooltip.css +0 -96
  34. package/components/checkbox-label.css +0 -53
  35. package/components/checkbox.css +0 -127
  36. package/components/container-footer.css +0 -22
  37. package/components/container.css +0 -17
  38. package/components/date-picker-content.css +0 -337
  39. package/components/date-picker.css +0 -103
  40. package/components/date-range-picker-content.css +0 -85
  41. package/components/date-range-picker.css +0 -72
  42. package/components/dropdown-menu.css +0 -204
  43. package/components/dropdown.css +0 -126
  44. package/components/empty-state.css +0 -83
  45. package/components/featured-icon.css +0 -194
  46. package/components/illustrations.css +0 -120
  47. package/components/input-autocomplete.css +0 -158
  48. package/components/input-number.css +0 -2
  49. package/components/input-verification.css +0 -137
  50. package/components/input.css +0 -374
  51. package/components/loader-spinner.css +0 -421
  52. package/components/logo-box.css +0 -85
  53. package/components/month-picker-content.css +0 -190
  54. package/components/month-picker.css +0 -83
  55. package/components/nav-item.css +0 -110
  56. package/components/notification.css +0 -262
  57. package/components/page-navigation.css +0 -294
  58. package/components/picker-menu.css +0 -43
  59. package/components/pie-chart-card.css +0 -213
  60. package/components/pie-chart.css +0 -80
  61. package/components/product-switcher.css +0 -127
  62. package/components/property-switcher.css +0 -95
  63. package/components/radio-button-label.css +0 -53
  64. package/components/radio-button.css +0 -134
  65. package/components/sidebar.css +0 -178
  66. package/components/skeleton-loader.css +0 -47
  67. package/components/tag.css +0 -214
  68. package/components/textarea.css +0 -211
  69. package/components/toggle.css +0 -298
  70. package/components/tooltip.css +0 -85
  71. package/components/trend-chart-card.css +0 -189
  72. package/components/trend-chart.css +0 -94
  73. package/index.css +0 -8115
package/dist/index.css ADDED
@@ -0,0 +1,1505 @@
1
+
2
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
3
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
4
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap');
5
+ @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200');
6
+ /* Bellhop Shared Styles - Design Tokens & Utilities */
7
+ /* Import Google Fonts */
8
+ /* Base normalization - import first */
9
+ /* Base normalization for consistent rendering across frameworks */
10
+ /* Ensure consistent font rendering */
11
+ * {
12
+ -webkit-font-smoothing: antialiased;
13
+ -moz-osx-font-smoothing: grayscale;
14
+ text-rendering: optimizeLegibility;
15
+ }
16
+ /* Set default font family with proper fallbacks */
17
+ body {
18
+ font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
19
+ }
20
+ /* Ensure consistent box sizing */
21
+ *,
22
+ *::before,
23
+ *::after {
24
+ box-sizing: border-box;
25
+ }
26
+ /* Remove default margins */
27
+ body,
28
+ h1,
29
+ h2,
30
+ h3,
31
+ h4,
32
+ h5,
33
+ h6,
34
+ p,
35
+ figure,
36
+ blockquote,
37
+ dl,
38
+ dd {
39
+ margin: 0;
40
+ }
41
+ /* Set core root defaults */
42
+ html {
43
+ font-size: 16px; /* Explicit base font size for consistent rem calculations */
44
+ }
45
+ html:focus-within {
46
+ scroll-behavior: smooth;
47
+ }
48
+ /* Set core body defaults */
49
+ body {
50
+ min-height: 100vh;
51
+ text-rendering: optimizeSpeed;
52
+ line-height: 1.5;
53
+ }
54
+ /* Make images easier to work with */
55
+ img,
56
+ picture,
57
+ video,
58
+ canvas,
59
+ svg {
60
+ display: block;
61
+ max-width: 100%;
62
+ }
63
+ /* Inherit fonts for inputs and buttons */
64
+ input,
65
+ button,
66
+ textarea,
67
+ select {
68
+ font: inherit;
69
+ }
70
+ /* Remove native browser focus outlines for form elements */
71
+ /* Components should provide their own focus styling */
72
+ input,
73
+ textarea,
74
+ button,
75
+ select {
76
+ outline: none;
77
+ box-shadow: none;
78
+ }
79
+ input:focus,
80
+ textarea:focus,
81
+ button:focus,
82
+ select:focus {
83
+ outline: none;
84
+ border: none;
85
+ box-shadow: none;
86
+ }
87
+ /* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
88
+ @media (prefers-reduced-motion: reduce) {
89
+ html:focus-within {
90
+ scroll-behavior: auto;
91
+ }
92
+
93
+ *,
94
+ *::before,
95
+ *::after {
96
+ animation-duration: 0.01ms !important;
97
+ animation-iteration-count: 1 !important;
98
+ transition-duration: 0.01ms !important;
99
+ scroll-behavior: auto !important;
100
+ }
101
+ }
102
+ /* Design Tokens - Foundation */
103
+ /* ==========================================================================
104
+ BELLHOP DESIGN TOKENS
105
+ Shared design system tokens for all frameworks
106
+ ========================================================================== */
107
+ /* Import all design token files */
108
+ :root {
109
+ /* Base */
110
+ --color-white: hsl(0, 0%, 100%);
111
+ --color-black: hsl(0, 0%, 0%);
112
+ --color-transparent: hsla(0, 0%, 100%, 0.0);
113
+
114
+ /* Neutral (from gray in colors.json) */
115
+ --color-neutral-25: hsl(240, 20%, 99%);
116
+ --color-neutral-50: hsl(240, 20%, 98%);
117
+ --color-neutral-100: hsl(220, 23%, 95%);
118
+ --color-neutral-200: hsl(227, 25%, 89%);
119
+ --color-neutral-300: hsl(224, 24%, 78%);
120
+ --color-neutral-400: hsl(226, 24%, 59%);
121
+ --color-neutral-500: hsl(226, 24%, 48%);
122
+ --color-neutral-600: hsl(226, 24%, 38%);
123
+ --color-neutral-700: hsl(227, 24%, 33%);
124
+ --color-neutral-800: hsl(226, 24%, 25%);
125
+ --color-neutral-900: hsl(233, 33%, 10%);
126
+ --color-neutral-950: hsl(231, 32%, 8%);
127
+
128
+ /* Brand (from indigo in colors.json) */
129
+ --color-brand-25: hsl(220, 82%, 98%);
130
+ --color-brand-50: hsl(222, 87%, 97%);
131
+ --color-brand-100: hsl(221, 94%, 94%);
132
+ --color-brand-200: hsl(222, 92%, 86%);
133
+ --color-brand-300: hsl(224, 95%, 77%);
134
+ --color-brand-400: hsl(224, 94%, 72%);
135
+ --color-brand-500: hsl(230, 67%, 59%);
136
+ --color-brand-600: hsl(230, 69%, 48%);
137
+ --color-brand-700: hsl(230, 74%, 38%);
138
+ --color-brand-800: hsl(237, 69%, 34%);
139
+ --color-brand-900: hsl(237, 69%, 28%);
140
+ --color-brand-950: hsl(237, 61%, 20%);
141
+
142
+ /* Accent (guava/rose) */
143
+ --color-accent-25: hsl(7, 60%, 97%);
144
+ --color-accent-50: hsl(9, 62%, 96%);
145
+ --color-accent-100: hsl(2, 57%, 91%);
146
+ --color-accent-200: hsl(1, 58%, 85%);
147
+ --color-accent-300: hsl(356, 59%, 79%);
148
+ --color-accent-400: hsl(357, 61%, 72%);
149
+ --color-accent-500: hsl(356, 67%, 66%);
150
+ --color-accent-600: hsl(353, 58%, 58%);
151
+ --color-accent-700: hsl(353, 52%, 51%);
152
+ --color-accent-800: hsl(350, 58%, 41%);
153
+ --color-accent-900: hsl(350, 56%, 28%);
154
+
155
+ /* Error */
156
+ --color-error-25: hsl(12, 100%, 99%);
157
+ --color-error-50: hsl(13, 90%, 96%);
158
+ --color-error-100: hsl(0, 81%, 94%);
159
+ --color-error-200: hsl(0, 84%, 90%);
160
+ --color-error-300: hsl(0, 83%, 82%);
161
+ --color-error-400: hsl(0, 91%, 71%);
162
+ --color-error-500: hsl(1, 84%, 63%);
163
+ --color-error-600: hsl(7, 75%, 48%);
164
+ --color-error-700: hsl(7, 78%, 42%);
165
+ --color-error-800: hsl(0, 62%, 37%);
166
+ --color-error-900: hsl(3, 64%, 27%);
167
+ --color-error-950: hsl(8, 75%, 19%);
168
+
169
+ /* Warning */
170
+ --color-warning-25: hsl(42, 100%, 98%);
171
+ --color-warning-50: hsl(45, 100%, 96%);
172
+ --color-warning-100: hsl(45, 96%, 89%);
173
+ --color-warning-200: hsl(44, 98%, 77%);
174
+ --color-warning-300: hsl(42, 99%, 65%);
175
+ --color-warning-400: hsl(39, 98%, 56%);
176
+ --color-warning-500: hsl(34, 94%, 50%);
177
+ --color-warning-600: hsl(28, 97%, 44%);
178
+ --color-warning-700: hsl(22, 92%, 37%);
179
+ --color-warning-800: hsl(19, 84%, 31%);
180
+ --color-warning-900: hsl(18, 79%, 27%);
181
+ --color-warning-950: hsl(17, 79%, 17%);
182
+
183
+ /* Success */
184
+ --color-success-25: hsl(142, 80%, 98%);
185
+ --color-success-50: hsl(145, 81%, 96%);
186
+ --color-success-100: hsl(140, 75%, 92%);
187
+ --color-success-200: hsl(144, 68%, 80%);
188
+ --color-success-300: hsl(148, 63%, 67%);
189
+ --color-success-400: hsl(150, 57%, 54%);
190
+ --color-success-500: hsl(152, 77%, 39%);
191
+ --color-success-600: hsl(153, 91%, 30%);
192
+ --color-success-700: hsl(155, 90%, 24%);
193
+ --color-success-800: hsl(155, 84%, 20%);
194
+ --color-success-900: hsl(156, 83%, 16%);
195
+ --color-success-950: hsl(157, 82%, 11%);
196
+
197
+ --alpha-80: 0.8;
198
+ --alpha-60: 0.6;
199
+ --alpha-40: 0.4;
200
+ --alpha-20: 0.2;
201
+ --alpha-10: 0.1;
202
+ --alpha-5: 0.05;
203
+ }
204
+ :root {
205
+ /* Gray Cool */
206
+ --color-graycool-25: hsl(240, 20%, 99%);
207
+ --color-graycool-50: hsl(240, 20%, 98%);
208
+ --color-graycool-100: hsl(240, 17%, 95%);
209
+ --color-graycool-200: hsl(227, 25%, 89%);
210
+ --color-graycool-300: hsl(224, 24%, 78%);
211
+ --color-graycool-400: hsl(226, 24%, 59%);
212
+ --color-graycool-500: hsl(226, 24%, 48%);
213
+ --color-graycool-600: hsl(226, 24%, 38%);
214
+ --color-graycool-700: hsl(227, 24%, 33%);
215
+ --color-graycool-800: hsl(233, 33%, 10%);
216
+ --color-graycool-900: hsl(231, 32%, 8%);
217
+ --color-graycool-950: hsl(231, 32%, 8%);
218
+
219
+ /* Lime */
220
+ --color-lime-25: hsl(100, 60%, 98%);
221
+ --color-lime-50: hsl(96, 91%, 96%);
222
+ --color-lime-100: hsl(97, 87%, 91%);
223
+ --color-lime-200: hsl(90, 89%, 82%);
224
+ --color-lime-300: hsl(94, 87%, 71%);
225
+ --color-lime-400: hsl(94, 73%, 56%);
226
+ --color-lime-500: hsl(94, 75%, 44%);
227
+ --color-lime-600: hsl(95, 85%, 35%);
228
+ --color-lime-700: hsl(96, 78%, 27%);
229
+ --color-lime-800: hsl(96, 69%, 23%);
230
+ --color-lime-900: hsl(98, 61%, 20%);
231
+ --color-lime-950: hsl(99, 61%, 10%);
232
+
233
+ /* Teal */
234
+ --color-teal-25: hsl(165, 80%, 98%);
235
+ --color-teal-50: hsl(162, 76%, 97%);
236
+ --color-teal-100: hsl(165, 85%, 89%);
237
+ --color-teal-200: hsl(166, 84%, 78%);
238
+ --color-teal-300: hsl(169, 76%, 64%);
239
+ --color-teal-400: hsl(170, 65%, 50%);
240
+ --color-teal-500: hsl(171, 79%, 40%);
241
+ --color-teal-600: hsl(173, 83%, 32%);
242
+ --color-teal-700: hsl(173, 76%, 26%);
243
+ --color-teal-800: hsl(174, 68%, 22%);
244
+ --color-teal-900: hsl(174, 61%, 19%);
245
+ --color-teal-950: hsl(174, 61%, 10%);
246
+
247
+ /* Blue */
248
+ --color-blue-25: hsl(210, 100%, 98%);
249
+ --color-blue-50: hsl(206, 100%, 97%);
250
+ --color-blue-100: hsl(209, 100%, 91%);
251
+ --color-blue-200: hsl(206, 100%, 85%);
252
+ --color-blue-300: hsl(206, 100%, 76%);
253
+ --color-blue-400: hsl(207, 98%, 66%);
254
+ --color-blue-500: hsl(211, 95%, 58%);
255
+ --color-blue-600: hsl(215, 87%, 51%);
256
+ --color-blue-700: hsl(218, 80%, 46%);
257
+ --color-blue-800: hsl(220, 75%, 38%);
258
+ --color-blue-900: hsl(218, 68%, 31%);
259
+ --color-blue-950: hsl(218, 69%, 20%);
260
+
261
+ /* Indigo */
262
+ --color-indigo-25: hsl(222, 100%, 98%);
263
+ --color-indigo-50: hsl(219, 100%, 97%);
264
+ --color-indigo-100: hsl(221, 100%, 94%);
265
+ --color-indigo-200: hsl(223, 96%, 89%);
266
+ --color-indigo-300: hsl(224, 96%, 82%);
267
+ --color-indigo-400: hsl(228, 91%, 74%);
268
+ --color-indigo-500: hsl(233, 86%, 67%);
269
+ --color-indigo-600: hsl(237, 77%, 59%);
270
+ --color-indigo-700: hsl(239, 60%, 51%);
271
+ --color-indigo-800: hsl(238, 57%, 41%);
272
+ --color-indigo-900: hsl(236, 49%, 34%);
273
+ --color-indigo-950: hsl(236, 49%, 24%);
274
+
275
+ /* Purple */
276
+ --color-purple-25: hsl(240, 100%, 99%);
277
+ --color-purple-50: hsl(245, 100%, 98%);
278
+ --color-purple-100: hsl(246, 91%, 95%);
279
+ --color-purple-200: hsl(244, 95%, 92%);
280
+ --color-purple-300: hsl(247, 97%, 85%);
281
+ --color-purple-400: hsl(253, 93%, 76%);
282
+ --color-purple-500: hsl(257, 92%, 66%);
283
+ --color-purple-600: hsl(265, 85%, 58%);
284
+ --color-purple-700: hsl(265, 72%, 50%);
285
+ --color-purple-800: hsl(265, 71%, 42%);
286
+ --color-purple-900: hsl(265, 69%, 35%);
287
+ --color-purple-950: hsl(257, 70%, 22%);
288
+
289
+ /* Purple Lavender */
290
+ --color-plavender-25: hsl(240, 100%, 99%);
291
+ --color-plavender-50: hsl(245, 100%, 98%);
292
+ --color-plavender-100: hsl(246, 91%, 95%);
293
+ --color-plavender-200: hsl(244, 95%, 92%);
294
+ --color-plavender-300: hsl(247, 97%, 85%);
295
+ --color-plavender-400: hsl(249, 93%, 76%);
296
+ --color-plavender-500: hsl(252, 92%, 66%);
297
+ --color-plavender-600: hsl(256, 85%, 58%);
298
+ --color-plavender-700: hsl(257, 72%, 50%);
299
+ --color-plavender-800: hsl(257, 71%, 42%);
300
+ --color-plavender-900: hsl(257, 69%, 35%);
301
+ --color-plavender-950: hsl(257, 70%, 22%);
302
+
303
+ /* Pink */
304
+ --color-pink-25: hsl(323, 80%, 98%);
305
+ --color-pink-50: hsl(327, 73%, 97%);
306
+ --color-pink-100: hsl(326, 78%, 93%);
307
+ --color-pink-200: hsl(326, 80%, 88%);
308
+ --color-pink-300: hsl(327, 82%, 80%);
309
+ --color-pink-400: hsl(330, 80%, 72%);
310
+ --color-pink-500: hsl(331, 71%, 59%);
311
+ --color-pink-600: hsl(331, 71%, 46%);
312
+ --color-pink-700: hsl(331, 71%, 42%);
313
+ --color-pink-800: hsl(331, 71%, 37%);
314
+ --color-pink-900: hsl(331, 72%, 25%);
315
+ --color-pink-950: hsl(328, 71%, 18%);
316
+
317
+ /* Guava (rose) */
318
+ --color-guava-25: hsl(7, 60%, 97%);
319
+ --color-guava-50: hsl(9, 62%, 96%);
320
+ --color-guava-100: hsl(2, 57%, 91%);
321
+ --color-guava-200: hsl(1, 58%, 85%);
322
+ --color-guava-300: hsl(356, 59%, 79%);
323
+ --color-guava-400: hsl(357, 61%, 72%);
324
+ --color-guava-500: hsl(356, 67%, 66%);
325
+ --color-guava-600: hsl(353, 58%, 58%);
326
+ --color-guava-700: hsl(353, 52%, 51%);
327
+ --color-guava-800: hsl(350, 58%, 41%);
328
+ --color-guava-900: hsl(350, 56%, 28%);
329
+
330
+ /* Orange */
331
+ --color-orange-25: hsl(33, 82%, 98%);
332
+ --color-orange-50: hsl(30, 89%, 96%);
333
+ --color-orange-100: hsl(30, 90%, 92%);
334
+ --color-orange-200: hsl(36, 86%, 83%);
335
+ --color-orange-300: hsl(27, 89%, 72%);
336
+ --color-orange-400: hsl(23, 88%, 61%);
337
+ --color-orange-500: hsl(21, 87%, 53%);
338
+ --color-orange-600: hsl(17, 82%, 48%);
339
+ --color-orange-700: hsl(13, 80%, 40%);
340
+ --color-orange-800: hsl(11, 71%, 34%);
341
+ --color-orange-900: hsl(11, 68%, 28%);
342
+ --color-orange-950: hsl(7, 79%, 19%);
343
+
344
+ /* Yellow */
345
+ --color-yellow-25: hsl(56, 88%, 97%);
346
+ --color-yellow-50: hsl(52, 92%, 95%);
347
+ --color-yellow-100: hsl(53, 97%, 88%);
348
+ --color-yellow-200: hsl(53, 98%, 77%);
349
+ --color-yellow-300: hsl(55, 99%, 67%);
350
+ --color-yellow-400: hsl(48, 97%, 72%);
351
+ --color-yellow-500: hsl(45, 93%, 47%);
352
+ --color-yellow-600: hsl(39, 96%, 40%);
353
+ --color-yellow-700: hsl(33, 92%, 33%);
354
+ --color-yellow-800: hsl(30, 81%, 29%);
355
+ --color-yellow-900: hsl(26, 73%, 26%);
356
+ --color-yellow-950: hsl(26, 73%, 19%);
357
+ }
358
+ /* =========================
359
+ IMPORT FONT
360
+ ========================= */
361
+ /* =========================
362
+ TYPOGRAPHY TOKENS
363
+ ========================= */
364
+ :root {
365
+ /* Families */
366
+ --font-inter: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI',
367
+ Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji',
368
+ 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
369
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
370
+ 'Liberation Mono', 'Courier New', monospace;
371
+
372
+ /* Weights */
373
+ --weight-regular: 400;
374
+ --weight-medium: 500;
375
+ --weight-semibold: 600;
376
+ --weight-bold: 700;
377
+
378
+ /* Sizes (font-size) */
379
+ /* Display Sizes */
380
+ --display-xl-size: 2.625rem; /* 42px */
381
+ --display-lg-size: 2.5rem; /* 40px */
382
+ --display-md-size: 2.25rem; /* 36px */
383
+ --display-sm-size: 1.875rem; /* 30px */
384
+ --display-xs-size: 1.5rem; /* 24px */
385
+ /* Text Sizes */
386
+ --text-xl-size: 1.25rem; /* 20px */
387
+ --text-lg-size: 1.125rem; /* 18px */
388
+ --text-md-size: 1rem; /* 16px */
389
+ --text-sm-size: 0.875rem; /* 14px */
390
+ --text-xs-size: 0.75rem; /* 12px */
391
+
392
+ /* Line heights */
393
+ --text-xl-line: 1.875rem; /* 30px */
394
+ --text-lg-line: 1.75rem; /* 28px */
395
+ --text-md-line: 1.5rem; /* 24px */
396
+ --text-sm-line: 1.25rem; /* 20px */
397
+ --text-xs-line: 1.125rem; /* 18px */
398
+
399
+ /* Numbers (data tables) — use tabular figures */
400
+ --num-sm-size: var(--text-sm-size); /* 14px */
401
+ --num-sm-line: var(--text-sm-line); /* 20px */
402
+ --num-xs-size: var(--text-xs-size); /* 12px */
403
+ --num-xs-line: var(--text-xs-line); /* 18px */
404
+ }
405
+ /* =========================
406
+ BASE / WEIGHT UTILITIES
407
+ ========================= */
408
+ .font-inter {
409
+ font-family: var(--font-inter);
410
+ }
411
+ .font-mono {
412
+ font-family: var(--font-mono);
413
+ }
414
+ .weight-regular {
415
+ font-weight: var(--weight-regular);
416
+ }
417
+ .weight-medium {
418
+ font-weight: var(--weight-medium);
419
+ }
420
+ .weight-semibold {
421
+ font-weight: var(--weight-semibold);
422
+ }
423
+ .weight-bold {
424
+ font-weight: var(--weight-bold);
425
+ }
426
+ /* =========================
427
+ SIZE UTILITIES
428
+ ========================= */
429
+ .text-xl {
430
+ font-size: var(--text-xl-size);
431
+ line-height: var(--text-xl-line);
432
+ }
433
+ .text-lg {
434
+ font-size: var(--text-lg-size);
435
+ line-height: var(--text-lg-line);
436
+ }
437
+ .text-md {
438
+ font-size: var(--text-md-size);
439
+ line-height: var(--text-md-line);
440
+ }
441
+ .text-sm {
442
+ font-size: var(--text-sm-size);
443
+ line-height: var(--text-sm-line);
444
+ }
445
+ .text-xs {
446
+ font-size: var(--text-xs-size);
447
+ line-height: var(--text-xs-line);
448
+ }
449
+ /* =========================
450
+ NUMERIC (DATA TABLES)
451
+ ========================= */
452
+ .num-sm {
453
+ font-size: var(--num-sm-size);
454
+ line-height: var(--num-sm-line);
455
+ font-variant-numeric: tabular-nums;
456
+ font-family: var(--font-inter);
457
+ }
458
+ .num-xs {
459
+ font-size: var(--num-xs-size);
460
+ line-height: var(--num-xs-line);
461
+ font-variant-numeric: tabular-nums;
462
+ font-family: var(--font-mono);
463
+ }
464
+ :root {
465
+ /* PRIMITIVES — one unit = 0.25rem (4px) */
466
+ --sp-0: 0rem; /* 0px */
467
+ --sp-0-5: 0.125rem; /* 2px */
468
+ --sp-1: 0.25rem; /* 4px */
469
+ --sp-1-5: 0.375rem; /* 6px */
470
+ --sp-2: 0.5rem; /* 8px */
471
+ --sp-3: 0.75rem; /* 12px */
472
+ --sp-4: 1rem; /* 16px */
473
+ --sp-5: 1.25rem; /* 20px */
474
+ --sp-6: 1.5rem; /* 24px */
475
+ --sp-8: 2rem; /* 32px */
476
+ --sp-10: 2.5rem; /* 40px */
477
+ --sp-12: 3rem; /* 48px */
478
+ --sp-16: 4rem; /* 64px */
479
+ --sp-20: 5rem; /* 80px */
480
+ --sp-24: 6rem; /* 96px */
481
+ --sp-32: 8rem; /* 128px */
482
+ --sp-40: 10rem; /* 160px */
483
+ --sp-48: 12rem; /* 192px */
484
+ --sp-56: 14rem; /* 224px */
485
+ --sp-64: 16rem; /* 256px */
486
+ --sp-80: 20rem; /* 320px */
487
+ --sp-96: 24rem; /* 384px */
488
+ --sp-120: 30rem; /* 480px */
489
+ --sp-140: 35rem; /* 560px */
490
+ --sp-160: 40rem; /* 640px */
491
+ --sp-180: 45rem; /* 720px */
492
+ --sp-192: 48rem; /* 768px */
493
+ --sp-256: 64rem; /* 1024px */
494
+ --sp-320: 80rem; /* 1280px */
495
+ --sp-360: 90rem; /* 1440px */
496
+ --sp-400: 100rem; /* 1600px */
497
+ --sp-480: 120rem; /* 1920px */
498
+
499
+ /* SEMANTIC SPACING — use these in UI; they reference primitives */
500
+ --spacing-none: var(--sp-0); /* 0rem */
501
+ --spacing-xxs: var(--sp-0-5); /* 0.125rem */
502
+ --spacing-xs: var(--sp-1); /* 0.25rem */
503
+ --spacing-sm: var(--sp-1-5); /* 0.375rem */
504
+ --spacing-md: var(--sp-2); /* 0.5rem */
505
+ --spacing-lg: var(--sp-3); /* 0.75rem */
506
+ --spacing-xl: var(--sp-4); /* 1rem */
507
+ --spacing-2xl: var(--sp-5); /* 1.25rem */
508
+ --spacing-3xl: var(--sp-6); /* 1.5rem */
509
+ --spacing-4xl: var(--sp-8); /* 2rem */
510
+ --spacing-5xl: var(--sp-10); /* 2.5rem */
511
+ --spacing-6xl: var(--sp-12); /* 3rem */
512
+ --spacing-7xl: var(--sp-16); /* 4rem */
513
+ --spacing-8xl: var(--sp-20); /* 5rem */
514
+ --spacing-9xl: var(--sp-24); /* 6rem */
515
+ --spacing-10xl: var(--sp-32); /* 8rem */
516
+ --spacing-11xl: var(--sp-40); /* 10rem */
517
+
518
+ /* BUTTON PADDINGS — consistent padding sizes for button components */
519
+ --btn-padding-sm: var(--spacing-sm); /* 0.375rem / 6px */
520
+ --btn-padding-md: var(--spacing-md); /* 0.5rem / 8px */
521
+ --btn-padding-lg: var(--spacing-lg); /* 0.75rem / 12px */
522
+ --btn-padding-xl: var(--spacing-xl); /* 1rem / 16px */
523
+
524
+ /* ICON COMPENSATION — complete padding values for components with icons */
525
+ --icon-compensation-xs-btn: calc(var(--spacing-lg) - var(--spacing-xs)); /* 12px - 4px = 8px - for xs buttons */
526
+ --icon-compensation-sm-btn: calc(var(--spacing-xl) - var(--spacing-xs)); /* 16px - 4px = 12px - for sm buttons */
527
+ --icon-compensation-md-btn: calc(var(--spacing-xl) - var(--spacing-xs)); /* 16px - 4px = 12px - for md buttons */
528
+ --icon-compensation-lg-btn: calc(var(--spacing-xl) - var(--spacing-xs)); /* 16px - 4px = 12px - for lg buttons */
529
+ }
530
+ :root {
531
+ /* Radius scale */
532
+ --radius-none: 0rem; /* 0px */
533
+ --radius-xxs: 0.125rem; /* 2px */
534
+ --radius-xs: 0.25rem; /* 4px */
535
+ --radius-sm: 0.375rem; /* 6px */
536
+ --radius-md: 0.5rem; /* 8px */
537
+ --radius-lg: 0.625rem; /* 10px */
538
+ --radius-xl: 0.75rem; /* 12px */
539
+ --radius-2xl: 1rem; /* 16px */
540
+ --radius-3xl: 1.25rem; /* 20px */
541
+ --radius-4xl: 1.5rem; /* 24px */
542
+ --radius-full: 9999px; /* Full / pill / circle */
543
+ }
544
+ :root {
545
+ /* Shadow colors derived from neutral color scale */
546
+ --shadow-color-base: var(
547
+ --color-neutral-600
548
+ ); /* #4A5578 - base shadow color */
549
+ --shadow-color-06: color-mix(
550
+ in srgb,
551
+ var(--shadow-color-base) 6%,
552
+ transparent
553
+ ); /* 0.06 opacity */
554
+ --shadow-color-10: color-mix(
555
+ in srgb,
556
+ var(--shadow-color-base) 10%,
557
+ transparent
558
+ ); /* 0.1 opacity */
559
+ --shadow-color-14: color-mix(
560
+ in srgb,
561
+ var(--shadow-color-base) 14%,
562
+ transparent
563
+ ); /* 0.14 opacity */
564
+ --shadow-color-18: color-mix(
565
+ in srgb,
566
+ var(--shadow-color-base) 18%,
567
+ transparent
568
+ ); /* 0.18 opacity */
569
+
570
+ /* Shadow scale - using consistent color variables */
571
+ --shadow-xs: 0px 0px 2px 1px var(--shadow-color-06);
572
+ --shadow-sm: 0px 3px 4px 0px var(--shadow-color-10),
573
+ 0px 0px 1px 1px var(--shadow-color-10);
574
+ --shadow-md: 0px 4px 8px 0px var(--shadow-color-10),
575
+ 0px 0px 4px 0px var(--shadow-color-10);
576
+ --shadow-lg: 0px 12px 16px -2px var(--shadow-color-10),
577
+ 0px 0px 1px 1px var(--shadow-color-10);
578
+ --shadow-xl: 0px 20px 24px -4px var(--shadow-color-10),
579
+ 0px 0px 1px 1px var(--shadow-color-10);
580
+ --shadow-2xl: 0px 24px 48px -12px var(--shadow-color-18),
581
+ 0px 0px 1px 1px var(--shadow-color-10);
582
+ --shadow-3xl: 0px 0px 1px 1px var(--shadow-color-10),
583
+ 0px 32px 64px -12px var(--shadow-color-14);
584
+
585
+ /* Semantic shadows - use these in UI components */
586
+ --shadow-none: none;
587
+ --shadow-subtle: var(
588
+ --shadow-xs
589
+ ); /* Very subtle shadow for minimal elevation */
590
+ --shadow-card: var(--shadow-sm); /* Cards and panels */
591
+ --shadow-dropdown: var(--shadow-md); /* Dropdowns and small overlays */
592
+ --shadow-modal: var(--shadow-lg); /* Modals and dialogs */
593
+ --shadow-popover: var(--shadow-xl); /* Popovers and tooltips */
594
+ --shadow-drawer: var(--shadow-2xl); /* Side drawers and large overlays */
595
+ --shadow-floating: var(
596
+ --shadow-3xl
597
+ ); /* Floating action buttons and high elevation */
598
+ }
599
+ /* Bellhop Animation System */
600
+ /* Animation Variables */
601
+ :root {
602
+ /* Timing */
603
+ --animation-duration-fast: 150ms;
604
+ --animation-duration-normal: 200ms;
605
+ --animation-duration-slow: 300ms;
606
+
607
+ /* Easing Functions */
608
+ --animation-ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
609
+ --animation-ease-exit: cubic-bezier(0.4, 0, 1, 1);
610
+ --animation-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
611
+ --animation-ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
612
+
613
+ /* Transform Values */
614
+ --animation-slide-distance: 8px;
615
+ --animation-scale-start: 0.96;
616
+ --animation-scale-end: 1;
617
+ }
618
+ /* Dropdown Animations */
619
+ .animate-dropdown-enter {
620
+ animation: dropdownEnter var(--animation-duration-normal)
621
+ var(--animation-ease-enter) forwards;
622
+ }
623
+ .animate-dropdown-exit {
624
+ animation: dropdownExit var(--animation-duration-fast)
625
+ var(--animation-ease-exit) forwards;
626
+ }
627
+ @keyframes dropdownEnter {
628
+ 0% {
629
+ opacity: 0;
630
+ transform: scale(var(--animation-scale-start));
631
+ }
632
+ 100% {
633
+ opacity: 1;
634
+ transform: scale(var(--animation-scale-end));
635
+ }
636
+ }
637
+ @keyframes dropdownExit {
638
+ 0% {
639
+ opacity: 1;
640
+ transform: translateY(0) scale(var(--animation-scale-end));
641
+ }
642
+ 100% {
643
+ opacity: 0;
644
+ transform: translateY(calc(-1 * var(--animation-slide-distance)))
645
+ scale(var(--animation-scale-start));
646
+ }
647
+ }
648
+ /* Modal Animations */
649
+ .animate-modal-enter {
650
+ animation: modalEnter var(--animation-duration-normal)
651
+ var(--animation-ease-enter) forwards;
652
+ }
653
+ .animate-modal-exit {
654
+ animation: modalExit var(--animation-duration-fast) var(--animation-ease-exit)
655
+ forwards;
656
+ }
657
+ @keyframes modalEnter {
658
+ 0% {
659
+ opacity: 0;
660
+ transform: translateY(16px) scale(var(--animation-scale-start));
661
+ }
662
+ 100% {
663
+ opacity: 1;
664
+ transform: translateY(0) scale(var(--animation-scale-end));
665
+ }
666
+ }
667
+ @keyframes modalExit {
668
+ 0% {
669
+ opacity: 1;
670
+ transform: translateY(0) scale(var(--animation-scale-end));
671
+ }
672
+ 100% {
673
+ opacity: 0;
674
+ transform: translateY(16px) scale(var(--animation-scale-start));
675
+ }
676
+ }
677
+ /* Chevron Icon Animations */
678
+ .chevron-icon-rotate {
679
+ transition: transform var(--animation-duration-fast)
680
+ var(--animation-ease-smooth);
681
+ }
682
+ .chevron-icon-rotate.expanded {
683
+ transform: rotate(180deg);
684
+ }
685
+ /* Alternative with direct elements */
686
+ .chevron-expand {
687
+ display: inline-flex;
688
+ transition: transform var(--animation-duration-fast)
689
+ var(--animation-ease-smooth);
690
+ }
691
+ .chevron-expand.open {
692
+ transform: rotate(180deg);
693
+ }
694
+ /* Toast Animations */
695
+ .animate-toast-enter {
696
+ animation: toastEnter var(--animation-duration-normal)
697
+ var(--animation-ease-enter) forwards;
698
+ }
699
+ .animate-toast-exit {
700
+ animation: toastExit var(--animation-duration-fast) var(--animation-ease-exit)
701
+ forwards;
702
+ }
703
+ @keyframes toastEnter {
704
+ 0% {
705
+ opacity: 0;
706
+ transform: translateX(100%) scale(var(--animation-scale-start));
707
+ }
708
+ 100% {
709
+ opacity: 1;
710
+ transform: translateX(0) scale(var(--animation-scale-end));
711
+ }
712
+ }
713
+ @keyframes toastExit {
714
+ 0% {
715
+ opacity: 1;
716
+ transform: translateX(0) scale(var(--animation-scale-end));
717
+ }
718
+ 100% {
719
+ opacity: 0;
720
+ transform: translateX(100%) scale(var(--animation-scale-start));
721
+ }
722
+ }
723
+ /* Fade Animations */
724
+ .animate-fade-enter {
725
+ animation: fadeEnter var(--animation-duration-normal)
726
+ var(--animation-ease-enter) forwards;
727
+ }
728
+ .animate-fade-exit {
729
+ animation: fadeExit var(--animation-duration-fast) var(--animation-ease-exit)
730
+ forwards;
731
+ }
732
+ @keyframes fadeEnter {
733
+ 0% {
734
+ opacity: 0;
735
+ }
736
+ 100% {
737
+ opacity: 1;
738
+ }
739
+ }
740
+ @keyframes fadeExit {
741
+ 0% {
742
+ opacity: 1;
743
+ }
744
+ 100% {
745
+ opacity: 0;
746
+ }
747
+ }
748
+ /* Scale Animations */
749
+ .animate-scale-enter {
750
+ animation: scaleEnter var(--animation-duration-normal)
751
+ var(--animation-ease-enter) forwards;
752
+ }
753
+ .animate-scale-exit {
754
+ animation: scaleExit var(--animation-duration-fast) var(--animation-ease-exit)
755
+ forwards;
756
+ }
757
+ @keyframes scaleEnter {
758
+ 0% {
759
+ opacity: 0;
760
+ transform: scale(var(--animation-scale-start));
761
+ }
762
+ 100% {
763
+ opacity: 1;
764
+ transform: scale(var(--animation-scale-end));
765
+ }
766
+ }
767
+ @keyframes scaleExit {
768
+ 0% {
769
+ opacity: 1;
770
+ transform: scale(var(--animation-scale-end));
771
+ }
772
+ 100% {
773
+ opacity: 0;
774
+ transform: scale(var(--animation-scale-start));
775
+ }
776
+ }
777
+ /* Slide Animations */
778
+ .animate-slide-up-enter {
779
+ animation: slideUpEnter var(--animation-duration-normal)
780
+ var(--animation-ease-enter) forwards;
781
+ }
782
+ .animate-slide-up-exit {
783
+ animation: slideUpExit var(--animation-duration-fast)
784
+ var(--animation-ease-exit) forwards;
785
+ }
786
+ .animate-slide-down-enter {
787
+ animation: slideDownEnter var(--animation-duration-normal)
788
+ var(--animation-ease-enter) forwards;
789
+ }
790
+ .animate-slide-down-exit {
791
+ animation: slideDownExit var(--animation-duration-fast)
792
+ var(--animation-ease-exit) forwards;
793
+ }
794
+ @keyframes slideUpEnter {
795
+ 0% {
796
+ opacity: 0;
797
+ transform: translateY(var(--animation-slide-distance));
798
+ }
799
+ 100% {
800
+ opacity: 1;
801
+ transform: translateY(0);
802
+ }
803
+ }
804
+ @keyframes slideUpExit {
805
+ 0% {
806
+ opacity: 1;
807
+ transform: translateY(0);
808
+ }
809
+ 100% {
810
+ opacity: 0;
811
+ transform: translateY(var(--animation-slide-distance));
812
+ }
813
+ }
814
+ @keyframes slideDownEnter {
815
+ 0% {
816
+ opacity: 0;
817
+ transform: translateY(calc(-1 * var(--animation-slide-distance)));
818
+ }
819
+ 100% {
820
+ opacity: 1;
821
+ transform: translateY(0);
822
+ }
823
+ }
824
+ @keyframes slideDownExit {
825
+ 0% {
826
+ opacity: 1;
827
+ transform: translateY(0);
828
+ }
829
+ 100% {
830
+ opacity: 0;
831
+ transform: translateY(calc(-1 * var(--animation-slide-distance)));
832
+ }
833
+ }
834
+ /* Base Animation Classes */
835
+ .animate-base {
836
+ transform-origin: top center;
837
+ transition: all var(--animation-duration-normal) var(--animation-ease-smooth);
838
+ }
839
+ .animate-base-modal {
840
+ transform-origin: center center;
841
+ transition: all var(--animation-duration-normal) var(--animation-ease-smooth);
842
+ }
843
+ .animate-base-toast {
844
+ transform-origin: right center;
845
+ transition: all var(--animation-duration-normal) var(--animation-ease-smooth);
846
+ }
847
+ /* Dismiss Animations */
848
+ .animate-dismiss {
849
+ animation: dismiss var(--animation-duration-normal) var(--animation-ease-exit)
850
+ forwards;
851
+ }
852
+ @keyframes dismiss {
853
+ 0% {
854
+ opacity: 1;
855
+ transform: scale(1);
856
+ }
857
+ 60% {
858
+ opacity: 0.3;
859
+ transform: scale(0.94);
860
+ }
861
+ 100% {
862
+ opacity: 0;
863
+ transform: scale(0.88);
864
+ }
865
+ }
866
+ /* Chart Animations */
867
+ .animate-chart-segment-enter {
868
+ animation: chartSegmentEnter 600ms var(--animation-ease-enter) forwards;
869
+ }
870
+ .animate-chart-segment-hover {
871
+ transition: all var(--animation-duration-fast) var(--animation-ease-smooth);
872
+ }
873
+ .animate-chart-segment-hover:hover {
874
+ opacity: 0.85;
875
+ transform: scale(1.02);
876
+ filter: brightness(1.1);
877
+ }
878
+ @keyframes chartSegmentEnter {
879
+ 0% {
880
+ opacity: 0;
881
+ transform: scale(0.2) rotate(-45deg);
882
+ }
883
+ 25% {
884
+ opacity: 0.3;
885
+ transform: scale(0.5) rotate(-22deg);
886
+ }
887
+ 50% {
888
+ opacity: 0.6;
889
+ transform: scale(0.8) rotate(-8deg);
890
+ }
891
+ 75% {
892
+ opacity: 0.9;
893
+ transform: scale(1.05) rotate(2deg);
894
+ }
895
+ 100% {
896
+ opacity: 1;
897
+ transform: scale(1) rotate(0deg);
898
+ }
899
+ }
900
+ /* Pie Chart Segment Animation */
901
+ .animate-pie-segment-enter {
902
+ animation: pieSegmentEnter 700ms var(--animation-ease-enter) forwards;
903
+ }
904
+ @keyframes pieSegmentEnter {
905
+ 0% {
906
+ opacity: 0;
907
+ transform: scale(0.3) rotate(-90deg);
908
+ }
909
+ 15% {
910
+ opacity: 0.2;
911
+ transform: scale(0.4) rotate(-60deg);
912
+ }
913
+ 30% {
914
+ opacity: 0.5;
915
+ transform: scale(0.6) rotate(-30deg);
916
+ }
917
+ 60% {
918
+ opacity: 0.8;
919
+ transform: scale(0.95) rotate(-5deg);
920
+ }
921
+ 80% {
922
+ opacity: 0.95;
923
+ transform: scale(1.02) rotate(2deg);
924
+ }
925
+ 100% {
926
+ opacity: 1;
927
+ transform: scale(1) rotate(0deg);
928
+ }
929
+ }
930
+ /* Utility Classes */
931
+ .animate-duration-fast {
932
+ animation-duration: var(--animation-duration-fast) !important;
933
+ }
934
+ .animate-duration-normal {
935
+ animation-duration: var(--animation-duration-normal) !important;
936
+ }
937
+ .animate-duration-slow {
938
+ animation-duration: var(--animation-duration-slow) !important;
939
+ }
940
+ .animate-ease-bounce {
941
+ animation-timing-function: var(--animation-ease-bounce) !important;
942
+ }
943
+ /* ==========================================================================
944
+ BELLHOPOS LAYOUT SYSTEM
945
+ Essential layout classes for dashboard applications
946
+ ========================================================================== */
947
+ /* Main App Layout */
948
+ .app-layout {
949
+ display: grid;
950
+ grid-template-columns: auto 1fr;
951
+ height: 100vh;
952
+ overflow: hidden;
953
+ font-family: var(--font-inter);
954
+ }
955
+ /* Sidebar - Always visible, spans full height */
956
+ .app-sidebar {
957
+ background-color: var(--color-white);
958
+ border-right: 1px solid var(--color-neutral-100);
959
+ overflow-y: auto;
960
+ overflow-x: hidden;
961
+ z-index: 100;
962
+ width: 64px;
963
+ min-width: 64px;
964
+ height: 100vh;
965
+ }
966
+ /* Main Content Area */
967
+ .app-main {
968
+ display: flex;
969
+ flex-direction: column;
970
+ height: 100vh;
971
+ overflow: hidden;
972
+ }
973
+ /* Header */
974
+ .app-header {
975
+ background-color: var(--color-white);
976
+ z-index: 1000;
977
+ flex-shrink: 0;
978
+ }
979
+ /* Page Navigation Container - Smooth motion */
980
+ .page-nav {
981
+ flex-shrink: 0;
982
+ width: 280px;
983
+ overflow: hidden;
984
+ transition: all 0.4s cubic-bezier(0.08, 0.52, 0.52, 1);
985
+ transform: translateX(0);
986
+ opacity: 1;
987
+ }
988
+ .page-nav.collapsed {
989
+ width: 0;
990
+ transform: translateX(-20px);
991
+ opacity: 0;
992
+ }
993
+ /* Sample Content Grid */
994
+ .content-grid {
995
+ display: grid;
996
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
997
+ gap: var(--spacing-2xl);
998
+ margin-top: var(--spacing-3xl);
999
+ }
1000
+ .content-card {
1001
+ background-color: var(--color-white);
1002
+ border-radius: var(--radius-lg);
1003
+ padding: var(--spacing-2xl);
1004
+ box-shadow: var(--shadow-sm);
1005
+ transition: all 0.2s ease;
1006
+ border: 1px solid var(--color-neutral-100);
1007
+ }
1008
+ .content-card:hover {
1009
+ box-shadow: var(--shadow-md);
1010
+ transform: translateY(-1px);
1011
+ }
1012
+ .content-card h3 {
1013
+ font-size: var(--text-lg-size);
1014
+ font-weight: var(--weight-semibold);
1015
+ color: var(--color-neutral-800);
1016
+ margin-bottom: var(--spacing-sm);
1017
+ }
1018
+ .content-card p {
1019
+ font-size: var(--text-sm-size);
1020
+ color: var(--color-neutral-500);
1021
+ line-height: var(--text-sm-line);
1022
+ margin-bottom: 0;
1023
+ }
1024
+ /* Responsive Design */
1025
+ @media (max-width: 1024px) {
1026
+ .page-nav {
1027
+ display: none;
1028
+ }
1029
+
1030
+ .content-grid {
1031
+ grid-template-columns: 1fr;
1032
+ gap: var(--spacing-lg);
1033
+ }
1034
+ }
1035
+ @media (max-width: 768px) {
1036
+ .app-sidebar {
1037
+ position: fixed;
1038
+ left: 0;
1039
+ top: 0;
1040
+ height: 100vh;
1041
+ z-index: 1001;
1042
+ box-shadow: var(--shadow-lg);
1043
+ }
1044
+
1045
+ .app-main {
1046
+ margin-left: 0;
1047
+ }
1048
+ }
1049
+ @media (max-width: 480px) {
1050
+ .content-card {
1051
+ padding: var(--spacing-lg);
1052
+ }
1053
+
1054
+ .content-grid {
1055
+ gap: var(--spacing-md);
1056
+ }
1057
+ }
1058
+ /* Scrollbar Styling */
1059
+ .app-sidebar::-webkit-scrollbar,
1060
+ .page-nav::-webkit-scrollbar,
1061
+ .bellhop-content-area::-webkit-scrollbar {
1062
+ width: 6px;
1063
+ }
1064
+ .app-sidebar::-webkit-scrollbar-track,
1065
+ .page-nav::-webkit-scrollbar-track,
1066
+ .bellhop-content-area::-webkit-scrollbar-track {
1067
+ background: var(--color-neutral-50);
1068
+ }
1069
+ .app-sidebar::-webkit-scrollbar-thumb,
1070
+ .page-nav::-webkit-scrollbar-thumb,
1071
+ .bellhop-content-area::-webkit-scrollbar-thumb {
1072
+ background: var(--color-neutral-300);
1073
+ border-radius: 3px;
1074
+ }
1075
+ .app-sidebar::-webkit-scrollbar-thumb:hover,
1076
+ .page-nav::-webkit-scrollbar-thumb:hover,
1077
+ .bellhop-content-area::-webkit-scrollbar-thumb:hover {
1078
+ background: var(--color-neutral-400);
1079
+ }
1080
+ /* Focus styles for accessibility */
1081
+ .content-card:focus-visible {
1082
+ outline: 2px solid var(--color-brand-500);
1083
+ outline-offset: 2px;
1084
+ }
1085
+ /* Additional utility classes for dashboard layouts */
1086
+ .dashboard-container {
1087
+ padding: var(--spacing-2xl);
1088
+ max-width: 1200px;
1089
+ margin: 0 auto;
1090
+ }
1091
+ .dashboard-section {
1092
+ margin-bottom: var(--spacing-3xl);
1093
+ }
1094
+ .dashboard-header {
1095
+ display: flex;
1096
+ align-items: center;
1097
+ justify-content: space-between;
1098
+ margin-bottom: var(--spacing-xl);
1099
+ }
1100
+ .dashboard-title {
1101
+ font-size: var(--text-2xl-size);
1102
+ font-weight: var(--weight-bold);
1103
+ color: var(--color-neutral-800);
1104
+ margin: 0;
1105
+ }
1106
+ /* Stats grid for dashboard metrics */
1107
+ .stats-grid {
1108
+ display: grid;
1109
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
1110
+ gap: var(--spacing-lg);
1111
+ margin-bottom: var(--spacing-2xl);
1112
+ }
1113
+ .stat-card {
1114
+ background: var(--color-white);
1115
+ padding: var(--spacing-xl);
1116
+ border-radius: var(--radius-lg);
1117
+ border: 1px solid var(--color-neutral-200);
1118
+ text-align: center;
1119
+ }
1120
+ .stat-value {
1121
+ font-size: var(--text-3xl-size);
1122
+ font-weight: var(--weight-bold);
1123
+ color: var(--color-brand-600);
1124
+ display: block;
1125
+ margin-bottom: var(--spacing-xs);
1126
+ }
1127
+ .stat-label {
1128
+ font-size: var(--text-sm-size);
1129
+ color: var(--color-neutral-600);
1130
+ font-weight: var(--weight-medium);
1131
+ }
1132
+ /* ============================================
1133
+ Bellhop Icon System
1134
+ ============================================ */
1135
+ :root {
1136
+ /* Icon Sizes */
1137
+ --icon-size-xs: 16px;
1138
+ --icon-size-sm: 18px;
1139
+ --icon-size-md: 20px;
1140
+ --icon-size-lg: 24px;
1141
+ --icon-size-xl: 28px;
1142
+ --icon-size-2xl: 32px;
1143
+ }
1144
+ /* Base Material Symbols Configuration */
1145
+ .material-symbols-outlined,
1146
+ .material-icons,
1147
+ .material-icons-outlined {
1148
+ font-family: 'Material Symbols Outlined';
1149
+ font-weight: normal;
1150
+ font-style: normal;
1151
+ font-size: var(--icon-size-md);
1152
+ line-height: 1;
1153
+ display: inline-block;
1154
+ vertical-align: middle;
1155
+ color: var(--color-neutral-500);
1156
+ -webkit-font-smoothing: antialiased;
1157
+ font-feature-settings: 'liga';
1158
+ }
1159
+ /* Icon Size Classes */
1160
+ .icon-xs {
1161
+ font-size: var(--icon-size-xs);
1162
+ }
1163
+ .icon-sm {
1164
+ font-size: var(--icon-size-sm);
1165
+ }
1166
+ .icon-md {
1167
+ font-size: var(--icon-size-md);
1168
+ }
1169
+ .icon-lg {
1170
+ font-size: var(--icon-size-lg);
1171
+ }
1172
+ .icon-xl {
1173
+ font-size: var(--icon-size-xl);
1174
+ }
1175
+ .icon-2xl {
1176
+ font-size: var(--icon-size-2xl);
1177
+ }
1178
+ /* Icon Color Classes */
1179
+ .icon-primary {
1180
+ color: var(--color-brand-500);
1181
+ }
1182
+ .icon-secondary {
1183
+ color: var(--color-neutral-500);
1184
+ }
1185
+ .icon-success {
1186
+ color: var(--color-success-500);
1187
+ }
1188
+ .icon-error {
1189
+ color: var(--color-error-500);
1190
+ }
1191
+ .icon-warning {
1192
+ color: var(--color-warning-500);
1193
+ }
1194
+ /* Rotating Icons */
1195
+ @keyframes icon-spin {
1196
+ to {
1197
+ transform: rotate(360deg);
1198
+ }
1199
+ }
1200
+ .icon-spin {
1201
+ animation: icon-spin 1s linear infinite;
1202
+ }
1203
+ /* ==========================================================================
1204
+ BELLHOP GLOBAL STYLES
1205
+ ========================================================================== */
1206
+ /* Import all Bellhop design system styles */
1207
+ /* ==========================================================================
1208
+ FOCUS MANAGEMENT
1209
+ ========================================================================== */
1210
+ /* 1. Reset the outline for all focusable elements when a mouse is used. */
1211
+ *:focus:not(:focus-visible) {
1212
+ outline: none;
1213
+ }
1214
+ /* 2. Apply a custom outline that will only appear during keyboard navigation. */
1215
+ *:focus-visible {
1216
+ outline: 2px solid var(--color-brand-500); /* Using bellhop brand color */
1217
+ outline-offset: 2px;
1218
+ }
1219
+ /* ==========================================================================
1220
+ ACCESSIBILITY IMPROVEMENTS
1221
+ ========================================================================== */
1222
+ /* Ensure focus is visible on interactive elements */
1223
+ button:focus-visible,
1224
+ input:focus-visible,
1225
+ select:focus-visible,
1226
+ textarea:focus-visible,
1227
+ a:focus-visible,
1228
+ [tabindex]:focus-visible {
1229
+ outline: 2px solid var(--color-brand-500);
1230
+ outline-offset: 2px;
1231
+ }
1232
+ /* ==========================================================================
1233
+ UTILITY CLASSES
1234
+ ========================================================================== */
1235
+ /* Prevent text selection */
1236
+ .no-select {
1237
+ user-select: none;
1238
+ -webkit-user-select: none;
1239
+ -moz-user-select: none;
1240
+ -ms-user-select: none;
1241
+ }
1242
+ /* Screen reader only content */
1243
+ .sr-only {
1244
+ position: absolute;
1245
+ width: 1px;
1246
+ height: 1px;
1247
+ padding: 0;
1248
+ margin: -1px;
1249
+ overflow: hidden;
1250
+ clip: rect(0, 0, 0, 0);
1251
+ white-space: nowrap;
1252
+ border: 0;
1253
+ }
1254
+ /* ==========================================================================
1255
+ CONTENT LAYOUT UTILITIES
1256
+ ========================================================================== */
1257
+ /* Content Container - Main flex container for page navigation and content area */
1258
+ .bellhop-content-container {
1259
+ display: flex;
1260
+ flex: 1;
1261
+ overflow: hidden;
1262
+ background-color: var(--color-white);
1263
+ }
1264
+ /* Content Area - Scrollable main content region */
1265
+ .bellhop-content-area {
1266
+ flex: 1;
1267
+ overflow-y: auto;
1268
+ overflow-x: hidden;
1269
+ background-color: var(--color-white);
1270
+ }
1271
+ /* Content Wrapper - Inner content container with padding and max-width */
1272
+ .bellhop-content-wrapper {
1273
+ padding: var(--spacing-4xl);
1274
+ /*max-width: 1200px;*/
1275
+ margin: 0 auto;
1276
+ font-family: var(--font-inter);
1277
+ }
1278
+ /* Content Wrapper Variants */
1279
+ .bellhop-content-wrapper-sm {
1280
+ padding: var(--spacing-2xl);
1281
+ /*max-width: 800px;*/
1282
+ margin: 0 auto;
1283
+ font-family: var(--font-inter);
1284
+ }
1285
+ .bellhop-content-wrapper-lg {
1286
+ padding: var(--spacing-5xl);
1287
+ /*max-width: 1400px;*/
1288
+ margin: 0 auto;
1289
+ font-family: var(--font-inter);
1290
+ }
1291
+ .bellhop-content-wrapper-full {
1292
+ padding: var(--spacing-4xl);
1293
+ max-width: none;
1294
+ margin: 0;
1295
+ font-family: var(--font-inter);
1296
+ }
1297
+ /* Content Typography - Standard content headings and text */
1298
+ .bellhop-content-wrapper h1,
1299
+ .bellhop-content-wrapper-sm h1,
1300
+ .bellhop-content-wrapper-lg h1,
1301
+ .bellhop-content-wrapper-full h1 {
1302
+ font-size: var(--text-3xl-size);
1303
+ font-weight: var(--weight-bold);
1304
+ line-height: var(--text-3xl-line);
1305
+ color: var(--color-neutral-800);
1306
+ margin-bottom: var(--spacing-md);
1307
+ }
1308
+ .bellhop-content-wrapper p,
1309
+ .bellhop-content-wrapper-sm p,
1310
+ .bellhop-content-wrapper-lg p,
1311
+ .bellhop-content-wrapper-full p {
1312
+ font-size: var(--text-md-size);
1313
+ font-weight: var(--weight-regular);
1314
+ line-height: var(--text-md-line);
1315
+ color: var(--color-neutral-600);
1316
+ margin-bottom: var(--spacing-2xl);
1317
+ }
1318
+ /* Responsive adjustments for content wrappers */
1319
+ @media (max-width: 768px) {
1320
+ .bellhop-content-wrapper,
1321
+ .bellhop-content-wrapper-sm,
1322
+ .bellhop-content-wrapper-lg,
1323
+ .bellhop-content-wrapper-full {
1324
+ padding: var(--spacing-xl);
1325
+ }
1326
+
1327
+ .bellhop-content-wrapper h1,
1328
+ .bellhop-content-wrapper-sm h1,
1329
+ .bellhop-content-wrapper-lg h1,
1330
+ .bellhop-content-wrapper-full h1 {
1331
+ font-size: var(--text-2xl-size);
1332
+ line-height: var(--text-2xl-line);
1333
+ }
1334
+ }
1335
+ @media (max-width: 480px) {
1336
+ .bellhop-content-wrapper,
1337
+ .bellhop-content-wrapper-sm,
1338
+ .bellhop-content-wrapper-lg,
1339
+ .bellhop-content-wrapper-full {
1340
+ padding: var(--spacing-md);
1341
+ }
1342
+
1343
+ .bellhop-content-wrapper h1,
1344
+ .bellhop-content-wrapper-sm h1,
1345
+ .bellhop-content-wrapper-lg h1,
1346
+ .bellhop-content-wrapper-full h1 {
1347
+ font-size: var(--text-xl-size);
1348
+ line-height: var(--text-xl-line);
1349
+ }
1350
+ }
1351
+ /* ==========================================================================
1352
+ BELLHOPOS ANGULAR LIBRARY STYLES
1353
+ Main entry point for all Bellhop design system styles
1354
+ ========================================================================== */
1355
+ /* Import Google Fonts - Inter and Material Symbols */
1356
+ /* Import all Bellhop design system styles */
1357
+ /* ==========================================================================
1358
+ GLOBAL RESETS AND DEFAULTS
1359
+ ========================================================================== */
1360
+ /* Reset the outline for all focusable elements when a mouse is used. */
1361
+ *:focus:not(:focus-visible) {
1362
+ outline: none;
1363
+ }
1364
+ /* Apply a custom outline that will only appear during keyboard navigation. */
1365
+ *:focus-visible {
1366
+ outline: 2px solid var(--color-brand-500);
1367
+ outline-offset: 2px;
1368
+ }
1369
+ /* Ensure focus is visible on interactive elements */
1370
+ button:focus-visible,
1371
+ input:focus-visible,
1372
+ select:focus-visible,
1373
+ textarea:focus-visible,
1374
+ a:focus-visible,
1375
+ [tabindex]:focus-visible {
1376
+ outline: 2px solid var(--color-brand-500);
1377
+ outline-offset: 2px;
1378
+ }
1379
+ /* ==========================================================================
1380
+ UTILITY CLASSES
1381
+ ========================================================================== */
1382
+ /* Prevent text selection */
1383
+ .no-select {
1384
+ user-select: none;
1385
+ -webkit-user-select: none;
1386
+ -moz-user-select: none;
1387
+ -ms-user-select: none;
1388
+ }
1389
+ /* Screen reader only content */
1390
+ .sr-only {
1391
+ position: absolute;
1392
+ width: 1px;
1393
+ height: 1px;
1394
+ padding: 0;
1395
+ margin: -1px;
1396
+ overflow: hidden;
1397
+ clip: rect(0, 0, 0, 0);
1398
+ white-space: nowrap;
1399
+ border: 0;
1400
+ }
1401
+ /* ==========================================================================
1402
+ CONTENT LAYOUT UTILITIES
1403
+ ========================================================================== */
1404
+ /* Content Container - Main flex container for page navigation and content area */
1405
+ .bellhop-content-container {
1406
+ display: flex;
1407
+ flex: 1;
1408
+ overflow: hidden;
1409
+ background-color: var(--color-white);
1410
+ }
1411
+ /* Content Area - Scrollable main content region */
1412
+ .bellhop-content-area {
1413
+ flex: 1;
1414
+ overflow-y: auto;
1415
+ overflow-x: hidden;
1416
+ background-color: var(--color-white);
1417
+ }
1418
+ /* Content Wrapper - Inner content container with padding and max-width */
1419
+ .bellhop-content-wrapper {
1420
+ padding: var(--spacing-4xl);
1421
+ margin: 0 auto;
1422
+ font-family: var(--font-inter);
1423
+ }
1424
+ /* Content Wrapper Variants */
1425
+ .bellhop-content-wrapper-sm {
1426
+ padding: var(--spacing-2xl);
1427
+ margin: 0 auto;
1428
+ font-family: var(--font-inter);
1429
+ }
1430
+ .bellhop-content-wrapper-lg {
1431
+ padding: var(--spacing-5xl);
1432
+ margin: 0 auto;
1433
+ font-family: var(--font-inter);
1434
+ }
1435
+ .bellhop-content-wrapper-full {
1436
+ padding: var(--spacing-4xl);
1437
+ max-width: none;
1438
+ margin: 0;
1439
+ font-family: var(--font-inter);
1440
+ }
1441
+ /* Content Typography - Standard content headings and text */
1442
+ .bellhop-content-wrapper h1,
1443
+ .bellhop-content-wrapper-sm h1,
1444
+ .bellhop-content-wrapper-lg h1,
1445
+ .bellhop-content-wrapper-full h1 {
1446
+ font-size: var(--text-3xl-size);
1447
+ font-weight: var(--weight-bold);
1448
+ line-height: var(--text-3xl-line);
1449
+ color: var(--color-neutral-800);
1450
+ margin-bottom: var(--spacing-md);
1451
+ }
1452
+ .bellhop-content-wrapper p,
1453
+ .bellhop-content-wrapper-sm p,
1454
+ .bellhop-content-wrapper-lg p,
1455
+ .bellhop-content-wrapper-full p {
1456
+ font-size: var(--text-md-size);
1457
+ font-weight: var(--weight-regular);
1458
+ line-height: var(--text-md-line);
1459
+ color: var(--color-neutral-600);
1460
+ margin-bottom: var(--spacing-2xl);
1461
+ }
1462
+ /* Responsive adjustments for content wrappers */
1463
+ @media (max-width: 768px) {
1464
+ .bellhop-content-wrapper,
1465
+ .bellhop-content-wrapper-sm,
1466
+ .bellhop-content-wrapper-lg,
1467
+ .bellhop-content-wrapper-full {
1468
+ padding: var(--spacing-xl);
1469
+ }
1470
+
1471
+ .bellhop-content-wrapper h1,
1472
+ .bellhop-content-wrapper-sm h1,
1473
+ .bellhop-content-wrapper-lg h1,
1474
+ .bellhop-content-wrapper-full h1 {
1475
+ font-size: var(--text-2xl-size);
1476
+ line-height: var(--text-2xl-line);
1477
+ }
1478
+ }
1479
+ @media (max-width: 480px) {
1480
+ .bellhop-content-wrapper,
1481
+ .bellhop-content-wrapper-sm,
1482
+ .bellhop-content-wrapper-lg,
1483
+ .bellhop-content-wrapper-full {
1484
+ padding: var(--spacing-md);
1485
+ }
1486
+
1487
+ .bellhop-content-wrapper h1,
1488
+ .bellhop-content-wrapper-sm h1,
1489
+ .bellhop-content-wrapper-lg h1,
1490
+ .bellhop-content-wrapper-full h1 {
1491
+ font-size: var(--text-xl-size);
1492
+ line-height: var(--text-xl-line);
1493
+ }
1494
+ }
1495
+ /*
1496
+ * Note: Component styles are no longer included here.
1497
+ * All component styles are bundled with their respective Stencil components
1498
+ * in the @actabldesign/bellhop-core package using Shadow DOM encapsulation.
1499
+ *
1500
+ * This package now provides only:
1501
+ * - Design tokens (colors, typography, spacing, shadows, radius, etc.)
1502
+ * - Base normalization
1503
+ * - Layout utilities
1504
+ * - Animations
1505
+ */