@howssatoshi/quantumcss 1.10.1 → 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 (43) hide show
  1. package/README.md +11 -10
  2. package/dist/quantum.min.css +2 -2
  3. package/examples/admin-panel.html +317 -600
  4. package/examples/analytics-dashboard.html +130 -288
  5. package/examples/blog.css +297 -0
  6. package/examples/blog.html +216 -0
  7. package/examples/chat-messaging.html +11 -27
  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/index.html +342 -232
  13. package/examples/kitchen-sink.html +284 -94
  14. package/examples/music-streaming.html +32 -91
  15. package/examples/{news-template.html → news.html} +35 -11
  16. package/examples/{portfolio-resume.html → portfolio.html} +56 -26
  17. package/examples/shopping.html +812 -0
  18. package/examples/starlight.html +7 -6
  19. package/examples/task.md +12 -0
  20. package/examples/travel.html +514 -0
  21. package/examples/video-streaming.html +303 -92
  22. package/package.json +9 -3
  23. package/src/cli.js +5 -5
  24. package/src/defaults.js +18 -16
  25. package/src/starlight.js +20 -15
  26. package/src/styles/quantum-base.css +4 -0
  27. package/src/styles/quantum-components.css +1879 -134
  28. package/src/styles/quantum-icons.css +345 -0
  29. package/src/styles/starlight.css +2606 -1186
  30. package/dist/quantum.css +0 -2374
  31. package/examples/blog-template.html +0 -288
  32. package/examples/email-template.html +0 -712
  33. package/examples/gaming-template.html +0 -471
  34. package/examples/gradient-test.html +0 -129
  35. package/examples/shopping/images/headset.jpg +0 -0
  36. package/examples/shopping/images/sneakers.jpg +0 -0
  37. package/examples/shopping/images/windbreaker.jpg +0 -0
  38. package/examples/shopping/index.html +0 -525
  39. package/examples/theme-test.html +0 -159
  40. package/examples/travel/index.html +0 -432
  41. package/examples/verify_fixes.html +0 -52
  42. package/examples/verify_presets.html +0 -32
  43. /package/examples/{shopping/nova-shop.css → nova-shop.css} +0 -0
@@ -2,1383 +2,1948 @@
2
2
 
3
3
  /* Links */
4
4
  a {
5
- color: var(--q-color-starlight-blue);
6
- text-decoration: none;
7
- transition: all var(--q-transition-base);
8
- position: relative;
5
+ color: var(--q-color-starlight-blue);
6
+ text-decoration: none;
7
+ transition: all var(--q-transition-base);
8
+ position: relative;
9
9
  }
10
10
 
11
11
  a:hover {
12
- color: var(--q-color-starlight-peach);
13
- text-shadow: 0 0 8px rgb(255 179 138 / 40%);
12
+ color: var(--q-color-starlight-peach);
13
+ text-shadow: 0 0 8px rgb(255 179 138 / 40%);
14
14
  }
15
15
 
16
16
  a:active {
17
- transform: scale(0.98);
17
+ transform: scale(0.98);
18
18
  }
19
19
 
20
20
  html[data-theme="light"] a {
21
- color: var(--q-color-starlight-blue);
21
+ color: #2563eb;
22
22
  }
23
23
 
24
24
  html[data-theme="light"] a:hover {
25
- color: var(--q-color-starlight-peach);
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
+ }
26
41
  }
27
42
 
28
43
  /* 1. Starlight Card */
29
44
  .starlight-card {
30
- background: var(--q-color-surface);
31
- border: 1px solid var(--q-color-border);
32
- border-radius: var(--q-radius-2xl);
33
- padding: var(--q-space-10);
34
- backdrop-filter: var(--q-glass-blur);
35
- -webkit-backdrop-filter: var(--q-glass-blur);
36
- position: relative;
37
- transition: border-color var(--q-duration-base) var(--q-ease-in-out),
38
- transform var(--q-duration-base) var(--q-ease-in-out),
39
- 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);
40
54
  }
41
55
 
42
56
  .starlight-card:hover {
43
- background-color: var(--q-color-surface-elevated);
57
+ background-color: var(--q-color-surface-elevated);
44
58
  }
45
59
 
46
60
  /* ... existing code ... */
47
61
 
48
62
  .nav-glass:hover {
49
- background-color: var(--q-color-border-strong);
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);
50
156
  }
51
157
 
52
- .starlight-nav, .starlight-navbar {
53
- position: sticky;
54
- top: 0;
55
- z-index: 1000;
56
- background: color-mix(in srgb, var(--q-color-bg), transparent 10%);
57
- backdrop-filter: blur(16px);
58
- border-bottom: 1px solid var(--q-color-border);
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;
59
167
  }
60
168
 
61
169
  .nav-container {
62
- max-width: 1200px;
63
- margin: 0 auto;
64
- padding: 1.25rem 1.5rem;
65
- display: flex;
66
- justify-content: space-between;
67
- align-items: center;
68
- width: 100%;
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%;
69
177
  }
70
178
 
71
- .nav-desktop { display: none; }
72
- @media (min-width: 768px) { .nav-desktop { display: flex; align-items: center; } }
179
+ .nav-desktop {
180
+ display: none;
181
+ }
182
+ @media (min-width: 768px) {
183
+ .nav-desktop {
184
+ display: flex;
185
+ align-items: center;
186
+ }
187
+ }
73
188
 
74
189
  .nav-list {
75
- display: flex;
76
- list-style: none;
77
- gap: 2rem;
78
- margin: 0;
79
- padding: 0;
190
+ display: flex;
191
+ list-style: none;
192
+ gap: 2rem;
193
+ margin: 0;
194
+ padding: 0;
80
195
  }
81
196
 
82
197
  .nav-list.vertical {
83
- flex-direction: column;
84
- gap: 0.5rem;
198
+ flex-direction: column;
199
+ gap: 0.5rem;
85
200
  }
86
201
 
87
202
  .nav-link {
88
- font-size: 0.875rem;
89
- font-weight: 600;
90
- color: var(--q-text-secondary);
91
- transition: all 0.2s ease;
92
- position: relative;
93
- padding: 0.5rem 0;
94
- display: inline-flex;
95
- align-items: center;
96
- text-decoration: none;
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;
97
212
  }
98
213
 
99
214
  .nav-link:hover {
100
- color: var(--q-color-starlight-blue);
215
+ color: var(--q-color-starlight-blue);
101
216
  }
102
217
 
103
218
  .nav-link.active {
104
- color: var(--q-color-starlight-blue);
219
+ color: var(--q-color-starlight-blue);
105
220
  }
106
221
 
107
222
  .nav-list.vertical .nav-link {
108
- width: 100%;
109
- padding: 0.75rem 1rem;
110
- border-radius: 0.5rem;
223
+ width: 100%;
224
+ padding: 0.75rem 1rem;
225
+ border-radius: 0.5rem;
111
226
  }
112
227
 
113
228
  .nav-list.vertical .nav-link:hover {
114
- background: var(--q-highlight-bg);
229
+ background: color-mix(in srgb, var(--q-color-starlight), transparent 97%);
230
+ color: var(--q-color-starlight);
115
231
  }
116
232
 
117
233
  .nav-list.vertical .nav-link.active {
118
- background: linear-gradient(90deg, color-mix(in srgb, var(--q-color-starlight-blue), transparent 70%), transparent);
119
- border-left: 3px solid var(--q-color-starlight-blue);
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%);
120
259
  }
121
260
 
122
261
  .nav-link::after {
123
- content: '';
124
- position: absolute;
125
- bottom: 0;
126
- left: 50%;
127
- width: 0;
128
- height: 2px;
129
- background: var(--q-color-starlight-blue);
130
- transition: all var(--q-duration-slow) var(--q-ease-in-out);
131
- transform: translateX(-50%);
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%);
132
337
  }
133
338
 
134
- .nav-link:hover::after, .nav-link.active::after {
135
- width: 80%;
136
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
339
+ .nav-menu-mobile a:hover {
340
+ background: var(--highlight);
341
+ color: var(--accent);
137
342
  }
138
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
+ }
139
366
 
140
367
  /* 10. Timeline Component */
141
368
  .starlight-timeline {
142
- position: relative;
143
- padding: 2rem 0;
369
+ position: relative;
370
+ padding: 2rem 0;
144
371
  }
145
372
 
146
373
  .starlight-timeline::before {
147
- content: '';
148
- position: absolute;
149
- left: 0;
150
- top: 0;
151
- bottom: 0;
152
- width: 2px;
153
- background: linear-gradient(to bottom, var(--q-color-starlight-blue), transparent);
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
+ );
154
385
  }
155
386
 
156
387
  @media (min-width: 768px) {
157
- .starlight-timeline::before {
158
- left: 50%;
159
- transform: translateX(-50%);
160
- }
388
+ .starlight-timeline::before {
389
+ left: 50%;
390
+ transform: translateX(-50%);
391
+ }
161
392
  }
162
393
 
163
394
  .timeline-item {
164
- position: relative;
165
- margin-bottom: 4rem;
166
- padding-left: 2.5rem;
395
+ position: relative;
396
+ margin-bottom: 4rem;
397
+ padding-left: 2.5rem;
167
398
  }
168
399
 
169
400
  @media (min-width: 768px) {
170
- .timeline-item {
171
- width: 50%;
172
- padding-left: 0;
173
- }
174
-
175
- .timeline-item:nth-child(odd) {
176
- padding-right: 3.5rem;
177
- text-align: right;
178
- }
179
-
180
- .timeline-item:nth-child(even) {
181
- margin-left: 50%;
182
- padding-left: 3.5rem;
183
- }
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
+ }
184
415
  }
185
416
 
186
417
  .timeline-dot {
187
- position: absolute;
188
- left: -5px;
189
- top: 0.5rem;
190
- width: 12px;
191
- height: 12px;
192
- border-radius: 50%;
193
- background: var(--q-color-starlight-blue);
194
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
195
- z-index: 1;
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;
196
427
  }
197
428
 
198
429
  @media (min-width: 768px) {
199
- .timeline-dot {
200
- left: auto;
201
- right: -6px;
202
- }
203
-
204
- .timeline-item:nth-child(even) .timeline-dot {
205
- left: -6px;
206
- right: auto;
207
- }
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
+ }
208
439
  }
209
440
 
210
441
  .timeline-content {
211
- background: var(--q-color-surface);
212
- border: 1px solid var(--q-color-border);
213
- border-radius: var(--q-radius-xl);
214
- padding: 1.5rem;
215
- transition: all 0.3s ease;
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;
216
447
  }
217
448
 
218
449
  .timeline-content:hover {
219
- border-color: var(--q-color-starlight-blue);
220
- transform: translateY(-2px);
450
+ border-color: var(--q-color-starlight-blue);
451
+ transform: translateY(-2px);
221
452
  }
222
453
 
