@howssatoshi/quantumcss 1.8.0 → 1.11.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 (49) hide show
  1. package/README.md +11 -10
  2. package/dist/quantum.min.css +10 -1
  3. package/examples/admin-panel.html +317 -600
  4. package/examples/analytics-dashboard.html +136 -299
  5. package/examples/blog.css +297 -0
  6. package/examples/blog.html +216 -0
  7. package/examples/chat-messaging.html +43 -70
  8. package/examples/email-client.css +582 -0
  9. package/examples/email-client.html +432 -0
  10. package/examples/gaming-portal.css +352 -0
  11. package/examples/gaming-portal.html +239 -0
  12. package/examples/images/eric.png +0 -0
  13. package/examples/index.html +342 -259
  14. package/examples/kitchen-sink.html +332 -94
  15. package/examples/music-streaming.html +32 -91
  16. package/examples/news.html +199 -0
  17. package/examples/nova-shop.css +984 -0
  18. package/examples/portfolio.html +235 -0
  19. package/examples/shopping.html +812 -0
  20. package/examples/starlight.html +11 -9
  21. package/examples/task.md +12 -0
  22. package/examples/travel.html +514 -0
  23. package/examples/video-streaming.html +310 -92
  24. package/package.json +9 -3
  25. package/src/cli.js +5 -5
  26. package/src/defaults.js +19 -16
  27. package/src/generator.js +12 -3
  28. package/src/starlight.js +20 -15
  29. package/src/styles/quantum-animations.css +13 -13
  30. package/src/styles/quantum-base.css +110 -58
  31. package/src/styles/quantum-components.css +2379 -349
  32. package/src/styles/quantum-icons.css +345 -0
  33. package/src/styles/starlight.css +2702 -1054
  34. package/dist/index.html +0 -232
  35. package/dist/quantum.css +0 -2374
  36. package/examples/blog-template.html +0 -287
  37. package/examples/email-template.html +0 -712
  38. package/examples/gaming-template.html +0 -340
  39. package/examples/gradient-test.html +0 -124
  40. package/examples/news-template.html +0 -317
  41. package/examples/portfolio-resume.html +0 -647
  42. package/examples/shopping/images/headset.jpg +0 -0
  43. package/examples/shopping/images/sneakers.jpg +0 -0
  44. package/examples/shopping/images/windbreaker.jpg +0 -0
  45. package/examples/shopping/index.html +0 -338
  46. package/examples/theme-test.html +0 -159
  47. package/examples/travel/index.html +0 -275
  48. package/examples/verify_fixes.html +0 -52
  49. package/examples/verify_presets.html +0 -32
@@ -1,1157 +1,1949 @@
1
- /*!
2
- * QuantumCSS Theme Layer
3
- * Theme: Starlight UI (Premium)
4
- *
5
- * ROLE:
6
- * 1. Injects brand-specific aesthetics.
7
- * 2. Maps brand tokens to semantic core layer.
8
- * 3. Defines theme-specific layout extensions.
9
- */
10
-
11
- /* 1. Starlight Theme Layer (Brand Mapping) */
12
- :root {
13
- --q-color-primary: var(--q-color-starlight-blue);
14
- --q-color-primary-hover: var(--q-color-starlight-peach);
15
- --q-color-link: var(--q-color-starlight-blue);
16
- --q-color-link-hover: var(--q-color-starlight-peach);
17
- --q-gradient-primary: linear-gradient(135deg, var(--q-color-starlight-peach) 0%, var(--q-color-starlight-blue) 100%);
18
- --q-color-text-inverse: #000;
19
- }
20
-
21
- html[data-theme="light"] {
22
- --q-color-text-inverse: #fff;
23
- }
1
+ /* Starlight UI - Premium Components */
24
2
 
25
3
  /* Links */
26
4
  a {
27
- color: var(--q-color-link);
28
- text-decoration: none;
29
- transition: all var(--q-duration-base) var(--q-ease-in-out);
30
- position: relative;
5
+ color: var(--q-color-starlight-blue);
6
+ text-decoration: none;
7
+ transition: all var(--q-transition-base);
8
+ position: relative;
31
9
  }
32
10
 
33
11
  a:hover {
34
- color: var(--q-color-link-hover);
35
- text-shadow: 0 0 8px color-mix(in srgb, var(--q-color-link-hover), transparent 60%);
12
+ color: var(--q-color-starlight-peach);
13
+ text-shadow: 0 0 8px rgb(255 179 138 / 40%);
36
14
  }
37
15
 
38
16
  a:active {
39
- transform: scale(0.98);
17
+ transform: scale(0.98);
18
+ }
19
+
20
+ html[data-theme="light"] a {
21
+ color: #2563eb;
22
+ }
23
+
24
+ html[data-theme="light"] a:hover {
25
+ color: #1d4ed8;
26
+ }
27
+
28
+ h1 {
29
+ font-size: 3rem; /* text-5xl */
30
+ font-weight: 700;
31
+ line-height: 1.25; /* leading-tight */
32
+ letter-spacing: -0.05em; /* tracking-tighter */
33
+ margin: 0;
34
+ white-space: nowrap;
35
+ }
36
+
37
+ @media (min-width: 768px) {
38
+ h1 {
39
+ font-size: 4rem; /* text-7xl */
40
+ }
40
41
  }
41
42
 
42
- /* 2. Starlight Components Refactored to Semantic Tokens */
43
+ /* 1. Starlight Card */
43
44
  .starlight-card {
44
- background: var(--q-color-surface);
45
- border: 1px solid var(--q-color-border);
46
- border-radius: var(--q-radius-2xl);
47
- padding: var(--q-space-10);
48
- backdrop-filter: var(--q-glass-blur);
49
- -webkit-backdrop-filter: var(--q-glass-blur);
50
- position: relative;
51
- transition: border-color var(--q-duration-base) var(--q-ease-in-out),
52
- transform var(--q-duration-base) var(--q-ease-in-out),
53
- background-color var(--q-duration-base) var(--q-ease-in-out);
45
+ background: var(--q-color-surface);
46
+ border: 1px solid var(--q-color-border);
47
+ border-radius: var(--q-radius-2xl);
48
+ padding: var(--q-space-10);
49
+ position: relative;
50
+ transition:
51
+ border-color var(--q-duration-base) var(--q-ease-in-out),
52
+ transform var(--q-duration-base) var(--q-ease-in-out),
53
+ background-color var(--q-duration-base) var(--q-ease-in-out);
54
54
  }
55
55
 
56
56
  .starlight-card:hover {
57
- background-color: var(--q-color-surface-elevated);
57
+ background-color: var(--q-color-surface-elevated);
58
58
  }
59
59
 
60
60
  /* ... existing code ... */
61
61
 
62
62
  .nav-glass:hover {
63
- background-color: rgba(255, 255, 255, 0.1);
63
+ background-color: var(--q-color-border-strong);
64
+ }
65
+
66
+ .starlight-nav,
67
+ .starlight-navbar {
68
+ position: sticky;
69
+ top: 0;
70
+ z-index: 1000;
71
+ background: color-mix(in srgb, var(--q-color-bg), transparent 10%);
72
+ backdrop-filter: blur(16px);
73
+ border-bottom: 1px solid var(--q-color-border);
74
+ }
75
+
76
+ .starlight-navbar .container {
77
+ max-width: 1280px;
78
+ margin: 0 auto;
79
+ padding: 0 1.5rem;
80
+ height: 6rem;
81
+ display: flex;
82
+ align-items: center;
83
+ justify-content: space-between;
84
+ }
85
+
86
+ .starlight-navbar .left {
87
+ display: flex;
88
+ align-items: center;
89
+ gap: 1rem;
90
+ }
91
+
92
+ .starlight-navbar .logo {
93
+ width: 2rem;
94
+ height: 2rem;
95
+ border-radius: 9999px;
96
+ background: linear-gradient(
97
+ 135deg,
98
+ var(--q-color-starlight-peach) 0,
99
+ var(--q-color-starlight-blue) 100%
100
+ );
101
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
102
+ }
103
+
104
+ html[data-theme="light"] .starlight-navbar .logo {
105
+ background: linear-gradient(
106
+ 135deg,
107
+ var(--q-color-starlight-peach) 40%,
108
+ var(--q-color-starlight-blue) 100%
109
+ ) !important;
110
+ }
111
+
112
+ .starlight-navbar .banner {
113
+ font-size: 1.25rem;
114
+ font-weight: 700;
115
+ background: linear-gradient(
116
+ to right,
117
+ var(--q-color-starlight-peach),
118
+ var(--q-color-starlight-blue)
119
+ );
120
+ -webkit-background-clip: text;
121
+ -webkit-text-fill-color: transparent;
122
+ }
123
+
124
+ html[data-theme="light"] .starlight-navbar .banner {
125
+ background: linear-gradient(
126
+ 135deg,
127
+ var(--q-color-starlight-peach) 40%,
128
+ var(--q-color-starlight-blue) 100%
129
+ ) !important;
130
+ -webkit-background-clip: text !important;
131
+ -webkit-text-fill-color: transparent !important;
132
+ }
133
+
134
+ .starlight-navbar .right {
135
+ display: none;
136
+ }
137
+
138
+ @media (min-width: 768px) {
139
+ .starlight-navbar .right {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 2rem;
143
+ }
144
+ }
145
+
146
+ .starlight-navbar .right a {
147
+ font-size: 0.875rem;
148
+ font-weight: 500;
149
+ color: inherit;
150
+ text-decoration: none;
151
+ transition: color 0.3s;
152
+ }
153
+
154
+ .starlight-navbar .right a:hover {
155
+ color: var(--accent);
156
+ }
157
+
158
+ .starlight-navbar .right button {
159
+ background-color: var(--accent);
160
+ color: #000;
161
+ padding: 0.5rem 1rem;
162
+ border-radius: 0.5rem;
163
+ font-size: 0.875rem;
164
+ font-weight: 600;
165
+ border: none;
166
+ cursor: pointer;
167
+ }
168
+
169
+ .nav-container {
170
+ max-width: 1200px;
171
+ margin: 0 auto;
172
+ padding: 1.25rem 1.5rem;
173
+ display: flex;
174
+ justify-content: space-between;
175
+ align-items: center;
176
+ width: 100%;
177
+ }
178
+
179
+ .nav-desktop {
180
+ display: none;
181
+ }
182
+ @media (min-width: 768px) {
183
+ .nav-desktop {
184
+ display: flex;
185
+ align-items: center;
186
+ }
187
+ }
188
+
189
+ .nav-list {
190
+ display: flex;
191
+ list-style: none;
192
+ gap: 2rem;
193
+ margin: 0;
194
+ padding: 0;
195
+ }
196
+
197
+ .nav-list.vertical {
198
+ flex-direction: column;
199
+ gap: 0.5rem;
200
+ }
201
+
202
+ .nav-link {
203
+ font-size: 0.875rem;
204
+ font-weight: 600;
205
+ color: var(--q-text-secondary);
206
+ transition: all 0.2s ease;
207
+ position: relative;
208
+ padding: 0.5rem 0;
209
+ display: inline-flex;
210
+ align-items: center;
211
+ text-decoration: none;
212
+ }
213
+
214
+ .nav-link:hover {
215
+ color: var(--q-color-starlight-blue);
216
+ }
217
+
218
+ .nav-link.active {
219
+ color: var(--q-color-starlight-blue);
220
+ }
221
+
222
+ .nav-list.vertical .nav-link {
223
+ width: 100%;
224
+ padding: 0.75rem 1rem;
225
+ border-radius: 0.5rem;
226
+ }
227
+
228
+ .nav-list.vertical .nav-link:hover {
229
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
230
+ color: var(--q-color-starlight);
231
+ }
232
+
233
+ .nav-list.vertical .nav-link.active {
234
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
235
+ color: var(--q-color-starlight);
236
+ border-left: 3px solid var(--q-color-starlight);
237
+ }
238
+
239
+ html[data-theme="light"] .nav-list.vertical .nav-link.active {
240
+ background: rgba(0, 0, 0, 0.05);
241
+ border-left-color: var(--q-color-starlight-blue);
242
+ }
243
+
244
+ /* Override nav-header/nav-links hover/active to match aside-nav */
245
+ .nav-links > a:hover,
246
+ .nav-dropdown summary:hover {
247
+ color: var(--q-color-starlight);
248
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
249
+ }
250
+
251
+ .nav-dropdown[open] > summary {
252
+ color: var(--q-color-starlight);
253
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
254
+ }
255
+
256
+ .nav-dropdown-panel a:hover {
257
+ color: var(--q-color-starlight);
258
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
259
+ }
260
+
261
+ .nav-link::after {
262
+ content: "";
263
+ position: absolute;
264
+ bottom: 0;
265
+ left: 50%;
266
+ width: 0;
267
+ height: 2px;
268
+ background: var(--q-color-starlight-blue);
269
+ transition: all var(--q-duration-slow) var(--q-ease-in-out);
270
+ transform: translateX(-50%);
271
+ }
272
+
273
+ .nav-link:hover::after,
274
+ .nav-link.active::after {
275
+ width: 80%;
276
+ box-shadow: 0 0 10px var(--q-color-starlight-glow);
277
+ }
278
+
279
+ /* Mobile Menu */
280
+ .nav-menu-mobile {
281
+ display: none;
282
+ position: absolute;
283
+ top: 6rem;
284
+ left: 0;
285
+ width: 100%;
286
+ background: rgba(2, 6, 23, 0.95);
287
+ backdrop-filter: blur(12px);
288
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
289
+ z-index: 40;
290
+ }
291
+
292
+ .nav-menu-mobile ul {
293
+ list-style: none;
294
+ padding: 2rem 1.5rem;
295
+ margin: 0;
296
+ display: flex;
297
+ flex-direction: column;
298
+ gap: 1.5rem;
299
+ }
300
+
301
+ .nav-menu-mobile ul {
302
+ list-style: none;
303
+ margin: 0;
304
+ padding: 0;
305
+ display: flex;
306
+ flex-direction: column;
307
+ gap: 0.5rem;
308
+ }
309
+
310
+ .nav-menu-mobile li {
311
+ width: 100%;
312
+ }
313
+
314
+ .nav-menu-mobile a {
315
+ display: block;
316
+ width: 100%;
317
+ color: var(--primary);
318
+ text-decoration: none;
319
+ font-weight: 500;
320
+ font-size: 1.125rem;
321
+ padding: 0.75rem 1rem;
322
+ border-radius: 0.5rem;
323
+ transition: all 0.3s;
324
+ position: relative;
325
+ }
326
+
327
+ .nav-menu-mobile a::after {
328
+ content: "";
329
+ position: absolute;
330
+ bottom: 0;
331
+ left: 50%;
332
+ width: 0;
333
+ height: 2px;
334
+ background: var(--accent);
335
+ transition: all 0.4s ease-in-out;
336
+ transform: translateX(-50%);
337
+ }
338
+
339
+ .nav-menu-mobile a:hover {
340
+ background: var(--highlight);
341
+ color: var(--accent);
342
+ }
343
+
344
+ .nav-menu-mobile a:hover::after {
345
+ width: 80%;
346
+ box-shadow: 0 0 10px var(--accent-glow);
347
+ }
348
+
349
+ .nav-menu-mobile li:last-child {
350
+ padding-top: 1rem;
351
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
352
+ }
353
+
354
+ .nav-menu-mobile button {
355
+ width: 100%;
356
+ }
357
+
358
+ /* Toggle logic - assuming 'active' class */
359
+ .nav-menu-mobile.active {
360
+ display: block;
361
+ }
362
+
363
+ .starlight-navbar .right button {
364
+ padding: 0.5rem 1rem;
365
+ }
366
+
367
+ /* 10. Timeline Component */
368
+ .starlight-timeline {
369
+ position: relative;
370
+ padding: 2rem 0;
371
+ }
372
+
373
+ .starlight-timeline::before {
374
+ content: "";
375
+ position: absolute;
376
+ left: 0;
377
+ top: 0;
378
+ bottom: 0;
379
+ width: 2px;
380
+ background: linear-gradient(
381
+ to bottom,
382
+ var(--q-color-starlight-blue),
383
+ transparent
384
+ );
385
+ }
386
+
387
+ @media (min-width: 768px) {
388
+ .starlight-timeline::before {
389
+ left: 50%;
390
+ transform: translateX(-50%);
391
+ }
392
+ }
393
+
394
+ .timeline-item {
395
+ position: relative;
396
+ margin-bottom: 4rem;
397
+ padding-left: 2.5rem;
398
+ }
399
+
400
+ @media (min-width: 768px) {
401
+ .timeline-item {
402
+ width: 50%;
403
+ padding-left: 0;
404
+ }
405
+
406
+ .timeline-item:nth-child(odd) {
407
+ padding-right: 3.5rem;
408
+ text-align: right;
409
+ }
410
+
411
+ .timeline-item:nth-child(even) {
412
+ margin-left: 50%;
413
+ padding-left: 3.5rem;
414
+ }
415
+ }
416
+
417
+ .timeline-dot {
418
+ position: absolute;
419
+ left: -5px;
420
+ top: 0.5rem;
421
+ width: 12px;
422
+ height: 12px;
423
+ border-radius: 50%;
424
+ background: var(--q-color-starlight-blue);
425
+ box-shadow: 0 0 10px var(--q-color-starlight-glow);
426
+ z-index: 1;
427
+ }
428
+
429
+ @media (min-width: 768px) {
430
+ .timeline-dot {
431
+ left: auto;
432
+ right: -6px;
433
+ }
434
+
435
+ .timeline-item:nth-child(even) .timeline-dot {
436
+ left: -6px;
437
+ right: auto;
438
+ }
64
439
  }
65
440
 
