astralkit 0.3.0 → 0.3.2

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.
@@ -1,1819 +1,1819 @@
1
-
2
-
3
- /* Sidebar / Rail / Panel / Flyout / Section primitives */
4
-
5
-
6
-
7
- /* ================================================================
8
- Sidebar / Rail / Panel / Flyout primitives
9
- Width transitions, parent-state child selectors, tooltips,
10
- collapsible sections, and rail+panel interactions.
11
- ================================================================ */
12
-
13
- /* -- Data-attribute sidebar width transition -- */
14
- [data-ak-sidebar] {
15
- width: var(--width-ak-sidebar-collapsed);
16
- transition: width 240ms cubic-bezier(0.4, 0, 0.2, 1);
17
- }
18
- [data-ak-sidebar][data-expanded] {
19
- width: var(--width-ak-sidebar-expanded);
20
- align-items: stretch;
21
- }
22
-
23
- /* Expanded: nav items go full-width left-aligned */
24
- [data-expanded] .ak-nav-item {
25
- width: 100%;
26
- justify-content: flex-start;
27
- padding-left: 1rem;
28
- padding-right: 0.75rem;
29
- gap: 0.75rem;
30
- }
31
- [data-expanded] .ak-nav-item.ak-logo-item {
32
- padding-left: 0.5rem;
33
- padding-right: 0.5rem;
34
- gap: 0.5rem;
35
- }
36
-
37
- /* Nav labels: hidden collapsed, shown expanded */
38
- .ak-nav-label {
39
- display: none;
40
- font-size: 1rem;
41
- line-height: 1.5;
42
- white-space: nowrap;
43
- overflow: hidden;
44
- text-overflow: ellipsis;
45
- flex: 1;
46
- min-width: 0;
47
- text-align: left;
48
- }
49
- [data-expanded] .ak-nav-label { display: block; }
50
-
51
- /* Nav item base + active state */
52
- .ak-nav-item {
53
- display: flex;
54
- align-items: center;
55
- justify-content: center;
56
- min-height: 2.5rem;
57
- border-radius: var(--radius-ak-md);
58
- color: var(--color-ak-text-secondary);
59
- cursor: pointer;
60
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
61
- color var(--duration-ak-fast) var(--ease-ak-default);
62
- }
63
- .ak-nav-item:hover { background: var(--color-ak-hover); }
64
- .ak-nav-item-active {
65
- background: var(--color-ak-active);
66
- color: var(--color-ak-text);
67
- }
68
- .ak-nav-item-active:hover { background: var(--color-ak-active); }
69
-
70
- /* Collapse button */
71
- .ak-collapse-btn {
72
- display: flex;
73
- align-items: center;
74
- justify-content: center;
75
- border: none;
76
- background: none;
77
- cursor: pointer;
78
- color: var(--color-ak-text-muted);
79
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
80
- }
81
- .ak-collapse-btn:hover {
82
- color: var(--color-ak-text);
83
- }
84
-
85
- /* Data-attribute tooltips (CSS pseudo-elements) */
86
- [data-ak-tooltip] { position: relative; }
87
- [data-ak-tooltip]::before {
88
- content: '';
89
- position: absolute;
90
- left: 100%; top: 50%; transform: translateY(-50%);
91
- width: 0.75rem; height: 100%;
92
- pointer-events: none;
93
- }
94
- [data-ak-tooltip]::after {
95
- content: attr(data-ak-tooltip);
96
- position: absolute;
97
- left: calc(100% + 0.5rem); top: 50%;
98
- transform: translateY(-50%);
99
- background: var(--color-ak-text);
100
- color: var(--color-ak-text-inverse);
101
- font-size: var(--size-ak-icon-sm);
102
- line-height: 1.25;
103
- padding: 0.375rem 0.75rem;
104
- border-radius: var(--radius-ak-md);
105
- white-space: nowrap;
106
- pointer-events: none;
107
- opacity: 0;
108
- transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
109
- z-index: var(--z-ak-modal);
110
- }
111
- [data-ak-tooltip]:hover::after,
112
- [data-ak-tooltip]:focus-visible::after { opacity: 1; }
113
- [data-ak-tooltip]:hover::before { pointer-events: auto; }
114
- [data-expanded] [data-ak-tooltip]::after,
115
- [data-expanded] [data-ak-tooltip]::before { display: none; }
116
- @media (max-width: 767px) {
117
- [data-ak-tooltip]::before,
118
- [data-ak-tooltip]::after { display: none; }
119
- }
120
-
121
- /* Class-based tooltips (rail icons when panel is closed) */
122
- .ak-tooltip {
123
- position: absolute;
124
- left: calc(100% + 0.5rem);
125
- top: 50%;
126
- transform: translateY(-50%) translateX(-4px);
127
- background: #171717;
128
- color: #ffffff;
129
- font-size: var(--text-ak-sm);
130
- font-weight: 600;
131
- line-height: var(--leading-ak-tight);
132
- letter-spacing: var(--tracking-ak-normal);
133
- white-space: nowrap;
134
- padding: 0.375rem 0.75rem;
135
- border: 1px solid rgba(255,255,255,0.12);
136
- border-radius: var(--radius-ak-md);
137
- box-shadow: none;
138
- pointer-events: none;
139
- opacity: 0;
140
- transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1),
141
- transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
142
- z-index: var(--z-ak-modal);
143
- }
144
- [data-ak-panel-closed] .ak-rail-btn:hover .ak-tooltip,
145
- [data-ak-panel-closed] .ak-rail-btn:focus-visible .ak-tooltip {
146
- opacity: 1;
147
- transform: translateY(-50%) translateX(0);
148
- }
149
- @media (max-width: 767px) {
150
- .ak-tooltip { display: none !important; }
151
- }
152
-
153
- /* Rail button micro-interactions */
154
- .ak-rail-btn {
155
- position: relative;
156
- transition: background-color var(--duration-ak-base) var(--ease-ak-default),
157
- transform var(--duration-ak-fast) var(--ease-ak-default),
158
- box-shadow var(--duration-ak-base) var(--ease-ak-default);
159
- }
160
- .ak-rail-btn i {
161
- transition: transform var(--duration-ak-base) var(--ease-ak-default),
162
- color var(--duration-ak-base) var(--ease-ak-default);
163
- }
164
- .ak-rail-btn:hover i { transform: scale(1.1); }
165
- .ak-rail-btn:active { transform: scale(0.92); }
166
- /* hover background is set per-element via Tailwind hover:bg-ak-hover,
167
- NOT globally — active items must NOT get hover override */
168
-
169
- /* Rail layout items */
170
- .ak-rail {
171
- display: flex;
172
- flex-direction: column;
173
- align-items: center;
174
- }
175
- .ak-rail-avatar {
176
- display: flex;
177
- align-items: center;
178
- justify-content: center;
179
- border-radius: var(--radius-ak-full);
180
- cursor: pointer;
181
- transition: transform var(--duration-ak-fast) var(--ease-ak-default);
182
- }
183
- .ak-rail-avatar:hover {
184
- transform: scale(1.08);
185
- }
186
- .ak-rail-avatar:focus-visible {
187
- outline: 2px solid var(--color-ak-border-focus);
188
- outline-offset: 2px;
189
- }
190
- .ak-rail-brand {
191
- display: flex;
192
- align-items: center;
193
- justify-content: center;
194
- }
195
- .ak-rail-brand i {
196
- font-size: var(--size-ak-icon-xl);
197
- }
198
- .ak-rail-cell {
199
- display: flex;
200
- flex-direction: column;
201
- align-items: center;
202
- gap: 0.25rem;
203
- padding: 0.5rem;
204
- border-radius: var(--radius-ak-md);
205
- cursor: pointer;
206
- color: var(--color-ak-text-secondary);
207
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
208
- }
209
- .ak-rail-cell:hover { background: var(--color-ak-hover); }
210
- .ak-rail-cell-active {
211
- background: var(--color-ak-active);
212
- color: var(--color-ak-text);
213
- }
214
- .ak-rail-cell-active:hover { background: var(--color-ak-active); }
215
- .ak-rail-divider {
216
- width: 1.5rem;
217
- height: 1px;
218
- background: var(--color-ak-border);
219
- }
220
- .ak-rail-icon {
221
- display: flex;
222
- align-items: center;
223
- justify-content: center;
224
- width: 2.5rem;
225
- height: 2.5rem;
226
- border-radius: var(--radius-ak-md);
227
- cursor: pointer;
228
- color: var(--color-ak-text-secondary);
229
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
230
- color var(--duration-ak-fast) var(--ease-ak-default);
231
- }
232
- .ak-rail-icon:hover { background: var(--color-ak-hover); }
233
- .ak-rail-icon-active {
234
- background: var(--color-ak-active);
235
- color: var(--color-ak-text);
236
- }
237
- .ak-rail-icon-active:hover { background: var(--color-ak-active); }
238
- .ak-rail-item {
239
- position: relative;
240
- display: flex;
241
- align-items: center;
242
- justify-content: center;
243
- width: 2.5rem;
244
- height: 2.5rem;
245
- border-radius: var(--radius-ak-md);
246
- cursor: pointer;
247
- color: var(--color-ak-text-secondary);
248
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
249
- }
250
- .ak-rail-item:hover { background: var(--color-ak-hover); }
251
- .ak-rail-item-active {
252
- background: var(--color-ak-active);
253
- color: var(--color-ak-text);
254
- }
255
- .ak-rail-item-active:hover { background: var(--color-ak-active); }
256
- .ak-rail-item:hover .ak-tooltip,
257
- .ak-rail-item:focus-visible .ak-tooltip {
258
- opacity: 1;
259
- transform: translateY(-50%) translateX(0);
260
- }
261
- .ak-rail-label {
262
- font-size: var(--text-ak-xs);
263
- color: var(--color-ak-text-muted);
264
- white-space: nowrap;
265
- }
266
- .ak-rail-link {
267
- position: relative;
268
- display: flex;
269
- align-items: center;
270
- justify-content: center;
271
- width: 2.5rem;
272
- height: 2.5rem;
273
- border-radius: var(--radius-ak-md);
274
- color: var(--color-ak-text-secondary);
275
- cursor: pointer;
276
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
277
- color var(--duration-ak-fast) var(--ease-ak-default);
278
- }
279
- .ak-rail-link i {
280
- font-size: var(--size-ak-icon-lg);
281
- transition: transform var(--duration-ak-fast) var(--ease-ak-default);
282
- }
283
- .ak-rail-link:hover {
284
- background: var(--color-ak-hover);
285
- color: var(--color-ak-text);
286
- }
287
- .ak-rail-link:hover i { transform: scale(1.08); }
288
- .ak-rail-link:active { transform: scale(0.96); }
289
- .ak-rail-link:focus { outline: none; }
290
- .ak-rail-link:focus-visible {
291
- outline: 2px solid var(--color-ak-border-focus);
292
- outline-offset: -2px;
293
- }
294
- .ak-rail-link[aria-current="page"] {
295
- background: var(--color-ak-active);
296
- color: var(--color-ak-text);
297
- }
298
- .ak-rail-link[aria-current="page"] i { transform: scale(1.08); }
299
- .ak-rail-profile {
300
- display: flex;
301
- align-items: center;
302
- justify-content: center;
303
- }
304
- .ak-rail-profile-trigger {
305
- display: flex;
306
- align-items: center;
307
- justify-content: center;
308
- border-radius: var(--radius-ak-full);
309
- cursor: pointer;
310
- transition: transform var(--duration-ak-fast) var(--ease-ak-default);
311
- }
312
- .ak-rail-profile-trigger:hover { transform: scale(1.08); }
313
- .ak-rail-profile-trigger:focus { outline: none; }
314
- .ak-rail-profile-trigger:focus-visible {
315
- outline: 2px solid var(--color-ak-border-focus);
316
- outline-offset: 2px;
317
- }
318
- .ak-rail-spacer { flex: 1; }
319
- .ak-rail-status-dot {
320
- position: absolute;
321
- bottom: 0;
322
- right: 0;
323
- width: 8px;
324
- height: 8px;
325
- border-radius: var(--radius-ak-full);
326
- border: 2px solid var(--color-ak-bg);
327
- }
328
-
329
- /* Panel slide animation */
330
- .ak-panel-slide {
331
- width: var(--size-ak-panel-width, 260px);
332
- min-width: var(--size-ak-panel-width, 260px);
333
- opacity: 1;
334
- overflow: hidden;
335
- transition: width var(--duration-ak-slow) var(--ease-ak-default),
336
- min-width var(--duration-ak-slow) var(--ease-ak-default),
337
- opacity var(--duration-ak-base) var(--ease-ak-default),
338
- padding-left var(--duration-ak-slow) var(--ease-ak-default),
339
- padding-right var(--duration-ak-slow) var(--ease-ak-default),
340
- border-left-width var(--duration-ak-slow) var(--ease-ak-default),
341
- border-right-width var(--duration-ak-slow) var(--ease-ak-default);
342
- }
343
- .ak-panel-closed {
344
- width: 0;
345
- min-width: 0;
346
- opacity: 0;
347
- padding-left: 0;
348
- padding-right: 0;
349
- border-left-width: 0;
350
- border-right-width: 0;
351
- }
352
-
353
- /* Collapsible sections inside panel */
354
- .ak-section-content {
355
- overflow: hidden;
356
- visibility: visible;
357
- max-height: 600px;
358
- transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
359
- opacity var(--duration-ak-base) var(--ease-ak-default);
360
- opacity: 1;
361
- }
362
- .ak-section-content:not(.ak-section-collapsed) {
363
- padding-top: 0.25rem;
364
- padding-bottom: 0.25rem;
365
- }
366
- .ak-section-collapsed {
367
- max-height: 0;
368
- opacity: 0;
369
- visibility: hidden;
370
- }
371
-
372
- /* Section toggle */
373
- .ak-section-toggle {
374
- display: flex;
375
- align-items: center;
376
- justify-content: space-between;
377
- width: 100%;
378
- padding: 0.5rem 0.75rem;
379
- border: none;
380
- background: none;
381
- cursor: pointer;
382
- font-family: inherit;
383
- color: var(--color-ak-text-muted);
384
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
385
- }
386
- .ak-section-toggle:hover { color: var(--color-ak-text); }
387
- .ak-section-toggle:focus { outline: none; }
388
- .ak-section-toggle:focus-visible {
389
- outline: 2px solid var(--color-ak-border-focus);
390
- outline-offset: -2px;
391
- }
392
- .ak-section-toggle-icon {
393
- transition: transform var(--duration-ak-base) var(--ease-ak-default);
394
- }
395
- .ak-section-toggle[aria-expanded="true"] .ak-section-toggle-icon {
396
- transform: rotate(180deg);
397
- }
398
- .ak-section-toggle[aria-expanded="false"] .ak-section-toggle-icon {
399
- transform: rotate(0deg);
400
- }
401
- .ak-section-label {
402
- font-size: var(--text-ak-xs);
403
- font-weight: 600;
404
- letter-spacing: 0.05em;
405
- text-transform: uppercase;
406
- color: var(--color-ak-text-muted);
407
- }
408
-
409
- /* Panel header / actions */
410
- .ak-panel-header {
411
- display: flex;
412
- align-items: center;
413
- justify-content: space-between;
414
- }
415
- .ak-panel-action {
416
- display: flex;
417
- align-items: center;
418
- justify-content: center;
419
- width: 1.75rem;
420
- height: 1.75rem;
421
- border-radius: var(--radius-ak-md);
422
- border: none;
423
- background: none;
424
- color: var(--color-ak-text-muted);
425
- cursor: pointer;
426
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
427
- color var(--duration-ak-fast) var(--ease-ak-default);
428
- }
429
- .ak-panel-action:hover {
430
- background: var(--color-ak-hover);
431
- color: var(--color-ak-text);
432
- }
433
- .ak-panel-action:focus { outline: none; }
434
- .ak-panel-action:focus-visible {
435
- outline: 2px solid var(--color-ak-border-focus);
436
- outline-offset: 2px;
437
- }
438
- .ak-panel-divider {
439
- height: 1px;
440
- background: var(--color-ak-border);
441
- }
442
- .ak-panel-label {
443
- font-size: var(--text-ak-xs);
444
- font-weight: 600;
445
- letter-spacing: 0.05em;
446
- text-transform: uppercase;
447
- color: var(--color-ak-text-muted);
448
- }
449
-
450
- /* Flyout menu family */
451
- .ak-flyout {
452
- position: absolute;
453
- background: var(--color-ak-bg);
454
- border: 1px solid var(--color-ak-border);
455
- border-radius: var(--radius-ak-lg);
456
- box-shadow: var(--shadow-ak-lg);
457
- opacity: 0;
458
- visibility: hidden;
459
- transform: translateY(4px);
460
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
461
- transform var(--duration-ak-base) var(--ease-ak-default),
462
- visibility 0s linear var(--duration-ak-base);
463
- z-index: var(--z-ak-dropdown);
464
- }
465
- .ak-flyout.ak-open,
466
- .ak-flyout.ak-flyout-open {
467
- opacity: 1;
468
- visibility: visible;
469
- transform: translateY(0);
470
- transition-delay: 0s;
471
- }
472
- .ak-flyout-anchor { position: relative; }
473
- .ak-flyout-body {
474
- display: flex;
475
- flex-direction: column;
476
- }
477
- .ak-flyout-header {
478
- display: flex;
479
- align-items: center;
480
- gap: 0.75rem;
481
- padding: 1rem;
482
- border-bottom: 1px solid var(--color-ak-border);
483
- }
484
- .ak-flyout-header-name {
485
- font-size: var(--text-ak-sm);
486
- font-weight: 600;
487
- color: var(--color-ak-text);
488
- }
489
- .ak-flyout-header-email {
490
- font-size: var(--text-ak-xs);
491
- color: var(--color-ak-text-muted);
492
- }
493
- .ak-flyout-item {
494
- display: flex;
495
- align-items: center;
496
- gap: 0.75rem;
497
- padding: 0.5rem 1rem;
498
- min-height: 2.25rem;
499
- border: none;
500
- background: none;
501
- width: 100%;
502
- text-align: left;
503
- font-family: inherit;
504
- font-size: var(--text-ak-sm);
505
- color: var(--color-ak-text-secondary);
506
- cursor: pointer;
507
- text-decoration: none;
508
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
509
- color var(--duration-ak-fast) var(--ease-ak-default);
510
- }
511
- .ak-flyout-item i {
512
- font-size: var(--size-ak-icon-md);
513
- color: var(--color-ak-text-muted);
514
- }
515
- .ak-flyout-item:hover {
516
- background: var(--color-ak-hover);
517
- color: var(--color-ak-text);
518
- }
519
- .ak-flyout-item:focus { outline: none; }
520
- .ak-flyout-item:focus-visible {
521
- outline: 2px solid var(--color-ak-border-focus);
522
- outline-offset: -2px;
523
- }
524
- .ak-flyout-item--danger {
525
- color: var(--color-ak-danger-text);
526
- }
527
- .ak-flyout-item--danger i {
528
- color: var(--color-ak-danger-text);
529
- }
530
- .ak-flyout-item--danger:hover {
531
- background: var(--color-ak-danger-subtle);
532
- }
533
- .ak-flyout-divider {
534
- height: 1px;
535
- background: var(--color-ak-border);
536
- margin: 0.25rem 0;
537
- }
538
- .ak-flyout-separator {
539
- height: 1px;
540
- background: var(--color-ak-border);
541
- margin: 0.25rem 0;
542
- }
543
- .ak-flyout-name {
544
- font-size: var(--text-ak-sm);
545
- font-weight: 600;
546
- color: var(--color-ak-text);
547
- }
548
- .ak-flyout-email {
549
- font-size: var(--text-ak-xs);
550
- color: var(--color-ak-text-muted);
551
- }
552
- .ak-flyout-user {
553
- display: flex;
554
- align-items: center;
555
- gap: 0.75rem;
556
- padding: 0.75rem 1rem;
557
- }
558
- .ak-flyout-user-avatar {
559
- width: 2rem;
560
- height: 2rem;
561
- border-radius: var(--radius-ak-full);
562
- flex-shrink: 0;
563
- }
564
- .ak-flyout-user-name {
565
- font-size: var(--text-ak-sm);
566
- font-weight: 600;
567
- color: var(--color-ak-text);
568
- }
569
- .ak-flyout-user-email {
570
- font-size: var(--text-ak-xs);
571
- color: var(--color-ak-text-muted);
572
- }
573
- .ak-flyout-panel {
574
- position: absolute;
575
- background: var(--color-ak-bg);
576
- border: 1px solid var(--color-ak-border);
577
- border-radius: var(--radius-ak-lg);
578
- box-shadow: var(--shadow-ak-lg);
579
- opacity: 0;
580
- visibility: hidden;
581
- transform: translateY(4px);
582
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
583
- transform var(--duration-ak-base) var(--ease-ak-default),
584
- visibility 0s linear var(--duration-ak-base);
585
- z-index: var(--z-ak-dropdown);
586
- }
587
- .ak-flyout-panel.ak-open {
588
- opacity: 1;
589
- visibility: visible;
590
- transform: translateY(0);
591
- transition-delay: 0s;
592
- }
593
- .ak-flyout-rail {
594
- display: flex;
595
- flex-direction: column;
596
- align-items: center;
597
- }
598
-
599
- /* Flyout theme controls */
600
- .ak-flyout-theme {
601
- display: flex;
602
- flex-direction: column;
603
- gap: 0.5rem;
604
- padding: 0.75rem 1rem;
605
- }
606
- .ak-flyout-theme-row {
607
- display: flex;
608
- gap: 0.5rem;
609
- }
610
- .ak-flyout-theme-label {
611
- font-size: var(--text-ak-xs);
612
- color: var(--color-ak-text-muted);
613
- }
614
- .ak-flyout-theme-btn {
615
- display: flex;
616
- align-items: center;
617
- justify-content: center;
618
- width: 2rem;
619
- height: 2rem;
620
- border-radius: var(--radius-ak-md);
621
- border: 1px solid var(--color-ak-border);
622
- background: none;
623
- color: var(--color-ak-text-secondary);
624
- cursor: pointer;
625
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
626
- border-color var(--duration-ak-fast) var(--ease-ak-default);
627
- }
628
- .ak-flyout-theme-btn i {
629
- font-size: var(--size-ak-icon-sm);
630
- }
631
- .ak-flyout-theme-btn:hover {
632
- background: var(--color-ak-hover);
633
- border-color: var(--color-ak-border-strong);
634
- }
635
- .ak-flyout-theme-btn:focus { outline: none; }
636
- .ak-flyout-theme-btn:focus-visible {
637
- outline: 2px solid var(--color-ak-border-focus);
638
- outline-offset: 2px;
639
- }
640
- .ak-flyout-theme-btn[aria-pressed="true"] {
641
- background: var(--color-ak-active);
642
- border-color: var(--color-ak-text);
643
- color: var(--color-ak-text);
644
- }
645
- .ak-flyout-danger {
646
- color: var(--color-ak-danger-text);
647
- }
648
- .ak-flyout-danger i {
649
- color: var(--color-ak-danger-text);
650
- }
651
-
652
- /* ── Light rail — EXHAUSTIVE token override (blocks dark parent inheritance) ──
653
- Applied to any [data-ak-rail] that is NOT explicitly dark.
654
- These come after [data-theme="dark"] in source order, so they win. */
655
- [data-ak-rail]:not([data-ak-dark-rail]) {
656
- /* Surfaces */
657
- --color-ak-bg: #ffffff;
658
- --color-ak-surface: #fafafa;
659
- --color-ak-surface-2: #f5f5f5;
660
- --color-ak-hover: #f7f7f7;
661
- --color-ak-active: #f0f0f0;
662
- --color-ak-elevated: #171717; /* Rail-specific: dark active highlight */
663
- --color-ak-surface-raised: #ffffff;
664
- --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
665
- --color-ak-surface-glass: rgba(255,255,255,0.72);
666
- --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
667
- --color-ak-highlight-soft: rgba(255,255,255,0.45);
668
- --color-ak-highlight-strong: rgba(255,255,255,0.72);
669
- --color-ak-skeleton-base: #ededed;
670
- --color-ak-skeleton-shine: rgba(255,255,255,0.72);
671
- --color-ak-overlay: rgba(0,0,0,0.5);
672
- --color-ak-on-primary: #ffffff;
673
- --color-ak-primary-subtle: #f5f5f5;
674
- /* Text */
675
- --color-ak-text: #18181b;
676
- --color-ak-text-secondary: #52525b;
677
- --color-ak-text-muted: #a1a1aa;
678
- --color-ak-text-disabled: #d4d4d8;
679
- --color-ak-text-inverse: #fafafa;
680
- --color-ak-text-link: #09090b;
681
- --color-ak-text-placeholder: #71717a;
682
- /* Borders */
683
- --color-ak-border: #e4e4e7;
684
- --color-ak-border-subtle: #f4f4f5;
685
- --color-ak-border-strong: #d4d4d8;
686
- --color-ak-border-focus: #09090b;
687
- /* Primary */
688
- --color-ak-primary: #000000;
689
- --color-ak-primary-hover: #1a1a1a;
690
- --color-ak-primary-active: #333333;
691
- /* Status */
692
- --color-ak-success: #16a34a;
693
- --color-ak-success-subtle: #f0fdf4;
694
- --color-ak-success-text: #15803d;
695
- --color-ak-warning: #d97706;
696
- --color-ak-warning-subtle: #fffbeb;
697
- --color-ak-warning-text: #b45309;
698
- --color-ak-danger: #dc2626;
699
- --color-ak-danger-subtle: #fef2f2;
700
- --color-ak-danger-text: #b91c1c;
701
- --color-ak-info: #2563eb;
702
- --color-ak-info-subtle: #eff6ff;
703
- --color-ak-info-text: #1d4ed8;
704
- --color-ak-pink: #db2777;
705
- --color-ak-pink-subtle: #fdf2f8;
706
- /* Neutral scale */
707
- --color-ak-neutral-0: #ffffff;
708
- --color-ak-neutral-50: #fafafa;
709
- --color-ak-neutral-100: #f5f5f5;
710
- --color-ak-neutral-200: #e5e5e5;
711
- --color-ak-neutral-300: #d4d4d4;
712
- --color-ak-neutral-400: #a3a3a3;
713
- --color-ak-neutral-500: #737373;
714
- --color-ak-neutral-600: #525252;
715
- --color-ak-neutral-700: #404040;
716
- --color-ak-neutral-800: #262626;
717
- --color-ak-neutral-900: #171717;
718
- --color-ak-neutral-950: #0a0a0a;
719
- /* Primary scale */
720
- --color-ak-primary-50: #f5f5f5;
721
- --color-ak-primary-100: #e5e5e5;
722
- --color-ak-primary-200: #cccccc;
723
- --color-ak-primary-300: #a3a3a3;
724
- --color-ak-primary-400: #737373;
725
- --color-ak-primary-500: #525252;
726
- --color-ak-primary-600: #404040;
727
- --color-ak-primary-700: #333333;
728
- --color-ak-primary-800: #1a1a1a;
729
- --color-ak-primary-900: #000000;
730
- --color-ak-primary-950: #000000;
731
- /* Shadows */
732
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
733
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
734
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
735
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
736
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
737
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
738
- --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
739
- --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
740
- --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
741
- --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
742
- }
743
- [data-ak-rail]:not([data-ak-dark-rail]) .ak-on-elevated {
744
- --color-ak-text: #ffffff;
745
- --color-ak-text-secondary: #e5e5e5;
746
- }
747
-
748
- /* ── Light panel — EXHAUSTIVE token override (blocks dark parent inheritance) ── */
749
- [data-ak-panel]:not([data-ak-dark-panel]) {
750
- /* Surfaces */
751
- --color-ak-bg: #ffffff;
752
- --color-ak-surface: #fafafa;
753
- --color-ak-surface-2: #f5f5f5;
754
- --color-ak-hover: #f7f7f7;
755
- --color-ak-active: #f0f0f0;
756
- --color-ak-elevated: #f5f5f5; /* Panel-specific: subtle raised surface */
757
- --color-ak-surface-raised: #ffffff;
758
- --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
759
- --color-ak-surface-glass: rgba(255,255,255,0.72);
760
- --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
761
- --color-ak-highlight-soft: rgba(255,255,255,0.45);
762
- --color-ak-highlight-strong: rgba(255,255,255,0.72);
763
- --color-ak-skeleton-base: #ededed;
764
- --color-ak-skeleton-shine: rgba(255,255,255,0.72);
765
- --color-ak-overlay: rgba(0,0,0,0.5);
766
- --color-ak-on-primary: #ffffff;
767
- --color-ak-primary-subtle: #f5f5f5;
768
- /* Text */
769
- --color-ak-text: #18181b;
770
- --color-ak-text-secondary: #52525b;
771
- --color-ak-text-muted: #a1a1aa;
772
- --color-ak-text-disabled: #d4d4d8;
773
- --color-ak-text-inverse: #fafafa;
774
- --color-ak-text-link: #09090b;
775
- --color-ak-text-placeholder: #71717a;
776
- /* Borders */
777
- --color-ak-border: #e4e4e7;
778
- --color-ak-border-subtle: #f4f4f5;
779
- --color-ak-border-strong: #d4d4d8;
780
- --color-ak-border-focus: #09090b;
781
- /* Primary */
782
- --color-ak-primary: #000000;
783
- --color-ak-primary-hover: #1a1a1a;
784
- --color-ak-primary-active: #333333;
785
- /* Status */
786
- --color-ak-success: #16a34a;
787
- --color-ak-success-subtle: #f0fdf4;
788
- --color-ak-success-text: #15803d;
789
- --color-ak-warning: #d97706;
790
- --color-ak-warning-subtle: #fffbeb;
791
- --color-ak-warning-text: #b45309;
792
- --color-ak-danger: #dc2626;
793
- --color-ak-danger-subtle: #fef2f2;
794
- --color-ak-danger-text: #b91c1c;
795
- --color-ak-info: #2563eb;
796
- --color-ak-info-subtle: #eff6ff;
797
- --color-ak-info-text: #1d4ed8;
798
- --color-ak-pink: #db2777;
799
- --color-ak-pink-subtle: #fdf2f8;
800
- /* Neutral scale */
801
- --color-ak-neutral-0: #ffffff;
802
- --color-ak-neutral-50: #fafafa;
803
- --color-ak-neutral-100: #f5f5f5;
804
- --color-ak-neutral-200: #e5e5e5;
805
- --color-ak-neutral-300: #d4d4d4;
806
- --color-ak-neutral-400: #a3a3a3;
807
- --color-ak-neutral-500: #737373;
808
- --color-ak-neutral-600: #525252;
809
- --color-ak-neutral-700: #404040;
810
- --color-ak-neutral-800: #262626;
811
- --color-ak-neutral-900: #171717;
812
- --color-ak-neutral-950: #0a0a0a;
813
- /* Primary scale */
814
- --color-ak-primary-50: #f5f5f5;
815
- --color-ak-primary-100: #e5e5e5;
816
- --color-ak-primary-200: #cccccc;
817
- --color-ak-primary-300: #a3a3a3;
818
- --color-ak-primary-400: #737373;
819
- --color-ak-primary-500: #525252;
820
- --color-ak-primary-600: #404040;
821
- --color-ak-primary-700: #333333;
822
- --color-ak-primary-800: #1a1a1a;
823
- --color-ak-primary-900: #000000;
824
- --color-ak-primary-950: #000000;
825
- /* Shadows */
826
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
827
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
828
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
829
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
830
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
831
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
832
- --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
833
- --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
834
- --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
835
- --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
836
- }
837
- [data-ak-panel]:not([data-ak-dark-panel]) .ak-on-elevated {
838
- --color-ak-text: #18181b;
839
- --color-ak-text-secondary: #52525b;
840
- }
841
- /* ── Dark rail — EXHAUSTIVE token override (0 inheritance gaps) ── */
842
- [data-ak-dark-rail] {
843
- --color-ak-bg: #0a0a0a;
844
- --color-ak-surface: rgba(255,255,255,0.03);
845
- --color-ak-surface-2: rgba(255,255,255,0.05);
846
- --color-ak-hover: rgba(255,255,255,0.08);
847
- --color-ak-active: rgba(255,255,255,0.14);
848
- --color-ak-elevated: #ffffff;
849
- --color-ak-surface-raised: rgba(255,255,255,0.05);
850
- --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
851
- --color-ak-surface-glass: rgba(255,255,255,0.05);
852
- --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
853
- --color-ak-highlight-soft: rgba(255,255,255,0.06);
854
- --color-ak-highlight-strong: rgba(255,255,255,0.12);
855
- --color-ak-skeleton-base: rgba(255,255,255,0.05);
856
- --color-ak-skeleton-shine: rgba(255,255,255,0.08);
857
- --color-ak-overlay: rgba(0,0,0,0.7);
858
- --color-ak-on-primary: #000000;
859
- --color-ak-primary-subtle: rgba(255,255,255,0.05);
860
- --color-ak-text: #f5f5f5;
861
- --color-ak-text-secondary: #b5b5b5;
862
- --color-ak-text-muted: #737373;
863
- --color-ak-text-disabled: #525252;
864
- --color-ak-text-inverse: #0a0a0a;
865
- --color-ak-text-link: #ffffff;
866
- --color-ak-text-placeholder: #525252;
867
- --color-ak-border: rgba(255,255,255,0.08);
868
- --color-ak-border-subtle: rgba(255,255,255,0.06);
869
- --color-ak-border-strong: rgba(255,255,255,0.15);
870
- --color-ak-border-focus: #ffffff;
871
- --color-ak-primary: #ffffff;
872
- --color-ak-primary-hover: #e5e5e5;
873
- --color-ak-primary-active: #d4d4d4;
874
- --color-ak-success: #22c55e;
875
- --color-ak-success-subtle: rgba(34,197,94,0.12);
876
- --color-ak-success-text: #4ade80;
877
- --color-ak-danger: #ef4444;
878
- --color-ak-danger-subtle: rgba(239,68,68,0.12);
879
- --color-ak-danger-text: #f87171;
880
- --color-ak-info: #60a5fa;
881
- --color-ak-info-subtle: rgba(96,165,250,0.12);
882
- --color-ak-info-text: #93bbfd;
883
- --color-ak-pink: #f472b6;
884
- --color-ak-pink-subtle: rgba(244,114,182,0.12);
885
- --color-ak-warning: #f59e0b;
886
- --color-ak-warning-subtle: rgba(245,158,11,0.12);
887
- --color-ak-warning-text: #fbbf24;
888
- /* Neutral scale (inverted for dark) */
889
- --color-ak-neutral-0: #111113;
890
- --color-ak-neutral-50: #18191b;
891
- --color-ak-neutral-100: #1e1f21;
892
- --color-ak-neutral-200: #252628;
893
- --color-ak-neutral-300: #333436;
894
- --color-ak-neutral-400: #52525b;
895
- --color-ak-neutral-500: #71717a;
896
- --color-ak-neutral-600: #a1a1aa;
897
- --color-ak-neutral-700: #d4d4d8;
898
- --color-ak-neutral-800: #e4e4e7;
899
- --color-ak-neutral-900: #f4f4f5;
900
- --color-ak-neutral-950: #fafafa;
901
- /* Primary scale (dark) */
902
- --color-ak-primary-50: rgba(255,255,255,0.04);
903
- --color-ak-primary-100: rgba(255,255,255,0.06);
904
- --color-ak-primary-200: rgba(255,255,255,0.10);
905
- --color-ak-primary-300: rgba(255,255,255,0.16);
906
- --color-ak-primary-400: rgba(255,255,255,0.24);
907
- --color-ak-primary-500: #a3a3a3;
908
- --color-ak-primary-600: #d4d4d4;
909
- --color-ak-primary-700: #e5e5e5;
910
- --color-ak-primary-800: #f5f5f5;
911
- --color-ak-primary-900: #ffffff;
912
- --color-ak-primary-950: #ffffff;
913
- /* Shadows (dark) */
914
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
915
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
916
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
917
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
918
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
919
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
920
- --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
921
- --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
922
- --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
923
- --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
924
- }
925
-
926
- /* ── Dark panel — EXHAUSTIVE (Radix portals, flyouts) ── */
927
- [data-ak-dark-panel] {
928
- --color-ak-bg: #171717;
929
- --color-ak-surface: #171717;
930
- --color-ak-surface-2: #262626;
931
- --color-ak-hover: rgba(255,255,255,0.08);
932
- --color-ak-active: rgba(255,255,255,0.14);
933
- --color-ak-elevated: #ffffff;
934
- --color-ak-surface-raised: rgba(255,255,255,0.05);
935
- --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
936
- --color-ak-surface-glass: rgba(255,255,255,0.05);
937
- --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
938
- --color-ak-highlight-soft: rgba(255,255,255,0.06);
939
- --color-ak-highlight-strong: rgba(255,255,255,0.12);
940
- --color-ak-skeleton-base: rgba(255,255,255,0.05);
941
- --color-ak-skeleton-shine: rgba(255,255,255,0.08);
942
- --color-ak-overlay: rgba(0,0,0,0.7);
943
- --color-ak-on-primary: #000000;
944
- --color-ak-primary-subtle: rgba(255,255,255,0.05);
945
- --color-ak-text: #ffffff;
946
- --color-ak-text-secondary: #b0b0b0;
947
- --color-ak-text-muted: #737373;
948
- --color-ak-text-disabled: #525252;
949
- --color-ak-text-inverse: #0a0a0a;
950
- --color-ak-text-link: #ffffff;
951
- --color-ak-text-placeholder: #525252;
952
- --color-ak-border: rgba(255,255,255,0.1);
953
- --color-ak-border-subtle: rgba(255,255,255,0.06);
954
- --color-ak-border-strong: rgba(255,255,255,0.15);
955
- --color-ak-border-focus: #ffffff;
956
- --color-ak-primary: #ffffff;
957
- --color-ak-primary-hover: #e5e5e5;
958
- --color-ak-primary-active: #d4d4d4;
959
- --color-ak-success: #22c55e;
960
- --color-ak-success-subtle: rgba(34,197,94,0.12);
961
- --color-ak-success-text: #4ade80;
962
- --color-ak-danger: #ef4444;
963
- --color-ak-danger-subtle: rgba(239,68,68,0.12);
964
- --color-ak-danger-text: #f87171;
965
- --color-ak-info: #60a5fa;
966
- --color-ak-info-subtle: rgba(96,165,250,0.12);
967
- --color-ak-info-text: #93bbfd;
968
- --color-ak-pink: #f472b6;
969
- --color-ak-pink-subtle: rgba(244,114,182,0.12);
970
- --color-ak-warning: #f59e0b;
971
- --color-ak-warning-subtle: rgba(245,158,11,0.12);
972
- --color-ak-warning-text: #fbbf24;
973
- /* Neutral scale (inverted for dark) */
974
- --color-ak-neutral-0: #111113;
975
- --color-ak-neutral-50: #18191b;
976
- --color-ak-neutral-100: #1e1f21;
977
- --color-ak-neutral-200: #252628;
978
- --color-ak-neutral-300: #333436;
979
- --color-ak-neutral-400: #52525b;
980
- --color-ak-neutral-500: #71717a;
981
- --color-ak-neutral-600: #a1a1aa;
982
- --color-ak-neutral-700: #d4d4d8;
983
- --color-ak-neutral-800: #e4e4e7;
984
- --color-ak-neutral-900: #f4f4f5;
985
- --color-ak-neutral-950: #fafafa;
986
- /* Primary scale (dark) */
987
- --color-ak-primary-50: rgba(255,255,255,0.04);
988
- --color-ak-primary-100: rgba(255,255,255,0.06);
989
- --color-ak-primary-200: rgba(255,255,255,0.10);
990
- --color-ak-primary-300: rgba(255,255,255,0.16);
991
- --color-ak-primary-400: rgba(255,255,255,0.24);
992
- --color-ak-primary-500: #a3a3a3;
993
- --color-ak-primary-600: #d4d4d4;
994
- --color-ak-primary-700: #e5e5e5;
995
- --color-ak-primary-800: #f5f5f5;
996
- --color-ak-primary-900: #ffffff;
997
- --color-ak-primary-950: #ffffff;
998
- /* Shadows (dark) */
999
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
1000
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
1001
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
1002
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
1003
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
1004
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
1005
- --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
1006
- --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
1007
- --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
1008
- --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
1009
- }
1010
-
1011
- /* ── Light mobile — EXHAUSTIVE (blocks dark parent inheritance) ── */
1012
- [data-ak-mobile-sheet]:not([data-ak-dark-mobile]) {
1013
- /* Surfaces */
1014
- --color-ak-bg: #ffffff;
1015
- --color-ak-surface: #fafafa;
1016
- --color-ak-surface-2: #f5f5f5;
1017
- --color-ak-hover: #f7f7f7;
1018
- --color-ak-active: #f0f0f0;
1019
- --color-ak-elevated: #f5f5f5;
1020
- --color-ak-surface-raised: #ffffff;
1021
- --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
1022
- --color-ak-surface-glass: rgba(255,255,255,0.72);
1023
- --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
1024
- --color-ak-highlight-soft: rgba(255,255,255,0.45);
1025
- --color-ak-highlight-strong: rgba(255,255,255,0.72);
1026
- --color-ak-skeleton-base: #ededed;
1027
- --color-ak-skeleton-shine: rgba(255,255,255,0.72);
1028
- --color-ak-overlay: rgba(0,0,0,0.5);
1029
- --color-ak-on-primary: #ffffff;
1030
- --color-ak-primary-subtle: #f5f5f5;
1031
- /* Text */
1032
- --color-ak-text: #18181b;
1033
- --color-ak-text-secondary: #52525b;
1034
- --color-ak-text-muted: #a1a1aa;
1035
- --color-ak-text-disabled: #d4d4d8;
1036
- --color-ak-text-inverse: #fafafa;
1037
- --color-ak-text-link: #09090b;
1038
- --color-ak-text-placeholder: #71717a;
1039
- /* Borders */
1040
- --color-ak-border: #e4e4e7;
1041
- --color-ak-border-subtle: #f4f4f5;
1042
- --color-ak-border-strong: #d4d4d8;
1043
- --color-ak-border-focus: #09090b;
1044
- /* Primary */
1045
- --color-ak-primary: #000000;
1046
- --color-ak-primary-hover: #1a1a1a;
1047
- --color-ak-primary-active: #333333;
1048
- /* Status */
1049
- --color-ak-success: #16a34a;
1050
- --color-ak-success-subtle: #f0fdf4;
1051
- --color-ak-success-text: #15803d;
1052
- --color-ak-warning: #d97706;
1053
- --color-ak-warning-subtle: #fffbeb;
1054
- --color-ak-warning-text: #b45309;
1055
- --color-ak-danger: #dc2626;
1056
- --color-ak-danger-subtle: #fef2f2;
1057
- --color-ak-danger-text: #b91c1c;
1058
- --color-ak-info: #2563eb;
1059
- --color-ak-info-subtle: #eff6ff;
1060
- --color-ak-info-text: #1d4ed8;
1061
- --color-ak-pink: #db2777;
1062
- --color-ak-pink-subtle: #fdf2f8;
1063
- /* Neutral scale */
1064
- --color-ak-neutral-0: #ffffff;
1065
- --color-ak-neutral-50: #fafafa;
1066
- --color-ak-neutral-100: #f5f5f5;
1067
- --color-ak-neutral-200: #e5e5e5;
1068
- --color-ak-neutral-300: #d4d4d4;
1069
- --color-ak-neutral-400: #a3a3a3;
1070
- --color-ak-neutral-500: #737373;
1071
- --color-ak-neutral-600: #525252;
1072
- --color-ak-neutral-700: #404040;
1073
- --color-ak-neutral-800: #262626;
1074
- --color-ak-neutral-900: #171717;
1075
- --color-ak-neutral-950: #0a0a0a;
1076
- /* Primary scale */
1077
- --color-ak-primary-50: #f5f5f5;
1078
- --color-ak-primary-100: #e5e5e5;
1079
- --color-ak-primary-200: #cccccc;
1080
- --color-ak-primary-300: #a3a3a3;
1081
- --color-ak-primary-400: #737373;
1082
- --color-ak-primary-500: #525252;
1083
- --color-ak-primary-600: #404040;
1084
- --color-ak-primary-700: #333333;
1085
- --color-ak-primary-800: #1a1a1a;
1086
- --color-ak-primary-900: #000000;
1087
- --color-ak-primary-950: #000000;
1088
- /* Shadows */
1089
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
1090
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
1091
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
1092
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
1093
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
1094
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
1095
- --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
1096
- --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
1097
- --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
1098
- --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
1099
- }
1100
-
1101
- /* ── Dark mobile — EXHAUSTIVE (bottom sheets, overlays) ── */
1102
- [data-ak-dark-mobile] {
1103
- --color-ak-bg: #171717;
1104
- --color-ak-surface: #171717;
1105
- --color-ak-surface-2: #262626;
1106
- --color-ak-hover: rgba(255,255,255,0.08);
1107
- --color-ak-active: rgba(255,255,255,0.14);
1108
- --color-ak-elevated: #ffffff;
1109
- --color-ak-surface-raised: rgba(255,255,255,0.05);
1110
- --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
1111
- --color-ak-surface-glass: rgba(255,255,255,0.05);
1112
- --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
1113
- --color-ak-highlight-soft: rgba(255,255,255,0.06);
1114
- --color-ak-highlight-strong: rgba(255,255,255,0.12);
1115
- --color-ak-skeleton-base: rgba(255,255,255,0.05);
1116
- --color-ak-skeleton-shine: rgba(255,255,255,0.08);
1117
- --color-ak-overlay: rgba(0,0,0,0.7);
1118
- --color-ak-on-primary: #000000;
1119
- --color-ak-primary-subtle: rgba(255,255,255,0.05);
1120
- --color-ak-text: #ffffff;
1121
- --color-ak-text-secondary: #b0b0b0;
1122
- --color-ak-text-muted: #737373;
1123
- --color-ak-text-disabled: #525252;
1124
- --color-ak-text-inverse: #0a0a0a;
1125
- --color-ak-text-link: #ffffff;
1126
- --color-ak-text-placeholder: #525252;
1127
- --color-ak-border: rgba(255,255,255,0.1);
1128
- --color-ak-border-subtle: rgba(255,255,255,0.06);
1129
- --color-ak-border-strong: rgba(255,255,255,0.15);
1130
- --color-ak-border-focus: #ffffff;
1131
- --color-ak-primary: #ffffff;
1132
- --color-ak-primary-hover: #e5e5e5;
1133
- --color-ak-primary-active: #d4d4d4;
1134
- --color-ak-success: #22c55e;
1135
- --color-ak-success-subtle: rgba(34,197,94,0.12);
1136
- --color-ak-success-text: #4ade80;
1137
- --color-ak-danger: #ef4444;
1138
- --color-ak-danger-subtle: rgba(239,68,68,0.12);
1139
- --color-ak-danger-text: #f87171;
1140
- --color-ak-info: #60a5fa;
1141
- --color-ak-info-subtle: rgba(96,165,250,0.12);
1142
- --color-ak-info-text: #93bbfd;
1143
- --color-ak-pink: #f472b6;
1144
- --color-ak-pink-subtle: rgba(244,114,182,0.12);
1145
- --color-ak-warning: #f59e0b;
1146
- --color-ak-warning-subtle: rgba(245,158,11,0.12);
1147
- --color-ak-warning-text: #fbbf24;
1148
- /* Neutral scale (inverted for dark) */
1149
- --color-ak-neutral-0: #111113;
1150
- --color-ak-neutral-50: #18191b;
1151
- --color-ak-neutral-100: #1e1f21;
1152
- --color-ak-neutral-200: #252628;
1153
- --color-ak-neutral-300: #333436;
1154
- --color-ak-neutral-400: #52525b;
1155
- --color-ak-neutral-500: #71717a;
1156
- --color-ak-neutral-600: #a1a1aa;
1157
- --color-ak-neutral-700: #d4d4d8;
1158
- --color-ak-neutral-800: #e4e4e7;
1159
- --color-ak-neutral-900: #f4f4f5;
1160
- --color-ak-neutral-950: #fafafa;
1161
- /* Primary scale (dark) */
1162
- --color-ak-primary-50: rgba(255,255,255,0.04);
1163
- --color-ak-primary-100: rgba(255,255,255,0.06);
1164
- --color-ak-primary-200: rgba(255,255,255,0.10);
1165
- --color-ak-primary-300: rgba(255,255,255,0.16);
1166
- --color-ak-primary-400: rgba(255,255,255,0.24);
1167
- --color-ak-primary-500: #a3a3a3;
1168
- --color-ak-primary-600: #d4d4d4;
1169
- --color-ak-primary-700: #e5e5e5;
1170
- --color-ak-primary-800: #f5f5f5;
1171
- --color-ak-primary-900: #ffffff;
1172
- --color-ak-primary-950: #ffffff;
1173
- /* Shadows (dark) */
1174
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
1175
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
1176
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
1177
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
1178
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
1179
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
1180
- --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
1181
- --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
1182
- --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
1183
- --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
1184
- }
1185
-
1186
- /* Dark rail/panel/mobile: restore dark text on white elevated items */
1187
- [data-ak-dark-rail] .ak-on-elevated,
1188
- [data-ak-dark-panel] .ak-on-elevated,
1189
- [data-ak-dark-mobile] .ak-on-elevated {
1190
- --color-ak-text: #18181b;
1191
- --color-ak-text-secondary: #52525b;
1192
- }
1193
-
1194
- /* ── Panel count badge — primary-colored circle for nav item counts ──
1195
- Use instead of ak-badge (which is red/danger for notifications). */
1196
- .ak-panel-badge {
1197
- position: static;
1198
- display: flex;
1199
- align-items: center;
1200
- justify-content: center;
1201
- border-radius: var(--radius-ak-full);
1202
- background: var(--color-ak-primary);
1203
- color: var(--color-ak-on-primary);
1204
- font-weight: 700;
1205
- }
1206
- /* Dark contexts: white badge, dark text */
1207
- [data-ak-dark-panel] .ak-panel-badge,
1208
- [data-ak-dark-rail] .ak-panel-badge {
1209
- background: #ffffff;
1210
- color: #18181b;
1211
- }
1212
- /* Active (elevated) row in dark context: flip back */
1213
- [data-ak-dark-panel] .ak-on-elevated .ak-panel-badge,
1214
- [data-ak-dark-rail] .ak-on-elevated .ak-panel-badge {
1215
- background: #171717;
1216
- color: #ffffff;
1217
- }
1218
-
1219
- /* Sidebar component shell */
1220
- .ak-sidebar-expanded {
1221
- width: 18rem;
1222
- align-items: stretch;
1223
- }
1224
- .ak-sidebar-expanded .ak-nav-item {
1225
- width: 100%;
1226
- justify-content: flex-start;
1227
- padding-left: 1rem;
1228
- padding-right: 0.75rem;
1229
- gap: 0.75rem;
1230
- }
1231
- .ak-sidebar-expanded .ak-nav-item.ak-logo-item {
1232
- padding-left: 0.5rem;
1233
- padding-right: 0.5rem;
1234
- gap: 0.5rem;
1235
- }
1236
- .ak-sidebar-expanded .ak-nav-label { display: block; }
1237
- .ak-sidebar-expanded .ak-profile-info { display: flex; }
1238
- .ak-sidebar-expanded .ak-account-chevron { display: flex; }
1239
- .ak-sidebar-expanded .ak-collapse-icon { display: block; }
1240
- .ak-sidebar-expanded .ak-expand-icon { display: none; }
1241
- .ak-sidebar-expanded [data-ak-tooltip]::after,
1242
- .ak-sidebar-expanded [data-ak-tooltip]::before { display: none; }
1243
-
1244
- /* Account switcher: collapsed vs expanded (complex child selectors) */
1245
- [data-expanded] .ak-profile-info { display: flex; }
1246
- [data-expanded] .ak-account-chevron { display: flex; }
1247
- [data-expanded] .ak-account-trigger {
1248
- justify-content: space-between;
1249
- border: 1px solid var(--color-ak-border);
1250
- border-radius: var(--radius-ak-lg);
1251
- padding: 0.625rem 0.75rem;
1252
- gap: 0.625rem;
1253
- min-height: auto;
1254
- }
1255
- [data-expanded] .ak-account-left { gap: 0.625rem; }
1256
-
1257
- /* Dividers */
1258
- .ak-divider {
1259
- height: 1px;
1260
- background: var(--color-ak-border);
1261
- }
1262
- .ak-divider-bleed {
1263
- margin-left: -0.75rem;
1264
- margin-right: -0.75rem;
1265
- }
1266
-
1267
- /* Sub-items (sidebar tree sub-navigation) */
1268
- .ak-sub-item {
1269
- display: flex;
1270
- align-items: center;
1271
- gap: 0.5rem;
1272
- padding: 0.375rem 0.75rem;
1273
- border-radius: var(--radius-ak-md);
1274
- font-size: var(--text-ak-sm);
1275
- color: var(--color-ak-text-secondary);
1276
- cursor: pointer;
1277
- text-decoration: none;
1278
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1279
- color var(--duration-ak-fast) var(--ease-ak-default);
1280
- }
1281
- .ak-sub-item::before {
1282
- content: '';
1283
- width: 6px;
1284
- height: 6px;
1285
- border-radius: var(--radius-ak-full);
1286
- background: var(--color-ak-border);
1287
- flex-shrink: 0;
1288
- }
1289
- .ak-sub-item:hover { background: var(--color-ak-hover); }
1290
- .ak-sub-item:hover::before { background: var(--color-ak-text-muted); }
1291
- .ak-sub-item-active {
1292
- color: var(--color-ak-text);
1293
- background: var(--color-ak-active);
1294
- }
1295
- .ak-sub-item-active::before {
1296
- background: var(--color-ak-primary);
1297
- }
1298
-
1299
- /* Listing links (sidebar project/item lists) */
1300
- .ak-listing-link {
1301
- position: relative;
1302
- display: flex;
1303
- align-items: center;
1304
- gap: 0.75rem;
1305
- padding: 0.5rem 0.75rem;
1306
- border-radius: var(--radius-ak-md);
1307
- color: var(--color-ak-text-secondary);
1308
- cursor: pointer;
1309
- text-decoration: none;
1310
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1311
- color var(--duration-ak-fast) var(--ease-ak-default);
1312
- }
1313
- .ak-listing-link:hover { background: var(--color-ak-hover); }
1314
- .ak-listing-link:focus { outline: none; }
1315
- .ak-listing-link:focus-visible {
1316
- outline: 2px solid var(--color-ak-border-focus);
1317
- outline-offset: -2px;
1318
- }
1319
- .ak-listing-link[aria-current="page"] {
1320
- background: var(--color-ak-active);
1321
- color: var(--color-ak-text);
1322
- }
1323
- .ak-listing-list {
1324
- display: flex;
1325
- flex-direction: column;
1326
- gap: 0.125rem;
1327
- }
1328
-
1329
- /* Library tree / collapsible sections */
1330
- .ak-lib-panel {
1331
- overflow: hidden;
1332
- max-height: 600px;
1333
- transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
1334
- opacity var(--duration-ak-base) var(--ease-ak-default);
1335
- opacity: 1;
1336
- }
1337
- .ak-lib-panel.ak-collapsed {
1338
- max-height: 0;
1339
- opacity: 0;
1340
- }
1341
- .ak-lib-trigger {
1342
- display: flex;
1343
- align-items: center;
1344
- justify-content: space-between;
1345
- width: 100%;
1346
- padding: 0.5rem 0.75rem;
1347
- border: none;
1348
- background: none;
1349
- cursor: pointer;
1350
- font-family: inherit;
1351
- font-size: var(--text-ak-sm);
1352
- font-weight: 600;
1353
- color: var(--color-ak-text-muted);
1354
- text-transform: uppercase;
1355
- letter-spacing: 0.05em;
1356
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
1357
- }
1358
- .ak-lib-trigger:hover { color: var(--color-ak-text); }
1359
- .ak-lib-trigger:focus { outline: none; }
1360
- .ak-lib-trigger:focus-visible {
1361
- outline: 2px solid var(--color-ak-border-focus);
1362
- outline-offset: -2px;
1363
- }
1364
- .ak-lib-chevron {
1365
- transition: transform var(--duration-ak-base) var(--ease-ak-default);
1366
- }
1367
- .ak-lib-trigger[aria-expanded="false"] .ak-lib-chevron {
1368
- transform: rotate(-90deg);
1369
- }
1370
- .ak-lib-link {
1371
- display: flex;
1372
- align-items: center;
1373
- gap: 0.5rem;
1374
- padding: 0.375rem 0.75rem;
1375
- border-radius: var(--radius-ak-md);
1376
- font-size: var(--text-ak-sm);
1377
- color: var(--color-ak-text-secondary);
1378
- cursor: pointer;
1379
- text-decoration: none;
1380
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1381
- color var(--duration-ak-fast) var(--ease-ak-default);
1382
- }
1383
- .ak-lib-link:hover { background: var(--color-ak-hover); }
1384
- .ak-lib-link:focus { outline: none; }
1385
- .ak-lib-link:focus-visible {
1386
- outline: 2px solid var(--color-ak-border-focus);
1387
- outline-offset: -2px;
1388
- }
1389
- .ak-lib-link[aria-current="page"] {
1390
- background: var(--color-ak-active);
1391
- color: var(--color-ak-text);
1392
- }
1393
-
1394
- /* Pinned links */
1395
- .ak-pinned-link {
1396
- display: flex;
1397
- align-items: center;
1398
- gap: 0.75rem;
1399
- padding: 0.5rem 0.75rem;
1400
- border-radius: var(--radius-ak-md);
1401
- color: var(--color-ak-text-secondary);
1402
- cursor: pointer;
1403
- text-decoration: none;
1404
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1405
- }
1406
- .ak-pinned-link:hover { background: var(--color-ak-hover); }
1407
- .ak-pinned-link:focus { outline: none; }
1408
- .ak-pinned-link:focus-visible {
1409
- outline: 2px solid var(--color-ak-border-focus);
1410
- outline-offset: -2px;
1411
- }
1412
- .ak-pinned-link[aria-current="page"] {
1413
- background: var(--color-ak-active);
1414
- color: var(--color-ak-text);
1415
- }
1416
- .ak-pinned-dot {
1417
- width: 8px;
1418
- height: 8px;
1419
- border-radius: var(--radius-ak-full);
1420
- flex-shrink: 0;
1421
- }
1422
-
1423
- /* Logo items */
1424
- .ak-logo-wordmark {
1425
- font-size: 1.25rem;
1426
- font-weight: 700;
1427
- line-height: 1;
1428
- }
1429
-
1430
- /* Workspace / store branding */
1431
- .ak-workspace-header {
1432
- display: flex;
1433
- align-items: center;
1434
- gap: 0.75rem;
1435
- }
1436
- .ak-workspace-logo {
1437
- width: 2rem;
1438
- height: 2rem;
1439
- border-radius: var(--radius-ak-md);
1440
- display: flex;
1441
- align-items: center;
1442
- justify-content: center;
1443
- flex-shrink: 0;
1444
- }
1445
- .ak-ws-dropdown {
1446
- position: absolute;
1447
- background: var(--color-ak-bg);
1448
- border: 1px solid var(--color-ak-border);
1449
- border-radius: var(--radius-ak-lg);
1450
- box-shadow: var(--shadow-ak-lg);
1451
- opacity: 0;
1452
- visibility: hidden;
1453
- transform: translateY(4px);
1454
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
1455
- transform var(--duration-ak-base) var(--ease-ak-default),
1456
- visibility 0s linear var(--duration-ak-base);
1457
- z-index: var(--z-ak-dropdown);
1458
- }
1459
- .ak-ws-dropdown-open {
1460
- opacity: 1;
1461
- visibility: visible;
1462
- transform: translateY(0);
1463
- transition-delay: 0s;
1464
- }
1465
- .ak-ws-item {
1466
- display: flex;
1467
- align-items: center;
1468
- gap: 0.75rem;
1469
- padding: 0.625rem 0.75rem;
1470
- cursor: pointer;
1471
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1472
- }
1473
- .ak-ws-item:hover { background: var(--color-ak-hover); }
1474
- .ak-ws-item:focus { outline: none; }
1475
- .ak-ws-item:focus-visible {
1476
- outline: 2px solid var(--color-ak-border-focus);
1477
- outline-offset: -2px;
1478
- }
1479
- .ak-ws-icon {
1480
- width: 2rem;
1481
- height: 2rem;
1482
- border-radius: var(--radius-ak-md);
1483
- display: flex;
1484
- align-items: center;
1485
- justify-content: center;
1486
- flex-shrink: 0;
1487
- }
1488
-
1489
- /* Brand / store header */
1490
- .ak-brand {
1491
- display: flex;
1492
- align-items: center;
1493
- gap: 0.75rem;
1494
- }
1495
- .ak-brand-logo {
1496
- display: flex;
1497
- align-items: center;
1498
- justify-content: center;
1499
- flex-shrink: 0;
1500
- }
1501
- .ak-brand-logo i {
1502
- font-size: var(--size-ak-icon-xl);
1503
- }
1504
- .ak-brand-name {
1505
- font-size: 1.125rem;
1506
- font-weight: 700;
1507
- color: var(--color-ak-text);
1508
- }
1509
- .ak-sidebar-brand {
1510
- display: flex;
1511
- align-items: center;
1512
- gap: 0.75rem;
1513
- }
1514
- .ak-sidebar-brand-name {
1515
- font-size: 1rem;
1516
- font-weight: 700;
1517
- color: var(--color-ak-text);
1518
- }
1519
- .ak-sidebar-brand-plan {
1520
- font-size: var(--text-ak-xs);
1521
- color: var(--color-ak-text-muted);
1522
- }
1523
- .ak-sidebar-header {
1524
- display: flex;
1525
- align-items: center;
1526
- justify-content: space-between;
1527
- }
1528
- .ak-sidebar-collapse {
1529
- display: flex;
1530
- align-items: center;
1531
- justify-content: center;
1532
- width: 1.75rem;
1533
- height: 1.75rem;
1534
- border-radius: var(--radius-ak-md);
1535
- border: none;
1536
- background: none;
1537
- color: var(--color-ak-text-muted);
1538
- cursor: pointer;
1539
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1540
- color var(--duration-ak-fast) var(--ease-ak-default);
1541
- }
1542
- .ak-sidebar-collapse i {
1543
- font-size: var(--size-ak-icon-md);
1544
- transition: transform var(--duration-ak-base) var(--ease-ak-default);
1545
- }
1546
- .ak-sidebar-collapse:hover {
1547
- background: var(--color-ak-hover);
1548
- color: var(--color-ak-text);
1549
- }
1550
- .ak-sidebar-collapse:focus { outline: none; }
1551
- .ak-sidebar-collapse:focus-visible {
1552
- outline: 2px solid var(--color-ak-border-focus);
1553
- outline-offset: 2px;
1554
- }
1555
- .ak-sidebar-divider {
1556
- height: 1px;
1557
- background: var(--color-ak-border);
1558
- }
1559
- .ak-sidebar-logo {
1560
- display: flex;
1561
- align-items: center;
1562
- gap: 0.5rem;
1563
- text-decoration: none;
1564
- }
1565
- .ak-sidebar-title {
1566
- font-size: var(--text-ak-sm);
1567
- font-weight: 600;
1568
- letter-spacing: 0.05em;
1569
- text-transform: uppercase;
1570
- color: var(--color-ak-text-muted);
1571
- }
1572
- .ak-sidebar-nav {
1573
- display: flex;
1574
- flex-direction: column;
1575
- gap: 0.125rem;
1576
- }
1577
- .ak-accent-bar {
1578
- width: 3px;
1579
- border-radius: var(--radius-ak-full);
1580
- }
1581
-
1582
- /* Panel link transitions */
1583
- [data-ak-panel-link] {
1584
- transition: background-color var(--duration-ak-base) var(--ease-ak-default),
1585
- color var(--duration-ak-base) var(--ease-ak-default),
1586
- box-shadow var(--duration-ak-base) var(--ease-ak-default);
1587
- }
1588
- [data-ak-panel-link] .text-ak-base {
1589
- letter-spacing: var(--tracking-ak-normal);
1590
- line-height: var(--leading-ak-tight);
1591
- }
1592
-
1593
- /* Team switcher typography */
1594
- [data-ak-team-switcher] .text-left p:first-child,
1595
- [data-ak-team-dropdown] .text-left p:first-child {
1596
- font-size: var(--text-ak-base);
1597
- font-weight: 600;
1598
- line-height: var(--leading-ak-tight);
1599
- letter-spacing: var(--tracking-ak-normal);
1600
- }
1601
- [data-ak-team-switcher] .text-left p:last-child,
1602
- [data-ak-team-dropdown] .text-left p:last-child {
1603
- font-size: var(--text-ak-base);
1604
- line-height: var(--leading-ak-tight);
1605
- letter-spacing: var(--tracking-ak-normal);
1606
- }
1607
-
1608
-
1609
- /* ══════════════════════════════════════════════════════════
1610
- Sidebar Panel — BEM dark/light modifiers
1611
- These re-declare ALL color+shadow tokens exhaustively.
1612
- Being in @layer ak-components, they ALWAYS beat
1613
- [data-theme="dark"] in @layer ak-tokens.
1614
- No inheritance gaps — every token is explicitly set.
1615
- ══════════════════════════════════════════════════════════ */
1616
-
1617
- /* ── Sidebar panel container ── */
1618
- .ak-sidebar-panel {
1619
- width: var(--ak-sidebar-width, 18rem);
1620
- min-height: 52rem;
1621
- background: var(--color-ak-bg);
1622
- border-radius: var(--radius-ak-md);
1623
- display: flex;
1624
- flex-direction: column;
1625
- font-family: var(--font-ak-sans);
1626
- overflow: hidden;
1627
- border: 1px solid var(--color-ak-border);
1628
- }
1629
-
1630
- /* ── Force dark (BEM modifier) ──
1631
- Use: <aside class="ak-sidebar-panel ak-sidebar-panel--dark">
1632
- Ignores global theme. Component is always dark. */
1633
- .ak-sidebar-panel--dark {
1634
- /* Surfaces */
1635
- --color-ak-bg: #0a0a0a;
1636
- --color-ak-surface: rgba(255,255,255,0.03);
1637
- --color-ak-surface-2: rgba(255,255,255,0.05);
1638
- --color-ak-hover: rgba(255,255,255,0.08);
1639
- --color-ak-active: rgba(255,255,255,0.14);
1640
- --color-ak-elevated: #ffffff;
1641
- --color-ak-surface-raised: rgba(255,255,255,0.05);
1642
- --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
1643
- --color-ak-surface-glass: rgba(255,255,255,0.05);
1644
- --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
1645
- --color-ak-highlight-soft: rgba(255,255,255,0.06);
1646
- --color-ak-highlight-strong: rgba(255,255,255,0.12);
1647
- --color-ak-skeleton-base: rgba(255,255,255,0.05);
1648
- --color-ak-skeleton-shine: rgba(255,255,255,0.08);
1649
- --color-ak-overlay: rgba(0,0,0,0.7);
1650
- --color-ak-on-primary: #000000;
1651
- --color-ak-primary-subtle: rgba(255,255,255,0.05);
1652
- /* Text */
1653
- --color-ak-text: #f5f5f5;
1654
- --color-ak-text-secondary: #b5b5b5;
1655
- --color-ak-text-muted: #737373;
1656
- --color-ak-text-disabled: #525252;
1657
- --color-ak-text-inverse: #0a0a0a;
1658
- --color-ak-text-link: #ffffff;
1659
- --color-ak-text-placeholder: #71717a;
1660
- /* Borders */
1661
- --color-ak-border: rgba(255,255,255,0.08);
1662
- --color-ak-border-subtle: rgba(255,255,255,0.06);
1663
- --color-ak-border-strong: rgba(255,255,255,0.15);
1664
- --color-ak-border-focus: #ffffff;
1665
- /* Primary */
1666
- --color-ak-primary: #ffffff;
1667
- --color-ak-primary-hover: #e5e5e5;
1668
- --color-ak-primary-active: #d4d4d4;
1669
- /* Status */
1670
- --color-ak-success: #22c55e;
1671
- --color-ak-success-subtle: rgba(34,197,94,0.12);
1672
- --color-ak-success-text: #4ade80;
1673
- --color-ak-warning: #f59e0b;
1674
- --color-ak-warning-subtle: rgba(245,158,11,0.12);
1675
- --color-ak-warning-text: #fbbf24;
1676
- --color-ak-danger: #ef4444;
1677
- --color-ak-danger-subtle: rgba(239,68,68,0.12);
1678
- --color-ak-danger-text: #f87171;
1679
- --color-ak-info: #60a5fa;
1680
- --color-ak-info-subtle: rgba(96,165,250,0.12);
1681
- --color-ak-info-text: #93bbfd;
1682
- --color-ak-pink: #f472b6;
1683
- --color-ak-pink-subtle: rgba(244,114,182,0.12);
1684
- /* Neutral scale (inverted for dark) */
1685
- --color-ak-neutral-0: #111113;
1686
- --color-ak-neutral-50: #18191b;
1687
- --color-ak-neutral-100: #1e1f21;
1688
- --color-ak-neutral-200: #252628;
1689
- --color-ak-neutral-300: #333436;
1690
- --color-ak-neutral-400: #52525b;
1691
- --color-ak-neutral-500: #71717a;
1692
- --color-ak-neutral-600: #a1a1aa;
1693
- --color-ak-neutral-700: #d4d4d8;
1694
- --color-ak-neutral-800: #e4e4e7;
1695
- --color-ak-neutral-900: #f4f4f5;
1696
- --color-ak-neutral-950: #fafafa;
1697
- /* Primary scale (dark) */
1698
- --color-ak-primary-50: rgba(255,255,255,0.04);
1699
- --color-ak-primary-100: rgba(255,255,255,0.06);
1700
- --color-ak-primary-200: rgba(255,255,255,0.10);
1701
- --color-ak-primary-300: rgba(255,255,255,0.16);
1702
- --color-ak-primary-400: rgba(255,255,255,0.24);
1703
- --color-ak-primary-500: #a3a3a3;
1704
- --color-ak-primary-600: #d4d4d4;
1705
- --color-ak-primary-700: #e5e5e5;
1706
- --color-ak-primary-800: #f5f5f5;
1707
- --color-ak-primary-900: #ffffff;
1708
- --color-ak-primary-950: #ffffff;
1709
- /* Shadows */
1710
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
1711
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
1712
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
1713
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
1714
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
1715
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
1716
- --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
1717
- --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
1718
- --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
1719
- --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
1720
- /* Visual treatment */
1721
- border: none;
1722
- box-shadow: var(--shadow-ak-lg);
1723
- }
1724
-
1725
- /* ── Force light (BEM modifier) ──
1726
- Use: <aside class="ak-sidebar-panel ak-sidebar-panel--light">
1727
- Ignores global theme. Component is always light. */
1728
- .ak-sidebar-panel--light {
1729
- /* Surfaces */
1730
- --color-ak-bg: #ffffff;
1731
- --color-ak-surface: #fafafa;
1732
- --color-ak-surface-2: #f5f5f5;
1733
- --color-ak-hover: #f7f7f7;
1734
- --color-ak-active: #f0f0f0;
1735
- --color-ak-elevated: #000000;
1736
- --color-ak-surface-raised: #ffffff;
1737
- --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
1738
- --color-ak-surface-glass: rgba(255,255,255,0.72);
1739
- --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
1740
- --color-ak-highlight-soft: rgba(255,255,255,0.45);
1741
- --color-ak-highlight-strong: rgba(255,255,255,0.72);
1742
- --color-ak-skeleton-base: #ededed;
1743
- --color-ak-skeleton-shine: rgba(255,255,255,0.72);
1744
- --color-ak-overlay: rgba(0,0,0,0.5);
1745
- --color-ak-on-primary: #ffffff;
1746
- --color-ak-primary-subtle: #f5f5f5;
1747
- /* Text */
1748
- --color-ak-text: #18181b;
1749
- --color-ak-text-secondary: #52525b;
1750
- --color-ak-text-muted: #a1a1aa;
1751
- --color-ak-text-disabled: #d4d4d8;
1752
- --color-ak-text-inverse: #fafafa;
1753
- --color-ak-text-link: #09090b;
1754
- --color-ak-text-placeholder: #71717a;
1755
- /* Borders */
1756
- --color-ak-border: #e4e4e7;
1757
- --color-ak-border-subtle: #f4f4f5;
1758
- --color-ak-border-strong: #d4d4d8;
1759
- --color-ak-border-focus: #09090b;
1760
- /* Primary */
1761
- --color-ak-primary: #000000;
1762
- --color-ak-primary-hover: #1a1a1a;
1763
- --color-ak-primary-active: #333333;
1764
- /* Status */
1765
- --color-ak-success: #16a34a;
1766
- --color-ak-success-subtle: #f0fdf4;
1767
- --color-ak-success-text: #15803d;
1768
- --color-ak-warning: #d97706;
1769
- --color-ak-warning-subtle: #fffbeb;
1770
- --color-ak-warning-text: #b45309;
1771
- --color-ak-danger: #dc2626;
1772
- --color-ak-danger-subtle: #fef2f2;
1773
- --color-ak-danger-text: #b91c1c;
1774
- --color-ak-info: #2563eb;
1775
- --color-ak-info-subtle: #eff6ff;
1776
- --color-ak-info-text: #1d4ed8;
1777
- --color-ak-pink: #db2777;
1778
- --color-ak-pink-subtle: #fdf2f8;
1779
- /* Neutral scale */
1780
- --color-ak-neutral-0: #ffffff;
1781
- --color-ak-neutral-50: #fafafa;
1782
- --color-ak-neutral-100: #f5f5f5;
1783
- --color-ak-neutral-200: #e5e5e5;
1784
- --color-ak-neutral-300: #d4d4d4;
1785
- --color-ak-neutral-400: #a3a3a3;
1786
- --color-ak-neutral-500: #737373;
1787
- --color-ak-neutral-600: #525252;
1788
- --color-ak-neutral-700: #404040;
1789
- --color-ak-neutral-800: #262626;
1790
- --color-ak-neutral-900: #171717;
1791
- --color-ak-neutral-950: #0a0a0a;
1792
- /* Primary scale */
1793
- --color-ak-primary-50: #f5f5f5;
1794
- --color-ak-primary-100: #e5e5e5;
1795
- --color-ak-primary-200: #cccccc;
1796
- --color-ak-primary-300: #a3a3a3;
1797
- --color-ak-primary-400: #737373;
1798
- --color-ak-primary-500: #525252;
1799
- --color-ak-primary-600: #404040;
1800
- --color-ak-primary-700: #333333;
1801
- --color-ak-primary-800: #1a1a1a;
1802
- --color-ak-primary-900: #000000;
1803
- --color-ak-primary-950: #000000;
1804
- /* Shadows */
1805
- --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
1806
- --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
1807
- --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
1808
- --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
1809
- --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
1810
- --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
1811
- --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
1812
- --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
1813
- --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
1814
- --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
1815
- /* Visual treatment */
1816
- border: 1px solid var(--color-ak-border);
1817
- box-shadow: none;
1818
- }
1819
-
1
+
2
+
3
+ /* Sidebar / Rail / Panel / Flyout / Section primitives */
4
+
5
+
6
+
7
+ /* ================================================================
8
+ Sidebar / Rail / Panel / Flyout primitives
9
+ Width transitions, parent-state child selectors, tooltips,
10
+ collapsible sections, and rail+panel interactions.
11
+ ================================================================ */
12
+
13
+ /* -- Data-attribute sidebar width transition -- */
14
+ [data-ak-sidebar] {
15
+ width: var(--width-ak-sidebar-collapsed);
16
+ transition: width 240ms cubic-bezier(0.4, 0, 0.2, 1);
17
+ }
18
+ [data-ak-sidebar][data-expanded] {
19
+ width: var(--width-ak-sidebar-expanded);
20
+ align-items: stretch;
21
+ }
22
+
23
+ /* Expanded: nav items go full-width left-aligned */
24
+ [data-expanded] .ak-nav-item {
25
+ width: 100%;
26
+ justify-content: flex-start;
27
+ padding-left: 1rem;
28
+ padding-right: 0.75rem;
29
+ gap: 0.75rem;
30
+ }
31
+ [data-expanded] .ak-nav-item.ak-logo-item {
32
+ padding-left: 0.5rem;
33
+ padding-right: 0.5rem;
34
+ gap: 0.5rem;
35
+ }
36
+
37
+ /* Nav labels: hidden collapsed, shown expanded */
38
+ .ak-nav-label {
39
+ display: none;
40
+ font-size: 1rem;
41
+ line-height: 1.5;
42
+ white-space: nowrap;
43
+ overflow: hidden;
44
+ text-overflow: ellipsis;
45
+ flex: 1;
46
+ min-width: 0;
47
+ text-align: left;
48
+ }
49
+ [data-expanded] .ak-nav-label { display: block; }
50
+
51
+ /* Nav item base + active state */
52
+ .ak-nav-item {
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ min-height: 2.5rem;
57
+ border-radius: var(--radius-ak-md);
58
+ color: var(--color-ak-text-secondary);
59
+ cursor: pointer;
60
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
61
+ color var(--duration-ak-fast) var(--ease-ak-default);
62
+ }
63
+ .ak-nav-item:hover { background: var(--color-ak-hover); }
64
+ .ak-nav-item-active {
65
+ background: var(--color-ak-active);
66
+ color: var(--color-ak-text);
67
+ }
68
+ .ak-nav-item-active:hover { background: var(--color-ak-active); }
69
+
70
+ /* Collapse button */
71
+ .ak-collapse-btn {
72
+ display: flex;
73
+ align-items: center;
74
+ justify-content: center;
75
+ border: none;
76
+ background: none;
77
+ cursor: pointer;
78
+ color: var(--color-ak-text-muted);
79
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
80
+ }
81
+ .ak-collapse-btn:hover {
82
+ color: var(--color-ak-text);
83
+ }
84
+
85
+ /* Data-attribute tooltips (CSS pseudo-elements) */
86
+ [data-ak-tooltip] { position: relative; }
87
+ [data-ak-tooltip]::before {
88
+ content: '';
89
+ position: absolute;
90
+ left: 100%; top: 50%; transform: translateY(-50%);
91
+ width: 0.75rem; height: 100%;
92
+ pointer-events: none;
93
+ }
94
+ [data-ak-tooltip]::after {
95
+ content: attr(data-ak-tooltip);
96
+ position: absolute;
97
+ left: calc(100% + 0.5rem); top: 50%;
98
+ transform: translateY(-50%);
99
+ background: var(--color-ak-text);
100
+ color: var(--color-ak-text-inverse);
101
+ font-size: var(--size-ak-icon-sm);
102
+ line-height: 1.25;
103
+ padding: 0.375rem 0.75rem;
104
+ border-radius: var(--radius-ak-md);
105
+ white-space: nowrap;
106
+ pointer-events: none;
107
+ opacity: 0;
108
+ transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);
109
+ z-index: var(--z-ak-modal);
110
+ }
111
+ [data-ak-tooltip]:hover::after,
112
+ [data-ak-tooltip]:focus-visible::after { opacity: 1; }
113
+ [data-ak-tooltip]:hover::before { pointer-events: auto; }
114
+ [data-expanded] [data-ak-tooltip]::after,
115
+ [data-expanded] [data-ak-tooltip]::before { display: none; }
116
+ @media (max-width: 767px) {
117
+ [data-ak-tooltip]::before,
118
+ [data-ak-tooltip]::after { display: none; }
119
+ }
120
+
121
+ /* Class-based tooltips (rail icons when panel is closed) */
122
+ .ak-tooltip {
123
+ position: absolute;
124
+ left: calc(100% + 0.5rem);
125
+ top: 50%;
126
+ transform: translateY(-50%) translateX(-4px);
127
+ background: #171717;
128
+ color: #ffffff;
129
+ font-size: var(--text-ak-sm);
130
+ font-weight: 600;
131
+ line-height: var(--leading-ak-tight);
132
+ letter-spacing: var(--tracking-ak-normal);
133
+ white-space: nowrap;
134
+ padding: 0.375rem 0.75rem;
135
+ border: 1px solid rgba(255,255,255,0.12);
136
+ border-radius: var(--radius-ak-md);
137
+ box-shadow: none;
138
+ pointer-events: none;
139
+ opacity: 0;
140
+ transition: opacity 150ms cubic-bezier(0.4, 0, 0.2, 1),
141
+ transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
142
+ z-index: var(--z-ak-modal);
143
+ }
144
+ [data-ak-panel-closed] .ak-rail-btn:hover .ak-tooltip,
145
+ [data-ak-panel-closed] .ak-rail-btn:focus-visible .ak-tooltip {
146
+ opacity: 1;
147
+ transform: translateY(-50%) translateX(0);
148
+ }
149
+ @media (max-width: 767px) {
150
+ .ak-tooltip { display: none !important; }
151
+ }
152
+
153
+ /* Rail button micro-interactions */
154
+ .ak-rail-btn {
155
+ position: relative;
156
+ transition: background-color var(--duration-ak-base) var(--ease-ak-default),
157
+ transform var(--duration-ak-fast) var(--ease-ak-default),
158
+ box-shadow var(--duration-ak-base) var(--ease-ak-default);
159
+ }
160
+ .ak-rail-btn i {
161
+ transition: transform var(--duration-ak-base) var(--ease-ak-default),
162
+ color var(--duration-ak-base) var(--ease-ak-default);
163
+ }
164
+ .ak-rail-btn:hover i { transform: scale(1.1); }
165
+ .ak-rail-btn:active { transform: scale(0.92); }
166
+ /* hover background is set per-element via Tailwind hover:bg-ak-hover,
167
+ NOT globally — active items must NOT get hover override */
168
+
169
+ /* Rail layout items */
170
+ .ak-rail {
171
+ display: flex;
172
+ flex-direction: column;
173
+ align-items: center;
174
+ }
175
+ .ak-rail-avatar {
176
+ display: flex;
177
+ align-items: center;
178
+ justify-content: center;
179
+ border-radius: var(--radius-ak-full);
180
+ cursor: pointer;
181
+ transition: transform var(--duration-ak-fast) var(--ease-ak-default);
182
+ }
183
+ .ak-rail-avatar:hover {
184
+ transform: scale(1.08);
185
+ }
186
+ .ak-rail-avatar:focus-visible {
187
+ outline: 2px solid var(--color-ak-border-focus);
188
+ outline-offset: 2px;
189
+ }
190
+ .ak-rail-brand {
191
+ display: flex;
192
+ align-items: center;
193
+ justify-content: center;
194
+ }
195
+ .ak-rail-brand i {
196
+ font-size: var(--size-ak-icon-xl);
197
+ }
198
+ .ak-rail-cell {
199
+ display: flex;
200
+ flex-direction: column;
201
+ align-items: center;
202
+ gap: 0.25rem;
203
+ padding: 0.5rem;
204
+ border-radius: var(--radius-ak-md);
205
+ cursor: pointer;
206
+ color: var(--color-ak-text-secondary);
207
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
208
+ }
209
+ .ak-rail-cell:hover { background: var(--color-ak-hover); }
210
+ .ak-rail-cell-active {
211
+ background: var(--color-ak-active);
212
+ color: var(--color-ak-text);
213
+ }
214
+ .ak-rail-cell-active:hover { background: var(--color-ak-active); }
215
+ .ak-rail-divider {
216
+ width: 1.5rem;
217
+ height: 1px;
218
+ background: var(--color-ak-border);
219
+ }
220
+ .ak-rail-icon {
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: center;
224
+ width: 2.5rem;
225
+ height: 2.5rem;
226
+ border-radius: var(--radius-ak-md);
227
+ cursor: pointer;
228
+ color: var(--color-ak-text-secondary);
229
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
230
+ color var(--duration-ak-fast) var(--ease-ak-default);
231
+ }
232
+ .ak-rail-icon:hover { background: var(--color-ak-hover); }
233
+ .ak-rail-icon-active {
234
+ background: var(--color-ak-active);
235
+ color: var(--color-ak-text);
236
+ }
237
+ .ak-rail-icon-active:hover { background: var(--color-ak-active); }
238
+ .ak-rail-item {
239
+ position: relative;
240
+ display: flex;
241
+ align-items: center;
242
+ justify-content: center;
243
+ width: 2.5rem;
244
+ height: 2.5rem;
245
+ border-radius: var(--radius-ak-md);
246
+ cursor: pointer;
247
+ color: var(--color-ak-text-secondary);
248
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
249
+ }
250
+ .ak-rail-item:hover { background: var(--color-ak-hover); }
251
+ .ak-rail-item-active {
252
+ background: var(--color-ak-active);
253
+ color: var(--color-ak-text);
254
+ }
255
+ .ak-rail-item-active:hover { background: var(--color-ak-active); }
256
+ .ak-rail-item:hover .ak-tooltip,
257
+ .ak-rail-item:focus-visible .ak-tooltip {
258
+ opacity: 1;
259
+ transform: translateY(-50%) translateX(0);
260
+ }
261
+ .ak-rail-label {
262
+ font-size: var(--text-ak-xs);
263
+ color: var(--color-ak-text-muted);
264
+ white-space: nowrap;
265
+ }
266
+ .ak-rail-link {
267
+ position: relative;
268
+ display: flex;
269
+ align-items: center;
270
+ justify-content: center;
271
+ width: 2.5rem;
272
+ height: 2.5rem;
273
+ border-radius: var(--radius-ak-md);
274
+ color: var(--color-ak-text-secondary);
275
+ cursor: pointer;
276
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
277
+ color var(--duration-ak-fast) var(--ease-ak-default);
278
+ }
279
+ .ak-rail-link i {
280
+ font-size: var(--size-ak-icon-lg);
281
+ transition: transform var(--duration-ak-fast) var(--ease-ak-default);
282
+ }
283
+ .ak-rail-link:hover {
284
+ background: var(--color-ak-hover);
285
+ color: var(--color-ak-text);
286
+ }
287
+ .ak-rail-link:hover i { transform: scale(1.08); }
288
+ .ak-rail-link:active { transform: scale(0.96); }
289
+ .ak-rail-link:focus { outline: none; }
290
+ .ak-rail-link:focus-visible {
291
+ outline: 2px solid var(--color-ak-border-focus);
292
+ outline-offset: -2px;
293
+ }
294
+ .ak-rail-link[aria-current="page"] {
295
+ background: var(--color-ak-active);
296
+ color: var(--color-ak-text);
297
+ }
298
+ .ak-rail-link[aria-current="page"] i { transform: scale(1.08); }
299
+ .ak-rail-profile {
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: center;
303
+ }
304
+ .ak-rail-profile-trigger {
305
+ display: flex;
306
+ align-items: center;
307
+ justify-content: center;
308
+ border-radius: var(--radius-ak-full);
309
+ cursor: pointer;
310
+ transition: transform var(--duration-ak-fast) var(--ease-ak-default);
311
+ }
312
+ .ak-rail-profile-trigger:hover { transform: scale(1.08); }
313
+ .ak-rail-profile-trigger:focus { outline: none; }
314
+ .ak-rail-profile-trigger:focus-visible {
315
+ outline: 2px solid var(--color-ak-border-focus);
316
+ outline-offset: 2px;
317
+ }
318
+ .ak-rail-spacer { flex: 1; }
319
+ .ak-rail-status-dot {
320
+ position: absolute;
321
+ bottom: 0;
322
+ right: 0;
323
+ width: 8px;
324
+ height: 8px;
325
+ border-radius: var(--radius-ak-full);
326
+ border: 2px solid var(--color-ak-bg);
327
+ }
328
+
329
+ /* Panel slide animation */
330
+ .ak-panel-slide {
331
+ width: var(--size-ak-panel-width, 260px);
332
+ min-width: var(--size-ak-panel-width, 260px);
333
+ opacity: 1;
334
+ overflow: hidden;
335
+ transition: width var(--duration-ak-slow) var(--ease-ak-default),
336
+ min-width var(--duration-ak-slow) var(--ease-ak-default),
337
+ opacity var(--duration-ak-base) var(--ease-ak-default),
338
+ padding-left var(--duration-ak-slow) var(--ease-ak-default),
339
+ padding-right var(--duration-ak-slow) var(--ease-ak-default),
340
+ border-left-width var(--duration-ak-slow) var(--ease-ak-default),
341
+ border-right-width var(--duration-ak-slow) var(--ease-ak-default);
342
+ }
343
+ .ak-panel-closed {
344
+ width: 0;
345
+ min-width: 0;
346
+ opacity: 0;
347
+ padding-left: 0;
348
+ padding-right: 0;
349
+ border-left-width: 0;
350
+ border-right-width: 0;
351
+ }
352
+
353
+ /* Collapsible sections inside panel */
354
+ .ak-section-content {
355
+ overflow: hidden;
356
+ visibility: visible;
357
+ max-height: 600px;
358
+ transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
359
+ opacity var(--duration-ak-base) var(--ease-ak-default);
360
+ opacity: 1;
361
+ }
362
+ .ak-section-content:not(.ak-section-collapsed) {
363
+ padding-top: 0.25rem;
364
+ padding-bottom: 0.25rem;
365
+ }
366
+ .ak-section-collapsed {
367
+ max-height: 0;
368
+ opacity: 0;
369
+ visibility: hidden;
370
+ }
371
+
372
+ /* Section toggle */
373
+ .ak-section-toggle {
374
+ display: flex;
375
+ align-items: center;
376
+ justify-content: space-between;
377
+ width: 100%;
378
+ padding: 0.5rem 0.75rem;
379
+ border: none;
380
+ background: none;
381
+ cursor: pointer;
382
+ font-family: inherit;
383
+ color: var(--color-ak-text-muted);
384
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
385
+ }
386
+ .ak-section-toggle:hover { color: var(--color-ak-text); }
387
+ .ak-section-toggle:focus { outline: none; }
388
+ .ak-section-toggle:focus-visible {
389
+ outline: 2px solid var(--color-ak-border-focus);
390
+ outline-offset: -2px;
391
+ }
392
+ .ak-section-toggle-icon {
393
+ transition: transform var(--duration-ak-base) var(--ease-ak-default);
394
+ }
395
+ .ak-section-toggle[aria-expanded="true"] .ak-section-toggle-icon {
396
+ transform: rotate(180deg);
397
+ }
398
+ .ak-section-toggle[aria-expanded="false"] .ak-section-toggle-icon {
399
+ transform: rotate(0deg);
400
+ }
401
+ .ak-section-label {
402
+ font-size: var(--text-ak-xs);
403
+ font-weight: 600;
404
+ letter-spacing: 0.05em;
405
+ text-transform: uppercase;
406
+ color: var(--color-ak-text-muted);
407
+ }
408
+
409
+ /* Panel header / actions */
410
+ .ak-panel-header {
411
+ display: flex;
412
+ align-items: center;
413
+ justify-content: space-between;
414
+ }
415
+ .ak-panel-action {
416
+ display: flex;
417
+ align-items: center;
418
+ justify-content: center;
419
+ width: 1.75rem;
420
+ height: 1.75rem;
421
+ border-radius: var(--radius-ak-md);
422
+ border: none;
423
+ background: none;
424
+ color: var(--color-ak-text-muted);
425
+ cursor: pointer;
426
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
427
+ color var(--duration-ak-fast) var(--ease-ak-default);
428
+ }
429
+ .ak-panel-action:hover {
430
+ background: var(--color-ak-hover);
431
+ color: var(--color-ak-text);
432
+ }
433
+ .ak-panel-action:focus { outline: none; }
434
+ .ak-panel-action:focus-visible {
435
+ outline: 2px solid var(--color-ak-border-focus);
436
+ outline-offset: 2px;
437
+ }
438
+ .ak-panel-divider {
439
+ height: 1px;
440
+ background: var(--color-ak-border);
441
+ }
442
+ .ak-panel-label {
443
+ font-size: var(--text-ak-xs);
444
+ font-weight: 600;
445
+ letter-spacing: 0.05em;
446
+ text-transform: uppercase;
447
+ color: var(--color-ak-text-muted);
448
+ }
449
+
450
+ /* Flyout menu family */
451
+ .ak-flyout {
452
+ position: absolute;
453
+ background: var(--color-ak-bg);
454
+ border: 1px solid var(--color-ak-border);
455
+ border-radius: var(--radius-ak-lg);
456
+ box-shadow: var(--shadow-ak-lg);
457
+ opacity: 0;
458
+ visibility: hidden;
459
+ transform: translateY(4px);
460
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
461
+ transform var(--duration-ak-base) var(--ease-ak-default),
462
+ visibility 0s linear var(--duration-ak-base);
463
+ z-index: var(--z-ak-dropdown);
464
+ }
465
+ .ak-flyout.ak-open,
466
+ .ak-flyout.ak-flyout-open {
467
+ opacity: 1;
468
+ visibility: visible;
469
+ transform: translateY(0);
470
+ transition-delay: 0s;
471
+ }
472
+ .ak-flyout-anchor { position: relative; }
473
+ .ak-flyout-body {
474
+ display: flex;
475
+ flex-direction: column;
476
+ }
477
+ .ak-flyout-header {
478
+ display: flex;
479
+ align-items: center;
480
+ gap: 0.75rem;
481
+ padding: 1rem;
482
+ border-bottom: 1px solid var(--color-ak-border);
483
+ }
484
+ .ak-flyout-header-name {
485
+ font-size: var(--text-ak-sm);
486
+ font-weight: 600;
487
+ color: var(--color-ak-text);
488
+ }
489
+ .ak-flyout-header-email {
490
+ font-size: var(--text-ak-xs);
491
+ color: var(--color-ak-text-muted);
492
+ }
493
+ .ak-flyout-item {
494
+ display: flex;
495
+ align-items: center;
496
+ gap: 0.75rem;
497
+ padding: 0.5rem 1rem;
498
+ min-height: 2.25rem;
499
+ border: none;
500
+ background: none;
501
+ width: 100%;
502
+ text-align: left;
503
+ font-family: inherit;
504
+ font-size: var(--text-ak-sm);
505
+ color: var(--color-ak-text-secondary);
506
+ cursor: pointer;
507
+ text-decoration: none;
508
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
509
+ color var(--duration-ak-fast) var(--ease-ak-default);
510
+ }
511
+ .ak-flyout-item i {
512
+ font-size: var(--size-ak-icon-md);
513
+ color: var(--color-ak-text-muted);
514
+ }
515
+ .ak-flyout-item:hover {
516
+ background: var(--color-ak-hover);
517
+ color: var(--color-ak-text);
518
+ }
519
+ .ak-flyout-item:focus { outline: none; }
520
+ .ak-flyout-item:focus-visible {
521
+ outline: 2px solid var(--color-ak-border-focus);
522
+ outline-offset: -2px;
523
+ }
524
+ .ak-flyout-item--danger {
525
+ color: var(--color-ak-danger-text);
526
+ }
527
+ .ak-flyout-item--danger i {
528
+ color: var(--color-ak-danger-text);
529
+ }
530
+ .ak-flyout-item--danger:hover {
531
+ background: var(--color-ak-danger-subtle);
532
+ }
533
+ .ak-flyout-divider {
534
+ height: 1px;
535
+ background: var(--color-ak-border);
536
+ margin: 0.25rem 0;
537
+ }
538
+ .ak-flyout-separator {
539
+ height: 1px;
540
+ background: var(--color-ak-border);
541
+ margin: 0.25rem 0;
542
+ }
543
+ .ak-flyout-name {
544
+ font-size: var(--text-ak-sm);
545
+ font-weight: 600;
546
+ color: var(--color-ak-text);
547
+ }
548
+ .ak-flyout-email {
549
+ font-size: var(--text-ak-xs);
550
+ color: var(--color-ak-text-muted);
551
+ }
552
+ .ak-flyout-user {
553
+ display: flex;
554
+ align-items: center;
555
+ gap: 0.75rem;
556
+ padding: 0.75rem 1rem;
557
+ }
558
+ .ak-flyout-user-avatar {
559
+ width: 2rem;
560
+ height: 2rem;
561
+ border-radius: var(--radius-ak-full);
562
+ flex-shrink: 0;
563
+ }
564
+ .ak-flyout-user-name {
565
+ font-size: var(--text-ak-sm);
566
+ font-weight: 600;
567
+ color: var(--color-ak-text);
568
+ }
569
+ .ak-flyout-user-email {
570
+ font-size: var(--text-ak-xs);
571
+ color: var(--color-ak-text-muted);
572
+ }
573
+ .ak-flyout-panel {
574
+ position: absolute;
575
+ background: var(--color-ak-bg);
576
+ border: 1px solid var(--color-ak-border);
577
+ border-radius: var(--radius-ak-lg);
578
+ box-shadow: var(--shadow-ak-lg);
579
+ opacity: 0;
580
+ visibility: hidden;
581
+ transform: translateY(4px);
582
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
583
+ transform var(--duration-ak-base) var(--ease-ak-default),
584
+ visibility 0s linear var(--duration-ak-base);
585
+ z-index: var(--z-ak-dropdown);
586
+ }
587
+ .ak-flyout-panel.ak-open {
588
+ opacity: 1;
589
+ visibility: visible;
590
+ transform: translateY(0);
591
+ transition-delay: 0s;
592
+ }
593
+ .ak-flyout-rail {
594
+ display: flex;
595
+ flex-direction: column;
596
+ align-items: center;
597
+ }
598
+
599
+ /* Flyout theme controls */
600
+ .ak-flyout-theme {
601
+ display: flex;
602
+ flex-direction: column;
603
+ gap: 0.5rem;
604
+ padding: 0.75rem 1rem;
605
+ }
606
+ .ak-flyout-theme-row {
607
+ display: flex;
608
+ gap: 0.5rem;
609
+ }
610
+ .ak-flyout-theme-label {
611
+ font-size: var(--text-ak-xs);
612
+ color: var(--color-ak-text-muted);
613
+ }
614
+ .ak-flyout-theme-btn {
615
+ display: flex;
616
+ align-items: center;
617
+ justify-content: center;
618
+ width: 2rem;
619
+ height: 2rem;
620
+ border-radius: var(--radius-ak-md);
621
+ border: 1px solid var(--color-ak-border);
622
+ background: none;
623
+ color: var(--color-ak-text-secondary);
624
+ cursor: pointer;
625
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
626
+ border-color var(--duration-ak-fast) var(--ease-ak-default);
627
+ }
628
+ .ak-flyout-theme-btn i {
629
+ font-size: var(--size-ak-icon-sm);
630
+ }
631
+ .ak-flyout-theme-btn:hover {
632
+ background: var(--color-ak-hover);
633
+ border-color: var(--color-ak-border-strong);
634
+ }
635
+ .ak-flyout-theme-btn:focus { outline: none; }
636
+ .ak-flyout-theme-btn:focus-visible {
637
+ outline: 2px solid var(--color-ak-border-focus);
638
+ outline-offset: 2px;
639
+ }
640
+ .ak-flyout-theme-btn[aria-pressed="true"] {
641
+ background: var(--color-ak-active);
642
+ border-color: var(--color-ak-text);
643
+ color: var(--color-ak-text);
644
+ }
645
+ .ak-flyout-danger {
646
+ color: var(--color-ak-danger-text);
647
+ }
648
+ .ak-flyout-danger i {
649
+ color: var(--color-ak-danger-text);
650
+ }
651
+
652
+ /* ── Light rail — EXHAUSTIVE token override (blocks dark parent inheritance) ──
653
+ Applied to any [data-ak-rail] that is NOT explicitly dark.
654
+ These come after [data-theme="dark"] in source order, so they win. */
655
+ [data-ak-rail]:not([data-ak-dark-rail]) {
656
+ /* Surfaces */
657
+ --color-ak-bg: #ffffff;
658
+ --color-ak-surface: #fafafa;
659
+ --color-ak-surface-2: #f5f5f5;
660
+ --color-ak-hover: #f7f7f7;
661
+ --color-ak-active: #f0f0f0;
662
+ --color-ak-elevated: #171717; /* Rail-specific: dark active highlight */
663
+ --color-ak-surface-raised: #ffffff;
664
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
665
+ --color-ak-surface-glass: rgba(255,255,255,0.72);
666
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
667
+ --color-ak-highlight-soft: rgba(255,255,255,0.45);
668
+ --color-ak-highlight-strong: rgba(255,255,255,0.72);
669
+ --color-ak-skeleton-base: #ededed;
670
+ --color-ak-skeleton-shine: rgba(255,255,255,0.72);
671
+ --color-ak-overlay: rgba(0,0,0,0.5);
672
+ --color-ak-on-primary: #ffffff;
673
+ --color-ak-primary-subtle: #f5f5f5;
674
+ /* Text */
675
+ --color-ak-text: #18181b;
676
+ --color-ak-text-secondary: #52525b;
677
+ --color-ak-text-muted: #a1a1aa;
678
+ --color-ak-text-disabled: #d4d4d8;
679
+ --color-ak-text-inverse: #fafafa;
680
+ --color-ak-text-link: #09090b;
681
+ --color-ak-text-placeholder: #71717a;
682
+ /* Borders */
683
+ --color-ak-border: #e4e4e7;
684
+ --color-ak-border-subtle: #f4f4f5;
685
+ --color-ak-border-strong: #d4d4d8;
686
+ --color-ak-border-focus: #09090b;
687
+ /* Primary */
688
+ --color-ak-primary: #000000;
689
+ --color-ak-primary-hover: #1a1a1a;
690
+ --color-ak-primary-active: #333333;
691
+ /* Status */
692
+ --color-ak-success: #16a34a;
693
+ --color-ak-success-subtle: #f0fdf4;
694
+ --color-ak-success-text: #15803d;
695
+ --color-ak-warning: #d97706;
696
+ --color-ak-warning-subtle: #fffbeb;
697
+ --color-ak-warning-text: #b45309;
698
+ --color-ak-danger: #dc2626;
699
+ --color-ak-danger-subtle: #fef2f2;
700
+ --color-ak-danger-text: #b91c1c;
701
+ --color-ak-info: #2563eb;
702
+ --color-ak-info-subtle: #eff6ff;
703
+ --color-ak-info-text: #1d4ed8;
704
+ --color-ak-pink: #db2777;
705
+ --color-ak-pink-subtle: #fdf2f8;
706
+ /* Neutral scale */
707
+ --color-ak-neutral-0: #ffffff;
708
+ --color-ak-neutral-50: #fafafa;
709
+ --color-ak-neutral-100: #f5f5f5;
710
+ --color-ak-neutral-200: #e5e5e5;
711
+ --color-ak-neutral-300: #d4d4d4;
712
+ --color-ak-neutral-400: #a3a3a3;
713
+ --color-ak-neutral-500: #737373;
714
+ --color-ak-neutral-600: #525252;
715
+ --color-ak-neutral-700: #404040;
716
+ --color-ak-neutral-800: #262626;
717
+ --color-ak-neutral-900: #171717;
718
+ --color-ak-neutral-950: #0a0a0a;
719
+ /* Primary scale */
720
+ --color-ak-primary-50: #f5f5f5;
721
+ --color-ak-primary-100: #e5e5e5;
722
+ --color-ak-primary-200: #cccccc;
723
+ --color-ak-primary-300: #a3a3a3;
724
+ --color-ak-primary-400: #737373;
725
+ --color-ak-primary-500: #525252;
726
+ --color-ak-primary-600: #404040;
727
+ --color-ak-primary-700: #333333;
728
+ --color-ak-primary-800: #1a1a1a;
729
+ --color-ak-primary-900: #000000;
730
+ --color-ak-primary-950: #000000;
731
+ /* Shadows */
732
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
733
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
734
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
735
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
736
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
737
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
738
+ --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
739
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
740
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
741
+ --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
742
+ }
743
+ [data-ak-rail]:not([data-ak-dark-rail]) .ak-on-elevated {
744
+ --color-ak-text: #ffffff;
745
+ --color-ak-text-secondary: #e5e5e5;
746
+ }
747
+
748
+ /* ── Light panel — EXHAUSTIVE token override (blocks dark parent inheritance) ── */
749
+ [data-ak-panel]:not([data-ak-dark-panel]) {
750
+ /* Surfaces */
751
+ --color-ak-bg: #ffffff;
752
+ --color-ak-surface: #fafafa;
753
+ --color-ak-surface-2: #f5f5f5;
754
+ --color-ak-hover: #f7f7f7;
755
+ --color-ak-active: #f0f0f0;
756
+ --color-ak-elevated: #f5f5f5; /* Panel-specific: subtle raised surface */
757
+ --color-ak-surface-raised: #ffffff;
758
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
759
+ --color-ak-surface-glass: rgba(255,255,255,0.72);
760
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
761
+ --color-ak-highlight-soft: rgba(255,255,255,0.45);
762
+ --color-ak-highlight-strong: rgba(255,255,255,0.72);
763
+ --color-ak-skeleton-base: #ededed;
764
+ --color-ak-skeleton-shine: rgba(255,255,255,0.72);
765
+ --color-ak-overlay: rgba(0,0,0,0.5);
766
+ --color-ak-on-primary: #ffffff;
767
+ --color-ak-primary-subtle: #f5f5f5;
768
+ /* Text */
769
+ --color-ak-text: #18181b;
770
+ --color-ak-text-secondary: #52525b;
771
+ --color-ak-text-muted: #a1a1aa;
772
+ --color-ak-text-disabled: #d4d4d8;
773
+ --color-ak-text-inverse: #fafafa;
774
+ --color-ak-text-link: #09090b;
775
+ --color-ak-text-placeholder: #71717a;
776
+ /* Borders */
777
+ --color-ak-border: #e4e4e7;
778
+ --color-ak-border-subtle: #f4f4f5;
779
+ --color-ak-border-strong: #d4d4d8;
780
+ --color-ak-border-focus: #09090b;
781
+ /* Primary */
782
+ --color-ak-primary: #000000;
783
+ --color-ak-primary-hover: #1a1a1a;
784
+ --color-ak-primary-active: #333333;
785
+ /* Status */
786
+ --color-ak-success: #16a34a;
787
+ --color-ak-success-subtle: #f0fdf4;
788
+ --color-ak-success-text: #15803d;
789
+ --color-ak-warning: #d97706;
790
+ --color-ak-warning-subtle: #fffbeb;
791
+ --color-ak-warning-text: #b45309;
792
+ --color-ak-danger: #dc2626;
793
+ --color-ak-danger-subtle: #fef2f2;
794
+ --color-ak-danger-text: #b91c1c;
795
+ --color-ak-info: #2563eb;
796
+ --color-ak-info-subtle: #eff6ff;
797
+ --color-ak-info-text: #1d4ed8;
798
+ --color-ak-pink: #db2777;
799
+ --color-ak-pink-subtle: #fdf2f8;
800
+ /* Neutral scale */
801
+ --color-ak-neutral-0: #ffffff;
802
+ --color-ak-neutral-50: #fafafa;
803
+ --color-ak-neutral-100: #f5f5f5;
804
+ --color-ak-neutral-200: #e5e5e5;
805
+ --color-ak-neutral-300: #d4d4d4;
806
+ --color-ak-neutral-400: #a3a3a3;
807
+ --color-ak-neutral-500: #737373;
808
+ --color-ak-neutral-600: #525252;
809
+ --color-ak-neutral-700: #404040;
810
+ --color-ak-neutral-800: #262626;
811
+ --color-ak-neutral-900: #171717;
812
+ --color-ak-neutral-950: #0a0a0a;
813
+ /* Primary scale */
814
+ --color-ak-primary-50: #f5f5f5;
815
+ --color-ak-primary-100: #e5e5e5;
816
+ --color-ak-primary-200: #cccccc;
817
+ --color-ak-primary-300: #a3a3a3;
818
+ --color-ak-primary-400: #737373;
819
+ --color-ak-primary-500: #525252;
820
+ --color-ak-primary-600: #404040;
821
+ --color-ak-primary-700: #333333;
822
+ --color-ak-primary-800: #1a1a1a;
823
+ --color-ak-primary-900: #000000;
824
+ --color-ak-primary-950: #000000;
825
+ /* Shadows */
826
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
827
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
828
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
829
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
830
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
831
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
832
+ --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
833
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
834
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
835
+ --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
836
+ }
837
+ [data-ak-panel]:not([data-ak-dark-panel]) .ak-on-elevated {
838
+ --color-ak-text: #18181b;
839
+ --color-ak-text-secondary: #52525b;
840
+ }
841
+ /* ── Dark rail — EXHAUSTIVE token override (0 inheritance gaps) ── */
842
+ [data-ak-dark-rail] {
843
+ --color-ak-bg: #0a0a0a;
844
+ --color-ak-surface: rgba(255,255,255,0.03);
845
+ --color-ak-surface-2: rgba(255,255,255,0.05);
846
+ --color-ak-hover: rgba(255,255,255,0.08);
847
+ --color-ak-active: rgba(255,255,255,0.14);
848
+ --color-ak-elevated: #ffffff;
849
+ --color-ak-surface-raised: rgba(255,255,255,0.05);
850
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
851
+ --color-ak-surface-glass: rgba(255,255,255,0.05);
852
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
853
+ --color-ak-highlight-soft: rgba(255,255,255,0.06);
854
+ --color-ak-highlight-strong: rgba(255,255,255,0.12);
855
+ --color-ak-skeleton-base: rgba(255,255,255,0.05);
856
+ --color-ak-skeleton-shine: rgba(255,255,255,0.08);
857
+ --color-ak-overlay: rgba(0,0,0,0.7);
858
+ --color-ak-on-primary: #000000;
859
+ --color-ak-primary-subtle: rgba(255,255,255,0.05);
860
+ --color-ak-text: #f5f5f5;
861
+ --color-ak-text-secondary: #b5b5b5;
862
+ --color-ak-text-muted: #737373;
863
+ --color-ak-text-disabled: #525252;
864
+ --color-ak-text-inverse: #0a0a0a;
865
+ --color-ak-text-link: #ffffff;
866
+ --color-ak-text-placeholder: #525252;
867
+ --color-ak-border: rgba(255,255,255,0.08);
868
+ --color-ak-border-subtle: rgba(255,255,255,0.06);
869
+ --color-ak-border-strong: rgba(255,255,255,0.15);
870
+ --color-ak-border-focus: #ffffff;
871
+ --color-ak-primary: #ffffff;
872
+ --color-ak-primary-hover: #e5e5e5;
873
+ --color-ak-primary-active: #d4d4d4;
874
+ --color-ak-success: #22c55e;
875
+ --color-ak-success-subtle: rgba(34,197,94,0.12);
876
+ --color-ak-success-text: #4ade80;
877
+ --color-ak-danger: #ef4444;
878
+ --color-ak-danger-subtle: rgba(239,68,68,0.12);
879
+ --color-ak-danger-text: #f87171;
880
+ --color-ak-info: #60a5fa;
881
+ --color-ak-info-subtle: rgba(96,165,250,0.12);
882
+ --color-ak-info-text: #93bbfd;
883
+ --color-ak-pink: #f472b6;
884
+ --color-ak-pink-subtle: rgba(244,114,182,0.12);
885
+ --color-ak-warning: #f59e0b;
886
+ --color-ak-warning-subtle: rgba(245,158,11,0.12);
887
+ --color-ak-warning-text: #fbbf24;
888
+ /* Neutral scale (inverted for dark) */
889
+ --color-ak-neutral-0: #111113;
890
+ --color-ak-neutral-50: #18191b;
891
+ --color-ak-neutral-100: #1e1f21;
892
+ --color-ak-neutral-200: #252628;
893
+ --color-ak-neutral-300: #333436;
894
+ --color-ak-neutral-400: #52525b;
895
+ --color-ak-neutral-500: #71717a;
896
+ --color-ak-neutral-600: #a1a1aa;
897
+ --color-ak-neutral-700: #d4d4d8;
898
+ --color-ak-neutral-800: #e4e4e7;
899
+ --color-ak-neutral-900: #f4f4f5;
900
+ --color-ak-neutral-950: #fafafa;
901
+ /* Primary scale (dark) */
902
+ --color-ak-primary-50: rgba(255,255,255,0.04);
903
+ --color-ak-primary-100: rgba(255,255,255,0.06);
904
+ --color-ak-primary-200: rgba(255,255,255,0.10);
905
+ --color-ak-primary-300: rgba(255,255,255,0.16);
906
+ --color-ak-primary-400: rgba(255,255,255,0.24);
907
+ --color-ak-primary-500: #a3a3a3;
908
+ --color-ak-primary-600: #d4d4d4;
909
+ --color-ak-primary-700: #e5e5e5;
910
+ --color-ak-primary-800: #f5f5f5;
911
+ --color-ak-primary-900: #ffffff;
912
+ --color-ak-primary-950: #ffffff;
913
+ /* Shadows (dark) */
914
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
915
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
916
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
917
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
918
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
919
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
920
+ --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
921
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
922
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
923
+ --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
924
+ }
925
+
926
+ /* ── Dark panel — EXHAUSTIVE (Radix portals, flyouts) ── */
927
+ [data-ak-dark-panel] {
928
+ --color-ak-bg: #171717;
929
+ --color-ak-surface: #171717;
930
+ --color-ak-surface-2: #262626;
931
+ --color-ak-hover: rgba(255,255,255,0.08);
932
+ --color-ak-active: rgba(255,255,255,0.14);
933
+ --color-ak-elevated: #ffffff;
934
+ --color-ak-surface-raised: rgba(255,255,255,0.05);
935
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
936
+ --color-ak-surface-glass: rgba(255,255,255,0.05);
937
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
938
+ --color-ak-highlight-soft: rgba(255,255,255,0.06);
939
+ --color-ak-highlight-strong: rgba(255,255,255,0.12);
940
+ --color-ak-skeleton-base: rgba(255,255,255,0.05);
941
+ --color-ak-skeleton-shine: rgba(255,255,255,0.08);
942
+ --color-ak-overlay: rgba(0,0,0,0.7);
943
+ --color-ak-on-primary: #000000;
944
+ --color-ak-primary-subtle: rgba(255,255,255,0.05);
945
+ --color-ak-text: #ffffff;
946
+ --color-ak-text-secondary: #b0b0b0;
947
+ --color-ak-text-muted: #737373;
948
+ --color-ak-text-disabled: #525252;
949
+ --color-ak-text-inverse: #0a0a0a;
950
+ --color-ak-text-link: #ffffff;
951
+ --color-ak-text-placeholder: #525252;
952
+ --color-ak-border: rgba(255,255,255,0.1);
953
+ --color-ak-border-subtle: rgba(255,255,255,0.06);
954
+ --color-ak-border-strong: rgba(255,255,255,0.15);
955
+ --color-ak-border-focus: #ffffff;
956
+ --color-ak-primary: #ffffff;
957
+ --color-ak-primary-hover: #e5e5e5;
958
+ --color-ak-primary-active: #d4d4d4;
959
+ --color-ak-success: #22c55e;
960
+ --color-ak-success-subtle: rgba(34,197,94,0.12);
961
+ --color-ak-success-text: #4ade80;
962
+ --color-ak-danger: #ef4444;
963
+ --color-ak-danger-subtle: rgba(239,68,68,0.12);
964
+ --color-ak-danger-text: #f87171;
965
+ --color-ak-info: #60a5fa;
966
+ --color-ak-info-subtle: rgba(96,165,250,0.12);
967
+ --color-ak-info-text: #93bbfd;
968
+ --color-ak-pink: #f472b6;
969
+ --color-ak-pink-subtle: rgba(244,114,182,0.12);
970
+ --color-ak-warning: #f59e0b;
971
+ --color-ak-warning-subtle: rgba(245,158,11,0.12);
972
+ --color-ak-warning-text: #fbbf24;
973
+ /* Neutral scale (inverted for dark) */
974
+ --color-ak-neutral-0: #111113;
975
+ --color-ak-neutral-50: #18191b;
976
+ --color-ak-neutral-100: #1e1f21;
977
+ --color-ak-neutral-200: #252628;
978
+ --color-ak-neutral-300: #333436;
979
+ --color-ak-neutral-400: #52525b;
980
+ --color-ak-neutral-500: #71717a;
981
+ --color-ak-neutral-600: #a1a1aa;
982
+ --color-ak-neutral-700: #d4d4d8;
983
+ --color-ak-neutral-800: #e4e4e7;
984
+ --color-ak-neutral-900: #f4f4f5;
985
+ --color-ak-neutral-950: #fafafa;
986
+ /* Primary scale (dark) */
987
+ --color-ak-primary-50: rgba(255,255,255,0.04);
988
+ --color-ak-primary-100: rgba(255,255,255,0.06);
989
+ --color-ak-primary-200: rgba(255,255,255,0.10);
990
+ --color-ak-primary-300: rgba(255,255,255,0.16);
991
+ --color-ak-primary-400: rgba(255,255,255,0.24);
992
+ --color-ak-primary-500: #a3a3a3;
993
+ --color-ak-primary-600: #d4d4d4;
994
+ --color-ak-primary-700: #e5e5e5;
995
+ --color-ak-primary-800: #f5f5f5;
996
+ --color-ak-primary-900: #ffffff;
997
+ --color-ak-primary-950: #ffffff;
998
+ /* Shadows (dark) */
999
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
1000
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
1001
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
1002
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
1003
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
1004
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
1005
+ --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
1006
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
1007
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
1008
+ --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
1009
+ }
1010
+
1011
+ /* ── Light mobile — EXHAUSTIVE (blocks dark parent inheritance) ── */
1012
+ [data-ak-mobile-sheet]:not([data-ak-dark-mobile]) {
1013
+ /* Surfaces */
1014
+ --color-ak-bg: #ffffff;
1015
+ --color-ak-surface: #fafafa;
1016
+ --color-ak-surface-2: #f5f5f5;
1017
+ --color-ak-hover: #f7f7f7;
1018
+ --color-ak-active: #f0f0f0;
1019
+ --color-ak-elevated: #f5f5f5;
1020
+ --color-ak-surface-raised: #ffffff;
1021
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
1022
+ --color-ak-surface-glass: rgba(255,255,255,0.72);
1023
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
1024
+ --color-ak-highlight-soft: rgba(255,255,255,0.45);
1025
+ --color-ak-highlight-strong: rgba(255,255,255,0.72);
1026
+ --color-ak-skeleton-base: #ededed;
1027
+ --color-ak-skeleton-shine: rgba(255,255,255,0.72);
1028
+ --color-ak-overlay: rgba(0,0,0,0.5);
1029
+ --color-ak-on-primary: #ffffff;
1030
+ --color-ak-primary-subtle: #f5f5f5;
1031
+ /* Text */
1032
+ --color-ak-text: #18181b;
1033
+ --color-ak-text-secondary: #52525b;
1034
+ --color-ak-text-muted: #a1a1aa;
1035
+ --color-ak-text-disabled: #d4d4d8;
1036
+ --color-ak-text-inverse: #fafafa;
1037
+ --color-ak-text-link: #09090b;
1038
+ --color-ak-text-placeholder: #71717a;
1039
+ /* Borders */
1040
+ --color-ak-border: #e4e4e7;
1041
+ --color-ak-border-subtle: #f4f4f5;
1042
+ --color-ak-border-strong: #d4d4d8;
1043
+ --color-ak-border-focus: #09090b;
1044
+ /* Primary */
1045
+ --color-ak-primary: #000000;
1046
+ --color-ak-primary-hover: #1a1a1a;
1047
+ --color-ak-primary-active: #333333;
1048
+ /* Status */
1049
+ --color-ak-success: #16a34a;
1050
+ --color-ak-success-subtle: #f0fdf4;
1051
+ --color-ak-success-text: #15803d;
1052
+ --color-ak-warning: #d97706;
1053
+ --color-ak-warning-subtle: #fffbeb;
1054
+ --color-ak-warning-text: #b45309;
1055
+ --color-ak-danger: #dc2626;
1056
+ --color-ak-danger-subtle: #fef2f2;
1057
+ --color-ak-danger-text: #b91c1c;
1058
+ --color-ak-info: #2563eb;
1059
+ --color-ak-info-subtle: #eff6ff;
1060
+ --color-ak-info-text: #1d4ed8;
1061
+ --color-ak-pink: #db2777;
1062
+ --color-ak-pink-subtle: #fdf2f8;
1063
+ /* Neutral scale */
1064
+ --color-ak-neutral-0: #ffffff;
1065
+ --color-ak-neutral-50: #fafafa;
1066
+ --color-ak-neutral-100: #f5f5f5;
1067
+ --color-ak-neutral-200: #e5e5e5;
1068
+ --color-ak-neutral-300: #d4d4d4;
1069
+ --color-ak-neutral-400: #a3a3a3;
1070
+ --color-ak-neutral-500: #737373;
1071
+ --color-ak-neutral-600: #525252;
1072
+ --color-ak-neutral-700: #404040;
1073
+ --color-ak-neutral-800: #262626;
1074
+ --color-ak-neutral-900: #171717;
1075
+ --color-ak-neutral-950: #0a0a0a;
1076
+ /* Primary scale */
1077
+ --color-ak-primary-50: #f5f5f5;
1078
+ --color-ak-primary-100: #e5e5e5;
1079
+ --color-ak-primary-200: #cccccc;
1080
+ --color-ak-primary-300: #a3a3a3;
1081
+ --color-ak-primary-400: #737373;
1082
+ --color-ak-primary-500: #525252;
1083
+ --color-ak-primary-600: #404040;
1084
+ --color-ak-primary-700: #333333;
1085
+ --color-ak-primary-800: #1a1a1a;
1086
+ --color-ak-primary-900: #000000;
1087
+ --color-ak-primary-950: #000000;
1088
+ /* Shadows */
1089
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
1090
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
1091
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
1092
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
1093
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
1094
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
1095
+ --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
1096
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
1097
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
1098
+ --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
1099
+ }
1100
+
1101
+ /* ── Dark mobile — EXHAUSTIVE (bottom sheets, overlays) ── */
1102
+ [data-ak-dark-mobile] {
1103
+ --color-ak-bg: #171717;
1104
+ --color-ak-surface: #171717;
1105
+ --color-ak-surface-2: #262626;
1106
+ --color-ak-hover: rgba(255,255,255,0.08);
1107
+ --color-ak-active: rgba(255,255,255,0.14);
1108
+ --color-ak-elevated: #ffffff;
1109
+ --color-ak-surface-raised: rgba(255,255,255,0.05);
1110
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
1111
+ --color-ak-surface-glass: rgba(255,255,255,0.05);
1112
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
1113
+ --color-ak-highlight-soft: rgba(255,255,255,0.06);
1114
+ --color-ak-highlight-strong: rgba(255,255,255,0.12);
1115
+ --color-ak-skeleton-base: rgba(255,255,255,0.05);
1116
+ --color-ak-skeleton-shine: rgba(255,255,255,0.08);
1117
+ --color-ak-overlay: rgba(0,0,0,0.7);
1118
+ --color-ak-on-primary: #000000;
1119
+ --color-ak-primary-subtle: rgba(255,255,255,0.05);
1120
+ --color-ak-text: #ffffff;
1121
+ --color-ak-text-secondary: #b0b0b0;
1122
+ --color-ak-text-muted: #737373;
1123
+ --color-ak-text-disabled: #525252;
1124
+ --color-ak-text-inverse: #0a0a0a;
1125
+ --color-ak-text-link: #ffffff;
1126
+ --color-ak-text-placeholder: #525252;
1127
+ --color-ak-border: rgba(255,255,255,0.1);
1128
+ --color-ak-border-subtle: rgba(255,255,255,0.06);
1129
+ --color-ak-border-strong: rgba(255,255,255,0.15);
1130
+ --color-ak-border-focus: #ffffff;
1131
+ --color-ak-primary: #ffffff;
1132
+ --color-ak-primary-hover: #e5e5e5;
1133
+ --color-ak-primary-active: #d4d4d4;
1134
+ --color-ak-success: #22c55e;
1135
+ --color-ak-success-subtle: rgba(34,197,94,0.12);
1136
+ --color-ak-success-text: #4ade80;
1137
+ --color-ak-danger: #ef4444;
1138
+ --color-ak-danger-subtle: rgba(239,68,68,0.12);
1139
+ --color-ak-danger-text: #f87171;
1140
+ --color-ak-info: #60a5fa;
1141
+ --color-ak-info-subtle: rgba(96,165,250,0.12);
1142
+ --color-ak-info-text: #93bbfd;
1143
+ --color-ak-pink: #f472b6;
1144
+ --color-ak-pink-subtle: rgba(244,114,182,0.12);
1145
+ --color-ak-warning: #f59e0b;
1146
+ --color-ak-warning-subtle: rgba(245,158,11,0.12);
1147
+ --color-ak-warning-text: #fbbf24;
1148
+ /* Neutral scale (inverted for dark) */
1149
+ --color-ak-neutral-0: #111113;
1150
+ --color-ak-neutral-50: #18191b;
1151
+ --color-ak-neutral-100: #1e1f21;
1152
+ --color-ak-neutral-200: #252628;
1153
+ --color-ak-neutral-300: #333436;
1154
+ --color-ak-neutral-400: #52525b;
1155
+ --color-ak-neutral-500: #71717a;
1156
+ --color-ak-neutral-600: #a1a1aa;
1157
+ --color-ak-neutral-700: #d4d4d8;
1158
+ --color-ak-neutral-800: #e4e4e7;
1159
+ --color-ak-neutral-900: #f4f4f5;
1160
+ --color-ak-neutral-950: #fafafa;
1161
+ /* Primary scale (dark) */
1162
+ --color-ak-primary-50: rgba(255,255,255,0.04);
1163
+ --color-ak-primary-100: rgba(255,255,255,0.06);
1164
+ --color-ak-primary-200: rgba(255,255,255,0.10);
1165
+ --color-ak-primary-300: rgba(255,255,255,0.16);
1166
+ --color-ak-primary-400: rgba(255,255,255,0.24);
1167
+ --color-ak-primary-500: #a3a3a3;
1168
+ --color-ak-primary-600: #d4d4d4;
1169
+ --color-ak-primary-700: #e5e5e5;
1170
+ --color-ak-primary-800: #f5f5f5;
1171
+ --color-ak-primary-900: #ffffff;
1172
+ --color-ak-primary-950: #ffffff;
1173
+ /* Shadows (dark) */
1174
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
1175
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
1176
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
1177
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
1178
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
1179
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
1180
+ --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
1181
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
1182
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
1183
+ --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
1184
+ }
1185
+
1186
+ /* Dark rail/panel/mobile: restore dark text on white elevated items */
1187
+ [data-ak-dark-rail] .ak-on-elevated,
1188
+ [data-ak-dark-panel] .ak-on-elevated,
1189
+ [data-ak-dark-mobile] .ak-on-elevated {
1190
+ --color-ak-text: #18181b;
1191
+ --color-ak-text-secondary: #52525b;
1192
+ }
1193
+
1194
+ /* ── Panel count badge — primary-colored circle for nav item counts ──
1195
+ Use instead of ak-badge (which is red/danger for notifications). */
1196
+ .ak-panel-badge {
1197
+ position: static;
1198
+ display: flex;
1199
+ align-items: center;
1200
+ justify-content: center;
1201
+ border-radius: var(--radius-ak-full);
1202
+ background: var(--color-ak-primary);
1203
+ color: var(--color-ak-on-primary);
1204
+ font-weight: 700;
1205
+ }
1206
+ /* Dark contexts: white badge, dark text */
1207
+ [data-ak-dark-panel] .ak-panel-badge,
1208
+ [data-ak-dark-rail] .ak-panel-badge {
1209
+ background: #ffffff;
1210
+ color: #18181b;
1211
+ }
1212
+ /* Active (elevated) row in dark context: flip back */
1213
+ [data-ak-dark-panel] .ak-on-elevated .ak-panel-badge,
1214
+ [data-ak-dark-rail] .ak-on-elevated .ak-panel-badge {
1215
+ background: #171717;
1216
+ color: #ffffff;
1217
+ }
1218
+
1219
+ /* Sidebar component shell */
1220
+ .ak-sidebar-expanded {
1221
+ width: 18rem;
1222
+ align-items: stretch;
1223
+ }
1224
+ .ak-sidebar-expanded .ak-nav-item {
1225
+ width: 100%;
1226
+ justify-content: flex-start;
1227
+ padding-left: 1rem;
1228
+ padding-right: 0.75rem;
1229
+ gap: 0.75rem;
1230
+ }
1231
+ .ak-sidebar-expanded .ak-nav-item.ak-logo-item {
1232
+ padding-left: 0.5rem;
1233
+ padding-right: 0.5rem;
1234
+ gap: 0.5rem;
1235
+ }
1236
+ .ak-sidebar-expanded .ak-nav-label { display: block; }
1237
+ .ak-sidebar-expanded .ak-profile-info { display: flex; }
1238
+ .ak-sidebar-expanded .ak-account-chevron { display: flex; }
1239
+ .ak-sidebar-expanded .ak-collapse-icon { display: block; }
1240
+ .ak-sidebar-expanded .ak-expand-icon { display: none; }
1241
+ .ak-sidebar-expanded [data-ak-tooltip]::after,
1242
+ .ak-sidebar-expanded [data-ak-tooltip]::before { display: none; }
1243
+
1244
+ /* Account switcher: collapsed vs expanded (complex child selectors) */
1245
+ [data-expanded] .ak-profile-info { display: flex; }
1246
+ [data-expanded] .ak-account-chevron { display: flex; }
1247
+ [data-expanded] .ak-account-trigger {
1248
+ justify-content: space-between;
1249
+ border: 1px solid var(--color-ak-border);
1250
+ border-radius: var(--radius-ak-lg);
1251
+ padding: 0.625rem 0.75rem;
1252
+ gap: 0.625rem;
1253
+ min-height: auto;
1254
+ }
1255
+ [data-expanded] .ak-account-left { gap: 0.625rem; }
1256
+
1257
+ /* Dividers */
1258
+ .ak-divider {
1259
+ height: 1px;
1260
+ background: var(--color-ak-border);
1261
+ }
1262
+ .ak-divider-bleed {
1263
+ margin-left: -0.75rem;
1264
+ margin-right: -0.75rem;
1265
+ }
1266
+
1267
+ /* Sub-items (sidebar tree sub-navigation) */
1268
+ .ak-sub-item {
1269
+ display: flex;
1270
+ align-items: center;
1271
+ gap: 0.5rem;
1272
+ padding: 0.375rem 0.75rem;
1273
+ border-radius: var(--radius-ak-md);
1274
+ font-size: var(--text-ak-sm);
1275
+ color: var(--color-ak-text-secondary);
1276
+ cursor: pointer;
1277
+ text-decoration: none;
1278
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1279
+ color var(--duration-ak-fast) var(--ease-ak-default);
1280
+ }
1281
+ .ak-sub-item::before {
1282
+ content: '';
1283
+ width: 6px;
1284
+ height: 6px;
1285
+ border-radius: var(--radius-ak-full);
1286
+ background: var(--color-ak-border);
1287
+ flex-shrink: 0;
1288
+ }
1289
+ .ak-sub-item:hover { background: var(--color-ak-hover); }
1290
+ .ak-sub-item:hover::before { background: var(--color-ak-text-muted); }
1291
+ .ak-sub-item-active {
1292
+ color: var(--color-ak-text);
1293
+ background: var(--color-ak-active);
1294
+ }
1295
+ .ak-sub-item-active::before {
1296
+ background: var(--color-ak-primary);
1297
+ }
1298
+
1299
+ /* Listing links (sidebar project/item lists) */
1300
+ .ak-listing-link {
1301
+ position: relative;
1302
+ display: flex;
1303
+ align-items: center;
1304
+ gap: 0.75rem;
1305
+ padding: 0.5rem 0.75rem;
1306
+ border-radius: var(--radius-ak-md);
1307
+ color: var(--color-ak-text-secondary);
1308
+ cursor: pointer;
1309
+ text-decoration: none;
1310
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1311
+ color var(--duration-ak-fast) var(--ease-ak-default);
1312
+ }
1313
+ .ak-listing-link:hover { background: var(--color-ak-hover); }
1314
+ .ak-listing-link:focus { outline: none; }
1315
+ .ak-listing-link:focus-visible {
1316
+ outline: 2px solid var(--color-ak-border-focus);
1317
+ outline-offset: -2px;
1318
+ }
1319
+ .ak-listing-link[aria-current="page"] {
1320
+ background: var(--color-ak-active);
1321
+ color: var(--color-ak-text);
1322
+ }
1323
+ .ak-listing-list {
1324
+ display: flex;
1325
+ flex-direction: column;
1326
+ gap: 0.125rem;
1327
+ }
1328
+
1329
+ /* Library tree / collapsible sections */
1330
+ .ak-lib-panel {
1331
+ overflow: hidden;
1332
+ max-height: 600px;
1333
+ transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
1334
+ opacity var(--duration-ak-base) var(--ease-ak-default);
1335
+ opacity: 1;
1336
+ }
1337
+ .ak-lib-panel.ak-collapsed {
1338
+ max-height: 0;
1339
+ opacity: 0;
1340
+ }
1341
+ .ak-lib-trigger {
1342
+ display: flex;
1343
+ align-items: center;
1344
+ justify-content: space-between;
1345
+ width: 100%;
1346
+ padding: 0.5rem 0.75rem;
1347
+ border: none;
1348
+ background: none;
1349
+ cursor: pointer;
1350
+ font-family: inherit;
1351
+ font-size: var(--text-ak-sm);
1352
+ font-weight: 600;
1353
+ color: var(--color-ak-text-muted);
1354
+ text-transform: uppercase;
1355
+ letter-spacing: 0.05em;
1356
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
1357
+ }
1358
+ .ak-lib-trigger:hover { color: var(--color-ak-text); }
1359
+ .ak-lib-trigger:focus { outline: none; }
1360
+ .ak-lib-trigger:focus-visible {
1361
+ outline: 2px solid var(--color-ak-border-focus);
1362
+ outline-offset: -2px;
1363
+ }
1364
+ .ak-lib-chevron {
1365
+ transition: transform var(--duration-ak-base) var(--ease-ak-default);
1366
+ }
1367
+ .ak-lib-trigger[aria-expanded="false"] .ak-lib-chevron {
1368
+ transform: rotate(-90deg);
1369
+ }
1370
+ .ak-lib-link {
1371
+ display: flex;
1372
+ align-items: center;
1373
+ gap: 0.5rem;
1374
+ padding: 0.375rem 0.75rem;
1375
+ border-radius: var(--radius-ak-md);
1376
+ font-size: var(--text-ak-sm);
1377
+ color: var(--color-ak-text-secondary);
1378
+ cursor: pointer;
1379
+ text-decoration: none;
1380
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1381
+ color var(--duration-ak-fast) var(--ease-ak-default);
1382
+ }
1383
+ .ak-lib-link:hover { background: var(--color-ak-hover); }
1384
+ .ak-lib-link:focus { outline: none; }
1385
+ .ak-lib-link:focus-visible {
1386
+ outline: 2px solid var(--color-ak-border-focus);
1387
+ outline-offset: -2px;
1388
+ }
1389
+ .ak-lib-link[aria-current="page"] {
1390
+ background: var(--color-ak-active);
1391
+ color: var(--color-ak-text);
1392
+ }
1393
+
1394
+ /* Pinned links */
1395
+ .ak-pinned-link {
1396
+ display: flex;
1397
+ align-items: center;
1398
+ gap: 0.75rem;
1399
+ padding: 0.5rem 0.75rem;
1400
+ border-radius: var(--radius-ak-md);
1401
+ color: var(--color-ak-text-secondary);
1402
+ cursor: pointer;
1403
+ text-decoration: none;
1404
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1405
+ }
1406
+ .ak-pinned-link:hover { background: var(--color-ak-hover); }
1407
+ .ak-pinned-link:focus { outline: none; }
1408
+ .ak-pinned-link:focus-visible {
1409
+ outline: 2px solid var(--color-ak-border-focus);
1410
+ outline-offset: -2px;
1411
+ }
1412
+ .ak-pinned-link[aria-current="page"] {
1413
+ background: var(--color-ak-active);
1414
+ color: var(--color-ak-text);
1415
+ }
1416
+ .ak-pinned-dot {
1417
+ width: 8px;
1418
+ height: 8px;
1419
+ border-radius: var(--radius-ak-full);
1420
+ flex-shrink: 0;
1421
+ }
1422
+
1423
+ /* Logo items */
1424
+ .ak-logo-wordmark {
1425
+ font-size: 1.25rem;
1426
+ font-weight: 700;
1427
+ line-height: 1;
1428
+ }
1429
+
1430
+ /* Workspace / store branding */
1431
+ .ak-workspace-header {
1432
+ display: flex;
1433
+ align-items: center;
1434
+ gap: 0.75rem;
1435
+ }
1436
+ .ak-workspace-logo {
1437
+ width: 2rem;
1438
+ height: 2rem;
1439
+ border-radius: var(--radius-ak-md);
1440
+ display: flex;
1441
+ align-items: center;
1442
+ justify-content: center;
1443
+ flex-shrink: 0;
1444
+ }
1445
+ .ak-ws-dropdown {
1446
+ position: absolute;
1447
+ background: var(--color-ak-bg);
1448
+ border: 1px solid var(--color-ak-border);
1449
+ border-radius: var(--radius-ak-lg);
1450
+ box-shadow: var(--shadow-ak-lg);
1451
+ opacity: 0;
1452
+ visibility: hidden;
1453
+ transform: translateY(4px);
1454
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
1455
+ transform var(--duration-ak-base) var(--ease-ak-default),
1456
+ visibility 0s linear var(--duration-ak-base);
1457
+ z-index: var(--z-ak-dropdown);
1458
+ }
1459
+ .ak-ws-dropdown-open {
1460
+ opacity: 1;
1461
+ visibility: visible;
1462
+ transform: translateY(0);
1463
+ transition-delay: 0s;
1464
+ }
1465
+ .ak-ws-item {
1466
+ display: flex;
1467
+ align-items: center;
1468
+ gap: 0.75rem;
1469
+ padding: 0.625rem 0.75rem;
1470
+ cursor: pointer;
1471
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1472
+ }
1473
+ .ak-ws-item:hover { background: var(--color-ak-hover); }
1474
+ .ak-ws-item:focus { outline: none; }
1475
+ .ak-ws-item:focus-visible {
1476
+ outline: 2px solid var(--color-ak-border-focus);
1477
+ outline-offset: -2px;
1478
+ }
1479
+ .ak-ws-icon {
1480
+ width: 2rem;
1481
+ height: 2rem;
1482
+ border-radius: var(--radius-ak-md);
1483
+ display: flex;
1484
+ align-items: center;
1485
+ justify-content: center;
1486
+ flex-shrink: 0;
1487
+ }
1488
+
1489
+ /* Brand / store header */
1490
+ .ak-brand {
1491
+ display: flex;
1492
+ align-items: center;
1493
+ gap: 0.75rem;
1494
+ }
1495
+ .ak-brand-logo {
1496
+ display: flex;
1497
+ align-items: center;
1498
+ justify-content: center;
1499
+ flex-shrink: 0;
1500
+ }
1501
+ .ak-brand-logo i {
1502
+ font-size: var(--size-ak-icon-xl);
1503
+ }
1504
+ .ak-brand-name {
1505
+ font-size: 1.125rem;
1506
+ font-weight: 700;
1507
+ color: var(--color-ak-text);
1508
+ }
1509
+ .ak-sidebar-brand {
1510
+ display: flex;
1511
+ align-items: center;
1512
+ gap: 0.75rem;
1513
+ }
1514
+ .ak-sidebar-brand-name {
1515
+ font-size: 1rem;
1516
+ font-weight: 700;
1517
+ color: var(--color-ak-text);
1518
+ }
1519
+ .ak-sidebar-brand-plan {
1520
+ font-size: var(--text-ak-xs);
1521
+ color: var(--color-ak-text-muted);
1522
+ }
1523
+ .ak-sidebar-header {
1524
+ display: flex;
1525
+ align-items: center;
1526
+ justify-content: space-between;
1527
+ }
1528
+ .ak-sidebar-collapse {
1529
+ display: flex;
1530
+ align-items: center;
1531
+ justify-content: center;
1532
+ width: 1.75rem;
1533
+ height: 1.75rem;
1534
+ border-radius: var(--radius-ak-md);
1535
+ border: none;
1536
+ background: none;
1537
+ color: var(--color-ak-text-muted);
1538
+ cursor: pointer;
1539
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
1540
+ color var(--duration-ak-fast) var(--ease-ak-default);
1541
+ }
1542
+ .ak-sidebar-collapse i {
1543
+ font-size: var(--size-ak-icon-md);
1544
+ transition: transform var(--duration-ak-base) var(--ease-ak-default);
1545
+ }
1546
+ .ak-sidebar-collapse:hover {
1547
+ background: var(--color-ak-hover);
1548
+ color: var(--color-ak-text);
1549
+ }
1550
+ .ak-sidebar-collapse:focus { outline: none; }
1551
+ .ak-sidebar-collapse:focus-visible {
1552
+ outline: 2px solid var(--color-ak-border-focus);
1553
+ outline-offset: 2px;
1554
+ }
1555
+ .ak-sidebar-divider {
1556
+ height: 1px;
1557
+ background: var(--color-ak-border);
1558
+ }
1559
+ .ak-sidebar-logo {
1560
+ display: flex;
1561
+ align-items: center;
1562
+ gap: 0.5rem;
1563
+ text-decoration: none;
1564
+ }
1565
+ .ak-sidebar-title {
1566
+ font-size: var(--text-ak-sm);
1567
+ font-weight: 600;
1568
+ letter-spacing: 0.05em;
1569
+ text-transform: uppercase;
1570
+ color: var(--color-ak-text-muted);
1571
+ }
1572
+ .ak-sidebar-nav {
1573
+ display: flex;
1574
+ flex-direction: column;
1575
+ gap: 0.125rem;
1576
+ }
1577
+ .ak-accent-bar {
1578
+ width: 3px;
1579
+ border-radius: var(--radius-ak-full);
1580
+ }
1581
+
1582
+ /* Panel link transitions */
1583
+ [data-ak-panel-link] {
1584
+ transition: background-color var(--duration-ak-base) var(--ease-ak-default),
1585
+ color var(--duration-ak-base) var(--ease-ak-default),
1586
+ box-shadow var(--duration-ak-base) var(--ease-ak-default);
1587
+ }
1588
+ [data-ak-panel-link] .text-ak-base {
1589
+ letter-spacing: var(--tracking-ak-normal);
1590
+ line-height: var(--leading-ak-tight);
1591
+ }
1592
+
1593
+ /* Team switcher typography */
1594
+ [data-ak-team-switcher] .text-left p:first-child,
1595
+ [data-ak-team-dropdown] .text-left p:first-child {
1596
+ font-size: var(--text-ak-base);
1597
+ font-weight: 600;
1598
+ line-height: var(--leading-ak-tight);
1599
+ letter-spacing: var(--tracking-ak-normal);
1600
+ }
1601
+ [data-ak-team-switcher] .text-left p:last-child,
1602
+ [data-ak-team-dropdown] .text-left p:last-child {
1603
+ font-size: var(--text-ak-base);
1604
+ line-height: var(--leading-ak-tight);
1605
+ letter-spacing: var(--tracking-ak-normal);
1606
+ }
1607
+
1608
+
1609
+ /* ══════════════════════════════════════════════════════════
1610
+ Sidebar Panel — BEM dark/light modifiers
1611
+ These re-declare ALL color+shadow tokens exhaustively.
1612
+ Being in @layer ak-components, they ALWAYS beat
1613
+ [data-theme="dark"] in @layer ak-tokens.
1614
+ No inheritance gaps — every token is explicitly set.
1615
+ ══════════════════════════════════════════════════════════ */
1616
+
1617
+ /* ── Sidebar panel container ── */
1618
+ .ak-sidebar-panel {
1619
+ width: var(--ak-sidebar-width, 18rem);
1620
+ min-height: 52rem;
1621
+ background: var(--color-ak-bg);
1622
+ border-radius: var(--radius-ak-md);
1623
+ display: flex;
1624
+ flex-direction: column;
1625
+ font-family: var(--font-ak-sans);
1626
+ overflow: hidden;
1627
+ border: 1px solid var(--color-ak-border);
1628
+ }
1629
+
1630
+ /* ── Force dark (BEM modifier) ──
1631
+ Use: <aside class="ak-sidebar-panel ak-sidebar-panel--dark">
1632
+ Ignores global theme. Component is always dark. */
1633
+ .ak-sidebar-panel--dark {
1634
+ /* Surfaces */
1635
+ --color-ak-bg: #0a0a0a;
1636
+ --color-ak-surface: rgba(255,255,255,0.03);
1637
+ --color-ak-surface-2: rgba(255,255,255,0.05);
1638
+ --color-ak-hover: rgba(255,255,255,0.08);
1639
+ --color-ak-active: rgba(255,255,255,0.14);
1640
+ --color-ak-elevated: #ffffff;
1641
+ --color-ak-surface-raised: rgba(255,255,255,0.05);
1642
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.03);
1643
+ --color-ak-surface-glass: rgba(255,255,255,0.05);
1644
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.08);
1645
+ --color-ak-highlight-soft: rgba(255,255,255,0.06);
1646
+ --color-ak-highlight-strong: rgba(255,255,255,0.12);
1647
+ --color-ak-skeleton-base: rgba(255,255,255,0.05);
1648
+ --color-ak-skeleton-shine: rgba(255,255,255,0.08);
1649
+ --color-ak-overlay: rgba(0,0,0,0.7);
1650
+ --color-ak-on-primary: #000000;
1651
+ --color-ak-primary-subtle: rgba(255,255,255,0.05);
1652
+ /* Text */
1653
+ --color-ak-text: #f5f5f5;
1654
+ --color-ak-text-secondary: #b5b5b5;
1655
+ --color-ak-text-muted: #737373;
1656
+ --color-ak-text-disabled: #525252;
1657
+ --color-ak-text-inverse: #0a0a0a;
1658
+ --color-ak-text-link: #ffffff;
1659
+ --color-ak-text-placeholder: #71717a;
1660
+ /* Borders */
1661
+ --color-ak-border: rgba(255,255,255,0.08);
1662
+ --color-ak-border-subtle: rgba(255,255,255,0.06);
1663
+ --color-ak-border-strong: rgba(255,255,255,0.15);
1664
+ --color-ak-border-focus: #ffffff;
1665
+ /* Primary */
1666
+ --color-ak-primary: #ffffff;
1667
+ --color-ak-primary-hover: #e5e5e5;
1668
+ --color-ak-primary-active: #d4d4d4;
1669
+ /* Status */
1670
+ --color-ak-success: #22c55e;
1671
+ --color-ak-success-subtle: rgba(34,197,94,0.12);
1672
+ --color-ak-success-text: #4ade80;
1673
+ --color-ak-warning: #f59e0b;
1674
+ --color-ak-warning-subtle: rgba(245,158,11,0.12);
1675
+ --color-ak-warning-text: #fbbf24;
1676
+ --color-ak-danger: #ef4444;
1677
+ --color-ak-danger-subtle: rgba(239,68,68,0.12);
1678
+ --color-ak-danger-text: #f87171;
1679
+ --color-ak-info: #60a5fa;
1680
+ --color-ak-info-subtle: rgba(96,165,250,0.12);
1681
+ --color-ak-info-text: #93bbfd;
1682
+ --color-ak-pink: #f472b6;
1683
+ --color-ak-pink-subtle: rgba(244,114,182,0.12);
1684
+ /* Neutral scale (inverted for dark) */
1685
+ --color-ak-neutral-0: #111113;
1686
+ --color-ak-neutral-50: #18191b;
1687
+ --color-ak-neutral-100: #1e1f21;
1688
+ --color-ak-neutral-200: #252628;
1689
+ --color-ak-neutral-300: #333436;
1690
+ --color-ak-neutral-400: #52525b;
1691
+ --color-ak-neutral-500: #71717a;
1692
+ --color-ak-neutral-600: #a1a1aa;
1693
+ --color-ak-neutral-700: #d4d4d8;
1694
+ --color-ak-neutral-800: #e4e4e7;
1695
+ --color-ak-neutral-900: #f4f4f5;
1696
+ --color-ak-neutral-950: #fafafa;
1697
+ /* Primary scale (dark) */
1698
+ --color-ak-primary-50: rgba(255,255,255,0.04);
1699
+ --color-ak-primary-100: rgba(255,255,255,0.06);
1700
+ --color-ak-primary-200: rgba(255,255,255,0.10);
1701
+ --color-ak-primary-300: rgba(255,255,255,0.16);
1702
+ --color-ak-primary-400: rgba(255,255,255,0.24);
1703
+ --color-ak-primary-500: #a3a3a3;
1704
+ --color-ak-primary-600: #d4d4d4;
1705
+ --color-ak-primary-700: #e5e5e5;
1706
+ --color-ak-primary-800: #f5f5f5;
1707
+ --color-ak-primary-900: #ffffff;
1708
+ --color-ak-primary-950: #ffffff;
1709
+ /* Shadows */
1710
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.3);
1711
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.4);
1712
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.4);
1713
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.5);
1714
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.6);
1715
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.7);
1716
+ --shadow-ak-focus: 0 0 0 3px rgba(255,255,255,0.20);
1717
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(129,140,248,0.30);
1718
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(248,113,113,0.25);
1719
+ --shadow-ak-focus-success: 0 0 0 3px rgba(74,222,128,0.25);
1720
+ /* Visual treatment */
1721
+ border: none;
1722
+ box-shadow: var(--shadow-ak-lg);
1723
+ }
1724
+
1725
+ /* ── Force light (BEM modifier) ──
1726
+ Use: <aside class="ak-sidebar-panel ak-sidebar-panel--light">
1727
+ Ignores global theme. Component is always light. */
1728
+ .ak-sidebar-panel--light {
1729
+ /* Surfaces */
1730
+ --color-ak-bg: #ffffff;
1731
+ --color-ak-surface: #fafafa;
1732
+ --color-ak-surface-2: #f5f5f5;
1733
+ --color-ak-hover: #f7f7f7;
1734
+ --color-ak-active: #f0f0f0;
1735
+ --color-ak-elevated: #000000;
1736
+ --color-ak-surface-raised: #ffffff;
1737
+ --color-ak-surface-raised-soft: rgba(255,255,255,0.78);
1738
+ --color-ak-surface-glass: rgba(255,255,255,0.72);
1739
+ --color-ak-surface-glass-strong: rgba(255,255,255,0.84);
1740
+ --color-ak-highlight-soft: rgba(255,255,255,0.45);
1741
+ --color-ak-highlight-strong: rgba(255,255,255,0.72);
1742
+ --color-ak-skeleton-base: #ededed;
1743
+ --color-ak-skeleton-shine: rgba(255,255,255,0.72);
1744
+ --color-ak-overlay: rgba(0,0,0,0.5);
1745
+ --color-ak-on-primary: #ffffff;
1746
+ --color-ak-primary-subtle: #f5f5f5;
1747
+ /* Text */
1748
+ --color-ak-text: #18181b;
1749
+ --color-ak-text-secondary: #52525b;
1750
+ --color-ak-text-muted: #a1a1aa;
1751
+ --color-ak-text-disabled: #d4d4d8;
1752
+ --color-ak-text-inverse: #fafafa;
1753
+ --color-ak-text-link: #09090b;
1754
+ --color-ak-text-placeholder: #71717a;
1755
+ /* Borders */
1756
+ --color-ak-border: #e4e4e7;
1757
+ --color-ak-border-subtle: #f4f4f5;
1758
+ --color-ak-border-strong: #d4d4d8;
1759
+ --color-ak-border-focus: #09090b;
1760
+ /* Primary */
1761
+ --color-ak-primary: #000000;
1762
+ --color-ak-primary-hover: #1a1a1a;
1763
+ --color-ak-primary-active: #333333;
1764
+ /* Status */
1765
+ --color-ak-success: #16a34a;
1766
+ --color-ak-success-subtle: #f0fdf4;
1767
+ --color-ak-success-text: #15803d;
1768
+ --color-ak-warning: #d97706;
1769
+ --color-ak-warning-subtle: #fffbeb;
1770
+ --color-ak-warning-text: #b45309;
1771
+ --color-ak-danger: #dc2626;
1772
+ --color-ak-danger-subtle: #fef2f2;
1773
+ --color-ak-danger-text: #b91c1c;
1774
+ --color-ak-info: #2563eb;
1775
+ --color-ak-info-subtle: #eff6ff;
1776
+ --color-ak-info-text: #1d4ed8;
1777
+ --color-ak-pink: #db2777;
1778
+ --color-ak-pink-subtle: #fdf2f8;
1779
+ /* Neutral scale */
1780
+ --color-ak-neutral-0: #ffffff;
1781
+ --color-ak-neutral-50: #fafafa;
1782
+ --color-ak-neutral-100: #f5f5f5;
1783
+ --color-ak-neutral-200: #e5e5e5;
1784
+ --color-ak-neutral-300: #d4d4d4;
1785
+ --color-ak-neutral-400: #a3a3a3;
1786
+ --color-ak-neutral-500: #737373;
1787
+ --color-ak-neutral-600: #525252;
1788
+ --color-ak-neutral-700: #404040;
1789
+ --color-ak-neutral-800: #262626;
1790
+ --color-ak-neutral-900: #171717;
1791
+ --color-ak-neutral-950: #0a0a0a;
1792
+ /* Primary scale */
1793
+ --color-ak-primary-50: #f5f5f5;
1794
+ --color-ak-primary-100: #e5e5e5;
1795
+ --color-ak-primary-200: #cccccc;
1796
+ --color-ak-primary-300: #a3a3a3;
1797
+ --color-ak-primary-400: #737373;
1798
+ --color-ak-primary-500: #525252;
1799
+ --color-ak-primary-600: #404040;
1800
+ --color-ak-primary-700: #333333;
1801
+ --color-ak-primary-800: #1a1a1a;
1802
+ --color-ak-primary-900: #000000;
1803
+ --color-ak-primary-950: #000000;
1804
+ /* Shadows */
1805
+ --shadow-ak-xs: 0 1px 2px rgba(0,0,0,0.04);
1806
+ --shadow-ak-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
1807
+ --shadow-ak-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
1808
+ --shadow-ak-lg: 0 8px 30px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.04);
1809
+ --shadow-ak-xl: 0 16px 50px rgba(0,0,0,0.1), 0 8px 16px rgba(0,0,0,0.05);
1810
+ --shadow-ak-2xl: 0 24px 60px rgba(0,0,0,0.14);
1811
+ --shadow-ak-focus: 0 0 0 3px rgba(0,0,0,0.08);
1812
+ --shadow-ak-focus-primary: 0 0 0 3px rgba(0,0,0,0.15);
1813
+ --shadow-ak-focus-danger: 0 0 0 3px rgba(220,38,38,0.08);
1814
+ --shadow-ak-focus-success: 0 0 0 3px rgba(22,163,74,0.08);
1815
+ /* Visual treatment */
1816
+ border: 1px solid var(--color-ak-border);
1817
+ box-shadow: none;
1818
+ }
1819
+