223
454
  .timeline-date {
224
- font-size: 0.75rem;
225
- font-weight: 900;
226
- color: var(--q-color-starlight-blue);
227
- text-transform: uppercase;
228
- letter-spacing: 0.1em;
229
- margin-bottom: 0.5rem;
230
- display: block;
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;
231
462
  }
232
463
 
233
-
234
464
  html[data-theme="light"] .nav-glass:hover {
235
- background-color: rgba(255, 255, 255, 0.98);
465
+ background-color: rgba(255, 255, 255, 0.98);
236
466
  }
237
467
 
238
468
  html[data-theme="light"] .starlight-card {
239
- background: var(--q-light-card-bg);
240
- border-color: var(--q-light-card-border);
241
- color: #334155;
242
- 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%);
243
473
  }
244
474
 
245
475
  /* 2. Checkboxes & Radio Buttons */
246
- .checkbox-starlight, .radio-starlight {
247
- appearance: none;
248
- width: 1.25rem;
249
- height: 1.25rem;
250
- background: var(--q-color-border);
251
- border: 1px solid rgb(255 255 255 / 20%);
252
- border-radius: 0.375rem;
253
- cursor: pointer;
254
- transition: all 0.2s ease;
255
- display: inline-flex;
256
- align-items: center;
257
- justify-content: center;
258
- position: relative;
259
- }
260
-
261
- .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
+ }
262
495
 
263
496
  html[data-theme="light"] .checkbox-starlight,
264
497
  html[data-theme="light"] .radio-starlight {
265
- border-color: rgb(0 0 0 / 20%);
266
- background: rgb(0 0 0 / 5%);
498
+ border-color: rgb(0 0 0 / 20%);
499
+ background: rgb(0 0 0 / 5%);
267
500
  }
268
501
 
269
- .checkbox-starlight:checked, .radio-starlight:checked {
270
- background: var(--q-color-starlight-blue);
271
- 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);
272
506
  }
273
507
 
274
508
  .checkbox-starlight:checked::after {
275
- content: '';
276
- color: black;
277
- font-size: 0.8rem;
278
- font-weight: 900;
509
+ content: "";
510
+ color: black;
511
+ font-size: 0.8rem;
512
+ font-weight: 900;
279
513
  }
280
514
 
281
515
  .radio-starlight:checked::after {
282
- content: '';
283
- width: 0.5rem;
284
- height: 0.5rem;
285
- background: black;
286
- border-radius: 50%;
516
+ content: "";
517
+ width: 0.5rem;
518
+ height: 0.5rem;
519
+ background: black;
520
+ border-radius: 50%;
287
521
  }
288
522
 
289
523
  /* 3. Tooltips */
290
524
  .has-tooltip {
291
- position: relative;
525
+ position: relative;
292
526
  }
293
527
 
294
528
  .has-tooltip .tooltip {
295
- position: absolute;
296
- bottom: 125%;
297
- left: 50%;
298
- transform: translateX(-50%) translateY(10px);
299
- padding: 0.5rem 0.75rem;
300
- background-color: rgb(10 10 30 / 98%);
301
- backdrop-filter: blur(12px);
302
- border: 1px solid rgb(0 212 255 / 30%);
303
- border-radius: 0.5rem;
304
- color: #f1f5f9;
305
- font-size: 0.75rem;
306
- white-space: nowrap;
307
- pointer-events: none;
308
- opacity: 0;
309
- transition: all 0.2s ease;
310
- z-index: 800;
311
- 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%);
312
546
  }
313
547
 
314
548
  .has-tooltip:hover .tooltip {
315
- opacity: 1;
316
- transform: translateX(-50%) translateY(0);
549
+ opacity: 1;
550
+ transform: translateX(-50%) translateY(0);
317
551
  }
318
552
 
319
553
  /* 4. Starlight Stars (Atmospheric Background) */
320
554
  .starlight-stars {
321
- position: fixed;
322
- top: 0; left: 0; width: 100%; height: 100%;
323
- pointer-events: none;
324
- z-index: 0;
325
- background: var(--q-bg-primary);
326
- overflow: hidden;
327
- 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;
328
565
  }
329
566
 
330
567
  .star {
331
- position: absolute;
332
- background: white;
333
- border-radius: 50%;
334
- opacity: 0.3;
335
- z-index: -1;
336
- animation: star-twinkle var(--q-duration, 3s) infinite ease-in-out;
337
- will-change: transform, opacity;
338
- backface-visibility: hidden;
339
- 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);
340
577
  }
341
578
 
342
579
  html[data-theme="light"] .star {
343
- background: var(--q-color-starlight-blue);
344
- 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
+ }
345
594
  }
346
595
 
347
596
  /* 5. Dialog & Overlays */
348
597
  .dialog-overlay {
349
- position: fixed;
350
- inset: 0;
351
- background: rgba(0, 0, 0, 0.6);
352
- backdrop-filter: blur(16px);
353
- -webkit-backdrop-filter: blur(16px);
354
- display: flex;
355
- align-items: center;
356
- justify-content: center;
357
- 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;
358
607
  }
359
608
 
360
609
  .dialog-content {
361
- background-color: rgb(10 10 20 / 98%);
362
- backdrop-filter: blur(20px);
363
- border: 1px solid var(--q-color-border-strong);
364
- border-radius: 1.5rem;
365
- padding: 2.5rem;
366
- max-width: 90%;
367
- width: 600px;
368
- max-height: 85vh;
369
- overflow-y: auto;
370
- box-shadow: 0 25px 50px -12px rgb(0 0 0 / 50%);
371
- position: relative;
372
- }
373
-
374
- .starlight-dialog {
375
- background-color: rgb(10 10 20 / 98%);
376
- backdrop-filter: blur(24px);
377
- -webkit-backdrop-filter: blur(24px);
378
- border: 1px solid var(--q-color-border-strong);
379
- border-radius: 1.5rem;
380
- padding: 3rem;
381
- width: 100%;
382
- max-width: 600px;
383
- max-height: 85vh;
384
- overflow-y: auto;
385
- margin: auto;
386
- position: relative;
387
- 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%);
388
637
  }
389
638
 
390
639
  /* Custom scrollbar for dialogs */
391
640
  .dialog-content::-webkit-scrollbar,