66
- .starlight-nav {
67
- position: relative;
441
+ .timeline-content {
442
+ background: var(--q-color-surface);
443
+ border: 1px solid var(--q-color-border);
444
+ border-radius: var(--q-radius-xl);
445
+ padding: 1.5rem;
446
+ transition: all 0.3s ease;
447
+ }
448
+
449
+ .timeline-content:hover {
450
+ border-color: var(--q-color-starlight-blue);
451
+ transform: translateY(-2px);
452
+ }
453
+
454
+ .timeline-date {
455
+ font-size: 0.75rem;
456
+ font-weight: 900;
457
+ color: var(--q-color-starlight-blue);
458
+ text-transform: uppercase;
459
+ letter-spacing: 0.1em;
460
+ margin-bottom: 0.5rem;
461
+ display: block;
68
462
  }
69
463
 
70
464
  html[data-theme="light"] .nav-glass:hover {
71
- background-color: rgba(255, 255, 255, 0.98);
465
+ background-color: rgba(255, 255, 255, 0.98);
72
466
  }
73
467
 
74
468
  html[data-theme="light"] .starlight-card {
75
- background: var(--q-light-card-bg);
76
- border-color: var(--q-light-card-border);
77
- color: #334155;
78
- box-shadow: 0 4px 20px rgb(0 0 0 / 2%);
469
+ background: var(--q-light-card-bg);
470
+ border-color: var(--q-light-card-border);
471
+ color: #334155;
472
+ box-shadow: 0 4px 20px rgb(0 0 0 / 2%);
79
473
  }
80
474
 
81
475
  /* 2. Checkboxes & Radio Buttons */
82
- .checkbox-starlight, .radio-starlight {
83
- appearance: none;
84
- width: 1.25rem;
85
- height: 1.25rem;
86
- background: rgb(255 255 255 / 5%);
87
- border: 1px solid rgb(255 255 255 / 20%);
88
- border-radius: 0.375rem;
89
- cursor: pointer;
90
- transition: all var(--q-duration-base) var(--q-ease-in-out);
91
- display: inline-flex;
92
- align-items: center;
93
- justify-content: center;
94
- position: relative;
95
- }
96
-
97
- .radio-starlight { border-radius: 50%; }
476
+ .checkbox-starlight,
477
+ .radio-starlight {
478
+ appearance: none;
479
+ width: 1.25rem;
480
+ height: 1.25rem;
481
+ background: var(--q-color-border);
482
+ border: 1px solid rgb(255 255 255 / 20%);
483
+ border-radius: 0.375rem;
484
+ cursor: pointer;
485
+ transition: all 0.2s ease;
486
+ display: inline-flex;
487
+ align-items: center;
488
+ justify-content: center;
489
+ position: relative;
490
+ }
491
+
492
+ .radio-starlight {
493
+ border-radius: 50%;
494
+ }
98
495
 
99
496
  html[data-theme="light"] .checkbox-starlight,
100
497
  html[data-theme="light"] .radio-starlight {
101
- border-color: rgb(0 0 0 / 20%);
102
- background: rgb(0 0 0 / 5%);
498
+ border-color: rgb(0 0 0 / 20%);
499
+ background: rgb(0 0 0 / 5%);
103
500
  }
104
501
 
105
- .checkbox-starlight:checked, .radio-starlight:checked {
106
- background: var(--q-color-starlight-blue);
107
- border-color: var(--q-color-starlight-blue);
502
+ .checkbox-starlight:checked,
503
+ .radio-starlight:checked {
504
+ background: var(--q-color-starlight-blue);
505
+ border-color: var(--q-color-starlight-blue);
108
506
  }
109
507
 
110
508
  .checkbox-starlight:checked::after {
111
- content: '';
112
- color: black;
113
- font-size: 0.8rem;
114
- font-weight: 900;
509
+ content: "";
510
+ color: black;
511
+ font-size: 0.8rem;
512
+ font-weight: 900;
115
513
  }
116
514
 
117
515
  .radio-starlight:checked::after {
118
- content: '';
119
- width: 0.5rem;
120
- height: 0.5rem;
121
- background: black;
122
- border-radius: 50%;
516
+ content: "";
517
+ width: 0.5rem;
518
+ height: 0.5rem;
519
+ background: black;
520
+ border-radius: 50%;
123
521
  }
124
522
 
125
523
  /* 3. Tooltips */
126
524
  .has-tooltip {
127
- position: relative;
525
+ position: relative;
128
526
  }
129
527
 
130
528
  .has-tooltip .tooltip {
131
- position: absolute;
132
- bottom: 125%;
133
- left: 50%;
134
- transform: translateX(-50%) translateY(10px);
135
- padding: 0.5rem 0.75rem;
136
- background-color: rgb(10 10 30 / 98%);
137
- backdrop-filter: blur(12px);
138
- border: 1px solid rgb(0 212 255 / 30%);
139
- border-radius: 0.5rem;
140
- color: #f1f5f9;
141
- font-size: 0.75rem;
142
- white-space: nowrap;
143
- pointer-events: none;
144
- opacity: 0;
145
- transition: all var(--q-duration-base) var(--q-ease-in-out);
146
- z-index: 800;
147
- box-shadow: 0 4px 15px rgb(0 0 0 / 40%);
529
+ position: absolute;
530
+ bottom: 125%;
531
+ left: 50%;
532
+ transform: translateX(-50%) translateY(10px);
533
+ padding: 0.5rem 0.75rem;
534
+ background-color: rgb(10 10 30 / 98%);
535
+ backdrop-filter: blur(12px);
536
+ border: 1px solid rgb(0 212 255 / 30%);
537
+ border-radius: 0.5rem;
538
+ color: #f1f5f9;
539
+ font-size: 0.75rem;
540
+ white-space: nowrap;
541
+ pointer-events: none;
542
+ opacity: 0;
543
+ transition: all 0.2s ease;
544
+ z-index: 800;
545
+ box-shadow: 0 4px 15px rgb(0 0 0 / 40%);
148
546
  }
149
547
 
150
548
  .has-tooltip:hover .tooltip {
151
- opacity: 1;
152
- transform: translateX(-50%) translateY(0);
549
+ opacity: 1;
550
+ transform: translateX(-50%) translateY(0);
153
551
  }
154
552
 
155
553
  /* 4. Starlight Stars (Atmospheric Background) */
156
554
  .starlight-stars {
157
- position: fixed;
158
- top: 0; left: 0; width: 100%; height: 100%;
159
- pointer-events: none;
160
- z-index: 0;
161
- overflow: hidden;
162
- contain: strict;
555
+ position: fixed;
556
+ top: 0;
557
+ left: 0;
558
+ width: 100%;
559
+ height: 100%;
560
+ pointer-events: none;
561
+ z-index: 0;
562
+ background: var(--q-bg-primary);
563
+ overflow: hidden;
564
+ contain: strict;
163
565
  }
164
566
 
165
567
  .star {
166
- position: absolute;
167
- background: white;
168
- border-radius: 50%;
169
- opacity: 0.3;
170
- animation: star-twinkle var(--q-duration, 3s) infinite ease-in-out;
171
- will-change: transform, opacity;
172
- backface-visibility: hidden;
173
- transform: translateZ(0);
568
+ position: absolute;
569
+ background: white;
570
+ border-radius: 50%;
571
+ opacity: 0.3;
572
+ z-index: -1;
573
+ animation: star-twinkle var(--q-duration, 3s) infinite ease-in-out;
574
+ will-change: transform, opacity;
575
+ backface-visibility: hidden;
576
+ transform: translateZ(0);
174
577
  }
175
578
 
176
579
  html[data-theme="light"] .star {
177
- background: var(--q-color-starlight-blue);
178
- opacity: 0.15;
580
+ background: var(--q-color-starlight-blue);
581
+ opacity: 0.15;
582
+ }
583
+
584
+ @keyframes star-twinkle {
585
+ 0%,
586
+ 100% {
587
+ opacity: 0.15;
588
+ transform: scale(0.8);
589
+ }
590
+ 50% {
591
+ opacity: 0.7;
592
+ transform: scale(1.2);
593
+ }
179
594
  }
180
595
 
181
596
  /* 5. Dialog & Overlays */
182
597
  .dialog-overlay {
183
- position: fixed;
184
- inset: 0;
185
- background: rgba(0, 0, 0, 0.6);
186
- backdrop-filter: blur(16px);
187
- -webkit-backdrop-filter: blur(16px);
188
- display: flex;
189
- align-items: center;
190
- justify-content: center;
191
- z-index: 400;
598
+ position: fixed;
599
+ inset: 0;
600
+ background: rgba(0, 0, 0, 0.6);
601
+ backdrop-filter: blur(16px);
602
+ -webkit-backdrop-filter: blur(16px);
603
+ display: flex;
604
+ align-items: center;
605
+ justify-content: center;
606
+ z-index: 400;
192
607
  }
193
608
 
194
609
  .dialog-content {
195
- background-color: rgb(10 10 20 / 98%);
196
- backdrop-filter: blur(20px);
197
- border: 1px solid rgb(255 255 255 / 10%);
198
- border-radius: 1.5rem;
199
- padding: 2.5rem;
200
- max-width: 90%;
201
- width: 600px;
202
- max-height: 85vh;
203
- overflow-y: auto;
204
- box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
205
- position: relative;
206
- }
207
-
208
- .starlight-dialog {
209
- background-color: rgb(10 10 20 / 98%);
210
- backdrop-filter: blur(24px);
211
- -webkit-backdrop-filter: blur(24px);
212
- border: 1px solid rgb(255 255 255 / 10%);
213
- border-radius: 1.5rem;
214
- padding: 3rem;
215
- width: 100%;
216
- max-width: 600px;
217
- max-height: 85vh;
218
- overflow-y: auto;
219
- margin: auto;
220
- position: relative;
221
- box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
610
+ background-color: rgb(10 10 20 / 98%);
611
+ backdrop-filter: blur(20px);
612
+ border: 1px solid var(--q-color-border-strong);
613
+ border-radius: 1.5rem;
614
+ padding: 2.5rem;
615
+ max-width: 90%;
616
+ width: 600px;
617
+ max-height: 85vh;
618
+ overflow-y: auto;
619
+ box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
620
+ position: relative;
621
+ }
622
+
623
+ .dialog {
624
+ background-color: rgb(10 10 20 / 98%);
625
+ backdrop-filter: blur(24px);
626
+ -webkit-backdrop-filter: blur(24px);
627
+ border: 1px solid var(--q-color-border-strong);
628
+ border-radius: 1.5rem;
629
+ padding: 3rem;
630
+ width: 100%;
631
+ max-width: 600px;
632
+ max-height: 85vh;
633
+ overflow-y: auto;
634
+ margin: auto;
635
+ position: relative;
636
+ box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
222
637
  }
223
638
 
224
639
  /* Custom scrollbar for dialogs */
225
640
  .dialog-content::-webkit-scrollbar,
226
- .starlight-dialog::-webkit-scrollbar {
227
- width: 8px;
641
+ .dialog::-webkit-scrollbar {
642
+ width: 8px;
228
643
  }
229
644
 
230
645
  .dialog-content::-webkit-scrollbar-track,
231
- .starlight-dialog::-webkit-scrollbar-track {
232
- background: rgb(255 255 255 / 5%);
233
- border-radius: 4px;
646
+ .dialog::-webkit-scrollbar-track {
647
+ background: var(--q-color-border);
648
+ border-radius: 4px;
234
649
  }
235
650
 
236
651
  .dialog-content::-webkit-scrollbar-thumb,
237
- .starlight-dialog::-webkit-scrollbar-thumb {
238
- background: var(--q-color-starlight-blue, #3b82f6);
239
- border-radius: 4px;
652
+ .dialog::-webkit-scrollbar-thumb {
653
+ background: var(--q-color-starlight-blue, #3b82f6);
654
+ border-radius: 4px;
240
655
  }
241
656
 
242
657
  html[data-theme="light"] .dialog-content::-webkit-scrollbar-track,
243
- html[data-theme="light"] .starlight-dialog::-webkit-scrollbar-track {
244
- background: rgb(0 0 0 / 5%);
658
+ html[data-theme="light"] .dialog::-webkit-scrollbar-track {
659
+ background: rgb(0 0 0 / 5%);
245
660
  }
246
661
 
247
- html[data-theme="light"] .starlight-dialog {
248
- background-color: rgba(248, 250, 252, 0.9);
249
- border-color: rgba(0, 0, 0, 0.1);
250
- color: #1e293b;
251
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
662
+ html[data-theme="light"] .dialog {
663
+ background-color: rgba(248, 250, 252, 0.9);
664
+ border-color: rgba(0, 0, 0, 0.1);
665
+ color: #1e293b;
666
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
252
667
  }
253
668
 
254
669
  .dialog-close {
255
- position: absolute;
256
- top: 1.5rem;
257
- right: 1.5rem;
258
- width: 2rem;
259
- height: 2rem;
260
- border-radius: 50%;
261
- background: rgb(255 255 255 / 5%);
262
- border: 1px solid rgb(255 255 255 / 10%);
263
- color: white;
264
- display: flex;
265
- align-items: center;
266
- justify-content: center;
267
- cursor: pointer;
268
- transition: all var(--q-duration-base) var(--q-ease-in-out);
269
- padding: 0;
670
+ position: absolute;
671
+ top: 1.5rem;
672
+ right: 1.5rem;
673
+ width: 2rem;
674
+ height: 2rem;
675
+ border-radius: 50%;
676
+ background: var(--q-color-border);
677
+ border: 1px solid var(--q-color-border-strong);
678
+ color: white;
679
+ display: flex;
680
+ align-items: center;
681
+ justify-content: center;
682
+ cursor: pointer;
683
+ transition: all 0.2s;
684
+ padding: 0;
270
685
  }
271
686
 
272
687
  html[data-theme="light"] .dialog-close {
273
- background: rgb(0 0 0 / 5%);
274
- border-color: rgb(0 0 0 / 10%);
275
- color: #1e293b;
688
+ background: rgb(0 0 0 / 5%);
689
+ border-color: rgb(0 0 0 / 10%);
690
+ color: #1e293b;
276
691
  }
277
692
 
278
693
  .dialog-close:hover {
279
- background: rgb(255 255 255 / 15%);
280
- border-color: var(--q-color-starlight-blue);
281
- transform: rotate(90deg);
694
+ background: rgb(255 255 255 / 15%);
695
+ border-color: var(--q-color-starlight-blue);
696
+ transform: rotate(90deg);
282
697
  }
283
698
 
284
699
  .form-row {
285
- display: flex;
286
- justify-content: space-between;
287
- align-items: center;
288
- gap: 1rem;
700
+ display: flex;
701
+ justify-content: space-between;
702
+ align-items: center;
703
+ gap: 1rem;
289
704
  }
290
705
 
291
706
  html[data-theme="light"] .dialog-overlay {
292
- background: rgb(255 255 255 / 40%);
707
+ background: rgb(255 255 255 / 40%);
293
708
  }
294
709
 
295
710
  html[data-theme="light"] .dialog-content {
296
- background-color: rgb(255 255 255 / 98%);
297
- border-color: rgb(0 0 0 / 10%);
298
- color: #1e293b;
299
- box-shadow: 0 25px 50px -12px rgb(0 0 0 / 15%);
711
+ background-color: rgb(255 255 255 / 98%);
712
+ border-color: rgb(0 0 0 / 10%);
713
+ color: #1e293b;
714
+ box-shadow: 0 25px 50px -12px rgb(0 0 0 / 15%);
300
715
  }
301
716
 
302
717
  /* 6. Dropdown Menu */
303
718
  .dropdown-menu {
304
- position: absolute;
305
- top: 100%;
306
- left: 0;
307
- background-color: rgba(8, 8, 26, 0.8);
308
- backdrop-filter: blur(16px);
309
- -webkit-backdrop-filter: blur(16px);
310
- border: 1px solid rgba(255, 255, 255, 0.1);
311
- border-radius: 0.75rem;
312
- padding: 0.5rem;
313
- margin-top: 0.5rem;
314
- min-width: 200px;
315
- z-index: 600;
316
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
317
- opacity: 0;
318
- visibility: hidden;
319
- transform: translateY(10px);
320
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
321
- pointer-events: none;
322
- will-change: backdrop-filter, transform, opacity;
719
+ position: absolute;
720
+ top: 100%;
721
+ left: 0;
722
+ background-color: rgba(8, 8, 26, 0.8);
723
+ backdrop-filter: blur(16px);
724
+ -webkit-backdrop-filter: blur(16px);
725
+ border: 1px solid var(--q-color-border-strong);
726
+ border-radius: 0.75rem;
727
+ padding: 0.5rem;
728
+ margin-top: 0.5rem;
729
+ min-width: 200px;
730
+ z-index: 600;
731
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
732
+ opacity: 0;
733
+ visibility: hidden;
734
+ transform: translateY(10px);
735
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
736
+ pointer-events: none;
737
+ will-change: backdrop-filter, transform, opacity;
323
738
  }
324
739
 
325
740
  .dropdown:hover .dropdown-menu,
326
741
  .dropdown.active .dropdown-menu {
327
- opacity: 1;
328
- visibility: visible;
329
- transform: translateY(0);
330
- pointer-events: auto;
331
- backdrop-filter: blur(16px) !important;
332
- -webkit-backdrop-filter: blur(16px) !important;
742
+ opacity: 1;
743
+ visibility: visible;
744
+ transform: translateY(0);
745
+ pointer-events: auto;
746
+ backdrop-filter: blur(16px) !important;
747
+ -webkit-backdrop-filter: blur(16px) !important;
333
748
  }
334
749
 
335
750
  .dropdown-item {
336
- display: block;
337
- width: 100%;
338
- padding: 0.625rem 1rem;
339
- border-radius: 0.5rem;
340
- color: var(--q-text-primary, rgba(255, 255, 255, 0.7));
341
- transition: all var(--q-duration-base) var(--q-ease-in-out);
342
- text-align: left;
343
- background: transparent;
344
- border: none;
345
- cursor: pointer;
751
+ display: block;
752
+ width: 100%;
753
+ padding: 0.625rem 1rem;
754
+ border-radius: 0.5rem;
755
+ color: var(--q-text-primary, rgba(255, 255, 255, 0.7));
756
+ transition: all 0.2s ease;
757
+ text-align: left;
758
+ background: transparent;
759
+ border: none;
760
+ cursor: pointer;
346
761
  }
347
762
 
348
763
  .dropdown-item:hover {
349
- background-color: rgba(0, 212, 255, 0.8);
350
- color: black;
764
+ background-color: var(--q-color-primary);
765
+ color: black;
351
766
  }
352
767
 
353
768
  html[data-theme="light"] .dropdown-menu {
354
- background-color: rgba(255, 255, 255, 0.95) !important;
355
- backdrop-filter: blur(16px) !important;
356
- -webkit-backdrop-filter: blur(16px) !important;
357
- border-color: rgba(0, 0, 0, 0.08);
358
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
769
+ background-color: rgba(255, 255, 255, 0.95) !important;
770
+ backdrop-filter: blur(16px) !important;
771
+ -webkit-backdrop-filter: blur(16px) !important;
772
+ border-color: rgba(0, 0, 0, 0.08);
773
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
359
774
  }
360
775
 
361
776
  html[data-theme="light"] .dropdown-item {
362
- color: #475569;
777
+ color: #475569;
363
778
  }
364
779
 
365
780
  html[data-theme="light"] .dropdown-item:hover {
366
- background-color: var(--q-color-starlight-blue);
367
- color: black;
781
+ background-color: var(--q-color-starlight-blue);
782
+ color: black;
368
783
  }
369
784
 
370
785
  /* 7. Input & Glass Fixes */
371
- .input-starlight, .textarea-starlight {
372
- background-color: rgb(255 255 255 / 4%);
373
- border: 1px solid rgb(255 255 255 / 15%);
374
- border-radius: 0.75rem;
375
- color: inherit;
376
- width: 100%;
786
+ .input-starlight,
787
+ .textarea-starlight,
788
+ .select-starlight {
789
+ background-color: rgb(255 255 255 / 4%);
790
+ border: 1px solid rgb(255 255 255 / 15%);
791
+ border-radius: 0.75rem;
792
+ color: inherit;
793
+ width: 100%;
794
+ padding: 0.75rem 1.25rem;
795
+ }
796
+
797
+ .select-starlight:hover {
798
+ background-color: rgb(255 255 255 / 8%);
799
+ border-color: var(--q-color-starlight-blue);
800
+ }
801
+
802
+ textarea.input-starlight,
803
+ .textarea-starlight {
804
+ min-height: 120px;
805
+ display: block;
377
806
  }
378
807
 
379
- textarea.input-starlight, .textarea-starlight {
380
- min-height: 120px;
381
- display: block;
808
+ html[data-theme="light"] .input-starlight,
809
+ html[data-theme="light"] .textarea-starlight,
810
+ html[data-theme="light"] .select-starlight {
811
+ background-color: #fff;
812
+ border-color: #cbd5e1;
813
+ }
814
+
815
+ .input-starlight:focus,
816
+ .textarea-starlight:focus,
817
+ .select-starlight:focus {
818
+ outline: none;
819
+ box-shadow:
820
+ 0 0 0 2px var(--q-color-starlight-deep),
821
+ 0 0 0 4px var(--q-color-starlight-blue);
822
+ border-color: var(--q-color-starlight-blue);
823
+ }
824
+
825
+ html[data-theme="light"] .input-starlight:focus,
826
+ html[data-theme="light"] .textarea-starlight:focus,
827
+ html[data-theme="light"] .select-starlight:focus {
828
+ box-shadow:
829
+ 0 0 0 2px var(--q-light-bg),
830
+ 0 0 0 4px rgb(59 130 246 / 40%);
831
+ border-color: #3b82f6;
832
+ }
833
+
834
+ .glass {
835
+ background: rgba(255, 255, 255, 0.03);
836
+ backdrop-filter: blur(12px);
837
+ -webkit-backdrop-filter: blur(12px);
838
+ border: 1px solid rgba(255, 255, 255, 0.05);
839
+ box-shadow: 0 0 30px rgba(0, 212, 255, 0.25);
840
+ transition: all 0.3s ease;
841
+ border-radius: 1rem;
842
+ padding: 1.5rem;
382
843
  }
383
844
 
384
- html[data-theme="light"] .input-starlight,
385
- html[data-theme="light"] .textarea-starlight {
386
- background-color: #fff;
387
- border-color: #cbd5e1;
845
+ .glass:hover {
846
+ border-color: var(--q-color-starlight-blue);
847
+ box-shadow: 0 0 40px rgba(0, 212, 255, 0.4);
388
848
  }
389
849
 
390
850
  html[data-theme="light"] .glass {
391
- background-color: rgba(255, 255, 255, 0.5);
392
- border-color: rgba(0, 0, 0, 0.1);
851
+ background-color: rgba(255, 255, 255, 0.8);
852
+ border-color: rgba(0, 0, 0, 0.1);
853
+ box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.07);
854
+ }
855
+
856
+ html[data-theme="light"] .glass:hover {
857
+ border-color: var(--q-color-starlight-blue);
858
+ box-shadow:
859
+ 0 8px 32px 0 rgba(31, 38, 135, 0.1),
860
+ 0 0 15px rgba(0, 212, 255, 0.15);
861
+ }
862
+
863
+ /* Glass Blue Glow variant */
864
+ .glow-blue {
865
+ box-shadow:
866
+ 0 0 30px rgba(0, 212, 255, 0.35),
867
+ 0 0 60px rgba(0, 212, 255, 0.15);
868
+ }
869
+
870
+ .glow-blue:hover {
871
+ box-shadow:
872
+ 0 0 40px rgba(0, 212, 255, 0.5),
873
+ 0 0 80px rgba(0, 212, 255, 0.2);
393
874
  }
394
875
 
395
876
  /* 9. Code Interface Window */
396
877
  .code-window {
397
- background: rgb(0 0 0 / 40%);
398
- backdrop-filter: blur(20px);
399
- -webkit-backdrop-filter: blur(20px);
400
- border: 1px solid rgb(255 255 255 / 10%);
401
- border-radius: var(--q-radius-xl);
402
- overflow: hidden;
403
- box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
878
+ background: rgb(0 0 0 / 40%);
879
+ backdrop-filter: blur(20px);
880
+ -webkit-backdrop-filter: blur(20px);
881
+ border: 1px solid var(--q-color-border-strong);
882
+ border-radius: var(--q-radius-xl);
883
+ overflow: hidden;
884
+ box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
404
885
  }
405
886
 
406
887
  .code-window-header {
407
- background: rgb(255 255 255 / 5%);
408
- border-bottom: 1px solid rgb(255 255 255 / 5%);
409
- padding: 1rem 1.5rem;
410
- display: flex;
411
- align-items: center;
412
- justify-content: space-between;
888
+ background: var(--q-color-border);
889
+ border-bottom: 1px solid var(--q-color-border);
890
+ padding: 1rem 1.5rem;
891
+ display: flex;
892
+ align-items: center;
893
+ justify-content: space-between;
413
894
  }
414
895
 
415
896
  .code-window-controls {
416
- display: flex;
417
- gap: 0.5rem;
897
+ display: flex;
898
+ gap: 0.5rem;
418
899
  }
419
900
 
420
901
  .code-window-dot {
421
- width: 0.75rem;
422
- height: 0.75rem;
423
- border-radius: 50%;
424
- opacity: 0.6;
902
+ width: 0.75rem;
903
+ height: 0.75rem;
904
+ border-radius: 50%;
905
+ opacity: 0.6;
906
+ }
907
+
908
+ .code-window-dot:nth-child(1) {
909
+ background: #ff5f56;
910
+ }
911
+ .code-window-dot:nth-child(2) {
912
+ background: #ffbd2e;
913
+ }
914
+ .code-window-dot:nth-child(3) {
915
+ background: #27c93f;
425
916
  }
426
917
 
427
918
  .code-window-title {
428
- font-size: 0.65rem;
429
- font-weight: 800;
430
- text-transform: uppercase;
431
- letter-spacing: 0.15em;
432
- color: rgb(255 255 255 / 40%);
919
+ font-size: 0.65rem;
920
+ font-weight: 800;
921
+ text-transform: uppercase;
922
+ letter-spacing: 0.15em;
923
+ color: rgb(255 255 255 / 40%);
924
+ }
925
+
926
+ pre {
927
+ padding: 2rem;
928
+ font-size: 0.875rem;
929
+ overflow-x: auto;
930
+ background: rgba(255, 255, 255, 0.05);
931
+ margin: 0;
932
+ }
933
+
934
+ code {
935
+ font-family:
936
+ ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
937
+ "Liberation Mono", "Courier New", monospace;
433
938
  }
434
939
 
435
940
  html[data-theme="light"] .code-window {
436
- background: #f8fafc;
437
- border-color: #e2e8f0;
438
- box-shadow: 0 10px 30px rgb(0 0 0 / 5%);
941
+ background: #f8fafc;
942
+ border-color: #e2e8f0;
943
+ box-shadow: 0 10px 30px rgb(0 0 0 / 5%);
439
944
  }
440
945
 
441
946
  html[data-theme="light"] .code-window-header {
442
- background: #f1f5f9;
443
- border-color: #e2e8f0;
947
+ background: #f1f5f9;
948
+ border-color: #e2e8f0;
444
949
  }
445
950
 
446
951
  html[data-theme="light"] .code-window-title {
447
- color: #94a3b8;
952
+ color: #94a3b8;
448
953
  }
449
954
 
450
955
  /* 10. Starlight Accordion */
451
- .accordion-starlight.accordion-item {
452
- background: rgb(255 255 255 / 2%);
453
- backdrop-filter: blur(12px);
454
- -webkit-backdrop-filter: blur(12px);
455
- border: 1px solid rgb(255 255 255 / 8%);
456
- border-radius: var(--q-radius-xl);
457
- margin-bottom: var(--q-space-4);
458
- transition: all var(--q-transition-base);
459
- position: relative;
956
+ .accordion.accordion-item {
957
+ background: rgb(255 255 255 / 2%);
958
+ backdrop-filter: blur(12px);
959
+ -webkit-backdrop-filter: blur(12px);
960
+ border: 1px solid rgb(255 255 255 / 8%);
961
+ border-radius: var(--q-radius-xl);
962
+ margin-bottom: var(--q-space-4);
963
+ transition: all var(--q-transition-base);
964
+ position: relative;
965
+ }
966
+
967
+ .accordion.accordion-item:hover {
968
+ border-color: color-mix(
969
+ in srgb,
970
+ var(--q-color-starlight-blue),
971
+ transparent 70%
972
+ );
973
+ background: rgb(255 255 255 / 4%);
974
+ box-shadow: 0 0 20px
975
+ color-mix(in srgb, var(--q-color-starlight-blue), transparent 95%);
976
+ }
977
+
978
+ .accordion.accordion-item.active {
979
+ border-color: var(--q-color-starlight-blue);
980
+ background: color-mix(
981
+ in srgb,
982
+ var(--q-color-starlight-blue),
983
+ transparent 97%
984
+ );
985
+ box-shadow:
986
+ 0 0 30px
987
+ color-mix(in srgb, var(--q-color-starlight-blue), transparent 90%),
988
+ inset 0 0 20px
989
+ color-mix(in srgb, var(--q-color-starlight-blue), transparent 95%);
990
+ }
991
+
992
+ .accordion .accordion-header {
993
+ background: transparent !important;
994
+ padding: var(--q-space-6) var(--q-space-8);
995
+ color: white;
996
+ font-weight: 700;
997
+ letter-spacing: 0.02em;
998
+ font-size: 1.125rem;
460
999
  }
461
1000
 
462
- .accordion-starlight.accordion-item:hover {
463
- border-color: color-mix(in srgb, var(--q-color-starlight-blue), transparent 70%);
464
- background: rgb(255 255 255 / 4%);
465
- box-shadow: 0 0 20px color-mix(in srgb, var(--q-color-starlight-blue), transparent 95%);
1001
+ .accordion.active .accordion-header {
1002
+ background: linear-gradient(
1003
+ to right,
1004
+ color-mix(in srgb, var(--q-color-starlight-peach), transparent 55%),
1005
+ color-mix(in srgb, var(--q-color-starlight-blue), transparent 55%)
1006
+ ) !important;
1007
+ border-bottom: 1px solid
1008
+ color-mix(in srgb, var(--q-color-starlight-blue), transparent 80%);
466
1009
  }
467
1010
 
468
- .accordion-starlight.accordion-item.active {
469
- border-color: var(--q-color-starlight-blue);
470
- background: color-mix(in srgb, var(--q-color-starlight-blue), transparent 97%);
471
- box-shadow: 0 0 30px color-mix(in srgb, var(--q-color-starlight-blue), transparent 90%), inset 0 0 20px color-mix(in srgb, var(--q-color-starlight-blue), transparent 95%);
1011
+ .accordion .accordion-content {
1012
+ background: linear-gradient(
1013
+ to bottom,
1014
+ rgb(0 0 0 / 30%),
1015
+ rgb(0 0 0 / 10%)
1016
+ ) !important;
1017
+ color: rgb(255 255 255 / 60%) !important;
1018
+ font-size: 1rem;
1019
+ line-height: 1.8;
1020
+ padding: 0;
472
1021
  }
473
1022
 
474
- .accordion-starlight .accordion-header {
475
- background: transparent !important;
476
- padding: var(--q-space-6) var(--q-space-8);
477
- color: white;
478
- font-weight: 700;
479
- letter-spacing: 0.02em;
480
- font-size: 1.125rem;
1023
+ .accordion.active .accordion-content {
1024
+ padding: var(--q-space-6) var(--q-space-8);
481
1025
  }
482
1026
 
483
- .accordion-starlight.active .accordion-header {
484
- background: linear-gradient(to right, color-mix(in srgb, var(--q-color-starlight-peach), transparent 55%), color-mix(in srgb, var(--q-color-starlight-blue), transparent 55%)) !important;
485
- border-bottom: 1px solid color-mix(in srgb, var(--q-color-starlight-blue), transparent 80%);
1027
+ .accordion .accordion-icon {
1028
+ color: var(--q-color-starlight-blue);
1029
+ filter: drop-shadow(0 0 5px rgb(0 212 255 / 50%));
486
1030
  }
487
1031
 
488
- .accordion-starlight .accordion-content {
489
- background: linear-gradient(to bottom, rgb(0 0 0 / 30%), rgb(0 0 0 / 10%)) !important;
490
- color: rgb(255 255 255 / 60%) !important;
491
- font-size: 1rem;
492
- line-height: 1.8;
493
- padding: 0;
1032
+ html[data-theme="light"] .accordion.accordion-item {
1033
+ background: white;
1034
+ border-color: #e2e8f0;
494
1035
  }
495
1036
 
496
- .accordion-starlight.active .accordion-content {
497
- padding: var(--q-space-6) var(--q-space-8);
1037
+ html[data-theme="light"] .accordion.accordion-item.active {
1038
+ border-color: var(--q-color-starlight-blue);
1039
+ background: #f8fafc;
498
1040
  }
499
1041
 
500
- .accordion-starlight .accordion-icon {
501
- color: var(--q-color-starlight-blue);
502
- filter: drop-shadow(0 0 5px rgb(0 212 255 / 50%));
1042
+ html[data-theme="light"] .accordion .accordion-header {
1043
+ color: #1e293b;
503
1044
  }
504
1045
 
505
- html[data-theme="light"] .accordion-starlight.accordion-item {
506
- background: white;
507
- border-color: #e2e8f0;
1046
+ html[data-theme="light"] .accordion .accordion-content {
1047
+ background: #f1f5f9 !important;
1048
+ color: #475569 !important;
508
1049
  }
509
1050
 
510
- html[data-theme="light"] .accordion-starlight.accordion-item.active {
511
- border-color: var(--q-color-starlight-blue);
512
- background: #f8fafc;
1051
+ /* 11. Search Input with Icon */
1052
+ .search-container,
1053
+ .search {
1054
+ position: relative;
1055
+ display: block;
1056
+ width: 100%;
1057
+ border-radius: var(--q-radius-xl);
1058
+ transition: all var(--q-duration-base) var(--q-ease-in-out);
1059
+ overflow: visible !important;
513
1060
  }
514
1061
 
515
- html[data-theme="light"] .accordion-starlight .accordion-header {
516
- color: #1e293b;
1062
+ .search:focus-within {
1063
+ box-shadow:
1064
+ 0 0 0 2px var(--q-color-starlight-deep),
1065
+ 0 0 0 4px var(--q-color-starlight-blue);
1066
+ border-color: var(--q-color-starlight-blue);
1067
+ outline: none;
517
1068
  }
518
1069
 
519
- html[data-theme="light"] .accordion-starlight .accordion-content {
520
- background: #f1f5f9 !important;
521
- color: #475569 !important;
1070
+ html[data-theme="light"] .search-container:focus-within,
1071
+ html[data-theme="light"] .search:focus-within {
1072
+ box-shadow:
1073
+ 0 0 0 2px var(--q-light-bg),
1074
+ 0 0 0 4px rgb(59 130 246 / 40%);
1075
+ border-color: #3b82f6;
522
1076
  }
523
1077
 
524
- /* 11. Search Input with Icon */
525
- .search-container {
526
- position: relative;
527
- display: block;
528
- width: 100%;
1078
+ .search-container input:focus,
1079
+ .search input:focus {
1080
+ box-shadow: none !important;
1081
+ outline: none !important;
1082
+ }
1083
+
1084
+ form {
1085
+ display: flex;
1086
+ flex-direction: column;
1087
+ gap: 0.75rem;
1088
+ }
1089
+
1090
+ input[type="text"],
1091
+ input[type="email"] {
1092
+ background: rgba(0, 0, 0, 0.2);
1093
+ border: 1px solid rgba(255, 255, 255, 0.1);
1094
+ border-radius: 0.5rem;
1095
+ padding: 0.75rem 1rem;
1096
+ color: var(--primary);
1097
+ width: 100%;
1098
+ box-sizing: border-box;
529
1099
  }
530
1100
 
531
1101
  .search-input {
532
- padding-left: 3rem !important;
533
- width: 100%;
1102
+ width: 100%;
1103
+ border-radius: inherit;
1104
+ padding: 0.75rem 1.25rem;
1105
+ background: transparent;
1106
+ border: none;
1107
+ }
1108
+
1109
+ html[data-theme="light"] .search {
1110
+ background-color: #fff;
1111
+ border: 1px solid #cbd5e1;
1112
+ }
1113
+ .search.has-icon .search-input {
1114
+ padding-left: 3rem !important;
1115
+ }
1116
+
1117
+ .search .q-icon-search,
1118
+ .search [class^="q-icon-"],
1119
+ .search [class*=" q-icon-"] {
1120
+ position: absolute !important;
1121
+ left: 1.125rem !important;
1122
+ top: 50% !important;
1123
+ transform: translateY(-50%) !important;
1124
+ color: var(--q-text-muted) !important;
1125
+ pointer-events: none;
1126
+ width: 1.25rem !important;
1127
+ height: 1.25rem !important;
1128
+ z-index: 10;
1129
+ background-color: var(--q-text-muted) !important;
1130
+ }
1131
+
1132
+ html[data-theme="light"] .search .q-icon-search,
1133
+ html[data-theme="light"] .search [class^="q-icon-"],
1134
+ html[data-theme="light"] .search [class*=" q-icon-"] {
1135
+ color: #64748b !important;
1136
+ background-color: #64748b !important;
534
1137
  }
535
1138
 
536
1139
  .search-icon {
537
- position: absolute;
538
- left: 1.125rem;
539
- top: 50%;
540
- transform: translateY(-50%);
541
- color: var(--q-text-muted);
542
- pointer-events: none;
543
- width: 1.25rem;
544
- height: 1.25rem;
545
- z-index: 10;
1140
+ position: absolute;
1141
+ left: 1.125rem;
1142
+ top: 50%;
1143
+ transform: translateY(-50%);
1144
+ color: var(--q-text-muted);
1145
+ pointer-events: none;
1146
+ width: 1.25rem;
1147
+ height: 1.25rem;
1148
+ z-index: 10;
546
1149
  }
547
1150
 
548
1151
  html[data-theme="light"] .search-icon {
549
- color: #64748b;
1152
+ color: #64748b;
550
1153
  }
551
-
552
1154
  /* 12. Gallery Widget */
553
- .starlight-gallery {
554
- display: grid;
555
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
556
- gap: var(--q-space-4);
1155
+ .gallery {
1156
+ display: grid;
1157
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
1158
+ gap: var(--q-space-4);
557
1159
  }
558
1160
 
559
1161
  .gallery-item {
560
- position: relative;
561
- aspect-ratio: 1;
562
- border-radius: var(--q-radius-xl);
563
- overflow: hidden;
564
- background: var(--q-glass-bg);
565
- border: 1px solid var(--q-glass-border);
566
- cursor: pointer;
567
- transition: all var(--q-transition-base);
1162
+ position: relative;
1163
+ aspect-ratio: 1;
1164
+ border-radius: var(--q-radius-xl);
1165
+ overflow: hidden;
1166
+ background: var(--q-glass-bg);
1167
+ border: 1px solid var(--q-glass-border);
1168
+ cursor: pointer;
1169
+ transition: all var(--q-transition-base);
568
1170
  }
569
1171
 
570
1172
  .gallery-item img {
571
- width: 100%;
572
- height: 100%;
573
- object-fit: cover;
574
- transition: transform var(--q-transition-slow);
1173
+ width: 100%;
1174
+ height: 100%;
1175
+ object-fit: cover;
1176
+ transition: transform var(--q-transition-slow);
575
1177
  }
576
1178
 
577
1179
  .gallery-item:hover img {
578
- transform: scale(1.1);
1180
+ transform: scale(1.1);
579
1181
  }
580
1182
 
581
1183
  .gallery-item:hover {
582
- border-color: var(--q-color-starlight-blue);
583
- box-shadow: 0 0 20px var(--q-color-starlight-glow);
1184
+ border-color: var(--q-color-starlight-blue);
1185
+ box-shadow: 0 0 20px var(--q-color-starlight-glow);
584
1186
  }
585
1187
 
586
1188
  .gallery-overlay {
587
- position: absolute;
588
- inset: 0;
589
- background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
590
- display: flex;
591
- align-items: flex-end;
592
- padding: 1rem;
593
- opacity: 0;
594
- transition: opacity var(--q-duration-slow) var(--q-ease-in-out);
1189
+ position: absolute;
1190
+ inset: 0;
1191
+ background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
1192
+ display: flex;
1193
+ align-items: flex-end;
1194
+ padding: 1rem;
1195
+ opacity: 0;
1196
+ transition: opacity 0.3s ease;
1197
+ color: white !important;
595
1198
  }
596
1199
 
597
1200
  .gallery-item:hover .gallery-overlay {
598
- opacity: 1;
1201
+ opacity: 1;
599
1202
  }
600
1203
 
601
1204
  /* 13. Dashboard Widget */
602
1205
  .dashboard-grid {
603
- display: grid;
604
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
605
- gap: var(--q-space-6);
1206
+ display: grid;
1207
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1208
+ gap: var(--q-space-6);
606
1209
  }
607
1210
 
608
1211
  .stat-card {
609
- padding: var(--q-space-6);
610
- display: flex;
611
- flex-direction: column;
612
- gap: var(--q-space-2);
1212
+ padding: var(--q-space-6);
1213
+ display: flex;
1214
+ flex-direction: column;
1215
+ gap: var(--q-space-2);
613
1216
  }
614
1217
 
615
1218
  .stat-value {
616
- font-size: 2.5rem;
617
- font-weight: 800;
618
- background: linear-gradient(135deg, #fff 0%, var(--q-color-starlight-blue) 100%);
619
- -webkit-background-clip: text;
620
- -webkit-text-fill-color: transparent;
1219
+ font-size: 2.5rem;
1220
+ font-weight: 800;
1221
+ background: linear-gradient(
1222
+ 135deg,
1223
+ #fff 0%,
1224
+ var(--q-color-starlight-blue) 100%
1225
+ );
1226
+ -webkit-background-clip: text;
1227
+ -webkit-text-fill-color: transparent;
621
1228
  }
622
1229
 
623
1230
  html[data-theme="light"] .stat-value {
624
- background: linear-gradient(135deg, #1e293b 0%, var(--q-color-starlight-blue) 100%);
625
- -webkit-background-clip: text;
626
- -webkit-text-fill-color: transparent;
1231
+ background: linear-gradient(
1232
+ 135deg,
1233
+ #1e293b 0%,
1234
+ var(--q-color-starlight-blue) 100%
1235
+ );
1236
+ -webkit-background-clip: text;
1237
+ -webkit-text-fill-color: transparent;
627
1238
  }
628
1239
 
629
1240
  .stat-label {
630
- text-transform: uppercase;
631
- letter-spacing: 0.1em;
632
- font-size: 0.75rem;
633
- color: var(--q-text-muted);
1241
+ text-transform: uppercase;
1242
+ letter-spacing: 0.1em;
1243
+ font-size: 0.75rem;
1244
+ color: var(--q-text-muted);
634
1245
  }
635
1246
 
636
1247
  .stat-trend {
637
- font-size: 0.875rem;
638
- display: flex;
639
- align-items: center;
640
- gap: 0.25rem;
1248
+ font-size: 0.875rem;
1249
+ display: flex;
1250
+ align-items: center;
1251
+ gap: 0.25rem;
641
1252
  }
642
1253
 
643
- .stat-trend.up { color: var(--q-color-success); }
644
- .stat-trend.down { color: var(--q-color-error); }
1254
+ .stat-trend.up {
1255
+ color: var(--q-color-success);
1256
+ }
1257
+ .stat-trend.down {
1258
+ color: var(--q-color-error);
1259
+ }
645
1260
 
646
1261
  /* 9. Glass Navigation */
647
1262
  .nav-glass {
648
- background: rgba(255, 255, 255, 0.15);
649
- backdrop-filter: blur(16px);
650
- -webkit-backdrop-filter: blur(16px);
651
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
652
- background-clip: border-box;
653
- display: flex;
654
- flex-direction: column;
655
- position: sticky;
656
- top: 0;
657
- z-index: 1000;
658
- padding: 0;
1263
+ background: rgba(255, 255, 255, 0.15);
1264
+ backdrop-filter: blur(16px);
1265
+ -webkit-backdrop-filter: blur(16px);
1266
+ border-bottom: 1px solid var(--q-color-border-strong);
1267
+ background-clip: border-box;
1268
+ display: flex;
1269
+ flex-direction: column;
1270
+ position: sticky;
1271
+ top: 0;
1272
+ z-index: 1000;
1273
+ padding: 0;
659
1274
  }
660
1275
 
661
1276
  .nav-container {
662
- display: flex;
663
- justify-content: space-between;
664
- align-items: center;
665
- width: 100%;
666
- padding: 1rem 1.5rem;
1277
+ display: flex;
1278
+ justify-content: space-between;
1279
+ align-items: center;
1280
+ width: 100%;
1281
+ padding: 1rem 1.5rem;
667
1282
  }
668
1283
 
669
1284
  html[data-theme="light"] .nav-glass {
670
- background: rgb(255 255 255 / 95%);
671
- backdrop-filter: blur(16px);
672
- -webkit-backdrop-filter: blur(16px);
673
- border-bottom-color: rgb(0 0 0 / 8%);
674
- box-shadow: 0 4px 12px rgb(0 0 0 / 3%);
1285
+ background: rgb(255 255 255 / 95%);
1286
+ backdrop-filter: blur(16px);
1287
+ -webkit-backdrop-filter: blur(16px);
1288
+ border-bottom-color: rgb(0 0 0 / 8%);
1289
+ box-shadow: 0 4px 12px rgb(0 0 0 / 3%);
675
1290
  }
676
1291
 
677
1292
  .nav-desktop {
678
- display: none;
679
- align-items: center;
1293
+ display: none;
1294
+ align-items: center;
680
1295
  }
681
1296
 
682
1297
  .nav-list {
683
- display: flex;
684
- list-style: none;
685
- gap: 2rem;
686
- margin: 0;
687
- padding: 0;
1298
+ display: flex;
1299
+ list-style: none;
1300
+ gap: 2rem;
1301
+ margin: 0;
1302
+ padding: 0;
688
1303
  }
689
1304
 
690
1305
  .nav-list.vertical {
691
- flex-direction: column;
692
- gap: 0.5rem;
1306
+ flex-direction: column;
1307
+ gap: 0.5rem;
693
1308
  }
694
1309
 
695
1310
  .nav-link {
696
- font-size: 0.875rem;
697
- font-weight: 500;
698
- color: rgb(255 255 255 / 70%);
699
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
700
- position: relative;
701
- padding: 0.5rem 0;
702
- display: inline-flex;
703
- align-items: center;
1311
+ font-size: 0.875rem;
1312
+ font-weight: 500;
1313
+ color: rgb(255 255 255 / 70%);
1314
+ transition: all 0.3s;
1315
+ position: relative;
1316
+ padding: 0.5rem 0;
1317
+ display: inline-flex;
1318
+ align-items: center;
704
1319
  }
705
1320
 
706
1321
  .nav-list.vertical .nav-link {
707
- width: 100%;
708
- padding: 0.75rem 1rem;
709
- border-radius: 0.5rem;
1322
+ width: 100%;
1323
+ padding: 0.75rem 1rem;
1324
+ border-radius: 0.5rem;
710
1325
  }
711
1326
 
712
1327
  .nav-list.vertical .dropdown {
713
- width: 100%;
714
- display: block;
1328
+ width: 100%;
1329
+ display: block;
715
1330
  }
716
1331
 
717
1332
  .nav-list.vertical .nav-link:hover {
718
- background: rgb(255 255 255 / 5%);
719
- color: var(--q-color-starlight-blue);
1333
+ background: var(--q-color-border);
1334
+ color: var(--q-color-starlight-blue);
720
1335
  }
721
1336
 
722
1337
  .nav-link::after {
723
- content: '';
724
- position: absolute;
725
- bottom: 0;
726
- left: 50%;
727
- width: 0;
728
- height: 2px;
729
- background: var(--q-color-starlight-blue);
730
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
731
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
732
- transform: translateX(-50%);
1338
+ content: "";
1339
+ position: absolute;
1340
+ bottom: 0;
1341
+ left: 50%;
1342
+ width: 0;
1343
+ height: 2px;
1344
+ background: var(--q-color-starlight-blue);
1345
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1346
+ box-shadow: 0 0 10px var(--q-color-starlight-glow);
1347
+ transform: translateX(-50%);
733
1348
  }
734
1349
 
735
1350
  .nav-link:hover::after {
736
- width: 80%;
1351
+ width: 80%;
737
1352
  }
738
1353
 
739
-
740
1354
  html[data-theme="light"] .nav-link {
741
- color: #475569;
1355
+ color: #475569;
742
1356
  }
743
1357
 
744
1358
  html[data-theme="light"] .nav-link:hover {
745
- color: #1e293b;
1359
+ color: var(--q-color-starlight-blue);
746
1360
  }
747
1361
 
748
1362
  .hamburger {
749
- width: 2.5rem;
750
- height: 2.5rem;
751
- display: flex;
752
- flex-direction: column;
753
- justify-content: center;
754
- align-items: center;
755
- gap: 0.4rem;
756
- cursor: pointer;
757
- background: rgba(255, 255, 255, 0.05);
758
- border: 1px solid rgba(255, 255, 255, 0.1);
759
- border-radius: 0.5rem;
760
- padding: 0.5rem;
761
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
1363
+ width: 2.5rem;
1364
+ height: 2.5rem;
1365
+ display: flex;
1366
+ flex-direction: column;
1367
+ justify-content: center;
1368
+ align-items: center;
1369
+ gap: 0.4rem;
1370
+ cursor: pointer;
1371
+ background: var(--q-color-border);
1372
+ border: 1px solid var(--q-color-border-strong);
1373
+ border-radius: 0.5rem;
1374
+ padding: 0.5rem;
1375
+ transition: all 0.3s;
1376
+ z-index: 50;
762
1377
  }
763
1378
 
764
1379
  html[data-theme="light"] .hamburger {
765
- background: rgb(0 0 0 / 2%);
766
- border-color: rgb(0 0 0 / 10%);
1380
+ background: rgb(0 0 0 / 2%);
1381
+ border-color: rgb(0 0 0 / 10%);
767
1382
  }
768
1383
 
769
1384
  .hamburger:hover {
770
- background: rgb(255 255 255 / 10%);
771
- border-color: var(--q-color-starlight-blue);
1385
+ background: var(--q-color-border-strong);
1386
+ border-color: var(--q-color-starlight-blue);
772
1387
  }
773
1388
 
774
1389
  html[data-theme="light"] .hamburger:hover {
775
- background: rgb(0 0 0 / 10%);
1390
+ background: rgb(0 0 0 / 10%);
776
1391
  }
777
1392
 
778
1393
  .hamburger span {
779
- width: 1.5rem;
780
- height: 2px;
781
- background: white;
782
- border-radius: 2px;
783
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
784
- transform-origin: center;
1394
+ width: 1.5rem;
1395
+ height: 2px;
1396
+ background: white;
1397
+ border-radius: 2px;
1398
+ transition: all 0.3s;
1399
+ transform-origin: center;
785
1400
  }
786
1401
 
787
1402
  html[data-theme="light"] .hamburger span {
788
- background: #1e293b;
1403
+ background: #1e293b;
789
1404
  }
790
1405
 
791
1406
  .hamburger.active span {
792
- background-color: var(--q-color-starlight-blue);
793
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
1407
+ background-color: var(--q-color-starlight-blue);
1408
+ box-shadow: 0 0 10px var(--q-color-starlight-glow);
794
1409
  }
795
1410
 
796
1411
  .nav-menu-mobile {
797
- position: absolute;
798
- top: 100%;
799
- left: 0;
800
- right: 0;
801
- z-index: 1000;
802
- background: rgba(8, 8, 26, 0.95);
803
- backdrop-filter: blur(20px);
804
- -webkit-backdrop-filter: blur(20px);
805
- border-top: 1px solid rgba(255, 255, 255, 0.05);
806
- padding: 0 2rem;
807
- max-height: 0;
808
- overflow: hidden;
809
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
810
- opacity: 0;
811
- pointer-events: none;
1412
+ position: absolute;
1413
+ top: 100%;
1414
+ left: 0;
1415
+ right: 0;
1416
+ z-index: 1000;
1417
+ background: rgba(8, 8, 26, 0.95);
1418
+ backdrop-filter: blur(20px);
1419
+ -webkit-backdrop-filter: blur(20px);
1420
+ border-top: 1px solid var(--q-color-border);
1421
+ padding: 0 2rem;
1422
+ max-height: 0;
1423
+ overflow: hidden;
1424
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1425
+ opacity: 0;
1426
+ pointer-events: none;
1427
+ display: none;
812
1428
  }
813
1429
 
814
1430
  .nav-menu-mobile.active {
815
- display: flex;
816
- flex-direction: column;
817
- max-height: 100vh;
818
- padding: 1.5rem 2rem;
819
- opacity: 1;
820
- pointer-events: auto;
1431
+ display: flex;
1432
+ flex-direction: column;
1433
+ max-height: 100vh;
1434
+ padding: 1.5rem 2rem;
1435
+ opacity: 1;
1436
+ pointer-events: auto;
821
1437
  }
822
1438
 
823
1439
  html[data-theme="light"] .nav-menu-mobile {
824
- background: #fff;
825
- border-top-color: rgb(0 0 0 / 8%);
826
- box-shadow: 0 15px 30px rgb(0 0 0 / 5%);
1440
+ background: #fff;
1441
+ border-top-color: rgb(0 0 0 / 8%);
1442
+ box-shadow: 0 15px 30px rgb(0 0 0 / 5%);
827
1443
  }
828
1444
 
829
1445
  /* Vertical Accordion Dropdowns */
830
1446
  .nav-list.vertical .dropdown-menu {
831
- position: static;
832
- opacity: 1;
833
- visibility: visible;
834
- transform: none;
835
- box-shadow: none;
836
- border: none;
837
- padding: 0 0 0 1.5rem;
838
- margin: 0;
839
- max-height: 0;
840
- overflow: hidden;
841
- transition: all 0.3s ease;
842
- background: transparent;
843
- pointer-events: none;
1447
+ position: static;
1448
+ opacity: 1;
1449
+ visibility: visible;
1450
+ transform: none;
1451
+ box-shadow: none;
1452
+ border: none;
1453
+ padding: 0 0 0 1.5rem;
1454
+ margin: 0;
1455
+ max-height: 0;
1456
+ overflow: hidden;
1457
+ transition: all 0.3s ease;
1458
+ background: transparent;
1459
+ pointer-events: none;
844
1460
  }
845
1461
 
846
1462
  .nav-list.vertical .dropdown.active .dropdown-menu {
847
- max-height: 300px;
848
- padding-top: 0.5rem;
849
- padding-bottom: 0.5rem;
850
- pointer-events: auto;
1463
+ max-height: 300px;
1464
+ padding-top: 0.5rem;
1465
+ padding-bottom: 0.5rem;
1466
+ pointer-events: auto;
851
1467
  }
852
1468
 
853
1469
  .nav-list.vertical .dropdown-item {
854
- padding: 0.5rem 1rem;
855
- font-size: 0.825rem;
856
- border-left: 1px solid rgb(255 255 255 / 10%);
857
- border-radius: 0;
1470
+ padding: 0.5rem 1rem;
1471
+ font-size: 0.825rem;
1472
+ border-left: 1px solid var(--q-color-border-strong);
1473
+ border-radius: 0;
858
1474
  }
859
1475
 
860
1476
  @media (width >= 768px) {
861
- .nav-desktop {
862
- display: flex;
863
- }
864
-
865
- .hamburger {
866
- display: none;
867
- }
868
-
869
- .nav-menu-mobile {
870
- display: none !important;
871
- }
1477
+ .nav-desktop {
1478
+ display: flex;
1479
+ }
1480
+
1481
+ .hamburger {
1482
+ display: none;
1483
+ }
1484
+
1485
+ .nav-menu-mobile {
1486
+ display: none !important;
1487
+ }
872
1488
  }
873
1489
 
874
1490
  @keyframes slideInDown {
875
- from { opacity: 0; transform: translateY(-10px); }
876
- to { opacity: 1; transform: translateY(0); }
1491
+ from {
1492
+ opacity: 0;
1493
+ transform: translateY(-10px);
1494
+ }
1495
+ to {
1496
+ opacity: 1;
1497
+ transform: translateY(0);
1498
+ }
877
1499
  }
878
1500
 
879
1501
  .starlight-nav.vertical {
880
- flex-direction: column;
881
- height: 100%;
882
- width: 280px !important;
883
- min-width: 280px !important;
884
- border-bottom: none;
885
- border-right: 1px solid rgb(255 255 255 / 10%);
886
- padding: 2.5rem 1.5rem;
887
- align-items: flex-start;
888
- justify-content: flex-start;
1502
+ flex-direction: column;
1503
+ height: 100%;
1504
+ width: 280px !important;
1505
+ min-width: 280px !important;
1506
+ border-bottom: none;
1507
+ border-right: 1px solid var(--q-color-border-strong);
1508
+ padding: 2.5rem 1.5rem;
1509
+ align-items: flex-start;
1510
+ justify-content: flex-start;
889
1511
  }
890
1512
 
891
1513
  /* Nav Layout Modifiers */
892
1514
  .nav-reverse > div {
893
- flex-direction: row-reverse !important;
1515
+ flex-direction: row-reverse !important;
894
1516
  }
895
1517
 
896
1518
  .nav-center > div {
897
- display: grid !important;
898
- grid-template-columns: 1fr auto 1fr;
899
- align-items: center;
1519
+ display: grid !important;
1520
+ grid-template-columns: 1fr auto 1fr;
1521
+ align-items: center;
900
1522
  }
901
1523
 
902
1524
  @media (width < 768px) {
903
- .hamburger-left {
904
- order: -1;
905
- }
1525
+ .hamburger-left {
1526
+ order: -1;
1527
+ }
906
1528
  }
907
1529
 
908
1530
  html[data-theme="light"] .starlight-nav.vertical {
909
- background: rgb(255 255 255 / 98%);
910
- border-right-color: rgb(0 0 0 / 8%);
1531
+ background: rgb(255 255 255 / 98%);
1532
+ border-right-color: rgb(0 0 0 / 8%);
911
1533
  }
912
1534
 
913
1535
  /* 15. More Form Controls */
914
1536
  .select-starlight {
915
- appearance: none;
916
- line-height: normal;
917
- padding-top: 0.5rem !important;
918
- padding-bottom: 0.5rem !important;
919
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
920
- background-repeat: no-repeat;
921
- background-position: right 1rem center;
922
- background-size: 1.25rem;
923
- padding-right: 3rem !important;
1537
+ appearance: none;
1538
+ line-height: normal;
1539
+ padding-top: 0.5rem !important;
1540
+ padding-bottom: 0.5rem !important;
1541
+ padding-left: 1.25rem !important;
1542
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
1543
+ background-repeat: no-repeat;
1544
+ background-position: right 1rem center;
1545
+ background-size: 1.25rem;
1546
+ padding-right: 3rem !important;
924
1547
  }
925
1548
 
926
1549
  html[data-theme="light"] .select-starlight {
927
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%231e293b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
1550
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%231e293b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
928
1551
  }
929
1552
 
930
1553
  .range-starlight {
931
- appearance: none;
932
- width: 100%;
933
- height: 6px;
934
- background: rgb(255 255 255 / 10%);
935
- border-radius: 3px;
936
- outline: none;
1554
+ appearance: none;
1555
+ width: 100%;
1556
+ height: 4px;
1557
+ background: var(--q-color-border-strong);
1558
+ border-radius: 2px;
1559
+ outline: none;
1560
+ }
1561
+
1562
+ .range-starlight::-webkit-slider-thumb {
1563
+ appearance: none;
1564
+ -webkit-appearance: none;
1565
+ width: 12px;
1566
+ height: 12px;
1567
+ background: var(--q-color-starlight-blue);
1568
+ border-radius: 50%;
1569
+ cursor: pointer;
1570
+ box-shadow: 0 0 10px var(--q-color-starlight-blue);
1571
+ transition: all 0.2s;
937
1572
  }
938
1573
 
939
- html[data-theme="light"] .range-starlight {
940
- background: rgb(0 0 0 / 10%);
1574
+ .range-starlight::-webkit-slider-thumb:hover {
1575
+ transform: scale(1.2);
1576
+ box-shadow: 0 0 20px var(--q-color-starlight-blue);
1577
+ }
1578
+
1579
+ .range-starlight::-moz-range-thumb {
1580
+ width: 12px;
1581
+ height: 12px;
1582
+ background: var(--q-color-starlight-blue);
1583
+ border-radius: 50%;
1584
+ cursor: pointer;
1585
+ box-shadow: 0 0 10px var(--q-color-starlight-blue);
1586
+ border: none;
941
1587
  }
942
1588
 
943
- .range-starlight:-webkit-slider-thumb {
944
- appearance: none;
945
- width: 18px;
946
- height: 18px;
947
- background: var(--q-color-starlight-blue);
948
- border-radius: 50%;
949
- cursor: pointer;
950
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
951
- transition: all var(--q-duration-base) var(--q-ease-in-out);
1589
+ html[data-theme="light"] .range-starlight {
1590
+ background: rgb(0 0 0 / 10%);
952
1591
  }
953
1592
 
954
- .range-starlight:-webkit-slider-thumb:hover {
955
- transform: scale(1.2);
956
- box-shadow: 0 0 20px var(--q-color-starlight-blue);
1593
+ html[data-theme="light"] .range-starlight::-webkit-slider-thumb {
1594
+ background: var(--q-color-starlight-blue, #00d4ff);
1595
+ box-shadow: 0 0 10px var(--q-color-starlight-blue, #00d4ff);
957
1596
  }
958
1597
 
959
1598
  .toggle-starlight {
960
- width: 3.5rem;
961
- height: 1.75rem;
1599
+ width: 3.5rem;
1600
+ height: 1.75rem;
962
1601
  }
963
1602
 
964
1603
  .toggle-starlight .toggle-slider::before {
965
- height: 1.25rem;
966
- width: 1.25rem;
967
- top: 0.25rem;
968
- left: 0.25rem;
1604
+ height: 1.25rem;
1605
+ width: 1.25rem;
1606
+ top: 0.25rem;
1607
+ left: 0.25rem;
969
1608
  }
970
1609
 
971
1610
  .toggle-starlight input:checked + .toggle-slider::before {
972
- transform: translateX(1.75rem);
1611
+ transform: translateX(1.75rem);
973
1612
  }
974
1613
 
975
1614
  .toggle-starlight .toggle-slider {
976
- background: rgb(255 255 255 / 10%);
977
- border: 1px solid rgb(255 255 255 / 10%);
1615
+ background: var(--q-color-border-strong);
1616
+ border: 1px solid var(--q-color-border-strong);
978
1617
  }
979
1618
 
980
1619
  html[data-theme="light"] .toggle-starlight .toggle-slider {
981
- background: rgb(0 0 0 / 10%);
982
- border-color: rgb(0 0 0 / 15%);
1620
+ background: rgb(0 0 0 / 10%);
1621
+ border-color: rgb(0 0 0 / 15%);
1622
+ }
1623
+
1624
+ html[data-theme="light"] .toggle-starlight input:checked + .toggle-slider {
1625
+ background: var(--q-color-starlight-blue);
1626
+ border-color: var(--q-color-starlight-blue);
983
1627
  }
984
1628
 
985
1629
  html[data-theme="light"] .bg-starlight,
986
1630
  html[data-theme="light"] .bg-starlight:hover,
987
1631
  html[data-theme="light"] .hover\:bg-starlight:hover,
1632
+ html[data-theme="light"] form button:not([class]),
1633
+ html[data-theme="light"] form button:not([class]):hover,
988
1634
  html[data-theme="light"] .btn-starlight,
989
1635
  html[data-theme="light"] .btn-starlight:hover,
990
1636
  html[data-theme="light"] .hover\:btn-starlight:hover,
991
1637
  html[data-theme="light"] .btn-primary,
992
1638
  html[data-theme="light"] .btn-primary:hover {
993
- background: linear-gradient(135deg, var(--q-color-starlight-peach) 40%, var(--q-color-starlight-blue) 100%) !important;
1639
+ background: linear-gradient(
1640
+ 135deg,
1641
+ var(--q-color-starlight-peach) 40%,
1642
+ var(--q-color-starlight-blue) 100%
1643
+ ) !important;
994
1644
  }
995
1645
 
996
- html[data-theme="light"] .text-gradient-starlight {
997
- background: linear-gradient(135deg, var(--q-color-starlight-peach) 40%, var(--q-color-starlight-blue) 100%) !important;
998
- -webkit-background-clip: text !important;
999
- -webkit-text-fill-color: transparent !important;
1646
+ html[data-theme="light"] .text-gradient {
1647
+ background: linear-gradient(
1648
+ 135deg,
1649
+ var(--q-color-starlight-peach) 40%,
1650
+ var(--q-color-starlight-blue) 100%
1651
+ ) !important;
1652
+ -webkit-background-clip: text !important;
1653
+ -webkit-text-fill-color: transparent !important;
1000
1654
  }
1001
1655
 
1002
- html[data-theme="light"] .text-success { color: #059669; }
1003
- html[data-theme="light"] .text-warning { color: #d97706; }
1656
+ html[data-theme="light"] .text-success {
1657
+ color: #059669;
1658
+ }
1659
+ html[data-theme="light"] .text-warning {
1660
+ color: #d97706;
1661
+ }
1004
1662
 
1005
1663
  html[data-theme="light"] .dialog-content .bg-black_40 {
1006
- background-color: rgb(0 0 0 / 5%);
1007
- border-color: rgb(0 0 0 / 10%);
1664
+ background-color: rgb(0 0 0 / 5%);
1665
+ border-color: rgb(0 0 0 / 10%);
1008
1666
  }
1009
1667
 
1010
1668
  /* 18. Semantic Typography Utilities */
1011
1669
  .text-glow {
1012
- text-shadow: 0 0 10px rgb(0 212 255 / 50%), 0 0 20px rgb(0 212 255 / 60%);
1670
+ text-shadow:
1671
+ 0 0 10px rgb(0 212 255 / 50%),
1672
+ 0 0 20px rgb(0 212 255 / 60%);
1013
1673
  }
1014
1674
 
1015
1675
  .text-glass {
1016
- color: rgb(255 255 255 / 60%);
1017
- backdrop-filter: blur(4px);
1018
- -webkit-backdrop-filter: blur(4px);
1676
+ color: rgb(255 255 255 / 60%);
1677
+ backdrop-filter: blur(4px);
1678
+ -webkit-backdrop-filter: blur(4px);
1019
1679
  }
1020
1680
 
1021
1681
  html[data-theme="light"] .text-glow {
1022
- text-shadow: 0 0 8px rgb(0 212 255 / 30%);
1682
+ text-shadow: 0 0 8px rgb(0 212 255 / 30%);
1023
1683
  }
1024
1684
 
1025
1685
  html[data-theme="light"] .text-glass {
1026
- color: rgb(0 0 0 / 50%);
1686
+ color: rgb(0 0 0 / 50%);
1687
+ }
1688
+
1689
+ /* Text Gradient */
1690
+ .text-gradient {
1691
+ background: linear-gradient(
1692
+ to right,
1693
+ var(--q-color-starlight-peach),
1694
+ var(--q-color-starlight-blue)
1695
+ );
1696
+ -webkit-background-clip: text;
1697
+ -webkit-text-fill-color: transparent;
1698
+ background-clip: text;
1699
+ }
1700
+
1701
+ /* Blue Card - Accent variant */
1702
+ .blue-card {
1703
+ background: rgba(0, 212, 255, 0.05);
1704
+ backdrop-filter: blur(8px);
1705
+ -webkit-backdrop-filter: blur(8px);
1706
+ padding: 2rem;
1707
+ border-radius: var(--q-radius-xl);
1708
+ border: 1px solid var(--q-color-starlight-blue);
1709
+ font-size: 1.25rem;
1710
+ color: var(--q-text-primary);
1711
+ margin: 0;
1712
+ }
1713
+
1714
+ html[data-theme="light"] .blue-card {
1715
+ background: rgba(0, 212, 255, 0.1);
1716
+ }
1717
+
1718
+ /* Avatar - circular image */
1719
+ .avatar {
1720
+ width: 3rem;
1721
+ height: 3rem;
1722
+ border-radius: 9999px;
1723
+ border: 1px solid rgba(0, 212, 255, 0.3);
1724
+ object-fit: cover;
1725
+ }
1726
+
1727
+ /* H2 Accent Bar */
1728
+ h2.has-accent,
1729
+ h2:has(.accent-bar) {
1730
+ display: flex;
1731
+ align-items: center;
1732
+ gap: 1rem;
1027
1733
  }
1028
1734
 
1029
- /* 17. Skeleton Loading (Starlight Variant) */
1030
- .starlight-loading {
1031
- background: linear-gradient(
1032
- 90deg,
1033
- rgb(255 255 255 / 3%) 25%,
1034
- rgb(255 255 255 / 8%) 50%,
1035
- rgb(255 255 255 / 3%) 75%
1036
- );
1037
- background-size: 200% 100%;
1038
- animation: starlight-shimmer 2s infinite linear;
1039
- border-radius: var(--q-radius-md);
1040
- min-height: 1rem;
1735
+ h2.text-center {
1736
+ justify-content: center;
1737
+ }
1738
+
1739
+ h2 .accent-bar {
1740
+ width: 0.5rem;
1741
+ height: 2.5rem;
1742
+ background: linear-gradient(
1743
+ 135deg,
1744
+ var(--q-color-starlight-peach) 0,
1745
+ var(--q-color-starlight-blue) 100%
1746
+ );
1747
+ border-radius: 9999px;
1748
+ box-shadow: 0 0 15px rgba(0, 212, 255, 0.5);
1749
+ }
1750
+
1751
+ html[data-theme="light"] h2 .accent-bar {
1752
+ background: linear-gradient(
1753
+ 135deg,
1754
+ var(--q-color-starlight-peach) 40%,
1755
+ var(--q-color-starlight-blue) 100%
1756
+ ) !important;
1757
+ }
1758
+
1759
+ /* 17. Skeleton Loading (Starlight Variant) */
1760
+ .starlight-loading {
1761
+ background: linear-gradient(
1762
+ 90deg,
1763
+ rgb(255 255 255 / 3%) 25%,
1764
+ rgb(255 255 255 / 8%) 50%,
1765
+ rgb(255 255 255 / 3%) 75%
1766
+ );
1767
+ background-size: 200% 100%;
1768
+ animation: starlight-shimmer 2s infinite linear;
1769
+ border-radius: var(--q-radius-md);
1770
+ min-height: 1rem;
1041
1771
  }
1042
1772
 
1043
1773
  @keyframes starlight-shimmer {
1044
- 0% { background-position: 200% 0; }
1045
- 100% { background-position: -200% 0; }
1774
+ 0% {
1775
+ background-position: 200% 0;
1776
+ }
1777
+ 100% {
1778
+ background-position: -200% 0;
1779
+ }
1046
1780
  }
1047
1781
 
1048
1782
  html[data-theme="light"] .starlight-loading {
1049
- background: linear-gradient(
1050
- 90deg,
1051
- rgb(0 0 0 / 3%) 25%,
1052
- rgb(0 0 0 / 6%) 50%,
1053
- rgb(0 0 0 / 3%) 75%
1054
- );
1055
- background-size: 200% 100%;
1783
+ background: linear-gradient(
1784
+ 90deg,
1785
+ rgb(0 0 0 / 3%) 25%,
1786
+ rgb(0 0 0 / 6%) 50%,
1787
+ rgb(0 0 0 / 3%) 75%
1788
+ );
1789
+ background-size: 200% 100%;
1056
1790
  }
1057
1791
 
1058
1792
  /* 16. Themed Scrollbars */
1059
1793
  ::-webkit-scrollbar {
1060
- width: 10px;
1061
- height: 10px;
1794
+ width: 10px;
1795
+ height: 10px;
1062
1796
  }
1063
1797
 
1064
1798
  ::-webkit-scrollbar-track {
1065
- background: rgb(255 255 255 / 2%);
1066
- backdrop-filter: blur(10px);
1799
+ background: rgb(255 255 255 / 2%);
1800
+ backdrop-filter: blur(10px);
1067
1801
  }
1068
1802
 
1069
1803
  ::-webkit-scrollbar-thumb {
1070
- background: rgb(255 255 255 / 10%);
1071
- border: 1px solid rgb(255 255 255 / 5%);
1072
- border-radius: 10px;
1073
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
1804
+ background: var(--q-color-border-strong);
1805
+ border: 1px solid var(--q-color-border);
1806
+ border-radius: 10px;
1807
+ transition: all 0.3s;
1074
1808
  }
1075
1809
 
1076
1810
  ::-webkit-scrollbar-thumb:hover {
1077
- background: rgb(0 212 255 / 30%);
1078
- box-shadow: 0 0 10px rgb(0 212 255 / 60%);
1811
+ background: rgb(0 212 255 / 30%);
1812
+ box-shadow: 0 0 10px rgb(0 212 255 / 60%);
1079
1813
  }
1080
1814
 
1081
1815
  html[data-theme="light"] ::-webkit-scrollbar-track {
1082
- background: rgb(0 0 0 / 3%);
1816
+ background: rgb(0 0 0 / 3%);
1083
1817
  }
1084
1818
 
1085
1819
  html[data-theme="light"] ::-webkit-scrollbar-thumb {
1086
- background: rgb(0 0 0 / 10%);
1087
- border-color: rgb(0 0 0 / 5%);
1820
+ background: rgb(0 0 0 / 10%);
1821
+ border-color: rgb(0 0 0 / 5%);
1088
1822
  }
1089
1823
 
1090
1824
  html[data-theme="light"] ::-webkit-scrollbar-thumb:hover {
1091
- background: var(--q-color-starlight-blue);
1825
+ background: var(--q-color-starlight-blue);
1092
1826
  }
1093
1827
 
1094
1828
  /* Firefox Support */
1095
1829
  * {
1096
- scrollbar-width: thin;
1097
- scrollbar-color: rgb(255 255 255 / 10%) transparent;
1830
+ scrollbar-width: thin;
1831
+ scrollbar-color: var(--q-color-border-strong) transparent;
1098
1832
  }
1099
1833
 
1100
1834
  html[data-theme="light"] * {
1101
- scrollbar-color: rgb(0 0 0 / 10%) transparent;
1835
+ scrollbar-color: rgb(0 0 0 / 10%) transparent;
1102
1836
  }
1103
1837
 
1104
1838
  @media (forced-colors: active) {
1105
- button:focus, input:focus, select:focus, textarea:focus {
1106
- outline: 2px solid SelectedItem !important;
1107
- outline-offset: 2px;
1108
- }
1109
-
1110
- .starlight-card:hover, .accordion-starlight.accordion-item:hover {
1111
- border-color: SelectedItem !important;
1112
- }
1113
-
1114
- .text-gradient-starlight, .bg-starlight {
1115
- background: none !important;
1116
- -webkit-text-fill-color: CanvasText !important;
1117
- color: CanvasText !important;
1118
- text-decoration: underline;
1119
- }
1120
-
1121
- .btn-starlight {
1122
- background: var(--q-gradient-primary);
1123
- color: var(--q-color-text-inverse);
1839
+ button:focus,
1840
+ input:focus,
1841
+ select:focus,
1842
+ textarea:focus {
1843
+ outline: 2px solid SelectedItem !important;
1844
+ outline-offset: 2px;
1845
+ }
1846
+
1847
+ .starlight-card:hover,
1848
+ .accordion.accordion-item:hover {
1849
+ border-color: SelectedItem !important;
1850
+ }
1851
+
1852
+ .text-gradient,
1853
+ .bg-starlight {
1854
+ background: none !important;
1855
+ -webkit-text-fill-color: CanvasText !important;
1856
+ color: CanvasText !important;
1857
+ text-decoration: underline;
1858
+ }
1859
+ }
1860
+
1861
+ button:not([class]) {
1862
+ background-color: rgb(255 255 255 / 8%);
1863
+ color: var(--q-text-primary) !important;
1864
+ font-weight: 600;
1865
+ border: none;
1866
+ border-radius: 0.5rem;
1867
+ display: inline-flex;
1868
+ align-items: center;
1869
+ justify-content: center;
1870
+ padding: 0.75rem;
1871
+ cursor: pointer;
1872
+ transition: all 0.2s ease;
1873
+ backdrop-filter: blur(12px);
1874
+ -webkit-backdrop-filter: blur(12px);
1875
+ text-decoration: none;
1876
+ }
1877
+
1878
+ .card button:not([class]),
1879
+ .starlight-card button:not([class]),
1880
+ .glass button:not([class]) {
1881
+ width: 100%;
1882
+ }
1883
+
1884
+ button:not([class]):hover {
1885
+ background-color: rgb(255 255 255 / 12%);
1886
+ transform: translateY(-1px);
1887
+ }
1888
+
1889
+ button:not([class]):active {
1890
+ transform: translateY(0) scale(0.98);
1891
+ }
1892
+
1893
+ html[data-theme="light"] button:not([class]) {
1894
+ background-color: rgb(0 0 0 / 5%);
1895
+ color: #1e293b !important;
1896
+ }
1897
+
1898
+ html[data-theme="light"] button:not([class]):hover {
1899
+ background-color: rgb(0 0 0 / 8%);
1900
+ }
1901
+
1902
+ form button:not([class]),
1903
+ .btn-starlight {
1904
+ background: linear-gradient(
1905
+ 135deg,
1906
+ var(--q-color-starlight-peach) 0%,
1907
+ var(--q-color-starlight-blue) 100%
1908
+ );
1909
+ color: #000 !important;
1124
1910
  font-weight: 700;
1125
1911
  border: none;
1126
1912
  border-radius: 0.5rem;
1127
1913
  display: inline-flex;
1128
1914
  align-items: center;
1129
1915
  justify-content: center;
1916
+ padding: 0.75rem 1.5rem;
1130
1917
  cursor: pointer;
1131
- transition: all var(--q-duration-base) var(--q-ease-in-out);
1132
- box-shadow: 0 0 20px color-mix(in srgb, var(--q-color-primary), transparent 70%);
1918
+ transition: all 0.2s ease;
1919
+ box-shadow: 0 0 20px rgb(0 212 255 / 30%);
1133
1920
  text-decoration: none;
1134
- }
1135
-
1136
- .btn-starlight:hover {
1921
+ }
1922
+
1923
+ form button:not([class]):hover,
1924
+ .btn-starlight:hover {
1137
1925
  transform: translateY(-2px);
1138
1926
  filter: brightness(1.1);
1139
- }
1140
-
1141
- .btn-starlight:active {
1927
+ box-shadow: 0 0 30px rgb(0 212 255 / 50%);
1928
+ }
1929
+
1930
+ form button:not([class]):active,
1931
+ .btn-starlight:active {
1142
1932
  transform: translateY(0) scale(0.95);
1143
1933
  filter: brightness(0.9);
1144
- }
1145
-
1146
- .btn-starlight:focus-visible {
1934
+ }
1935
+
1936
+ form button:not([class]):focus-visible,
1937
+ .btn-starlight:focus-visible {
1147
1938
  outline: 2px solid white;
1148
1939
  outline-offset: 2px;
1149
1940
  box-shadow: 0 0 0 4px rgb(0 212 255 / 30%);
1150
- }
1151
-
1152
- html[data-theme="light"] .btn-starlight:focus-visible {
1941
+ }
1942
+
1943
+ html[data-theme="light"] form button:not([class]):focus-visible,
1944
+ html[data-theme="light"] .btn-starlight:focus-visible {
1153
1945
  outline-color: var(--q-color-starlight-blue);
1154
- }}
1946
+ }
1155
1947
 
1156
1948
  /* ============================================
1157
1949
  LAYOUT PRESETS - Composable, Flexible
@@ -1159,165 +1951,165 @@ html[data-theme="light"] * {
1159
1951
 
1160
1952
  /* Email 3-column layout */
1161
1953
  .email-nav {
1162
- display: flex;
1163
- flex-direction: column;
1164
- height: 100%;
1165
- background: rgb(0 0 0 / 40%);
1166
- backdrop-filter: blur(24px);
1167
- -webkit-backdrop-filter: blur(24px);
1168
- border-right: 1px solid rgb(255 255 255 / 10%);
1169
- padding: 1rem;
1170
- overflow-y: auto;
1954
+ display: flex;
1955
+ flex-direction: column;
1956
+ height: 100%;
1957
+ background: rgb(0 0 0 / 40%);
1958
+ backdrop-filter: blur(24px);
1959
+ -webkit-backdrop-filter: blur(24px);
1960
+ border-right: 1px solid var(--q-color-border-strong);
1961
+ padding: 1rem;
1962
+ overflow-y: auto;
1171
1963
  }
1172
1964
 
1173
1965
  .email-feed {
1174
- display: flex;
1175
- flex-direction: column;
1176
- height: 100%;
1177
- background: rgb(255 255 255 / 5%);
1178
- backdrop-filter: blur(16px);
1179
- -webkit-backdrop-filter: blur(16px);
1180
- border-right: 1px solid rgb(255 255 255 / 10%);
1181
- overflow-y: auto;
1966
+ display: flex;
1967
+ flex-direction: column;
1968
+ height: 100%;
1969
+ background: var(--q-color-border);
1970
+ backdrop-filter: blur(16px);
1971
+ -webkit-backdrop-filter: blur(16px);
1972
+ border-right: 1px solid var(--q-color-border-strong);
1973
+ overflow-y: auto;
1182
1974
  }
1183
1975
 
1184
1976
  .email-content {
1185
- display: flex;
1186
- flex-direction: column;
1187
- height: 100%;
1188
- overflow-y: auto;
1977
+ display: flex;
1978
+ flex-direction: column;
1979
+ height: 100%;
1980
+ overflow-y: auto;
1189
1981
  }
1190
1982
 
1191
1983
  /* Music 2-column + footer layout */
1192
1984
  .music-nav {
1193
- display: flex;
1194
- flex-direction: column;
1195
- height: 100%;
1196
- background: rgb(0 0 0 / 40%);
1197
- backdrop-filter: blur(24px);
1198
- -webkit-backdrop-filter: blur(24px);
1199
- border-right: 1px solid rgb(255 255 255 / 10%);
1200
- padding: 1rem;
1201
- overflow-y: auto;
1985
+ display: flex;
1986
+ flex-direction: column;
1987
+ height: 100%;
1988
+ background: rgb(0 0 0 / 40%);
1989
+ backdrop-filter: blur(24px);
1990
+ -webkit-backdrop-filter: blur(24px);
1991
+ border-right: 1px solid var(--q-color-border-strong);
1992
+ padding: 1rem;
1993
+ overflow-y: auto;
1202
1994
  }
1203
1995
 
1204
1996
  .music-content {
1205
- display: flex;
1206
- flex-direction: column;
1207
- height: 100%;
1208
- overflow-y: auto;
1997
+ display: flex;
1998
+ flex-direction: column;
1999
+ height: 100%;
2000
+ overflow-y: auto;
1209
2001
  }
1210
2002
 
1211
2003
  .music-footer {
1212
- display: flex;
1213
- align-items: center;
1214
- justify-content: space-between;
1215
- padding: 1rem 1.5rem;
1216
- background: rgb(0 0 0 / 40%);
1217
- backdrop-filter: blur(24px);
1218
- -webkit-backdrop-filter: blur(24px);
1219
- border-top: 1px solid rgb(255 255 255 / 10%);
2004
+ display: flex;
2005
+ align-items: center;
2006
+ justify-content: space-between;
2007
+ padding: 1rem 1.5rem;
2008
+ background: rgb(0 0 0 / 40%);
2009
+ backdrop-filter: blur(24px);
2010
+ -webkit-backdrop-filter: blur(24px);
2011
+ border-top: 1px solid var(--q-color-border-strong);
1220
2012
  }
1221
2013
 
1222
2014
  /* Chat 2-column layout */
1223
2015
  .chat-sidebar {
1224
- display: flex;
1225
- flex-direction: column;
1226
- height: 100%;
1227
- background: rgb(0 0 0 / 40%);
1228
- backdrop-filter: blur(24px);
1229
- -webkit-backdrop-filter: blur(24px);
1230
- border-right: 1px solid rgb(255 255 255 / 10%);
1231
- overflow: hidden;
2016
+ display: flex;
2017
+ flex-direction: column;
2018
+ height: 100%;
2019
+ background: rgb(0 0 0 / 40%);
2020
+ backdrop-filter: blur(24px);
2021
+ -webkit-backdrop-filter: blur(24px);
2022
+ border-right: 1px solid var(--q-color-border-strong);
2023
+ overflow: hidden;
1232
2024
  }
1233
2025
 
1234
2026
  .chat-content {
1235
- display: flex;
1236
- flex-direction: column;
1237
- height: 100%;
1238
- overflow: hidden;
2027
+ display: flex;
2028
+ flex-direction: column;
2029
+ height: 100%;
2030
+ overflow: hidden;
1239
2031
  }
1240
2032
 
1241
2033
  /* Admin 2-column layout */
1242
2034
  .admin-sidebar {
1243
- display: flex;
1244
- flex-direction: column;
1245
- height: 100%;
1246
- background: rgb(0 0 0 / 40%);
1247
- backdrop-filter: blur(24px);
1248
- -webkit-backdrop-filter: blur(24px);
1249
- border-right: 1px solid rgb(255 255 255 / 10%);
1250
- padding: 1rem;
1251
- overflow-y: auto;
2035
+ display: flex;
2036
+ flex-direction: column;
2037
+ height: 100%;
2038
+ background: rgb(0 0 0 / 40%);
2039
+ backdrop-filter: blur(24px);
2040
+ -webkit-backdrop-filter: blur(24px);
2041
+ border-right: 1px solid var(--q-color-border-strong);
2042
+ padding: 1rem;
2043
+ overflow-y: auto;
1252
2044
  }
1253
2045
 
1254
2046
  .admin-content {
1255
- display: flex;
1256
- flex-direction: column;
1257
- height: 100%;
1258
- overflow-y: auto;
2047
+ display: flex;
2048
+ flex-direction: column;
2049
+ height: 100%;
2050
+ overflow-y: auto;
1259
2051
  }
1260
2052
 
1261
2053
  /* Analytics 2-column layout */
1262
2054
  .analytics-sidebar {
1263
- display: flex;
1264
- flex-direction: column;
1265
- height: 100%;
1266
- background: rgb(0 0 0 / 40%);
1267
- backdrop-filter: blur(24px);
1268
- -webkit-backdrop-filter: blur(24px);
1269
- border-right: 1px solid rgb(255 255 255 / 10%);
1270
- padding: 1rem;
1271
- overflow-y: auto;
2055
+ display: flex;
2056
+ flex-direction: column;
2057
+ height: 100%;
2058
+ background: rgb(0 0 0 / 40%);
2059
+ backdrop-filter: blur(24px);
2060
+ -webkit-backdrop-filter: blur(24px);
2061
+ border-right: 1px solid var(--q-color-border-strong);
2062
+ padding: 1rem;
2063
+ overflow-y: auto;
1272
2064
  }
1273
2065
 
1274
2066
  .analytics-content {
1275
- display: flex;
1276
- flex-direction: column;
1277
- height: 100%;
1278
- overflow-y: auto;
2067
+ display: flex;
2068
+ flex-direction: column;
2069
+ height: 100%;
2070
+ overflow-y: auto;
1279
2071
  }
1280
2072
 
1281
2073
  /* Layout container classes (use in parent grid) */
1282
2074
  .layout-email-3col {
1283
- display: grid;
1284
- height: 100vh;
1285
- grid-template-columns: 280px 320px 1fr;
1286
- overflow: hidden;
2075
+ display: grid;
2076
+ height: 100vh;
2077
+ grid-template-columns: 280px 320px 1fr;
2078
+ overflow: hidden;
1287
2079
  }
1288
2080
 
1289
2081
  .layout-music-2col {
1290
- display: grid;
1291
- height: 100vh;
1292
- grid-template-rows: 1fr auto;
1293
- overflow: hidden;
2082
+ display: grid;
2083
+ height: 100vh;
2084
+ grid-template-rows: 1fr auto;
2085
+ overflow: hidden;
1294
2086
  }
1295
2087
 
1296
2088
  .layout-music-row {
1297
- display: grid;
1298
- grid-template-columns: 280px 1fr;
1299
- overflow: hidden;
2089
+ display: grid;
2090
+ grid-template-columns: 280px 1fr;
2091
+ overflow: hidden;
1300
2092
  }
1301
2093
 
1302
2094
  .layout-chat-2col {
1303
- display: grid;
1304
- height: 100vh;
1305
- grid-template-columns: 320px 1fr;
1306
- overflow: hidden;
2095
+ display: grid;
2096
+ height: 100vh;
2097
+ grid-template-columns: 320px 1fr;
2098
+ overflow: hidden;
1307
2099
  }
1308
2100
 
1309
2101
  .layout-admin-2col {
1310
- display: grid;
1311
- height: 100vh;
1312
- grid-template-columns: 260px 1fr;
1313
- overflow: hidden;
2102
+ display: grid;
2103
+ height: 100vh;
2104
+ grid-template-columns: 260px 1fr;
2105
+ overflow: hidden;
1314
2106
  }
1315
2107
 
1316
2108
  .layout-analytics-2col {
1317
- display: grid;
1318
- height: 100vh;
1319
- grid-template-columns: 240px 1fr;
1320
- overflow: hidden;
2109
+ display: grid;
2110
+ height: 100vh;
2111
+ grid-template-columns: 240px 1fr;
2112
+ overflow: hidden;
1321
2113
  }
1322
2114
 
1323
2115
  /* ============================================
@@ -1326,448 +2118,1304 @@ html[data-theme="light"] * {
1326
2118
 
1327
2119
  /* Stat Card - for dashboard metrics */
1328
2120
  .starlight-stat {
1329
- display: flex;
1330
- flex-direction: column;
1331
- gap: 0.5rem;
1332
- padding: 1.25rem;
1333
- background: rgb(255 255 255 / 3%);
1334
- border: 1px solid rgb(255 255 255 / 8%);
1335
- border-radius: var(--q-radius-xl);
1336
- transition: all 0.3s ease;
2121
+ display: flex;
2122
+ flex-direction: column;
2123
+ gap: 0.5rem;
2124
+ padding: 1.25rem;
2125
+ background: rgb(255 255 255 / 3%);
2126
+ border: 1px solid rgb(255 255 255 / 8%);
2127
+ border-radius: var(--q-radius-xl);
2128
+ transition: all 0.3s ease;
1337
2129
  }
1338
2130
 
1339
2131
  .starlight-stat:hover {
1340
- background: rgb(255 255 255 / 5%);
1341
- border-color: rgb(255 255 255 / 12%);
2132
+ background: var(--q-color-border);
2133
+ border-color: rgb(255 255 255 / 12%);
1342
2134
  }
1343
2135
 
1344
2136
  .starlight-stat-header {
1345
- display: flex;
1346
- align-items: center;
1347
- justify-content: space-between;
2137
+ display: flex;
2138
+ align-items: center;
2139
+ justify-content: space-between;
1348
2140
  }
1349
2141
 
1350
2142
  .starlight-stat-icon {
1351
- display: flex;
1352
- align-items: center;
1353
- justify-content: center;
1354
- width: 2.5rem;
1355
- height: 2.5rem;
1356
- border-radius: var(--q-radius-lg);
1357
- background: color-mix(in srgb, var(--q-color-primary) 15%, transparent);
1358
- color: var(--q-color-primary);
2143
+ display: flex;
2144
+ align-items: center;
2145
+ justify-content: center;
2146
+ width: 2.5rem;
2147
+ height: 2.5rem;
2148
+ border-radius: var(--q-radius-lg);
2149
+ background: rgb(0 212 255 / 15%);
2150
+ color: var(--q-color-starlight-blue);
1359
2151
  }
1360
2152
 
1361
- .starlight-stat-icon-green { background: rgb(16 185 129 / 15%); color: #10b981; }
1362
- .starlight-stat-icon-orange { background: rgb(245 158 11 / 15%); color: #f59e0b; }
1363
- .starlight-stat-icon-purple { background: rgb(139 92 246 / 15%); color: #8b5cf6; }
1364
- .starlight-stat-icon-pink { background: rgb(236 72 153 / 15%); color: #ec4899; }
2153
+ .starlight-stat-icon-green {
2154
+ background: rgb(16 185 129 / 15%);
2155
+ color: #10b981;
2156
+ }
2157
+ .starlight-stat-icon-orange {
2158
+ background: rgb(245 158 11 / 15%);
2159
+ color: #f59e0b;
2160
+ }
2161
+ .starlight-stat-icon-purple {
2162
+ background: rgb(139 92 246 / 15%);
2163
+ color: #8b5cf6;
2164
+ }
2165
+ .starlight-stat-icon-pink {
2166
+ background: rgb(236 72 153 / 15%);
2167
+ color: #ec4899;
2168
+ }
1365
2169
 
1366
2170
  .starlight-stat-trend {
1367
- display: flex;
1368
- align-items: center;
1369
- gap: 0.25rem;
1370
- font-size: 0.75rem;
1371
- font-weight: 600;
2171
+ display: flex;
2172
+ align-items: center;
2173
+ gap: 0.25rem;
2174
+ font-size: 0.75rem;
2175
+ font-weight: 600;
1372
2176
  }
1373
2177
 
1374
- .starlight-stat-trend-up { color: #10b981; }
1375
- .starlight-stat-trend-down { color: #ef4444; }
2178
+ .starlight-stat-trend-up {
2179
+ color: #10b981;
2180
+ }
2181
+ .starlight-stat-trend-down {
2182
+ color: #ef4444;
2183
+ }
1376
2184
 
1377
2185
  .starlight-stat-value {
1378
- font-size: 1.75rem;
1379
- font-weight: 700;
1380
- color: var(--q-color-primary);
2186
+ font-size: 1.75rem;
2187
+ font-weight: 700;
2188
+ color: var(--q-color-starlight-blue);
1381
2189
  }
1382
2190
 
1383
2191
  .starlight-stat-label {
1384
- font-size: 0.875rem;
1385
- color: rgb(255 255 255 / 60%);
1386
- text-transform: uppercase;
1387
- letter-spacing: 0.05em;
2192
+ font-size: 0.875rem;
2193
+ color: rgb(255 255 255 / 60%);
2194
+ text-transform: uppercase;
2195
+ letter-spacing: 0.05em;
1388
2196
  }
1389
2197
 
1390
2198
  /* Avatar - user/channel images */
1391
2199
  .starlight-avatar {
1392
- display: flex;
1393
- align-items: center;
1394
- justify-content: center;
1395
- border-radius: 50%;
1396
- font-weight: 600;
1397
- color: white;
1398
- background: linear-gradient(135deg, var(--q-color-starlight-blue), #3b82f6);
1399
- flex-shrink: 0;
2200
+ display: flex;
2201
+ align-items: center;
2202
+ justify-content: center;
2203
+ border-radius: 50%;
2204
+ font-weight: 600;
2205
+ color: white;
2206
+ background: linear-gradient(135deg, var(--q-color-starlight-blue), #3b82f6);
2207
+ flex-shrink: 0;
1400
2208
  }
1401
2209
 
1402
2210
  .starlight-avatar-sm {
1403
- width: 2rem;
1404
- height: 2rem;
1405
- font-size: 0.625rem;
2211
+ width: 2rem;
2212
+ height: 2rem;
2213
+ font-size: 0.625rem;
1406
2214
  }
1407
2215
 
1408
2216
  .starlight-avatar-md {
1409
- width: 2.5rem;
1410
- height: 2.5rem;
1411
- font-size: 0.75rem;
2217
+ width: 2.5rem;
2218
+ height: 2.5rem;
2219
+ font-size: 0.75rem;
1412
2220
  }
1413
2221
 
1414
2222
  .starlight-avatar-lg {
1415
- width: 3rem;
1416
- height: 3rem;
1417
- font-size: 0.875rem;
2223
+ width: 3rem;
2224
+ height: 3rem;
2225
+ font-size: 0.875rem;
1418
2226
  }
1419
2227
 
1420
2228
  .starlight-avatar-xl {
1421
- width: 4rem;
1422
- height: 4rem;
1423
- font-size: 1.125rem;
2229
+ width: 4rem;
2230
+ height: 4rem;
2231
+ font-size: 1.125rem;
1424
2232
  }
1425
2233
 
1426
2234
  .starlight-avatar img {
1427
- width: 100%;
1428
- height: 100%;
1429
- object-fit: cover;
1430
- border-radius: 50%;
2235
+ width: 100%;
2236
+ height: 100%;
2237
+ object-fit: cover;
2238
+ border-radius: 50%;
1431
2239
  }
1432
2240
 
1433
2241
  .starlight-avatar-online::after {
1434
- content: '';
1435
- position: absolute;
1436
- bottom: 0;
1437
- right: 0;
1438
- width: 0.75rem;
1439
- height: 0.75rem;
1440
- background: #10b981;
1441
- border: 2px solid var(--q-color-starlight-deep);
1442
- border-radius: 50%;
2242
+ content: "";
2243
+ position: absolute;
2244
+ bottom: 0;
2245
+ right: 0;
2246
+ width: 0.75rem;
2247
+ height: 0.75rem;
2248
+ background: #10b981;
2249
+ border: 2px solid var(--q-color-starlight-deep);
2250
+ border-radius: 50%;
1443
2251
  }
1444
2252
 
1445
2253
  /* Theme Toggle */
1446
2254
  .starlight-theme-toggle {
1447
- display: flex;
1448
- align-items: center;
1449
- justify-content: center;
1450
- width: 2.5rem;
1451
- height: 2.5rem;
1452
- border-radius: 50%;
1453
- background: rgb(255 255 255 / 5%);
1454
- border: 1px solid rgb(255 255 255 / 10%);
1455
- color: inherit;
1456
- cursor: pointer;
1457
- transition: all 0.3s ease;
1458
- flex-shrink: 0;
2255
+ display: flex;
2256
+ align-items: center;
2257
+ justify-content: center;
2258
+ width: 2.5rem;
2259
+ height: 2.5rem;
2260
+ border-radius: 50%;
2261
+ background: var(--q-color-border);
2262
+ border: 1px solid var(--q-color-border-strong);
2263
+ color: inherit;
2264
+ cursor: pointer;
2265
+ transition: all 0.3s ease;
2266
+ flex-shrink: 0;
1459
2267
  }
1460
2268
 
1461
2269
  .starlight-theme-toggle:hover {
1462
- background: rgb(255 255 255 / 10%);
1463
- transform: scale(1.05);
2270
+ background: var(--q-color-border-strong);
2271
+ transform: scale(1.05);
1464
2272
  }
1465
2273
 
1466
2274
  .starlight-theme-toggle svg {
1467
- width: 1.25rem;
1468
- height: 1.25rem;
2275
+ width: 1.25rem;
2276
+ height: 1.25rem;
1469
2277
  }
1470
2278
 
1471
2279
  /* Notification Bell */
1472
2280
  .starlight-notification {
1473
- position: relative;
1474
- display: flex;
1475
- align-items: center;
1476
- justify-content: center;
1477
- width: 2.5rem;
1478
- height: 2.5rem;
1479
- background: transparent;
1480
- border: none;
1481
- color: inherit;
1482
- cursor: pointer;
1483
- transition: all var(--q-duration-base) var(--q-ease-in-out);
2281
+ position: relative;
2282
+ display: flex;
2283
+ align-items: center;
2284
+ justify-content: center;
2285
+ width: 2.5rem;
2286
+ height: 2.5rem;
2287
+ background: transparent;
2288
+ border: none;
2289
+ color: inherit;
2290
+ cursor: pointer;
2291
+ transition: all 0.2s ease;
1484
2292
  }
1485
2293
 
1486
2294
  .starlight-notification:hover {
1487
- color: var(--q-color-starlight-blue);
2295
+ color: var(--q-color-starlight-blue);
1488
2296
  }
1489
2297
 
1490
2298
  .starlight-notification-dot {
1491
- position: absolute;
1492
- top: 0.5rem;
1493
- right: 0.5rem;
1494
- width: 0.5rem;
1495
- height: 0.5rem;
1496
- background: #ef4444;
1497
- border-radius: 50%;
1498
- animation: starlight-pulse 2s infinite;
2299
+ position: absolute;
2300
+ top: 0.5rem;
2301
+ right: 0.5rem;
2302
+ width: 0.5rem;
2303
+ height: 0.5rem;
2304
+ background: #ef4444;
2305
+ border-radius: 50%;
2306
+ animation: starlight-pulse 2s infinite;
1499
2307
  }
1500
2308
 
1501
2309
  @keyframes starlight-pulse {
1502
- 0%, 100% { opacity: 1; }
1503
- 50% { opacity: 0.5; }
2310
+ 0%,
2311
+ 100% {
2312
+ opacity: 1;
2313
+ }
2314
+ 50% {
2315
+ opacity: 0.5;
2316
+ }
1504
2317
  }
1505
2318
 
1506
2319
  /* Data Table */
1507
2320
  .starlight-table-container {
1508
- background: rgb(255 255 255 / 3%);
1509
- border: 1px solid rgb(255 255 255 / 8%);
1510
- border-radius: var(--q-radius-xl);
1511
- overflow: hidden;
2321
+ background: rgb(255 255 255 / 3%);
2322
+ border: 1px solid rgb(255 255 255 / 8%);
2323
+ border-radius: var(--q-radius-xl);
2324
+ overflow: hidden;
1512
2325
  }
1513
2326
 
1514
2327
  .starlight-table-header {
1515
- display: flex;
1516
- align-items: center;
1517
- justify-content: space-between;
1518
- padding: 1rem 1.25rem;
1519
- border-bottom: 1px solid rgb(255 255 255 / 8%);
2328
+ display: flex;
2329
+ align-items: center;
2330
+ justify-content: space-between;
2331
+ padding: 1rem 1.25rem;
2332
+ border-bottom: 1px solid rgb(255 255 255 / 8%);
1520
2333
  }
1521
2334
 
1522
2335
  .starlight-table-title {
1523
- font-size: 1.125rem;
1524
- font-weight: 600;
2336
+ font-size: 1.125rem;
2337
+ font-weight: 600;
1525
2338
  }
1526
2339
 
1527
2340
  .starlight-table-filters {
1528
- display: flex;
1529
- gap: 0.5rem;
2341
+ display: flex;
2342
+ gap: 0.5rem;
1530
2343
  }
1531
2344
 
1532
2345
  .starlight-table {
1533
- width: 100%;
1534
- border-collapse: collapse;
2346
+ width: 100%;
2347
+ border-collapse: collapse;
1535
2348
  }
1536
2349
 
1537
2350
  .starlight-table th,
1538
2351
  .starlight-table td {
1539
- padding: 0.875rem 1.25rem;
1540
- text-align: left;
1541
- border-bottom: 1px solid rgb(255 255 255 / 5%);
2352
+ padding: 0.875rem 1.25rem;
2353
+ text-align: left;
2354
+ border-bottom: 1px solid var(--q-color-border);
1542
2355
  }
1543
2356
 
1544
2357
  .starlight-table th {
1545
- font-size: 0.75rem;
1546
- font-weight: 600;
1547
- text-transform: uppercase;
1548
- letter-spacing: 0.05em;
1549
- color: rgb(255 255 255 / 60%);
1550
- background: rgb(255 255 255 / 2%);
2358
+ font-size: 0.75rem;
2359
+ font-weight: 600;
2360
+ text-transform: uppercase;
2361
+ letter-spacing: 0.05em;
2362
+ color: rgb(255 255 255 / 60%);
2363
+ background: rgb(255 255 255 / 2%);
1551
2364
  }
1552
2365
 
1553
2366
  .starlight-table tr:hover td {
1554
- background: rgb(255 255 255 / 3%);
2367
+ background: rgb(255 255 255 / 3%);
1555
2368
  }
1556
2369
 
1557
2370
  .starlight-table-footer {
1558
- display: flex;
1559
- align-items: center;
1560
- justify-content: space-between;
1561
- padding: 0.875rem 1.25rem;
1562
- border-top: 1px solid rgb(255 255 255 / 8%);
1563
- font-size: 0.875rem;
1564
- color: rgb(255 255 255 / 60%);
2371
+ display: flex;
2372
+ align-items: center;
2373
+ justify-content: space-between;
2374
+ padding: 0.875rem 1.25rem;
2375
+ border-top: 1px solid rgb(255 255 255 / 8%);
2376
+ font-size: 0.875rem;
2377
+ color: rgb(255 255 255 / 60%);
1565
2378
  }
1566
2379
 
1567
2380
  /* Chart Card */
1568
2381
  .starlight-chart {
1569
- background: rgb(255 255 255 / 3%);
1570
- border: 1px solid rgb(255 255 255 / 8%);
1571
- border-radius: var(--q-radius-xl);
1572
- overflow: hidden;
2382
+ background: rgb(255 255 255 / 3%);
2383
+ border: 1px solid rgb(255 255 255 / 8%);
2384
+ border-radius: var(--q-radius-xl);
2385
+ overflow: hidden;
1573
2386
  }
1574
2387
 
1575
2388
  .starlight-chart-header {
1576
- display: flex;
1577
- align-items: center;
1578
- justify-content: space-between;
1579
- padding: 1rem 1.25rem;
1580
- border-bottom: 1px solid rgb(255 255 255 / 5%);
2389
+ display: flex;
2390
+ align-items: center;
2391
+ justify-content: space-between;
2392
+ padding: 1rem 1.25rem;
2393
+ border-bottom: 1px solid var(--q-color-border);
1581
2394
  }
1582
2395
 
1583
2396
  .starlight-chart-title {
1584
- font-size: 1rem;
1585
- font-weight: 600;
2397
+ font-size: 1rem;
2398
+ font-weight: 600;
1586
2399
  }
1587
2400
 
1588
2401
  .starlight-chart-tabs {
1589
- display: flex;
1590
- gap: 0.25rem;
2402
+ display: flex;
2403
+ gap: 0.25rem;
1591
2404
  }
1592
2405
 
1593
2406
  .starlight-chart-tab {
1594
- padding: 0.375rem 0.75rem;
1595
- font-size: 0.75rem;
1596
- font-weight: 500;
1597
- background: transparent;
1598
- border: none;
1599
- border-radius: var(--q-radius-md);
1600
- color: rgb(255 255 255 / 60%);
1601
- cursor: pointer;
1602
- transition: all var(--q-duration-base) var(--q-ease-in-out);
2407
+ padding: 0.375rem 0.75rem;
2408
+ font-size: 0.75rem;
2409
+ font-weight: 500;
2410
+ background: transparent;
2411
+ border: none;
2412
+ border-radius: var(--q-radius-md);
2413
+ color: rgb(255 255 255 / 60%);
2414
+ cursor: pointer;
2415
+ transition: all 0.2s ease;
1603
2416
  }
1604
2417
 
1605
2418
  .starlight-chart-tab:hover {
1606
- color: inherit;
2419
+ color: inherit;
1607
2420
  }
1608
2421
 
1609
2422
  .starlight-chart-tab.active {
1610
- background: rgb(0 212 255 / 15%);
1611
- color: var(--q-color-starlight-blue);
2423
+ background: rgb(0 212 255 / 15%);
2424
+ color: var(--q-color-starlight-blue);
1612
2425
  }
1613
2426
 
1614
2427
  .starlight-chart-container {
1615
- padding: 1.25rem;
2428
+ padding: 1.25rem;
1616
2429
  }
1617
2430
 
1618
2431
  /* Breadcrumb */
1619
2432
  .starlight-breadcrumb {
1620
- display: flex;
1621
- align-items: center;
1622
- gap: 0.5rem;
1623
- font-size: 0.875rem;
2433
+ display: flex;
2434
+ align-items: center;
2435
+ gap: 0.5rem;
2436
+ font-size: 0.875rem;
1624
2437
  }
1625
2438
 
1626
2439
  .starlight-breadcrumb-item {
1627
- color: rgb(255 255 255 / 60%);
1628
- text-decoration: none;
1629
- transition: color 0.2s ease;
2440
+ color: rgb(255 255 255 / 60%);
2441
+ text-decoration: none;
2442
+ transition: color 0.2s ease;
1630
2443
  }
1631
2444
 
1632
2445
  .starlight-breadcrumb-item:hover {
1633
- color: var(--q-color-starlight-blue);
2446
+ color: var(--q-color-starlight-blue);
1634
2447
  }
1635
2448
 
1636
2449
  .starlight-breadcrumb-separator {
1637
- color: rgb(255 255 255 / 40%);
2450
+ color: rgb(255 255 255 / 40%);
1638
2451
  }
1639
2452
 
1640
2453
  .starlight-breadcrumb-current {
1641
- color: inherit;
1642
- font-weight: 500;
2454
+ color: inherit;
2455
+ font-weight: 500;
1643
2456
  }
1644
2457
 
1645
2458
  /* Gallery (enhanced) */
1646
- .starlight-gallery-grid {
1647
- display: grid;
1648
- gap: 1rem;
2459
+ .gallery-grid {
2460
+ display: grid;
2461
+ gap: 1rem;
1649
2462
  }
1650
2463
 
1651
- .starlight-gallery-item {
1652
- position: relative;
1653
- aspect-ratio: 16 / 9;
1654
- border-radius: var(--q-radius-lg);
1655
- overflow: hidden;
2464
+ .gallery-item {
2465
+ position: relative;
2466
+ aspect-ratio: 16 / 9;
2467
+ border-radius: var(--q-radius-lg);
2468
+ overflow: hidden;
1656
2469
  }
1657
2470
 
1658
- .starlight-gallery-item img {
1659
- width: 100%;
1660
- height: 100%;
1661
- object-fit: cover;
1662
- transition: transform var(--q-duration-slower) var(--q-ease-in-out);
2471
+ .gallery-item img {
2472
+ width: 100%;
2473
+ height: 100%;
2474
+ object-fit: cover;
2475
+ transition: transform 0.5s ease;
1663
2476
  }
1664
2477
 
1665
- .starlight-gallery-item:hover img {
1666
- transform: scale(1.05);
2478
+ .gallery-item:hover img {
2479
+ transform: scale(1.05);
1667
2480
  }
1668
2481
 
1669
- .starlight-gallery-overlay {
1670
- position: absolute;
1671
- inset: 0;
1672
- display: flex;
1673
- align-items: flex-end;
1674
- padding: 1rem;
1675
- background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
1676
- opacity: 0;
1677
- transition: opacity var(--q-duration-slow) var(--q-ease-in-out);
2482
+ .gallery-overlay {
2483
+ position: absolute;
2484
+ inset: 0;
2485
+ display: flex;
2486
+ align-items: flex-end;
2487
+ padding: 1rem;
2488
+ background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
2489
+ opacity: 0;
2490
+ transition: opacity 0.3s ease;
2491
+ color: white !important;
1678
2492
  }
1679
2493
 
1680
- .starlight-gallery-item:hover .starlight-gallery-overlay {
1681
- opacity: 1;
2494
+ .gallery-item:hover .gallery-overlay {
2495
+ opacity: 1;
1682
2496
  }
1683
2497
 
1684
2498
  /* Progress Bar */
1685
2499
  .starlight-progress {
1686
- display: flex;
1687
- align-items: center;
1688
- gap: 0.75rem;
2500
+ display: flex;
2501
+ align-items: center;
2502
+ gap: 0.75rem;
1689
2503
  }
1690
2504
 
1691
2505
  .starlight-progress-bar {
1692
- flex: 1;
1693
- height: 0.5rem;
1694
- background: rgb(255 255 255 / 10%);
1695
- border-radius: 9999px;
1696
- overflow: hidden;
2506
+ flex: 1;
2507
+ height: 0.5rem;
2508
+ background: var(--q-color-border-strong);
2509
+ border-radius: 9999px;
2510
+ overflow: hidden;
1697
2511
  }
1698
2512
 
1699
2513
  .starlight-progress-fill {
1700
- height: 100%;
1701
- background: linear-gradient(90deg, var(--q-color-starlight-blue), var(--q-color-starlight-peach));
1702
- border-radius: 9999px;
1703
- transition: width var(--q-duration-slower) var(--q-ease-in-out);
2514
+ height: 100%;
2515
+ background: linear-gradient(
2516
+ 90deg,
2517
+ var(--q-color-starlight-blue),
2518
+ var(--q-color-starlight-peach)
2519
+ );
2520
+ border-radius: 9999px;
2521
+ transition: width 0.5s ease;
1704
2522
  }
1705
2523
 
1706
2524
  .starlight-progress-value {
1707
- font-size: 0.875rem;
1708
- font-weight: 600;
1709
- min-width: 3rem;
1710
- text-align: right;
2525
+ font-size: 0.875rem;
2526
+ font-weight: 600;
2527
+ min-width: 3rem;
2528
+ text-align: right;
1711
2529
  }
1712
2530
 
1713
2531
  /* Player Controls */
1714
2532
  .starlight-player-controls {
1715
- display: flex;
1716
- align-items: center;
1717
- gap: 1rem;
2533
+ display: flex;
2534
+ align-items: center;
2535
+ gap: 1rem;
1718
2536
  }
1719
2537
 
1720
2538
  .starlight-player-btn {
1721
- display: flex;
1722
- align-items: center;
1723
- justify-content: center;
1724
- width: 2.5rem;
1725
- height: 2.5rem;
1726
- background: transparent;
1727
- border: none;
1728
- color: inherit;
1729
- cursor: pointer;
1730
- transition: all var(--q-duration-base) var(--q-ease-in-out);
2539
+ display: flex;
2540
+ align-items: center;
2541
+ justify-content: center;
2542
+ width: 2.5rem;
2543
+ height: 2.5rem;
2544
+ background: transparent;
2545
+ border: none;
2546
+ color: inherit;
2547
+ cursor: pointer;
2548
+ transition: all 0.2s ease;
1731
2549
  }
1732
2550
 
1733
2551
  .starlight-player-btn:hover {
1734
- color: var(--q-color-starlight-blue);
1735
- transform: scale(1.1);
2552
+ color: var(--q-color-starlight-blue);
2553
+ transform: scale(1.1);
1736
2554
  }
1737
2555
 
1738
2556
  .starlight-player-btn-primary {
1739
- width: 3rem;
1740
- height: 3rem;
1741
- background: var(--q-color-starlight-blue);
1742
- border-radius: 50%;
1743
- color: #000;
2557
+ width: 3rem;
2558
+ height: 3rem;
2559
+ background: var(--q-color-starlight-blue);
2560
+ border-radius: 50%;
2561
+ color: #000;
1744
2562
  }
1745
2563
 
1746
2564
  .starlight-player-btn-primary:hover {
1747
- background: var(--q-color-starlight-peach);
2565
+ background: var(--q-color-starlight-peach);
1748
2566
  }
1749
2567
 
1750
2568
  /* Page Header */
1751
2569
  .starlight-page-header {
1752
- display: flex;
1753
- align-items: center;
1754
- justify-content: space-between;
1755
- padding: 1.5rem;
2570
+ display: flex;
2571
+ align-items: center;
2572
+ justify-content: space-between;
2573
+ padding: 1.5rem;
1756
2574
  }
1757
2575
 
1758
2576
  .starlight-page-title {
1759
- font-size: 1.875rem;
1760
- font-weight: 700;
2577
+ font-size: 1.875rem;
2578
+ font-weight: 700;
1761
2579
  }
1762
2580
 
1763
2581
  .starlight-page-subtitle {
1764
- font-size: 0.875rem;
1765
- color: rgb(255 255 255 / 60%);
1766
- margin-top: 0.25rem;
2582
+ font-size: 0.875rem;
2583
+ color: rgb(255 255 255 / 60%);
2584
+ margin-top: 0.25rem;
1767
2585
  }
1768
2586
 
1769
2587
  .starlight-page-actions {
1770
- display: flex;
1771
- align-items: center;
1772
- gap: 0.75rem;
2588
+ display: flex;
2589
+ align-items: center;
2590
+ gap: 0.75rem;
2591
+ }
2592
+
2593
+ /* ============================================
2594
+ STARLIGHT LAYOUT - Zero-Boilerplate Atmospheric
2595
+ ============================================ */
2596
+
2597
+ .starlight-layout {
2598
+ background: transparent !important;
2599
+ min-height: 100vh;
2600
+ }
2601
+
2602
+ .starlight-layout > :not(.starlight-stars) {
2603
+ position: relative;
2604
+ z-index: 1;
2605
+ }
2606
+
2607
+ html[data-theme="light"] .starlight-layout {
2608
+ background: var(--q-light-bg, #f8fafc) !important;
2609
+ }
2610
+
2611
+ /* Sidebar Styles */
2612
+ aside {
2613
+ display: flex;
2614
+ flex-direction: column;
2615
+ }
2616
+
2617
+ .card {
2618
+ background: rgba(30, 41, 59, 0.4);
2619
+ border: 1px solid rgba(255, 255, 255, 0.1);
2620
+ border-radius: 1rem;
2621
+ padding: 1.5rem;
2622
+ }
2623
+
2624
+ aside h3 {
2625
+ font-size: 1.125rem;
2626
+ font-weight: 700;
2627
+ margin: 0 0 1rem;
2628
+ }
2629
+
2630
+ aside p {
2631
+ font-size: 0.875rem;
2632
+ color: var(--secondary);
2633
+ margin-bottom: 1rem;
2634
+ }
2635
+
2636
+ /* Footer Styles */
2637
+ footer {
2638
+ background: rgba(0, 0, 0, 0.2);
2639
+ backdrop-filter: blur(16px);
2640
+ -webkit-backdrop-filter: blur(16px);
2641
+ border-top: 1px solid var(--q-color-border);
2642
+ padding: 3rem 2rem;
2643
+ text-align: center;
2644
+ }
2645
+
2646
+ footer > div {
2647
+ max-width: 1280px;
2648
+ margin: 0 auto;
2649
+ padding: 3rem 1.5rem;
2650
+ display: flex;
2651
+ flex-direction: column;
2652
+ align-items: center;
2653
+ gap: 1.5rem;
2654
+ }
2655
+
2656
+ @media (min-width: 768px) {
2657
+ footer > div {
2658
+ flex-direction: row;
2659
+ justify-content: space-between;
2660
+ }
2661
+ }
2662
+
2663
+ footer .left {
2664
+ font-size: 0.875rem;
2665
+ color: #64748b;
2666
+ }
2667
+
2668
+ footer .right {
2669
+ display: flex;
2670
+ gap: 1.5rem;
2671
+ }
2672
+
2673
+ footer .right a {
2674
+ font-size: 0.875rem;
2675
+ color: #64748b;
2676
+ text-decoration: none;
2677
+ transition: color 0.3s;
2678
+ }
2679
+
2680
+ footer .right a:hover {
2681
+ color: var(--primary);
2682
+ }
2683
+
2684
+ /* ============================================================================
2685
+ CSS-ONLY VERTICAL ASIDE NAVIGATION
2686
+ Glassmorphic sidebar with collapsible groups
2687
+ ============================================================================ */
2688
+
2689
+ /* Aside container */
2690
+ .aside-nav {
2691
+ width: 260px;
2692
+ flex-shrink: 0;
2693
+ height: 100%;
2694
+ background-color: hsla(0, 0%, 100%, 0.05);
2695
+ border-right: 1px solid rgba(255, 255, 255, 0.08);
2696
+ display: flex;
2697
+ flex-direction: column;
2698
+ overflow-y: auto;
2699
+ overflow-x: hidden;
2700
+ backdrop-filter: blur(16px);
2701
+ -webkit-backdrop-filter: blur(16px);
2702
+ }
2703
+
2704
+ html[data-theme="light"] .aside-nav {
2705
+ background: rgba(255, 255, 255, 0.95);
2706
+ border-right-color: rgba(0, 0, 0, 0.08);
2707
+ }
2708
+
2709
+ /* Sidebar header */
2710
+ .aside-nav-header {
2711
+ padding: 1.5rem 1.25rem 1rem;
2712
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
2713
+ display: flex;
2714
+ align-items: center;
2715
+ gap: 0.75rem;
2716
+ flex-shrink: 0;
2717
+ }
2718
+
2719
+ html[data-theme="light"] .aside-nav-header {
2720
+ border-bottom-color: rgba(0, 0, 0, 0.08);
2721
+ }
2722
+
2723
+ /* Brand icon - circular gradient */
2724
+ .aside-nav-icon {
2725
+ width: 34px;
2726
+ height: 34px;
2727
+ border-radius: 50%;
2728
+ background: linear-gradient(
2729
+ 135deg,
2730
+ var(--q-color-starlight-peach),
2731
+ var(--q-color-starlight-blue)
2732
+ );
2733
+ display: grid;
2734
+ place-items: center;
2735
+ flex-shrink: 0;
2736
+ animation: pulse 2s ease-in-out infinite;
2737
+ }
2738
+
2739
+ html[data-theme="light"] .aside-nav-icon {
2740
+ background: linear-gradient(
2741
+ 135deg,
2742
+ var(--q-color-starlight-blue),
2743
+ var(--q-color-starlight-peach)
2744
+ );
2745
+ }
2746
+
2747
+ html[data-theme="light"] .aside-nav-icon i {
2748
+ background: linear-gradient(
2749
+ 135deg,
2750
+ var(--q-color-starlight-blue),
2751
+ var(--q-color-starlight-peach)
2752
+ );
2753
+ }
2754
+
2755
+ .aside-nav-icon i {
2756
+ display: flex;
2757
+ align-items: center;
2758
+ justify-content: center;
2759
+ }
2760
+
2761
+ html[data-theme="light"] .aside-nav-icon i {
2762
+ display: flex;
2763
+ align-items: center;
2764
+ justify-content: center;
2765
+ }
2766
+
2767
+ html[data-theme="light"] .aside-nav-icon i {
2768
+ color: #fff;
2769
+ }
2770
+
2771
+ .aside-nav-brand strong {
2772
+ display: block;
2773
+ font-size: 1rem;
2774
+ line-height: 1.2;
2775
+ color: var(--q-text-primary, #f1f5f9);
2776
+ font-weight: 700;
2777
+ }
2778
+
2779
+ html[data-theme="light"] .aside-nav-brand strong {
2780
+ color: var(--q-light-text, #1e293b);
2781
+ }
2782
+
2783
+ .aside-nav-brand span {
2784
+ font-size: 0.72rem;
2785
+ color: var(--q-text-muted, #64748b);
2786
+ letter-spacing: 0.04em;
2787
+ text-transform: uppercase;
2788
+ }
2789
+
2790
+ /* Aside nav inner */
2791
+ .aside-nav-inner {
2792
+ flex: 1;
2793
+ padding: 1rem 0;
2794
+ display: flex;
2795
+ flex-direction: column;
2796
+ }
2797
+
2798
+ /* Nav section */
2799
+ .aside-nav-section {
2800
+ padding: 0 0.75rem 0.5rem;
2801
+ }
2802
+
2803
+ /* Nav label */
2804
+ .aside-nav-label {
2805
+ font-size: 0.68rem;
2806
+ font-weight: 600;
2807
+ letter-spacing: 0.1em;
2808
+ text-transform: uppercase;
2809
+ color: var(--q-text-muted, rgba(255, 255, 255, 0.4));
2810
+ padding: 0.6rem 0.5rem 0.3rem;
2811
+ display: block;
2812
+ }
2813
+
2814
+ html[data-theme="light"] .aside-nav-label {
2815
+ color: var(--q-text-muted, #64748b);
2816
+ }
2817
+
2818
+ /* Nav item */
2819
+ .aside-nav-item {
2820
+ display: flex;
2821
+ align-items: center;
2822
+ gap: 0.65rem;
2823
+ padding: 0.5rem 0.65rem;
2824
+ border-radius: 7px;
2825
+ font-size: 0.875rem;
2826
+ font-weight: 500;
2827
+ color: var(--q-text-secondary, rgba(255, 255, 255, 0.6));
2828
+ text-decoration: none;
2829
+ transition:
2830
+ background 0.12s,
2831
+ color 0.12s;
2832
+ position: relative;
2833
+ }
2834
+
2835
+ .aside-nav-item:hover {
2836
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
2837
+ color: var(--q-color-starlight);
2838
+ }
2839
+
2840
+ html[data-theme="light"] .aside-nav-item {
2841
+ color: var(--q-light-text-muted, #64748b);
2842
+ }
2843
+
2844
+ html[data-theme="light"] .aside-nav-item:hover {
2845
+ background: rgba(0, 0, 0, 0.05);
2846
+ color: var(--q-light-text, #1e293b);
2847
+ }
2848
+
2849
+ .aside-nav-item.active {
2850
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
2851
+ color: var(--q-color-starlight);
2852
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
2853
+ }
2854
+
2855
+ html[data-theme="light"] .aside-nav-item.active {
2856
+ background: rgba(0, 0, 0, 0.05);
2857
+ color: var(--q-light-text, #1e293b);
2858
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
2859
+ }
2860
+
2861
+ .aside-nav-item.active::before {
2862
+ content: "";
2863
+ position: absolute;
2864
+ left: 0;
2865
+ top: 20%;
2866
+ bottom: 20%;
2867
+ width: 2.5px;
2868
+ border-radius: 0 2px 2px 0;
2869
+ background: var(--q-color-starlight);
2870
+ margin-left: -0.65rem;
2871
+ }
2872
+
2873
+ html[data-theme="light"] .aside-nav-item.active::before {
2874
+ background: var(--q-color-starlight-blue);
2875
+ }
2876
+
2877
+ /* Nav icon */
2878
+ .aside-nav-item-icon {
2879
+ width: 18px;
2880
+ height: 18px;
2881
+ flex-shrink: 0;
2882
+ opacity: 0.6;
2883
+ transition: opacity 0.12s;
2884
+ }
2885
+
2886
+ .aside-nav-item:hover .aside-nav-item-icon,
2887
+ .aside-nav-item.active .aside-nav-item-icon {
2888
+ opacity: 1;
2889
+ }
2890
+
2891
+ /* Nav badge */
2892
+ .aside-nav-badge {
2893
+ margin-left: auto;
2894
+ font-size: 0.68rem;
2895
+ font-weight: 600;
2896
+ background: linear-gradient(
2897
+ 135deg,
2898
+ var(--q-color-starlight-blue),
2899
+ var(--q-color-starlight-peach)
2900
+ );
2901
+ color: var(--q-color-starlight-deep, #0f172a);
2902
+ padding: 0.1rem 0.4rem;
2903
+ border-radius: 999px;
2904
+ line-height: 1.5;
2905
+ }
2906
+
2907
+ html[data-theme="light"] .aside-nav-badge {
2908
+ background: linear-gradient(
2909
+ 135deg,
2910
+ var(--q-color-starlight-peach),
2911
+ var(--q-color-starlight-blue)
2912
+ );
2913
+ }
2914
+
2915
+ /* Collapsible group */
2916
+ .aside-nav-group > summary {
2917
+ display: flex;
2918
+ align-items: center;
2919
+ gap: 0.65rem;
2920
+ padding: 0.5rem 0.65rem;
2921
+ border-radius: 7px;
2922
+ font-size: 0.875rem;
2923
+ font-weight: 500;
2924
+ color: var(--q-text-secondary, rgba(255, 255, 255, 0.6));
2925
+ cursor: pointer;
2926
+ list-style: none;
2927
+ user-select: none;
2928
+ transition:
2929
+ background 0.12s,
2930
+ color 0.12s;
2931
+ outline: none;
2932
+ }
2933
+
2934
+ .aside-nav-group > summary::-webkit-details-marker,
2935
+ .aside-nav-group > summary::marker {
2936
+ display: none;
2937
+ }
2938
+
2939
+ .aside-nav-group > summary:hover {
2940
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
2941
+ color: var(--q-color-starlight);
2942
+ }
2943
+
2944
+ html[data-theme="light"] .aside-nav-group > summary {
2945
+ color: var(--q-light-text-muted, #64748b);
2946
+ }
2947
+
2948
+ html[data-theme="light"] .aside-nav-group > summary:hover {
2949
+ background: rgba(0, 0, 0, 0.05);
2950
+ color: var(--q-light-text, #1e293b);
2951
+ }
2952
+
2953
+ .aside-nav-group[open] > summary {
2954
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
2955
+ color: var(--q-color-starlight);
2956
+ }
2957
+
2958
+ html[data-theme="light"] .aside-nav-group[open] > summary {
2959
+ background: rgba(0, 0, 0, 0.05);
2960
+ color: var(--q-light-text, #1e293b);
2961
+ }
2962
+
2963
+ /* Chevron icon */
2964
+ .aside-nav-chevron {
2965
+ margin-left: auto;
2966
+ width: 14px;
2967
+ height: 14px;
2968
+ flex-shrink: 0;
2969
+ transition: transform 0.2s;
2970
+ opacity: 0.5;
2971
+ }
2972
+
2973
+ .aside-nav-group[open] .aside-nav-chevron {
2974
+ transform: rotate(90deg);
2975
+ opacity: 0.8;
2976
+ }
2977
+
2978
+ /* Sub nav */
2979
+ .aside-nav-sub {
2980
+ padding-left: 1.5rem;
2981
+ margin-top: 0.1rem;
2982
+ display: flex;
2983
+ flex-direction: column;
2984
+ gap: 0.05rem;
2985
+ }
2986
+
2987
+ /* Divider */
2988
+ .aside-nav-divider {
2989
+ height: 1px;
2990
+ background: rgba(255, 255, 255, 0.08);
2991
+ margin: 0.5rem 0.75rem;
2992
+ }
2993
+
2994
+ html[data-theme="light"] .aside-nav-divider {
2995
+ background: rgba(0, 0, 0, 0.08);
2996
+ }
2997
+
2998
+ /* Sidebar footer */
2999
+ .aside-nav-footer {
3000
+ padding: 0.75rem;
3001
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
3002
+ flex-shrink: 0;
3003
+ }
3004
+
3005
+ html[data-theme="light"] .aside-nav-footer {
3006
+ border-top-color: rgba(0, 0, 0, 0.08);
3007
+ }
3008
+
3009
+ /* User row */
3010
+ .aside-nav-user {
3011
+ display: flex;
3012
+ align-items: center;
3013
+ gap: 0.65rem;
3014
+ padding: 0.5rem 0.5rem;
3015
+ border-radius: 7px;
3016
+ text-decoration: none;
3017
+ transition: background 0.12s;
3018
+ }
3019
+
3020
+ .aside-nav-user:hover {
3021
+ background: rgba(255, 255, 255, 0.06);
3022
+ }
3023
+
3024
+ html[data-theme="light"] .aside-nav-user:hover {
3025
+ background: rgba(0, 0, 0, 0.05);
3026
+ }
3027
+
3028
+ /* User avatar */
3029
+ .aside-nav-user-avatar {
3030
+ width: 30px;
3031
+ height: 30px;
3032
+ border-radius: 50%;
3033
+ background: linear-gradient(
3034
+ 135deg,
3035
+ var(--q-color-starlight-blue),
3036
+ var(--q-color-starlight-peach)
3037
+ );
3038
+ display: grid;
3039
+ place-items: center;
3040
+ font-size: 0.72rem;
3041
+ font-weight: 700;
3042
+ color: var(--q-color-starlight-deep, #0f172a);
3043
+ flex-shrink: 0;
3044
+ }
3045
+
3046
+ .aside-nav-user-info strong {
3047
+ display: block;
3048
+ font-size: 0.825rem;
3049
+ color: var(--q-text-primary, #f1f5f9);
3050
+ font-weight: 600;
3051
+ line-height: 1.2;
3052
+ }
3053
+
3054
+ html[data-theme="light"] .aside-nav-user-info strong {
3055
+ color: var(--q-light-text, #1e293b);
3056
+ }
3057
+
3058
+ .aside-nav-user-info span {
3059
+ font-size: 0.72rem;
3060
+ color: var(--q-text-muted, #64748b);
3061
+ }
3062
+
3063
+ /* ============================================================================
3064
+ ASIDE NAV - ICON ONLY MODE (Mid-size sidebar)
3065
+ Collapsed view showing only icons for mid-size displays
3066
+ ============================================================================ */
3067
+
3068
+ .aside-nav.aside-nav-icons {
3069
+ width: 64px;
3070
+ }
3071
+
3072
+ .aside-nav.aside-nav-icons .aside-nav-header {
3073
+ padding: 1rem 0;
3074
+ justify-content: center;
3075
+ border-bottom: none;
3076
+ }
3077
+
3078
+ .aside-nav.aside-nav-icons .aside-nav-icon {
3079
+ width: 32px;
3080
+ height: 32px;
3081
+ border-radius: 8px;
3082
+ background: linear-gradient(
3083
+ 135deg,
3084
+ var(--q-color-starlight-peach),
3085
+ var(--q-color-starlight-blue)
3086
+ );
3087
+ display: flex;
3088
+ align-items: center;
3089
+ justify-content: center;
3090
+ }
3091
+
3092
+ html[data-theme="light"] .aside-nav.aside-nav-icons .aside-nav-icon {
3093
+ background: linear-gradient(
3094
+ 135deg,
3095
+ var(--q-color-starlight-blue),
3096
+ var(--q-color-starlight-peach)
3097
+ );
3098
+ }
3099
+
3100
+ .aside-nav.aside-nav-icons .aside-nav-icon svg,
3101
+ .aside-nav.aside-nav-icons .aside-nav-icon i {
3102
+ width: 18px !important;
3103
+ height: 18px !important;
3104
+ }
3105
+
3106
+ .aside-nav.aside-nav-icons .aside-nav-brand span {
3107
+ display: none;
3108
+ }
3109
+
3110
+ .aside-nav.aside-nav-icons .aside-nav-brand strong {
3111
+ display: block;
3112
+ font-size: 0.7rem;
3113
+ font-weight: 700;
3114
+ text-align: center;
3115
+ margin-top: 0.25rem;
3116
+ }
3117
+
3118
+ .aside-nav.aside-nav-icons .aside-nav-header {
3119
+ flex-direction: column;
3120
+ gap: 0.5rem;
3121
+ }
3122
+
3123
+ .aside-nav.aside-nav-icons .aside-nav-inner {
3124
+ padding: 0.5rem 0;
3125
+ }
3126
+
3127
+ .aside-nav.aside-nav-icons .aside-nav-section {
3128
+ padding: 0 0.5rem 0.5rem;
3129
+ }
3130
+
3131
+ .aside-nav.aside-nav-icons .aside-nav-label {
3132
+ display: none;
3133
+ }
3134
+
3135
+ .aside-nav.aside-nav-icons .aside-nav-item {
3136
+ justify-content: center;
3137
+ padding: 0.625rem;
3138
+ }
3139
+
3140
+ .aside-nav.aside-nav-icons .aside-nav-item span:not(.aside-nav-badge),
3141
+ .aside-nav.aside-nav-icons .aside-nav-item > svg:not(.aside-nav-item-icon) {
3142
+ display: none;
3143
+ }
3144
+
3145
+ .aside-nav.aside-nav-icons .aside-nav-badge {
3146
+ position: absolute;
3147
+ top: 2px;
3148
+ right: 2px;
3149
+ font-size: 0.55rem;
3150
+ padding: 0.05rem 0.25rem;
3151
+ margin: 0;
3152
+ min-width: 14px;
3153
+ text-align: center;
3154
+ }
3155
+
3156
+ .aside-nav.aside-nav-icons .aside-nav-group > summary {
3157
+ justify-content: center;
3158
+ padding: 0.625rem;
3159
+ }
3160
+
3161
+ .aside-nav.aside-nav-icons .aside-nav-group > summary span,
3162
+ .aside-nav.aside-nav-icons
3163
+ .aside-nav-group
3164
+ > summary
3165
+ > svg:not(.aside-nav-item-icon):not(.aside-nav-chevron) {
3166
+ display: none;
3167
+ }
3168
+
3169
+ .aside-nav.aside-nav-icons .aside-nav-chevron {
3170
+ display: none;
3171
+ }
3172
+
3173
+ .aside-nav.aside-nav-icons .aside-nav-sub {
3174
+ display: none;
3175
+ }
3176
+
3177
+ .aside-nav.aside-nav-icons .aside-nav-divider {
3178
+ margin: 0.25rem 0.25rem;
3179
+ }
3180
+
3181
+ .aside-nav.aside-nav-icons .aside-nav-footer {
3182
+ padding: 0.5rem;
3183
+ border-top: none;
3184
+ }
3185
+
3186
+ .aside-nav.aside-nav-icons .aside-nav-user {
3187
+ justify-content: center;
3188
+ padding: 0.5rem;
3189
+ }
3190
+
3191
+ .aside-nav.aside-nav-icons .aside-nav-user-info {
3192
+ display: none;
3193
+ }
3194
+
3195
+ /* ============================================================================
3196
+ RESPONSIVE ASIDE NAV
3197
+ Automatic icon-only mode at medium breakpoints
3198
+ ============================================================================ */
3199
+
3200
+ @media (max-width: 1280px) {
3201
+ .aside-nav {
3202
+ width: 64px;
3203
+ min-width: 64px;
3204
+ }
3205
+
3206
+ .aside-nav .aside-nav-brand,
3207
+ .aside-nav .aside-nav-label,
3208
+ .aside-nav .aside-nav-item span:not(.aside-nav-badge),
3209
+ .aside-nav .aside-nav-group > summary span,
3210
+ .aside-nav
3211
+ .aside-nav-group
3212
+ > summary
3213
+ > svg:not(.aside-nav-item-icon):not(.aside-nav-chevron),
3214
+ .aside-nav .aside-nav-chevron,
3215
+ .aside-nav .aside-nav-sub,
3216
+ .aside-nav .aside-nav-user-info,
3217
+ .aside-nav .aside-nav-user-action {
3218
+ display: none;
3219
+ }
3220
+
3221
+ .aside-nav .aside-nav-header {
3222
+ padding: 1rem 0;
3223
+ justify-content: center;
3224
+ border-bottom: none;
3225
+ flex-direction: column;
3226
+ align-items: center;
3227
+ gap: 0.5rem;
3228
+ }
3229
+
3230
+ .aside-nav .aside-nav-icon {
3231
+ width: 32px;
3232
+ height: 32px;
3233
+ border-radius: 8px;
3234
+ background: linear-gradient(
3235
+ 135deg,
3236
+ var(--q-color-starlight-peach),
3237
+ var(--q-color-starlight-blue)
3238
+ );
3239
+ display: flex;
3240
+ align-items: center;
3241
+ justify-content: center;
3242
+ }
3243
+
3244
+ .aside-nav .aside-nav-icon svg,
3245
+ .aside-nav .aside-nav-icon i {
3246
+ width: 18px !important;
3247
+ height: 18px !important;
3248
+ }
3249
+
3250
+ .aside-nav .aside-nav-inner {
3251
+ padding: 0.5rem 0;
3252
+ }
3253
+
3254
+ .aside-nav .aside-nav-section {
3255
+ padding: 0 0.5rem 0.5rem;
3256
+ }
3257
+
3258
+ .aside-nav .aside-nav-item {
3259
+ justify-content: center;
3260
+ padding: 0.625rem;
3261
+ }
3262
+
3263
+ .aside-nav .aside-nav-group > summary {
3264
+ justify-content: center;
3265
+ padding: 0.625rem;
3266
+ }
3267
+
3268
+ .aside-nav .aside-nav-badge {
3269
+ position: absolute;
3270
+ top: 2px;
3271
+ right: 2px;
3272
+ font-size: 0.55rem;
3273
+ padding: 0.05rem 0.25rem;
3274
+ margin: 0;
3275
+ min-width: 14px;
3276
+ text-align: center;
3277
+ }
3278
+
3279
+ .aside-nav .aside-nav-divider {
3280
+ margin: 0.25rem 0.25rem;
3281
+ }
3282
+
3283
+ .aside-nav .aside-nav-footer {
3284
+ padding: 0.5rem;
3285
+ border-top: none;
3286
+ }
3287
+
3288
+ .aside-nav .aside-nav-user {
3289
+ justify-content: center;
3290
+ padding: 0.5rem;
3291
+ }
3292
+
3293
+ html[data-theme="light"] .aside-nav .aside-nav-icon {
3294
+ background: linear-gradient(
3295
+ 135deg,
3296
+ var(--q-color-starlight-blue),
3297
+ var(--q-color-starlight-peach)
3298
+ );
3299
+ }
3300
+ }
3301
+
3302
+ @media (max-width: 768px) {
3303
+ .aside-nav {
3304
+ position: fixed;
3305
+ top: 0;
3306
+ left: 0;
3307
+ bottom: 0;
3308
+ width: 280px;
3309
+ transform: translateX(-100%);
3310
+ box-shadow: 4px 0 32px rgba(0, 0, 0, 0.4);
3311
+ z-index: 200;
3312
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
3313
+ display: flex; /* Override display: none to allow transform */
3314
+ }
3315
+
3316
+ /* Restore visibility of labels and text in mobile drawer */
3317
+ .aside-nav .aside-nav-brand,
3318
+ .aside-nav .aside-nav-label,
3319
+ .aside-nav .aside-nav-item span:not(.aside-nav-badge),
3320
+ .aside-nav .aside-nav-user-info {
3321
+ display: flex;
3322
+ }
3323
+
3324
+ .aside-nav .aside-nav-header {
3325
+ padding: 1.5rem 1.25rem 1rem;
3326
+ justify-content: flex-start;
3327
+ flex-direction: row;
3328
+ align-items: center;
3329
+ gap: 0.75rem;
3330
+ border-bottom: 1px solid rgba(255, 255, 255, 0.08);
3331
+ }
3332
+
3333
+ .aside-nav .aside-nav-icon {
3334
+ width: 34px;
3335
+ height: 34px;
3336
+ }
3337
+
3338
+ .aside-nav .aside-nav-item {
3339
+ justify-content: flex-start;
3340
+ padding: 0.5rem 0.65rem;
3341
+ }
3342
+
3343
+ .aside-nav .aside-nav-user {
3344
+ justify-content: flex-start;
3345
+ }
3346
+
3347
+ /* show sidebar when checked */
3348
+ #sidebar-toggle:checked ~ .app-layout .aside-nav {
3349
+ transform: translateX(0);
3350
+ }
3351
+
3352
+ /* dim overlay */
3353
+ .aside-overlay {
3354
+ display: block;
3355
+ position: fixed;
3356
+ inset: 0;
3357
+ background: rgba(0, 0, 0, 0);
3358
+ z-index: 199;
3359
+ pointer-events: none;
3360
+ transition: background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
3361
+ }
3362
+ #sidebar-toggle:checked ~ .app-layout .aside-overlay {
3363
+ background: rgba(0, 0, 0, 0.6);
3364
+ pointer-events: auto;
3365
+ }
3366
+ .aside-overlay {
3367
+ cursor: pointer;
3368
+ }
3369
+ }
3370
+
3371
+ /* Base hidden state for toggle */
3372
+ #sidebar-toggle {
3373
+ display: none;
3374
+ }
3375
+ .aside-overlay {
3376
+ display: none;
3377
+ }
3378
+
3379
+ /* Navigation API Aliases (css-qo1) */
3380
+ /* starlight-nav/starlight-navbar → nav-header (alias for backward compatibility) */
3381
+ .starlight-nav,
3382
+ .starlight-navbar {
3383
+ position: sticky;
3384
+ top: 0;
3385
+ z-index: 1000;
3386
+ background: color-mix(in srgb, var(--q-color-bg), transparent 10%);
3387
+ backdrop-filter: blur(16px);
3388
+ -webkit-backdrop-filter: blur(16px);
3389
+ border-bottom: 1px solid var(--q-color-border);
3390
+ display: flex;
3391
+ flex-direction: row;
3392
+ align-items: center;
3393
+ width: 100%;
3394
+ min-width: 100%;
3395
+ }
3396
+
3397
+ /* starlight-nav.vertical/starlight-sidebar-nav → aside-nav (alias for backward compatibility) */
3398
+ .starlight-nav.vertical,
3399
+ .starlight-sidebar-nav {
3400
+ flex-direction: column;
3401
+ height: 100%;
3402
+ width: 280px !important;
3403
+ min-width: 280px !important;
3404
+ border-bottom: none;
3405
+ border-right: 1px solid var(--q-color-border-strong);
3406
+ padding: 2.5rem 1.5rem;
3407
+ align-items: flex-start;
3408
+ justify-content: flex-start;
3409
+ position: sticky;
3410
+ top: 0;
3411
+ z-index: 1000;
3412
+ background: color-mix(in srgb, var(--q-color-bg), transparent 10%);
3413
+ backdrop-filter: blur(16px);
3414
+ -webkit-backdrop-filter: blur(16px);
3415
+ }
3416
+
3417
+ html[data-theme="light"] .starlight-nav.vertical,
3418
+ html[data-theme="light"] .starlight-sidebar-nav {
3419
+ background: rgb(255 255 255 / 98%);
3420
+ border-right-color: rgb(0 0 0 / 8%);
1773
3421
  }