392
- .starlight-dialog::-webkit-scrollbar {
393
- width: 8px;
641
+ .dialog::-webkit-scrollbar {
642
+ width: 8px;
394
643
  }
395
644
 
396
645
  .dialog-content::-webkit-scrollbar-track,
397
- .starlight-dialog::-webkit-scrollbar-track {
398
- background: var(--q-color-border);
399
- border-radius: 4px;
646
+ .dialog::-webkit-scrollbar-track {
647
+ background: var(--q-color-border);
648
+ border-radius: 4px;
400
649
  }
401
650
 
402
651
  .dialog-content::-webkit-scrollbar-thumb,
403
- .starlight-dialog::-webkit-scrollbar-thumb {
404
- background: var(--q-color-starlight-blue, #3b82f6);
405
- border-radius: 4px;
652
+ .dialog::-webkit-scrollbar-thumb {
653
+ background: var(--q-color-starlight-blue, #3b82f6);
654
+ border-radius: 4px;
406
655
  }
407
656
 
408
657
  html[data-theme="light"] .dialog-content::-webkit-scrollbar-track,
409
- html[data-theme="light"] .starlight-dialog::-webkit-scrollbar-track {
410
- background: rgb(0 0 0 / 5%);
658
+ html[data-theme="light"] .dialog::-webkit-scrollbar-track {
659
+ background: rgb(0 0 0 / 5%);
411
660
  }
412
661
 
413
- html[data-theme="light"] .starlight-dialog {
414
- background-color: rgba(248, 250, 252, 0.9);
415
- border-color: rgba(0, 0, 0, 0.1);
416
- color: #1e293b;
417
- 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);
418
667
  }
419
668
 
420
669
  .dialog-close {
421
- position: absolute;
422
- top: 1.5rem;
423
- right: 1.5rem;
424
- width: 2rem;
425
- height: 2rem;
426
- border-radius: 50%;
427
- background: var(--q-color-border);
428
- border: 1px solid var(--q-color-border-strong);
429
- color: white;
430
- display: flex;
431
- align-items: center;
432
- justify-content: center;
433
- cursor: pointer;
434
- transition: all 0.2s;
435
- 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;
436
685
  }
437
686
 
438
687
  html[data-theme="light"] .dialog-close {
439
- background: rgb(0 0 0 / 5%);
440
- border-color: rgb(0 0 0 / 10%);
441
- color: #1e293b;
688
+ background: rgb(0 0 0 / 5%);
689
+ border-color: rgb(0 0 0 / 10%);
690
+ color: #1e293b;
442
691
  }
443
692
 
444
693
  .dialog-close:hover {
445
- background: rgb(255 255 255 / 15%);
446
- border-color: var(--q-color-starlight-blue);
447
- transform: rotate(90deg);
694
+ background: rgb(255 255 255 / 15%);
695
+ border-color: var(--q-color-starlight-blue);
696
+ transform: rotate(90deg);
448
697
  }
449
698
 
450
699
  .form-row {
451
- display: flex;
452
- justify-content: space-between;
453
- align-items: center;
454
- gap: 1rem;
700
+ display: flex;
701
+ justify-content: space-between;
702
+ align-items: center;
703
+ gap: 1rem;
455
704
  }
456
705
 
457
706
  html[data-theme="light"] .dialog-overlay {
458
- background: rgb(255 255 255 / 40%);
707
+ background: rgb(255 255 255 / 40%);
459
708
  }
460
709
 
461
710
  html[data-theme="light"] .dialog-content {
462
- background-color: rgb(255 255 255 / 98%);
463
- border-color: rgb(0 0 0 / 10%);
464
- color: #1e293b;
465
- 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%);
466
715
  }
467
716
 
468
717
  /* 6. Dropdown Menu */
469
718
  .dropdown-menu {
470
- position: absolute;
471
- top: 100%;
472
- left: 0;
473
- background-color: rgba(8, 8, 26, 0.8);
474
- backdrop-filter: blur(16px);
475
- -webkit-backdrop-filter: blur(16px);
476
- border: 1px solid var(--q-color-border-strong);
477
- border-radius: 0.75rem;
478
- padding: 0.5rem;
479
- margin-top: 0.5rem;
480
- min-width: 200px;
481
- z-index: 600;
482
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
483
- opacity: 0;
484
- visibility: hidden;
485
- transform: translateY(10px);
486
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
487
- pointer-events: none;
488
- 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;
489
738
  }
490
739
 
491
740
  .dropdown:hover .dropdown-menu,
492
741
  .dropdown.active .dropdown-menu {
493
- opacity: 1;
494
- visibility: visible;
495
- transform: translateY(0);
496
- pointer-events: auto;
497
- backdrop-filter: blur(16px) !important;
498
- -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;
499
748
  }
500
749
 
501
750
  .dropdown-item {
502
- display: block;
503
- width: 100%;
504
- padding: 0.625rem 1rem;
505
- border-radius: 0.5rem;
506
- color: var(--q-text-primary, rgba(255, 255, 255, 0.7));
507
- transition: all 0.2s ease;
508
- text-align: left;
509
- background: transparent;
510
- border: none;
511
- 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;
512
761
  }
513
762
 
514
763
  .dropdown-item:hover {
515
- background-color: rgba(0, 212, 255, 0.8);
516
- color: black;
764
+ background-color: var(--q-color-primary);
765
+ color: black;
517
766
  }
518
767
 
519
768
  html[data-theme="light"] .dropdown-menu {
520
- background-color: rgba(255, 255, 255, 0.95) !important;
521
- backdrop-filter: blur(16px) !important;
522
- -webkit-backdrop-filter: blur(16px) !important;
523
- border-color: rgba(0, 0, 0, 0.08);
524
- 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);
525
774
  }
526
775
 
527
776
  html[data-theme="light"] .dropdown-item {
528
- color: #475569;
777
+ color: #475569;
529
778
  }
530
779
 
531
780
  html[data-theme="light"] .dropdown-item:hover {
532
- background-color: var(--q-color-starlight-blue);
533
- color: black;
781
+ background-color: var(--q-color-starlight-blue);
782
+ color: black;
534
783
  }
535
784
 
536
785
  /* 7. Input & Glass Fixes */
537
- .input-starlight, .textarea-starlight, .select-starlight {
538
- background-color: rgb(255 255 255 / 4%);
539
- border: 1px solid rgb(255 255 255 / 15%);
540
- border-radius: 0.75rem;
541
- color: inherit;
542
- width: 100%;
543
- padding: 0.75rem 1.25rem;
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;
544
795
  }
545
796
 
546
797
  .select-starlight:hover {
547
- background-color: rgb(255 255 255 / 8%);
548
- border-color: var(--q-color-starlight-blue);
798
+ background-color: rgb(255 255 255 / 8%);
799
+ border-color: var(--q-color-starlight-blue);
549
800
  }
550
801
 
551
- textarea.input-starlight, .textarea-starlight {
552
- min-height: 120px;
553
- display: block;
802
+ textarea.input-starlight,
803
+ .textarea-starlight {
804
+ min-height: 120px;
805
+ display: block;
554
806
  }
555
807
 
556
- html[data-theme="light"] .input-starlight,
808
+ html[data-theme="light"] .input-starlight,
557
809
  html[data-theme="light"] .textarea-starlight,
558
810
  html[data-theme="light"] .select-starlight {
559
- background-color: #fff;
560
- border-color: #cbd5e1;
811
+ background-color: #fff;
812
+ border-color: #cbd5e1;
561
813
  }
562
814
 
563
- .input-starlight:focus, .textarea-starlight:focus, .select-starlight:focus {
564
- outline: none;
565
- box-shadow: 0 0 0 2px var(--q-color-starlight-deep), 0 0 0 4px var(--q-color-starlight-blue);
566
- border-color: var(--q-color-starlight-blue);
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);
567
823
  }
568
824
 
569
- html[data-theme="light"] .input-starlight:focus,
825
+ html[data-theme="light"] .input-starlight:focus,
570
826
  html[data-theme="light"] .textarea-starlight:focus,
571
827
  html[data-theme="light"] .select-starlight:focus {
572
- box-shadow: 0 0 0 2px var(--q-light-bg), 0 0 0 4px rgb(59 130 246 / 40%);
573
- border-color: #3b82f6;
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;
843
+ }
844
+
845
+ .glass:hover {
846
+ border-color: var(--q-color-starlight-blue);
847
+ box-shadow: 0 0 40px rgba(0, 212, 255, 0.4);
574
848
  }
575
849
 
576
850
  html[data-theme="light"] .glass {
577
- background-color: rgba(255, 255, 255, 0.5);
578
- 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);
579
874
  }
580
875
 
581
876
  /* 9. Code Interface Window */
582
877
  .code-window {
583
- background: rgb(0 0 0 / 40%);
584
- backdrop-filter: blur(20px);
585
- -webkit-backdrop-filter: blur(20px);
586
- border: 1px solid var(--q-color-border-strong);
587
- border-radius: var(--q-radius-xl);
588
- overflow: hidden;
589
- 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%);
590
885
  }
591
886
 
592
887
  .code-window-header {
593
- background: var(--q-color-border);
594
- border-bottom: 1px solid var(--q-color-border);
595
- padding: 1rem 1.5rem;
596
- display: flex;
597
- align-items: center;
598
- 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;
599
894
  }
600
895
 
601
896
  .code-window-controls {
602
- display: flex;
603
- gap: 0.5rem;
897
+ display: flex;
898
+ gap: 0.5rem;
604
899
  }
605
900
 
606
901
  .code-window-dot {
607
- width: 0.75rem;
608
- height: 0.75rem;
609
- border-radius: 50%;
610
- opacity: 0.6;
902
+ width: 0.75rem;
903
+ height: 0.75rem;
904
+ border-radius: 50%;
905
+ opacity: 0.6;
611
906
  }
612
907
 
613
- .code-window-dot:nth-child(1) { background: #ff5f56; }
614
- .code-window-dot:nth-child(2) { background: #ffbd2e; }
615
- .code-window-dot:nth-child(3) { background: #27c93f; }
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;
916
+ }
616
917
 
617
918
  .code-window-title {
618
- font-size: 0.65rem;
619
- font-weight: 800;
620
- text-transform: uppercase;
621
- letter-spacing: 0.15em;
622
- 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;
623
938
  }
624
939
 
625
940
  html[data-theme="light"] .code-window {
626
- background: #f8fafc;
627
- border-color: #e2e8f0;
628
- 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%);
629
944
  }
630
945
 
631
946
  html[data-theme="light"] .code-window-header {
632
- background: #f1f5f9;
633
- border-color: #e2e8f0;
947
+ background: #f1f5f9;
948
+ border-color: #e2e8f0;
634
949
  }
635
950
 
636
951
  html[data-theme="light"] .code-window-title {
637
- color: #94a3b8;
952
+ color: #94a3b8;
638
953
  }
639
954
 
640
955
  /* 10. Starlight Accordion */
641
- .accordion-starlight.accordion-item {
642
- background: rgb(255 255 255 / 2%);
643
- backdrop-filter: blur(12px);
644
- -webkit-backdrop-filter: blur(12px);
645
- border: 1px solid rgb(255 255 255 / 8%);
646
- border-radius: var(--q-radius-xl);
647
- margin-bottom: var(--q-space-4);
648
- transition: all var(--q-transition-base);
649
- 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;
650
999
  }
651
1000
 
652
- .accordion-starlight.accordion-item:hover {
653
- border-color: color-mix(in srgb, var(--q-color-starlight-blue), transparent 70%);
654
- background: rgb(255 255 255 / 4%);
655
- 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%);
656
1009
  }
657
1010
 
658
- .accordion-starlight.accordion-item.active {
659
- border-color: var(--q-color-starlight-blue);
660
- background: color-mix(in srgb, var(--q-color-starlight-blue), transparent 97%);
661
- 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;
662
1021
  }
663
1022
 
664
- .accordion-starlight .accordion-header {
665
- background: transparent !important;
666
- padding: var(--q-space-6) var(--q-space-8);
667
- color: white;
668
- font-weight: 700;
669
- letter-spacing: 0.02em;
670
- font-size: 1.125rem;
1023
+ .accordion.active .accordion-content {
1024
+ padding: var(--q-space-6) var(--q-space-8);
671
1025
  }
672
1026
 
673
- .accordion-starlight.active .accordion-header {
674
- 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;
675
- 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%));
676
1030
  }
677
1031
 
678
- .accordion-starlight .accordion-content {
679
- background: linear-gradient(to bottom, rgb(0 0 0 / 30%), rgb(0 0 0 / 10%)) !important;
680
- color: rgb(255 255 255 / 60%) !important;
681
- font-size: 1rem;
682
- line-height: 1.8;
683
- padding: 0;
1032
+ html[data-theme="light"] .accordion.accordion-item {
1033
+ background: white;
1034
+ border-color: #e2e8f0;
684
1035
  }
685
1036
 
686
- .accordion-starlight.active .accordion-content {
687
- 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;
688
1040
  }
689
1041
 
690
- .accordion-starlight .accordion-icon {
691
- color: var(--q-color-starlight-blue);
692
- filter: drop-shadow(0 0 5px rgb(0 212 255 / 50%));
1042
+ html[data-theme="light"] .accordion .accordion-header {
1043
+ color: #1e293b;
693
1044
  }
694
1045
 
695
- html[data-theme="light"] .accordion-starlight.accordion-item {
696
- background: white;
697
- border-color: #e2e8f0;
1046
+ html[data-theme="light"] .accordion .accordion-content {
1047
+ background: #f1f5f9 !important;
1048
+ color: #475569 !important;
698
1049
  }
699
1050
 
700
- html[data-theme="light"] .accordion-starlight.accordion-item.active {
701
- border-color: var(--q-color-starlight-blue);
702
- 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;
703
1060
  }
704
1061
 
705
- html[data-theme="light"] .accordion-starlight .accordion-header {
706
- 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;
707
1068
  }
708
1069
 
709
- html[data-theme="light"] .accordion-starlight .accordion-content {
710
- background: #f1f5f9 !important;
711
- 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;
712
1076
  }
713
1077
 
714
- /* 11. Search Input with Icon */
715
- .search-container, .starlight-search {
716
- position: relative;
717
- display: block;
718
- width: 100%;
719
- border-radius: var(--q-radius-xl);
720
- transition: all var(--q-duration-base) var(--q-ease-in-out);
721
- overflow: visible !important;
1078
+ .search-container input:focus,
1079
+ .search input:focus {
1080
+ box-shadow: none !important;
1081
+ outline: none !important;
722
1082
  }
723
1083
 
724
- .search-container:focus-within, .starlight-search:focus-within {
725
- box-shadow: 0 0 0 2px var(--q-color-starlight-deep), 0 0 0 4px var(--q-color-starlight-blue);
726
- border-color: var(--q-color-starlight-blue);
727
- outline: none;
1084
+ form {
1085
+ display: flex;
1086
+ flex-direction: column;
1087
+ gap: 0.75rem;
728
1088
  }
729
1089
 
730
- html[data-theme="light"] .search-container:focus-within,
731
- html[data-theme="light"] .starlight-search:focus-within {
732
- box-shadow: 0 0 0 2px var(--q-light-bg), 0 0 0 4px rgb(59 130 246 / 40%);
733
- border-color: #3b82f6;
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;
734
1099
  }
735
1100
 
736
- .search-container input:focus, .starlight-search input:focus {
737
- box-shadow: none !important;
738
- outline: none !important;
1101
+ .search-input {
1102
+ width: 100%;
1103
+ border-radius: inherit;
1104
+ padding: 0.75rem 1.25rem;
1105
+ background: transparent;
1106
+ border: none;
739
1107
  }
740
1108
 
741
- .search-input {
742
- width: 100%;
743
- border-radius: inherit;
744
- padding: 0.75rem 1.25rem;
745
- background: transparent;
746
- border: none;
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;
747
1115
  }
748
1116
 
749
- html[data-theme="light"] .search-container,
750
- html[data-theme="light"] .starlight-search {
751
- background-color: #fff;
752
- border: 1px solid #cbd5e1;
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;
753
1130
  }
754
1131
 
755
- .search-container.has-icon .search-input,
756
- .starlight-search.has-icon .search-input {
757
- padding-left: 3rem !important;
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;
758
1137
  }
759
1138
 
760
1139
  .search-icon {
761
- position: absolute;
762
- left: 1.125rem;
763
- top: 50%;
764
- transform: translateY(-50%);
765
- color: var(--q-text-muted);
766
- pointer-events: none;
767
- width: 1.25rem;
768
- height: 1.25rem;
769
- 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;
770
1149
  }
771
1150
 
772
1151
  html[data-theme="light"] .search-icon {
773
- color: #64748b;
1152
+ color: #64748b;
774
1153
  }
775
-
776
1154
  /* 12. Gallery Widget */
777
- .starlight-gallery {
778
- display: grid;
779
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
780
- 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);
781
1159
  }
782
1160
 
783
1161
  .gallery-item {
784
- position: relative;
785
- aspect-ratio: 1;
786
- border-radius: var(--q-radius-xl);
787
- overflow: hidden;
788
- background: var(--q-glass-bg);
789
- border: 1px solid var(--q-glass-border);
790
- cursor: pointer;
791
- 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);
792
1170
  }
793
1171
 
794
1172
  .gallery-item img {
795
- width: 100%;
796
- height: 100%;
797
- object-fit: cover;
798
- transition: transform var(--q-transition-slow);
1173
+ width: 100%;
1174
+ height: 100%;
1175
+ object-fit: cover;
1176
+ transition: transform var(--q-transition-slow);
799
1177
  }
800
1178
 
801
1179
  .gallery-item:hover img {
802
- transform: scale(1.1);
1180
+ transform: scale(1.1);
803
1181
  }
804
1182
 
805
1183
  .gallery-item:hover {
806
- border-color: var(--q-color-starlight-blue);
807
- 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);
808
1186
  }
809
1187
 
810
1188
  .gallery-overlay {
811
- position: absolute;
812
- inset: 0;
813
- background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
814
- display: flex;
815
- align-items: flex-end;
816
- padding: 1rem;
817
- opacity: 0;
818
- transition: opacity 0.3s ease;
819
- color: white !important;
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;
820
1198
  }
821
1199
 
822
1200
  .gallery-item:hover .gallery-overlay {
823
- opacity: 1;
1201
+ opacity: 1;
824
1202
  }
825
1203
 
826
1204
  /* 13. Dashboard Widget */
827
1205
  .dashboard-grid {
828
- display: grid;
829
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
830
- gap: var(--q-space-6);
1206
+ display: grid;
1207
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1208
+ gap: var(--q-space-6);
831
1209
  }
832
1210
 
833
1211
  .stat-card {
834
- padding: var(--q-space-6);
835
- display: flex;
836
- flex-direction: column;
837
- gap: var(--q-space-2);
1212
+ padding: var(--q-space-6);
1213
+ display: flex;
1214
+ flex-direction: column;
1215
+ gap: var(--q-space-2);
838
1216
  }
839
1217
 
840
1218
  .stat-value {
841
- font-size: 2.5rem;
842
- font-weight: 800;
843
- background: linear-gradient(135deg, #fff 0%, var(--q-color-starlight-blue) 100%);
844
- -webkit-background-clip: text;
845
- -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;
846
1228
  }
847
1229
 
848
1230
  html[data-theme="light"] .stat-value {
849
- background: linear-gradient(135deg, #1e293b 0%, var(--q-color-starlight-blue) 100%);
850
- -webkit-background-clip: text;
851
- -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;
852
1238
  }
853
1239
 
854
1240
  .stat-label {
855
- text-transform: uppercase;
856
- letter-spacing: 0.1em;
857
- font-size: 0.75rem;
858
- 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);
859
1245
  }
860
1246
 
861
1247
  .stat-trend {
862
- font-size: 0.875rem;
863
- display: flex;
864
- align-items: center;
865
- gap: 0.25rem;
1248
+ font-size: 0.875rem;
1249
+ display: flex;
1250
+ align-items: center;
1251
+ gap: 0.25rem;
866
1252
  }
867
1253
 
868
- .stat-trend.up { color: var(--q-color-success); }
869
- .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
+ }
870
1260
 
871
1261
  /* 9. Glass Navigation */
872
1262
  .nav-glass {
873
- background: rgba(255, 255, 255, 0.15);
874
- backdrop-filter: blur(16px);
875
- -webkit-backdrop-filter: blur(16px);
876
- border-bottom: 1px solid var(--q-color-border-strong);
877
- background-clip: border-box;
878
- display: flex;
879
- flex-direction: column;
880
- position: sticky;
881
- top: 0;
882
- z-index: 1000;
883
- 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;
884
1274
  }
885
1275
 
886
1276
  .nav-container {
887
- display: flex;
888
- justify-content: space-between;
889
- align-items: center;
890
- width: 100%;
891
- padding: 1rem 1.5rem;
1277
+ display: flex;
1278
+ justify-content: space-between;
1279
+ align-items: center;
1280
+ width: 100%;
1281
+ padding: 1rem 1.5rem;
892
1282
  }
893
1283
 
894
1284
  html[data-theme="light"] .nav-glass {
895
- background: rgb(255 255 255 / 95%);
896
- backdrop-filter: blur(16px);
897
- -webkit-backdrop-filter: blur(16px);
898
- border-bottom-color: rgb(0 0 0 / 8%);
899
- 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%);
900
1290
  }
901
1291
 
902
1292
  .nav-desktop {
903
- display: none;
904
- align-items: center;
1293
+ display: none;
1294
+ align-items: center;
905
1295
  }
906
1296
 
907
1297
  .nav-list {
908
- display: flex;
909
- list-style: none;
910
- gap: 2rem;
911
- margin: 0;
912
- padding: 0;
1298
+ display: flex;
1299
+ list-style: none;
1300
+ gap: 2rem;
1301
+ margin: 0;
1302
+ padding: 0;
913
1303
  }
914
1304
 
915
1305
  .nav-list.vertical {
916
- flex-direction: column;
917
- gap: 0.5rem;
1306
+ flex-direction: column;
1307
+ gap: 0.5rem;
918
1308
  }
919
1309
 
920
1310
  .nav-link {
921
- font-size: 0.875rem;
922
- font-weight: 500;
923
- color: rgb(255 255 255 / 70%);
924
- transition: all 0.3s;
925
- position: relative;
926
- padding: 0.5rem 0;
927
- display: inline-flex;
928
- 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;
929
1319
  }
930
1320
 
931
1321
  .nav-list.vertical .nav-link {
932
- width: 100%;
933
- padding: 0.75rem 1rem;
934
- border-radius: 0.5rem;
1322
+ width: 100%;
1323
+ padding: 0.75rem 1rem;
1324
+ border-radius: 0.5rem;
935
1325
  }
936
1326
 
937
1327
  .nav-list.vertical .dropdown {
938
- width: 100%;
939
- display: block;
1328
+ width: 100%;
1329
+ display: block;
940
1330
  }
941
1331
 
942
1332
  .nav-list.vertical .nav-link:hover {
943
- background: var(--q-color-border);
944
- color: var(--q-color-starlight-blue);
1333
+ background: var(--q-color-border);
1334
+ color: var(--q-color-starlight-blue);
945
1335
  }
946
1336
 
947
1337
  .nav-link::after {
948
- content: '';
949
- position: absolute;
950
- bottom: 0;
951
- left: 50%;
952
- width: 0;
953
- height: 2px;
954
- background: var(--q-color-starlight-blue);
955
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
956
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
957
- 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%);
958
1348
  }
959
1349
 
960
1350
  .nav-link:hover::after {
961
- width: 80%;
1351
+ width: 80%;
962
1352
  }
963
1353
 
964
-
965
1354
  html[data-theme="light"] .nav-link {
966
- color: #475569;
1355
+ color: #475569;
967
1356
  }
968
1357
 
969
1358
  html[data-theme="light"] .nav-link:hover {
970
- color: #1e293b;
1359
+ color: var(--q-color-starlight-blue);
971
1360
  }
972
1361
 
973
1362
  .hamburger {
974
- width: 2.5rem;
975
- height: 2.5rem;
976
- display: flex;
977
- flex-direction: column;
978
- justify-content: center;
979
- align-items: center;
980
- gap: 0.4rem;
981
- cursor: pointer;
982
- background: var(--q-color-border);
983
- border: 1px solid var(--q-color-border-strong);
984
- border-radius: 0.5rem;
985
- padding: 0.5rem;
986
- transition: all 0.3s;
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;
987
1377
  }
988
1378
 
989
1379
  html[data-theme="light"] .hamburger {
990
- background: rgb(0 0 0 / 2%);
991
- border-color: rgb(0 0 0 / 10%);
1380
+ background: rgb(0 0 0 / 2%);
1381
+ border-color: rgb(0 0 0 / 10%);
992
1382
  }
993
1383
 
994
1384
  .hamburger:hover {
995
- background: var(--q-color-border-strong);
996
- border-color: var(--q-color-starlight-blue);
1385
+ background: var(--q-color-border-strong);
1386
+ border-color: var(--q-color-starlight-blue);
997
1387
  }
998
1388
 
999
1389
  html[data-theme="light"] .hamburger:hover {
1000
- background: rgb(0 0 0 / 10%);
1390
+ background: rgb(0 0 0 / 10%);
1001
1391
  }
1002
1392
 
1003
1393
  .hamburger span {
1004
- width: 1.5rem;
1005
- height: 2px;
1006
- background: white;
1007
- border-radius: 2px;
1008
- transition: all 0.3s;
1009
- 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;
1010
1400
  }
1011
1401
 
1012
1402
  html[data-theme="light"] .hamburger span {
1013
- background: #1e293b;
1403
+ background: #1e293b;
1014
1404
  }
1015
1405
 
1016
1406
  .hamburger.active span {
1017
- background-color: var(--q-color-starlight-blue);
1018
- 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);
1019
1409
  }
1020
1410
 
1021
1411
  .nav-menu-mobile {
1022
- position: absolute;
1023
- top: 100%;
1024
- left: 0;
1025
- right: 0;
1026
- z-index: 1000;
1027
- background: rgba(8, 8, 26, 0.95);
1028
- backdrop-filter: blur(20px);
1029
- -webkit-backdrop-filter: blur(20px);
1030
- border-top: 1px solid var(--q-color-border);
1031
- padding: 0 2rem;
1032
- max-height: 0;
1033
- overflow: hidden;
1034
- transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1035
- opacity: 0;
1036
- pointer-events: none;
1037
- display: 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;
1038
1428
  }
1039
1429
 
1040
1430
  .nav-menu-mobile.active {
1041
- display: flex;
1042
- flex-direction: column;
1043
- max-height: 100vh;
1044
- padding: 1.5rem 2rem;
1045
- opacity: 1;
1046
- 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;
1047
1437
  }
1048
1438
 
1049
1439
  html[data-theme="light"] .nav-menu-mobile {
1050
- background: #fff;
1051
- border-top-color: rgb(0 0 0 / 8%);
1052
- 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%);
1053
1443
  }
1054
1444
 
1055
1445
  /* Vertical Accordion Dropdowns */
1056
1446
  .nav-list.vertical .dropdown-menu {
1057
- position: static;
1058
- opacity: 1;
1059
- visibility: visible;
1060
- transform: none;
1061
- box-shadow: none;
1062
- border: none;
1063
- padding: 0 0 0 1.5rem;
1064
- margin: 0;
1065
- max-height: 0;
1066
- overflow: hidden;
1067
- transition: all 0.3s ease;
1068
- background: transparent;
1069
- 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;
1070
1460
  }
1071
1461
 
1072
1462
  .nav-list.vertical .dropdown.active .dropdown-menu {
1073
- max-height: 300px;
1074
- padding-top: 0.5rem;
1075
- padding-bottom: 0.5rem;
1076
- pointer-events: auto;
1463
+ max-height: 300px;
1464
+ padding-top: 0.5rem;
1465
+ padding-bottom: 0.5rem;
1466
+ pointer-events: auto;
1077
1467
  }
1078
1468
 
1079
1469
  .nav-list.vertical .dropdown-item {
1080
- padding: 0.5rem 1rem;
1081
- font-size: 0.825rem;
1082
- border-left: 1px solid var(--q-color-border-strong);
1083
- 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;
1084
1474
  }
1085
1475
 
1086
1476
  @media (width >= 768px) {
1087
- .nav-desktop {
1088
- display: flex;
1089
- }
1090
-
1091
- .hamburger {
1092
- display: none;
1093
- }
1094
-
1095
- .nav-menu-mobile {
1096
- display: none !important;
1097
- }
1477
+ .nav-desktop {
1478
+ display: flex;
1479
+ }
1480
+
1481
+ .hamburger {
1482
+ display: none;
1483
+ }
1484
+
1485
+ .nav-menu-mobile {
1486
+ display: none !important;
1487
+ }
1098
1488
  }
1099
1489
 
1100
1490
  @keyframes slideInDown {
1101
- from { opacity: 0; transform: translateY(-10px); }
1102
- 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
+ }
1103
1499
  }
1104
1500
 
1105
1501
  .starlight-nav.vertical {
1106
- flex-direction: column;
1107
- height: 100%;
1108
- width: 280px !important;
1109
- min-width: 280px !important;
1110
- border-bottom: none;
1111
- border-right: 1px solid var(--q-color-border-strong);
1112
- padding: 2.5rem 1.5rem;
1113
- align-items: flex-start;
1114
- 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;
1115
1511
  }
1116
1512
 
1117
1513
  /* Nav Layout Modifiers */
1118
1514
  .nav-reverse > div {
1119
- flex-direction: row-reverse !important;
1515
+ flex-direction: row-reverse !important;
1120
1516
  }
1121
1517
 
1122
1518
  .nav-center > div {
1123
- display: grid !important;
1124
- grid-template-columns: 1fr auto 1fr;
1125
- align-items: center;
1519
+ display: grid !important;
1520
+ grid-template-columns: 1fr auto 1fr;
1521
+ align-items: center;
1126
1522
  }
1127
1523
 
1128
1524
  @media (width < 768px) {
1129
- .hamburger-left {
1130
- order: -1;
1131
- }
1525
+ .hamburger-left {
1526
+ order: -1;
1527
+ }
1132
1528
  }
1133
1529
 
1134
1530
  html[data-theme="light"] .starlight-nav.vertical {
1135
- background: rgb(255 255 255 / 98%);
1136
- border-right-color: rgb(0 0 0 / 8%);
1531
+ background: rgb(255 255 255 / 98%);
1532
+ border-right-color: rgb(0 0 0 / 8%);
1137
1533
  }
1138
1534
 
1139
1535
  /* 15. More Form Controls */
1140
1536
  .select-starlight {
1141
- appearance: none;
1142
- line-height: normal;
1143
- padding-top: 0.5rem !important;
1144
- padding-bottom: 0.5rem !important;
1145
- padding-left: 1.25rem !important;
1146
- 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");
1147
- background-repeat: no-repeat;
1148
- background-position: right 1rem center;
1149
- background-size: 1.25rem;
1150
- 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;
1151
1547
  }
1152
1548
 
1153
1549
  html[data-theme="light"] .select-starlight {
1154
- 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");
1155
1551
  }
1156
1552
 
1157
1553
  .range-starlight {
1158
- appearance: none;
1159
- width: 100%;
1160
- height: 6px;
1161
- background: var(--q-color-border-strong);
1162
- border-radius: 3px;
1163
- 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;
1164
1572
  }
1165
1573
 
1166
- html[data-theme="light"] .range-starlight {
1167
- 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;
1168
1587
  }
1169
1588
 
1170
- .range-starlight:-webkit-slider-thumb {
1171
- appearance: none;
1172
- width: 18px;
1173
- height: 18px;
1174
- background: var(--q-color-starlight-blue);
1175
- border-radius: 50%;
1176
- cursor: pointer;
1177
- box-shadow: 0 0 10px var(--q-color-starlight-glow);
1178
- transition: all 0.2s;
1589
+ html[data-theme="light"] .range-starlight {
1590
+ background: rgb(0 0 0 / 10%);
1179
1591
  }
1180
1592
 
1181
- .range-starlight:-webkit-slider-thumb:hover {
1182
- transform: scale(1.2);
1183
- 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);
1184
1596
  }
1185
1597
 
1186
1598
  .toggle-starlight {
1187
- width: 3.5rem;
1188
- height: 1.75rem;
1599
+ width: 3.5rem;
1600
+ height: 1.75rem;
1189
1601
  }
1190
1602
 
1191
1603
  .toggle-starlight .toggle-slider::before {
1192
- height: 1.25rem;
1193
- width: 1.25rem;
1194
- top: 0.25rem;
1195
- left: 0.25rem;
1604
+ height: 1.25rem;
1605
+ width: 1.25rem;
1606
+ top: 0.25rem;
1607
+ left: 0.25rem;
1196
1608
  }
1197
1609
 
1198
1610
  .toggle-starlight input:checked + .toggle-slider::before {
1199
- transform: translateX(1.75rem);
1611
+ transform: translateX(1.75rem);
1200
1612
  }
1201
1613
 
1202
1614
  .toggle-starlight .toggle-slider {
1203
- background: var(--q-color-border-strong);
1204
- border: 1px solid var(--q-color-border-strong);
1615
+ background: var(--q-color-border-strong);
1616
+ border: 1px solid var(--q-color-border-strong);
1205
1617
  }
1206
1618
 
1207
1619
  html[data-theme="light"] .toggle-starlight .toggle-slider {
1208
- background: rgb(0 0 0 / 10%);
1209
- 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);
1210
1627
  }
1211
1628
 
1212
1629
  html[data-theme="light"] .bg-starlight,
1213
1630
  html[data-theme="light"] .bg-starlight:hover,
1214
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,
1215
1634
  html[data-theme="light"] .btn-starlight,
1216
1635
  html[data-theme="light"] .btn-starlight:hover,
1217
1636
  html[data-theme="light"] .hover\:btn-starlight:hover,
1218
1637
  html[data-theme="light"] .btn-primary,
1219
1638
  html[data-theme="light"] .btn-primary:hover {
1220
- 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;
1221
1644
  }
1222
1645
 
1223
- html[data-theme="light"] .text-gradient-starlight {
1224
- background: linear-gradient(135deg, var(--q-color-starlight-peach) 40%, var(--q-color-starlight-blue) 100%) !important;
1225
- -webkit-background-clip: text !important;
1226
- -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;
1227
1654
  }
1228
1655
 
1229
- html[data-theme="light"] .text-success { color: #059669; }
1230
- 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
+ }
1231
1662
 
1232
1663
  html[data-theme="light"] .dialog-content .bg-black_40 {
1233
- background-color: rgb(0 0 0 / 5%);
1234
- border-color: rgb(0 0 0 / 10%);
1664
+ background-color: rgb(0 0 0 / 5%);
1665
+ border-color: rgb(0 0 0 / 10%);
1235
1666
  }
1236
1667
 
1237
1668
  /* 18. Semantic Typography Utilities */
1238
1669
  .text-glow {
1239
- 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%);
1240
1673
  }
1241
1674
 
1242
1675
  .text-glass {
1243
- color: rgb(255 255 255 / 60%);
1244
- backdrop-filter: blur(4px);
1245
- -webkit-backdrop-filter: blur(4px);
1676
+ color: rgb(255 255 255 / 60%);
1677
+ backdrop-filter: blur(4px);
1678
+ -webkit-backdrop-filter: blur(4px);
1246
1679
  }
1247
1680
 
1248
1681
  html[data-theme="light"] .text-glow {
1249
- text-shadow: 0 0 8px rgb(0 212 255 / 30%);
1682
+ text-shadow: 0 0 8px rgb(0 212 255 / 30%);
1250
1683
  }
1251
1684
 
1252
1685
  html[data-theme="light"] .text-glass {
1253
- 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;
1733
+ }
1734
+
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;
1254
1757
  }
1255
1758
 
1256
1759
  /* 17. Skeleton Loading (Starlight Variant) */
1257
1760
  .starlight-loading {
1258
- background: linear-gradient(
1259
- 90deg,
1260
- rgb(255 255 255 / 3%) 25%,
1261
- rgb(255 255 255 / 8%) 50%,
1262
- rgb(255 255 255 / 3%) 75%
1263
- );
1264
- background-size: 200% 100%;
1265
- animation: starlight-shimmer 2s infinite linear;
1266
- border-radius: var(--q-radius-md);
1267
- min-height: 1rem;
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;
1268
1771
  }
1269
1772
 
1270
1773
  @keyframes starlight-shimmer {
1271
- 0% { background-position: 200% 0; }
1272
- 100% { background-position: -200% 0; }
1774
+ 0% {
1775
+ background-position: 200% 0;
1776
+ }
1777
+ 100% {
1778
+ background-position: -200% 0;
1779
+ }
1273
1780
  }
1274
1781
 
1275
1782
  html[data-theme="light"] .starlight-loading {
1276
- background: linear-gradient(
1277
- 90deg,
1278
- rgb(0 0 0 / 3%) 25%,
1279
- rgb(0 0 0 / 6%) 50%,
1280
- rgb(0 0 0 / 3%) 75%
1281
- );
1282
- 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%;
1283
1790
  }
1284
1791
 
1285
1792
  /* 16. Themed Scrollbars */
1286
1793
  ::-webkit-scrollbar {
1287
- width: 10px;
1288
- height: 10px;
1794
+ width: 10px;
1795
+ height: 10px;
1289
1796
  }
1290
1797
 
1291
1798
  ::-webkit-scrollbar-track {
1292
- background: rgb(255 255 255 / 2%);
1293
- backdrop-filter: blur(10px);
1799
+ background: rgb(255 255 255 / 2%);
1800
+ backdrop-filter: blur(10px);
1294
1801
  }
1295
1802
 
1296
1803
  ::-webkit-scrollbar-thumb {
1297
- background: var(--q-color-border-strong);
1298
- border: 1px solid var(--q-color-border);
1299
- border-radius: 10px;
1300
- transition: all 0.3s;
1804
+ background: var(--q-color-border-strong);
1805
+ border: 1px solid var(--q-color-border);
1806
+ border-radius: 10px;
1807
+ transition: all 0.3s;
1301
1808
  }
1302
1809
 
1303
1810
  ::-webkit-scrollbar-thumb:hover {
1304
- background: rgb(0 212 255 / 30%);
1305
- 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%);
1306
1813
  }
1307
1814
 
1308
1815
  html[data-theme="light"] ::-webkit-scrollbar-track {
1309
- background: rgb(0 0 0 / 3%);
1816
+ background: rgb(0 0 0 / 3%);
1310
1817
  }
1311
1818
 
1312
1819
  html[data-theme="light"] ::-webkit-scrollbar-thumb {
1313
- background: rgb(0 0 0 / 10%);
1314
- border-color: rgb(0 0 0 / 5%);
1820
+ background: rgb(0 0 0 / 10%);
1821
+ border-color: rgb(0 0 0 / 5%);
1315
1822
  }
1316
1823
 
1317
1824
  html[data-theme="light"] ::-webkit-scrollbar-thumb:hover {
1318
- background: var(--q-color-starlight-blue);
1825
+ background: var(--q-color-starlight-blue);
1319
1826
  }
1320
1827
 
1321
1828
  /* Firefox Support */
1322
1829
  * {
1323
- scrollbar-width: thin;
1324
- scrollbar-color: var(--q-color-border-strong) transparent;
1830
+ scrollbar-width: thin;
1831
+ scrollbar-color: var(--q-color-border-strong) transparent;
1325
1832
  }
1326
1833
 
1327
1834
  html[data-theme="light"] * {
1328
- scrollbar-color: rgb(0 0 0 / 10%) transparent;
1835
+ scrollbar-color: rgb(0 0 0 / 10%) transparent;
1329
1836
  }
1330
1837
 
1331
1838
  @media (forced-colors: active) {
1332
- button:focus, input:focus, select:focus, textarea:focus {
1333
- outline: 2px solid SelectedItem !important;
1334
- outline-offset: 2px;
1335
- }
1336
-
1337
- .starlight-card:hover, .accordion-starlight.accordion-item:hover {
1338
- border-color: SelectedItem !important;
1339
- }
1340
-
1341
- .text-gradient-starlight, .bg-starlight {
1342
- background: none !important;
1343
- -webkit-text-fill-color: CanvasText !important;
1344
- color: CanvasText !important;
1345
- text-decoration: underline;
1346
- }
1347
-
1348
- .btn-starlight {
1349
- background: linear-gradient(135deg, var(--q-color-starlight-peach) 0%, var(--q-color-starlight-blue) 100%);
1350
- color: #000;
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;
1351
1910
  font-weight: 700;
1352
1911
  border: none;
1353
1912
  border-radius: 0.5rem;
1354
1913
  display: inline-flex;
1355
1914
  align-items: center;
1356
1915
  justify-content: center;
1916
+ padding: 0.75rem 1.5rem;
1357
1917
  cursor: pointer;
1358
1918
  transition: all 0.2s ease;
1359
1919
  box-shadow: 0 0 20px rgb(0 212 255 / 30%);
1360
1920
  text-decoration: none;
1361
- }
1362
-
1363
- .btn-starlight:hover {
1921
+ }
1922
+
1923
+ form button:not([class]):hover,
1924
+ .btn-starlight:hover {
1364
1925
  transform: translateY(-2px);
1365
1926
  filter: brightness(1.1);
1366
- }
1367
-
1368
- .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 {
1369
1932
  transform: translateY(0) scale(0.95);
1370
1933
  filter: brightness(0.9);
1371
- }
1372
-
1373
- .btn-starlight:focus-visible {
1934
+ }
1935
+
1936
+ form button:not([class]):focus-visible,
1937
+ .btn-starlight:focus-visible {
1374
1938
  outline: 2px solid white;
1375
1939
  outline-offset: 2px;
1376
1940
  box-shadow: 0 0 0 4px rgb(0 212 255 / 30%);
1377
- }
1378
-
1379
- 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 {
1380
1945
  outline-color: var(--q-color-starlight-blue);
1381
- }}
1946
+ }
1382
1947
 
1383
1948
  /* ============================================
1384
1949
  LAYOUT PRESETS - Composable, Flexible
@@ -1386,165 +1951,165 @@ html[data-theme="light"] * {
1386
1951
 
1387
1952
  /* Email 3-column layout */
1388
1953
  .email-nav {
1389
- display: flex;
1390
- flex-direction: column;
1391
- height: 100%;
1392
- background: rgb(0 0 0 / 40%);
1393
- backdrop-filter: blur(24px);
1394
- -webkit-backdrop-filter: blur(24px);
1395
- border-right: 1px solid var(--q-color-border-strong);
1396
- padding: 1rem;
1397
- 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;
1398
1963
  }
1399
1964
 
1400
1965
  .email-feed {
1401
- display: flex;
1402
- flex-direction: column;
1403
- height: 100%;
1404
- background: var(--q-color-border);
1405
- backdrop-filter: blur(16px);
1406
- -webkit-backdrop-filter: blur(16px);
1407
- border-right: 1px solid var(--q-color-border-strong);
1408
- 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;
1409
1974
  }
1410
1975
 
1411
1976
  .email-content {
1412
- display: flex;
1413
- flex-direction: column;
1414
- height: 100%;
1415
- overflow-y: auto;
1977
+ display: flex;
1978
+ flex-direction: column;
1979
+ height: 100%;
1980
+ overflow-y: auto;
1416
1981
  }
1417
1982
 
1418
1983
  /* Music 2-column + footer layout */
1419
1984
  .music-nav {
1420
- display: flex;
1421
- flex-direction: column;
1422
- height: 100%;
1423
- background: rgb(0 0 0 / 40%);
1424
- backdrop-filter: blur(24px);
1425
- -webkit-backdrop-filter: blur(24px);
1426
- border-right: 1px solid var(--q-color-border-strong);
1427
- padding: 1rem;
1428
- 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;
1429
1994
  }
1430
1995
 
1431
1996
  .music-content {
1432
- display: flex;
1433
- flex-direction: column;
1434
- height: 100%;
1435
- overflow-y: auto;
1997
+ display: flex;
1998
+ flex-direction: column;
1999
+ height: 100%;
2000
+ overflow-y: auto;
1436
2001
  }
1437
2002
 
1438
2003
  .music-footer {
1439
- display: flex;
1440
- align-items: center;
1441
- justify-content: space-between;
1442
- padding: 1rem 1.5rem;
1443
- background: rgb(0 0 0 / 40%);
1444
- backdrop-filter: blur(24px);
1445
- -webkit-backdrop-filter: blur(24px);
1446
- border-top: 1px solid var(--q-color-border-strong);
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);
1447
2012
  }
1448
2013
 
1449
2014
  /* Chat 2-column layout */
1450
2015
  .chat-sidebar {
1451
- display: flex;
1452
- flex-direction: column;
1453
- height: 100%;
1454
- background: rgb(0 0 0 / 40%);
1455
- backdrop-filter: blur(24px);
1456
- -webkit-backdrop-filter: blur(24px);
1457
- border-right: 1px solid var(--q-color-border-strong);
1458
- 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;
1459
2024
  }
1460
2025
 
1461
2026
  .chat-content {
1462
- display: flex;
1463
- flex-direction: column;
1464
- height: 100%;
1465
- overflow: hidden;
2027
+ display: flex;
2028
+ flex-direction: column;
2029
+ height: 100%;
2030
+ overflow: hidden;
1466
2031
  }
1467
2032
 
1468
2033
  /* Admin 2-column layout */
1469
2034
  .admin-sidebar {
1470
- display: flex;
1471
- flex-direction: column;
1472
- height: 100%;
1473
- background: rgb(0 0 0 / 40%);
1474
- backdrop-filter: blur(24px);
1475
- -webkit-backdrop-filter: blur(24px);
1476
- border-right: 1px solid var(--q-color-border-strong);
1477
- padding: 1rem;
1478
- 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;
1479
2044
  }
1480
2045
 
1481
2046
  .admin-content {
1482
- display: flex;
1483
- flex-direction: column;
1484
- height: 100%;
1485
- overflow-y: auto;
2047
+ display: flex;
2048
+ flex-direction: column;
2049
+ height: 100%;
2050
+ overflow-y: auto;
1486
2051
  }
1487
2052
 
1488
2053
  /* Analytics 2-column layout */
1489
2054
  .analytics-sidebar {
1490
- display: flex;
1491
- flex-direction: column;
1492
- height: 100%;
1493
- background: rgb(0 0 0 / 40%);
1494
- backdrop-filter: blur(24px);
1495
- -webkit-backdrop-filter: blur(24px);
1496
- border-right: 1px solid var(--q-color-border-strong);
1497
- padding: 1rem;
1498
- 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;
1499
2064
  }
1500
2065
 
1501
2066
  .analytics-content {
1502
- display: flex;
1503
- flex-direction: column;
1504
- height: 100%;
1505
- overflow-y: auto;
2067
+ display: flex;
2068
+ flex-direction: column;
2069
+ height: 100%;
2070
+ overflow-y: auto;
1506
2071
  }
1507
2072
 
1508
2073
  /* Layout container classes (use in parent grid) */
1509
2074
  .layout-email-3col {
1510
- display: grid;
1511
- height: 100vh;
1512
- grid-template-columns: 280px 320px 1fr;
1513
- overflow: hidden;
2075
+ display: grid;
2076
+ height: 100vh;
2077
+ grid-template-columns: 280px 320px 1fr;
2078
+ overflow: hidden;
1514
2079
  }
1515
2080
 
1516
2081
  .layout-music-2col {
1517
- display: grid;
1518
- height: 100vh;
1519
- grid-template-rows: 1fr auto;
1520
- overflow: hidden;
2082
+ display: grid;
2083
+ height: 100vh;
2084
+ grid-template-rows: 1fr auto;
2085
+ overflow: hidden;
1521
2086
  }
1522
2087
 
1523
2088
  .layout-music-row {
1524
- display: grid;
1525
- grid-template-columns: 280px 1fr;
1526
- overflow: hidden;
2089
+ display: grid;
2090
+ grid-template-columns: 280px 1fr;
2091
+ overflow: hidden;
1527
2092
  }
1528
2093
 
1529
2094
  .layout-chat-2col {
1530
- display: grid;
1531
- height: 100vh;
1532
- grid-template-columns: 320px 1fr;
1533
- overflow: hidden;
2095
+ display: grid;
2096
+ height: 100vh;
2097
+ grid-template-columns: 320px 1fr;
2098
+ overflow: hidden;
1534
2099
  }
1535
2100
 
1536
2101
  .layout-admin-2col {
1537
- display: grid;
1538
- height: 100vh;
1539
- grid-template-columns: 260px 1fr;
1540
- overflow: hidden;
2102
+ display: grid;
2103
+ height: 100vh;
2104
+ grid-template-columns: 260px 1fr;
2105
+ overflow: hidden;
1541
2106
  }
1542
2107
 
1543
2108
  .layout-analytics-2col {
1544
- display: grid;
1545
- height: 100vh;
1546
- grid-template-columns: 240px 1fr;
1547
- overflow: hidden;
2109
+ display: grid;
2110
+ height: 100vh;
2111
+ grid-template-columns: 240px 1fr;
2112
+ overflow: hidden;
1548
2113
  }
1549
2114
 
1550
2115
  /* ============================================
@@ -1553,449 +2118,1304 @@ html[data-theme="light"] * {
1553
2118
 
1554
2119
  /* Stat Card - for dashboard metrics */
1555
2120
  .starlight-stat {
1556
- display: flex;
1557
- flex-direction: column;
1558
- gap: 0.5rem;
1559
- padding: 1.25rem;
1560
- background: rgb(255 255 255 / 3%);
1561
- border: 1px solid rgb(255 255 255 / 8%);
1562
- border-radius: var(--q-radius-xl);
1563
- 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;
1564
2129
  }
1565
2130
 
1566
2131
  .starlight-stat:hover {
1567
- background: var(--q-color-border);
1568
- border-color: rgb(255 255 255 / 12%);
2132
+ background: var(--q-color-border);
2133
+ border-color: rgb(255 255 255 / 12%);
1569
2134
  }
1570
2135
 
1571
2136
  .starlight-stat-header {
1572
- display: flex;
1573
- align-items: center;
1574
- justify-content: space-between;
2137
+ display: flex;
2138
+ align-items: center;
2139
+ justify-content: space-between;
1575
2140
  }
1576
2141
 
1577
2142
  .starlight-stat-icon {
1578
- display: flex;
1579
- align-items: center;
1580
- justify-content: center;
1581
- width: 2.5rem;
1582
- height: 2.5rem;
1583
- border-radius: var(--q-radius-lg);
1584
- background: rgb(0 212 255 / 15%);
1585
- color: var(--q-color-starlight-blue);
1586
- }
1587
-
1588
- .starlight-stat-icon-green { background: rgb(16 185 129 / 15%); color: #10b981; }
1589
- .starlight-stat-icon-orange { background: rgb(245 158 11 / 15%); color: #f59e0b; }
1590
- .starlight-stat-icon-purple { background: rgb(139 92 246 / 15%); color: #8b5cf6; }
1591
- .starlight-stat-icon-pink { background: rgb(236 72 153 / 15%); color: #ec4899; }
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);
2151
+ }
2152
+
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
+ }
1592
2169
 
1593
2170
  .starlight-stat-trend {
1594
- display: flex;
1595
- align-items: center;
1596
- gap: 0.25rem;
1597
- font-size: 0.75rem;
1598
- font-weight: 600;
2171
+ display: flex;
2172
+ align-items: center;
2173
+ gap: 0.25rem;
2174
+ font-size: 0.75rem;
2175
+ font-weight: 600;
1599
2176
  }
1600
2177
 
1601
- .starlight-stat-trend-up { color: #10b981; }
1602
- .starlight-stat-trend-down { color: #ef4444; }
2178
+ .starlight-stat-trend-up {
2179
+ color: #10b981;
2180
+ }
2181
+ .starlight-stat-trend-down {
2182
+ color: #ef4444;
2183
+ }
1603
2184
 
1604
2185
  .starlight-stat-value {
1605
- font-size: 1.75rem;
1606
- font-weight: 700;
1607
- color: var(--q-color-starlight-blue);
2186
+ font-size: 1.75rem;
2187
+ font-weight: 700;
2188
+ color: var(--q-color-starlight-blue);
1608
2189
  }
1609
2190
 
1610
2191
  .starlight-stat-label {
1611
- font-size: 0.875rem;
1612
- color: rgb(255 255 255 / 60%);
1613
- text-transform: uppercase;
1614
- 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;
1615
2196
  }
1616
2197
 
1617
2198
  /* Avatar - user/channel images */
1618
2199
  .starlight-avatar {
1619
- display: flex;
1620
- align-items: center;
1621
- justify-content: center;
1622
- border-radius: 50%;
1623
- font-weight: 600;
1624
- color: white;
1625
- background: linear-gradient(135deg, var(--q-color-starlight-blue), #3b82f6);
1626
- 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;
1627
2208
  }
1628
2209
 
1629
2210
  .starlight-avatar-sm {
1630
- width: 2rem;
1631
- height: 2rem;
1632
- font-size: 0.625rem;
2211
+ width: 2rem;
2212
+ height: 2rem;
2213
+ font-size: 0.625rem;
1633
2214
  }
1634
2215
 
1635
2216
  .starlight-avatar-md {
1636
- width: 2.5rem;
1637
- height: 2.5rem;
1638
- font-size: 0.75rem;
2217
+ width: 2.5rem;
2218
+ height: 2.5rem;
2219
+ font-size: 0.75rem;
1639
2220
  }
1640
2221
 
1641
2222
  .starlight-avatar-lg {
1642
- width: 3rem;
1643
- height: 3rem;
1644
- font-size: 0.875rem;
2223
+ width: 3rem;
2224
+ height: 3rem;
2225
+ font-size: 0.875rem;
1645
2226
  }
1646
2227
 
1647
2228
  .starlight-avatar-xl {
1648
- width: 4rem;
1649
- height: 4rem;
1650
- font-size: 1.125rem;
2229
+ width: 4rem;
2230
+ height: 4rem;
2231
+ font-size: 1.125rem;
1651
2232
  }
1652
2233
 
1653
2234
  .starlight-avatar img {
1654
- width: 100%;
1655
- height: 100%;
1656
- object-fit: cover;
1657
- border-radius: 50%;
2235
+ width: 100%;
2236
+ height: 100%;
2237
+ object-fit: cover;
2238
+ border-radius: 50%;
1658
2239
  }
1659
2240
 
1660
2241
  .starlight-avatar-online::after {
1661
- content: '';
1662
- position: absolute;
1663
- bottom: 0;
1664
- right: 0;
1665
- width: 0.75rem;
1666
- height: 0.75rem;
1667
- background: #10b981;
1668
- border: 2px solid var(--q-color-starlight-deep);
1669
- 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%;
1670
2251
  }
1671
2252
 
1672
2253
  /* Theme Toggle */
1673
2254
  .starlight-theme-toggle {
1674
- display: flex;
1675
- align-items: center;
1676
- justify-content: center;
1677
- width: 2.5rem;
1678
- height: 2.5rem;
1679
- border-radius: 50%;
1680
- background: var(--q-color-border);
1681
- border: 1px solid var(--q-color-border-strong);
1682
- color: inherit;
1683
- cursor: pointer;
1684
- transition: all 0.3s ease;
1685
- 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;
1686
2267
  }
1687
2268
 
1688
2269
  .starlight-theme-toggle:hover {
1689
- background: var(--q-color-border-strong);
1690
- transform: scale(1.05);
2270
+ background: var(--q-color-border-strong);
2271
+ transform: scale(1.05);
1691
2272
  }
1692
2273
 
1693
2274
  .starlight-theme-toggle svg {
1694
- width: 1.25rem;
1695
- height: 1.25rem;
2275
+ width: 1.25rem;
2276
+ height: 1.25rem;
1696
2277
  }
1697
2278
 
1698
2279
  /* Notification Bell */
1699
2280
  .starlight-notification {
1700
- position: relative;
1701
- display: flex;
1702
- align-items: center;
1703
- justify-content: center;
1704
- width: 2.5rem;
1705
- height: 2.5rem;
1706
- background: transparent;
1707
- border: none;
1708
- color: inherit;
1709
- cursor: pointer;
1710
- transition: all 0.2s ease;
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;
1711
2292
  }
1712
2293
 
1713
2294
  .starlight-notification:hover {
1714
- color: var(--q-color-starlight-blue);
2295
+ color: var(--q-color-starlight-blue);
1715
2296
  }
1716
2297
 
1717
2298
  .starlight-notification-dot {
1718
- position: absolute;
1719
- top: 0.5rem;
1720
- right: 0.5rem;
1721
- width: 0.5rem;
1722
- height: 0.5rem;
1723
- background: #ef4444;
1724
- border-radius: 50%;
1725
- 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;
1726
2307
  }
1727
2308
 
1728
2309
  @keyframes starlight-pulse {
1729
- 0%, 100% { opacity: 1; }
1730
- 50% { opacity: 0.5; }
2310
+ 0%,
2311
+ 100% {
2312
+ opacity: 1;
2313
+ }
2314
+ 50% {
2315
+ opacity: 0.5;
2316
+ }
1731
2317
  }
1732
2318
 
1733
2319
  /* Data Table */
1734
2320
  .starlight-table-container {
1735
- background: rgb(255 255 255 / 3%);
1736
- border: 1px solid rgb(255 255 255 / 8%);
1737
- border-radius: var(--q-radius-xl);
1738
- 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;
1739
2325
  }
1740
2326
 
1741
2327
  .starlight-table-header {
1742
- display: flex;
1743
- align-items: center;
1744
- justify-content: space-between;
1745
- padding: 1rem 1.25rem;
1746
- 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%);
1747
2333
  }
1748
2334
 
1749
2335
  .starlight-table-title {
1750
- font-size: 1.125rem;
1751
- font-weight: 600;
2336
+ font-size: 1.125rem;
2337
+ font-weight: 600;
1752
2338
  }
1753
2339
 
1754
2340
  .starlight-table-filters {
1755
- display: flex;
1756
- gap: 0.5rem;
2341
+ display: flex;
2342
+ gap: 0.5rem;
1757
2343
  }
1758
2344
 
1759
2345
  .starlight-table {
1760
- width: 100%;
1761
- border-collapse: collapse;
2346
+ width: 100%;
2347
+ border-collapse: collapse;
1762
2348
  }
1763
2349
 
1764
2350
  .starlight-table th,
1765
2351
  .starlight-table td {
1766
- padding: 0.875rem 1.25rem;
1767
- text-align: left;
1768
- border-bottom: 1px solid var(--q-color-border);
2352
+ padding: 0.875rem 1.25rem;
2353
+ text-align: left;
2354
+ border-bottom: 1px solid var(--q-color-border);
1769
2355
  }
1770
2356
 
1771
2357
  .starlight-table th {
1772
- font-size: 0.75rem;
1773
- font-weight: 600;
1774
- text-transform: uppercase;
1775
- letter-spacing: 0.05em;
1776
- color: rgb(255 255 255 / 60%);
1777
- 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%);
1778
2364
  }
1779
2365
 
1780
2366
  .starlight-table tr:hover td {
1781
- background: rgb(255 255 255 / 3%);
2367
+ background: rgb(255 255 255 / 3%);
1782
2368
  }
1783
2369
 
1784
2370
  .starlight-table-footer {
1785
- display: flex;
1786
- align-items: center;
1787
- justify-content: space-between;
1788
- padding: 0.875rem 1.25rem;
1789
- border-top: 1px solid rgb(255 255 255 / 8%);
1790
- font-size: 0.875rem;
1791
- 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%);
1792
2378
  }
1793
2379
 
1794
2380
  /* Chart Card */
1795
2381
  .starlight-chart {
1796
- background: rgb(255 255 255 / 3%);
1797
- border: 1px solid rgb(255 255 255 / 8%);
1798
- border-radius: var(--q-radius-xl);
1799
- 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;
1800
2386
  }
1801
2387
 
1802
2388
  .starlight-chart-header {
1803
- display: flex;
1804
- align-items: center;
1805
- justify-content: space-between;
1806
- padding: 1rem 1.25rem;
1807
- border-bottom: 1px solid var(--q-color-border);
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);
1808
2394
  }
1809
2395
 
1810
2396
  .starlight-chart-title {
1811
- font-size: 1rem;
1812
- font-weight: 600;
2397
+ font-size: 1rem;
2398
+ font-weight: 600;
1813
2399
  }
1814
2400
 
1815
2401
  .starlight-chart-tabs {
1816
- display: flex;
1817
- gap: 0.25rem;
2402
+ display: flex;
2403
+ gap: 0.25rem;
1818
2404
  }
1819
2405
 
1820
2406
  .starlight-chart-tab {
1821
- padding: 0.375rem 0.75rem;
1822
- font-size: 0.75rem;
1823
- font-weight: 500;
1824
- background: transparent;
1825
- border: none;
1826
- border-radius: var(--q-radius-md);
1827
- color: rgb(255 255 255 / 60%);
1828
- cursor: pointer;
1829
- transition: all 0.2s ease;
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;
1830
2416
  }
1831
2417
 
1832
2418
  .starlight-chart-tab:hover {
1833
- color: inherit;
2419
+ color: inherit;
1834
2420
  }
1835
2421
 
1836
2422
  .starlight-chart-tab.active {
1837
- background: rgb(0 212 255 / 15%);
1838
- color: var(--q-color-starlight-blue);
2423
+ background: rgb(0 212 255 / 15%);
2424
+ color: var(--q-color-starlight-blue);
1839
2425
  }
1840
2426
 
1841
2427
  .starlight-chart-container {
1842
- padding: 1.25rem;
2428
+ padding: 1.25rem;
1843
2429
  }
1844
2430
 
1845
2431
  /* Breadcrumb */
1846
2432
  .starlight-breadcrumb {
1847
- display: flex;
1848
- align-items: center;
1849
- gap: 0.5rem;
1850
- font-size: 0.875rem;
2433
+ display: flex;
2434
+ align-items: center;
2435
+ gap: 0.5rem;
2436
+ font-size: 0.875rem;
1851
2437
  }
1852
2438
 
1853
2439
  .starlight-breadcrumb-item {
1854
- color: rgb(255 255 255 / 60%);
1855
- text-decoration: none;
1856
- transition: color 0.2s ease;
2440
+ color: rgb(255 255 255 / 60%);
2441
+ text-decoration: none;
2442
+ transition: color 0.2s ease;
1857
2443
  }
1858
2444
 
1859
2445
  .starlight-breadcrumb-item:hover {
1860
- color: var(--q-color-starlight-blue);
2446
+ color: var(--q-color-starlight-blue);
1861
2447
  }
1862
2448
 
1863
2449
  .starlight-breadcrumb-separator {
1864
- color: rgb(255 255 255 / 40%);
2450
+ color: rgb(255 255 255 / 40%);
1865
2451
  }
1866
2452
 
1867
2453
  .starlight-breadcrumb-current {
1868
- color: inherit;
1869
- font-weight: 500;
2454
+ color: inherit;
2455
+ font-weight: 500;
1870
2456
  }
1871
2457
 
1872
2458
  /* Gallery (enhanced) */
1873
- .starlight-gallery-grid {
1874
- display: grid;
1875
- gap: 1rem;
2459
+ .gallery-grid {
2460
+ display: grid;
2461
+ gap: 1rem;
1876
2462
  }
1877
2463
 
1878
- .starlight-gallery-item {
1879
- position: relative;
1880
- aspect-ratio: 16 / 9;
1881
- border-radius: var(--q-radius-lg);
1882
- overflow: hidden;
2464
+ .gallery-item {
2465
+ position: relative;
2466
+ aspect-ratio: 16 / 9;
2467
+ border-radius: var(--q-radius-lg);
2468
+ overflow: hidden;
1883
2469
  }
1884
2470
 
1885
- .starlight-gallery-item img {
1886
- width: 100%;
1887
- height: 100%;
1888
- object-fit: cover;
1889
- transition: transform 0.5s ease;
2471
+ .gallery-item img {
2472
+ width: 100%;
2473
+ height: 100%;
2474
+ object-fit: cover;
2475
+ transition: transform 0.5s ease;
1890
2476
  }
1891
2477
 
1892
- .starlight-gallery-item:hover img {
1893
- transform: scale(1.05);
2478
+ .gallery-item:hover img {
2479
+ transform: scale(1.05);
1894
2480
  }
1895
2481
 
1896
- .starlight-gallery-overlay {
1897
- position: absolute;
1898
- inset: 0;
1899
- display: flex;
1900
- align-items: flex-end;
1901
- padding: 1rem;
1902
- background: linear-gradient(to top, rgb(0 0 0 / 80%), transparent);
1903
- opacity: 0;
1904
- transition: opacity 0.3s ease;
1905
- color: white !important;
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;
1906
2492
  }
1907
2493
 
1908
- .starlight-gallery-item:hover .starlight-gallery-overlay {
1909
- opacity: 1;
2494
+ .gallery-item:hover .gallery-overlay {
2495
+ opacity: 1;
1910
2496
  }
1911
2497
 
1912
2498
  /* Progress Bar */
1913
2499
  .starlight-progress {
1914
- display: flex;
1915
- align-items: center;
1916
- gap: 0.75rem;
2500
+ display: flex;
2501
+ align-items: center;
2502
+ gap: 0.75rem;
1917
2503
  }
1918
2504
 
1919
2505
  .starlight-progress-bar {
1920
- flex: 1;
1921
- height: 0.5rem;
1922
- background: var(--q-color-border-strong);
1923
- border-radius: 9999px;
1924
- overflow: hidden;
2506
+ flex: 1;
2507
+ height: 0.5rem;
2508
+ background: var(--q-color-border-strong);
2509
+ border-radius: 9999px;
2510
+ overflow: hidden;
1925
2511
  }
1926
2512
 
1927
2513
  .starlight-progress-fill {
1928
- height: 100%;
1929
- background: linear-gradient(90deg, var(--q-color-starlight-blue), var(--q-color-starlight-peach));
1930
- border-radius: 9999px;
1931
- transition: width 0.5s ease;
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;
1932
2522
  }
1933
2523
 
1934
2524
  .starlight-progress-value {
1935
- font-size: 0.875rem;
1936
- font-weight: 600;
1937
- min-width: 3rem;
1938
- text-align: right;
2525
+ font-size: 0.875rem;
2526
+ font-weight: 600;
2527
+ min-width: 3rem;
2528
+ text-align: right;
1939
2529
  }
1940
2530
 
1941
2531
  /* Player Controls */
1942
2532
  .starlight-player-controls {
1943
- display: flex;
1944
- align-items: center;
1945
- gap: 1rem;
2533
+ display: flex;
2534
+ align-items: center;
2535
+ gap: 1rem;
1946
2536
  }
1947
2537
 
1948
2538
  .starlight-player-btn {
1949
- display: flex;
1950
- align-items: center;
1951
- justify-content: center;
1952
- width: 2.5rem;
1953
- height: 2.5rem;
1954
- background: transparent;
1955
- border: none;
1956
- color: inherit;
1957
- cursor: pointer;
1958
- transition: all 0.2s ease;
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;
1959
2549
  }
1960
2550
 
1961
2551
  .starlight-player-btn:hover {
1962
- color: var(--q-color-starlight-blue);
1963
- transform: scale(1.1);
2552
+ color: var(--q-color-starlight-blue);
2553
+ transform: scale(1.1);
1964
2554
  }
1965
2555
 
1966
2556
  .starlight-player-btn-primary {
1967
- width: 3rem;
1968
- height: 3rem;
1969
- background: var(--q-color-starlight-blue);
1970
- border-radius: 50%;
1971
- color: #000;
2557
+ width: 3rem;
2558
+ height: 3rem;
2559
+ background: var(--q-color-starlight-blue);
2560
+ border-radius: 50%;
2561
+ color: #000;
1972
2562
  }
1973
2563
 
1974
2564
  .starlight-player-btn-primary:hover {
1975
- background: var(--q-color-starlight-peach);
2565
+ background: var(--q-color-starlight-peach);
1976
2566
  }
1977
2567
 
1978
2568
  /* Page Header */
1979
2569
  .starlight-page-header {
1980
- display: flex;
1981
- align-items: center;
1982
- justify-content: space-between;
1983
- padding: 1.5rem;
2570
+ display: flex;
2571
+ align-items: center;
2572
+ justify-content: space-between;
2573
+ padding: 1.5rem;
1984
2574
  }
1985
2575
 
1986
2576
  .starlight-page-title {
1987
- font-size: 1.875rem;
1988
- font-weight: 700;
2577
+ font-size: 1.875rem;
2578
+ font-weight: 700;
1989
2579
  }
1990
2580
 
1991
2581
  .starlight-page-subtitle {
1992
- font-size: 0.875rem;
1993
- color: rgb(255 255 255 / 60%);
1994
- margin-top: 0.25rem;
2582
+ font-size: 0.875rem;
2583
+ color: rgb(255 255 255 / 60%);
2584
+ margin-top: 0.25rem;
1995
2585
  }
1996
2586
 
1997
2587
  .starlight-page-actions {
1998
- display: flex;
1999
- align-items: center;
2000
- 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%);
2001
3421
  }