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,1057 +1,1057 @@
1
-
2
-
3
- /* Navigation primitives -- links, triggers, tabs, popovers, command palette, search, drawers, sheets */
4
-
5
-
6
-
7
- /* Nav link */
8
- .ak-nav-link {
9
- display: flex;
10
- align-items: center;
11
- gap: 0.75rem;
12
- padding: 0.5rem 0.75rem;
13
- min-height: 2.25rem;
14
- border-radius: var(--radius-ak-md);
15
- color: var(--color-ak-text-secondary);
16
- cursor: pointer;
17
- text-decoration: none;
18
- font-size: var(--text-ak-sm);
19
- font-weight: 500;
20
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
21
- color var(--duration-ak-fast) var(--ease-ak-default);
22
- }
23
- .ak-nav-link i {
24
- font-size: var(--size-ak-icon-md);
25
- flex-shrink: 0;
26
- }
27
- .ak-nav-link:hover { background: var(--color-ak-hover); }
28
- .ak-nav-link:focus { outline: none; }
29
- .ak-nav-link:focus-visible {
30
- outline: 2px solid var(--color-ak-border-focus);
31
- outline-offset: -2px;
32
- }
33
- .ak-nav-link[aria-current="page"] {
34
- background: var(--color-ak-active);
35
- color: var(--color-ak-text);
36
- font-weight: 600;
37
- }
38
- .ak-nav-link[aria-current="page"] i {
39
- color: var(--color-ak-text);
40
- }
41
- .ak-nav-link-badge {
42
- font-size: var(--text-ak-xs);
43
- font-weight: 600;
44
- color: var(--color-ak-text-muted);
45
- }
46
-
47
- /* Nav trigger (collapsible section header) */
48
- .ak-nav-trigger {
49
- display: flex;
50
- align-items: center;
51
- justify-content: space-between;
52
- gap: 0.75rem;
53
- width: 100%;
54
- padding: 0.5rem 0.75rem;
55
- min-height: 2.25rem;
56
- border: none;
57
- background: none;
58
- cursor: pointer;
59
- font-family: inherit;
60
- font-size: var(--text-ak-sm);
61
- color: var(--color-ak-text-secondary);
62
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
63
- color var(--duration-ak-fast) var(--ease-ak-default);
64
- }
65
- .ak-nav-trigger:hover { background: var(--color-ak-hover); }
66
- .ak-nav-trigger:focus { outline: none; }
67
- .ak-nav-trigger:focus-visible {
68
- outline: 2px solid var(--color-ak-border-focus);
69
- outline-offset: -2px;
70
- }
71
- .ak-nav-trigger[aria-expanded="true"] .ak-chevron {
72
- transform: rotate(180deg);
73
- }
74
- .ak-chevron {
75
- transition: transform var(--duration-ak-base) var(--ease-ak-default);
76
- }
77
-
78
- /* Nav body (collapsible content) */
79
- .ak-nav-body {
80
- overflow: hidden;
81
- max-height: 600px;
82
- transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
83
- opacity var(--duration-ak-base) var(--ease-ak-default);
84
- opacity: 1;
85
- }
86
-
87
- /* Nav group / section */
88
- .ak-nav-group {
89
- display: flex;
90
- flex-direction: column;
91
- gap: 0.125rem;
92
- }
93
- .ak-nav-group-label {
94
- font-size: var(--text-ak-xs);
95
- font-weight: 600;
96
- letter-spacing: 0.05em;
97
- text-transform: uppercase;
98
- color: var(--color-ak-text-muted);
99
- padding: 0.5rem 0.75rem;
100
- }
101
- .ak-nav-section {
102
- display: flex;
103
- flex-direction: column;
104
- gap: 0.125rem;
105
- }
106
- .ak-nav-section-label {
107
- font-size: var(--text-ak-xs);
108
- font-weight: 600;
109
- letter-spacing: 0.05em;
110
- text-transform: uppercase;
111
- color: var(--color-ak-text-muted);
112
- padding: 0.5rem 0.75rem;
113
- }
114
- .ak-nav-badge {
115
- font-size: var(--text-ak-xs);
116
- font-weight: 600;
117
- padding: 0.125rem 0.375rem;
118
- border-radius: var(--radius-ak-full);
119
- background: var(--color-ak-primary);
120
- color: var(--color-ak-on-primary);
121
- }
122
-
123
- /* Sub link / sub list (nested navigation) */
124
- .ak-sub-link {
125
- position: relative;
126
- display: flex;
127
- align-items: center;
128
- gap: 0.5rem;
129
- padding: 0.375rem 0.75rem;
130
- border-radius: var(--radius-ak-md);
131
- font-size: var(--text-ak-sm);
132
- color: var(--color-ak-text-secondary);
133
- cursor: pointer;
134
- text-decoration: none;
135
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
136
- color var(--duration-ak-fast) var(--ease-ak-default);
137
- }
138
- .ak-sub-link::before {
139
- content: '';
140
- width: 6px;
141
- height: 6px;
142
- border-radius: var(--radius-ak-full);
143
- background: var(--color-ak-border);
144
- flex-shrink: 0;
145
- }
146
- .ak-sub-link:hover { background: var(--color-ak-hover); }
147
- .ak-sub-link:hover::before { background: var(--color-ak-text-muted); }
148
- .ak-sub-link:focus { outline: none; }
149
- .ak-sub-link:focus-visible {
150
- outline: 2px solid var(--color-ak-border-focus);
151
- outline-offset: -2px;
152
- }
153
- .ak-sub-link[aria-current="page"] {
154
- background: var(--color-ak-active);
155
- color: var(--color-ak-text);
156
- }
157
- .ak-sub-link[aria-current="page"]::before {
158
- background: var(--color-ak-primary);
159
- }
160
- .ak-sub-list {
161
- display: flex;
162
- flex-direction: column;
163
- gap: 0.125rem;
164
- padding-left: 2rem;
165
- }
166
- .ak-sub-list::before {
167
- content: '';
168
- position: absolute;
169
- left: 1.25rem;
170
- top: 0;
171
- bottom: 0;
172
- width: 1px;
173
- background: var(--color-ak-border);
174
- }
175
-
176
- /* Submenu */
177
- .ak-submenu {
178
- overflow: hidden;
179
- max-height: 0;
180
- opacity: 0;
181
- transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
182
- opacity var(--duration-ak-base) var(--ease-ak-default);
183
- }
184
- .ak-submenu-open {
185
- max-height: 600px;
186
- opacity: 1;
187
- }
188
- .ak-subnav {
189
- overflow: hidden;
190
- max-height: 0;
191
- opacity: 0;
192
- transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
193
- opacity var(--duration-ak-base) var(--ease-ak-default);
194
- }
195
- .ak-subnav.ak-subnav-open {
196
- max-height: 600px;
197
- opacity: 1;
198
- }
199
-
200
- /* Popover family */
201
- .ak-popover {
202
- position: absolute;
203
- background: var(--color-ak-bg);
204
- border: 1px solid var(--color-ak-border);
205
- border-radius: var(--radius-ak-lg);
206
- box-shadow: var(--shadow-ak-lg);
207
- opacity: 0;
208
- visibility: hidden;
209
- transform: translateY(4px);
210
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
211
- transform var(--duration-ak-base) var(--ease-ak-default),
212
- visibility 0s linear var(--duration-ak-base);
213
- z-index: var(--z-ak-dropdown);
214
- }
215
- .ak-popover-open,
216
- .ak-popover-panel.ak-open {
217
- opacity: 1;
218
- visibility: visible;
219
- transform: translateY(0);
220
- transition-delay: 0s;
221
- }
222
- .ak-popover-panel {
223
- position: absolute;
224
- background: var(--color-ak-bg);
225
- border: 1px solid var(--color-ak-border);
226
- border-radius: var(--radius-ak-lg);
227
- box-shadow: var(--shadow-ak-lg);
228
- opacity: 0;
229
- visibility: hidden;
230
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
231
- visibility 0s linear var(--duration-ak-base);
232
- z-index: var(--z-ak-dropdown);
233
- }
234
- .ak-popover-wrap { position: relative; }
235
- .ak-popover-header {
236
- display: flex;
237
- align-items: center;
238
- gap: 0.75rem;
239
- padding: 0.75rem;
240
- border-bottom: 1px solid var(--color-ak-border);
241
- }
242
- .ak-popover-divider {
243
- height: 1px;
244
- background: var(--color-ak-border);
245
- }
246
- .ak-popover-item {
247
- display: flex;
248
- align-items: center;
249
- gap: 0.75rem;
250
- padding: 0.5rem 0.75rem;
251
- min-height: 2.25rem;
252
- cursor: pointer;
253
- text-decoration: none;
254
- color: var(--color-ak-text-secondary);
255
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
256
- }
257
- .ak-popover-item:hover { background: var(--color-ak-hover); }
258
- .ak-popover-item:focus { outline: none; }
259
- .ak-popover-item:focus-visible {
260
- outline: 2px solid var(--color-ak-border-focus);
261
- outline-offset: -2px;
262
- }
263
- .ak-popover-item-label {
264
- display: flex;
265
- align-items: center;
266
- gap: 0.5rem;
267
- }
268
- .ak-popover-item-label i {
269
- font-size: var(--size-ak-icon-md);
270
- color: var(--color-ak-text-muted);
271
- }
272
- .ak-popover-item--danger .ak-popover-item-label { color: var(--color-ak-danger-text); }
273
- .ak-popover-item--danger .ak-popover-item-label i { color: var(--color-ak-danger-text); }
274
- .ak-popover-kbd {
275
- font-size: var(--text-ak-xs);
276
- color: var(--color-ak-text-muted);
277
- }
278
- .ak-popover-section {
279
- display: flex;
280
- flex-direction: column;
281
- }
282
-
283
- /* Group popover */
284
- .ak-group-popover {
285
- position: absolute;
286
- background: var(--color-ak-bg);
287
- border: 1px solid var(--color-ak-border);
288
- border-radius: var(--radius-ak-lg);
289
- box-shadow: var(--shadow-ak-lg);
290
- opacity: 0;
291
- visibility: hidden;
292
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
293
- visibility 0s linear var(--duration-ak-base);
294
- z-index: var(--z-ak-dropdown);
295
- }
296
- .ak-group-popover.is-open {
297
- opacity: 1;
298
- visibility: visible;
299
- transition-delay: 0s;
300
- }
301
- .ak-group-popover__item {
302
- display: flex;
303
- align-items: center;
304
- gap: 0.625rem;
305
- padding: 0.5rem 0.75rem;
306
- cursor: pointer;
307
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
308
- }
309
- .ak-group-popover__item:hover { background: var(--color-ak-hover); }
310
- .ak-group-popover__avatar {
311
- width: 1.75rem;
312
- height: 1.75rem;
313
- border-radius: var(--radius-ak-full);
314
- overflow: hidden;
315
- flex-shrink: 0;
316
- }
317
- .ak-group-popover__avatar img { width: 100%; height: 100%; object-fit: cover; }
318
- .ak-group-popover__name {
319
- font-size: var(--text-ak-sm);
320
- font-weight: 500;
321
- color: var(--color-ak-text);
322
- }
323
- .ak-group-popover__status {
324
- width: 8px;
325
- height: 8px;
326
- border-radius: var(--radius-ak-full);
327
- flex-shrink: 0;
328
- }
329
- .ak-group-popover__status--online { background: var(--color-ak-success); }
330
- .ak-group-popover__status--away { background: var(--color-ak-warning); }
331
- .ak-group-popover__status--offline { background: var(--color-ak-text-muted); }
332
-
333
- /* Tab family */
334
- .ak-tab {
335
- display: flex;
336
- align-items: center;
337
- gap: 0.5rem;
338
- padding: 0.5rem 0.75rem;
339
- border: none;
340
- background: none;
341
- cursor: pointer;
342
- font-family: inherit;
343
- font-size: var(--text-ak-sm);
344
- color: var(--color-ak-text-secondary);
345
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
346
- }
347
- .ak-tab:hover { color: var(--color-ak-text); }
348
- .ak-tab:focus { outline: none; }
349
- .ak-tab:focus-visible {
350
- outline: 2px solid var(--color-ak-border-focus);
351
- outline-offset: -2px;
352
- }
353
- .ak-tab[aria-selected="true"] {
354
- color: var(--color-ak-text);
355
- font-weight: 600;
356
- }
357
- .ak-tab-bar {
358
- display: flex;
359
- border-bottom: 1px solid var(--color-ak-border);
360
- }
361
- .ak-tab-item {
362
- display: flex;
363
- align-items: center;
364
- gap: 0.5rem;
365
- padding: 0.5rem 0.75rem;
366
- cursor: pointer;
367
- color: var(--color-ak-text-secondary);
368
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
369
- }
370
- .ak-tab-item:hover { color: var(--color-ak-text); }
371
- .ak-tab-item-active {
372
- color: var(--color-ak-text);
373
- font-weight: 600;
374
- }
375
- .ak-tab-label {
376
- font-size: var(--text-ak-sm);
377
- }
378
- .ak-tab-btn {
379
- display: flex;
380
- align-items: center;
381
- justify-content: center;
382
- gap: 0.5rem;
383
- padding: 0.5rem 0.75rem;
384
- border: none;
385
- background: none;
386
- cursor: pointer;
387
- font-family: inherit;
388
- font-size: var(--text-ak-sm);
389
- color: var(--color-ak-text-secondary);
390
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
391
- }
392
- .ak-tab-btn i {
393
- font-size: var(--size-ak-icon-md);
394
- }
395
- .ak-tab-btn:focus { outline: none; }
396
- .ak-tab-btn:focus-visible {
397
- outline: 2px solid var(--color-ak-border-focus);
398
- outline-offset: -2px;
399
- }
400
- .ak-tab-btn[aria-selected="true"] {
401
- color: var(--color-ak-text);
402
- font-weight: 600;
403
- }
404
-
405
- /* Team dropdown/tabs */
406
- .ak-team-dropdown {
407
- position: absolute;
408
- background: var(--color-ak-bg);
409
- border: 1px solid var(--color-ak-border);
410
- border-radius: var(--radius-ak-lg);
411
- box-shadow: var(--shadow-ak-lg);
412
- opacity: 0;
413
- visibility: hidden;
414
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
415
- visibility 0s linear var(--duration-ak-base);
416
- z-index: var(--z-ak-dropdown);
417
- }
418
- .ak-team-dropdown-open {
419
- opacity: 1;
420
- visibility: visible;
421
- transition-delay: 0s;
422
- }
423
- .ak-team-tab {
424
- display: flex;
425
- align-items: center;
426
- gap: 0.5rem;
427
- padding: 0.5rem 0.75rem;
428
- border: none;
429
- background: none;
430
- cursor: pointer;
431
- font-family: inherit;
432
- font-size: var(--text-ak-sm);
433
- color: var(--color-ak-text-muted);
434
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
435
- }
436
- .ak-team-tab:hover { color: var(--color-ak-text); }
437
- .ak-team-tab:focus { outline: none; }
438
- .ak-team-tab:focus-visible {
439
- outline: 2px solid var(--color-ak-border-focus);
440
- outline-offset: -2px;
441
- }
442
- .ak-team-tab[aria-selected="true"] {
443
- color: var(--color-ak-text);
444
- font-weight: 600;
445
- }
446
- .ak-team-tabs {
447
- display: flex;
448
- gap: 0.25rem;
449
- }
450
-
451
- /* Hamburger (mobile nav trigger) */
452
- .ak-hamburger {
453
- display: flex;
454
- align-items: center;
455
- justify-content: center;
456
- border: none;
457
- background: none;
458
- cursor: pointer;
459
- color: var(--color-ak-text);
460
- }
461
- .ak-hamburger i {
462
- font-size: var(--size-ak-icon-lg);
463
- }
464
- .ak-hamburger:focus { outline: none; }
465
- .ak-hamburger:focus-visible {
466
- outline: 2px solid var(--color-ak-border-focus);
467
- outline-offset: 2px;
468
- }
469
-
470
- /* Topbar */
471
- .ak-topbar {
472
- display: flex;
473
- align-items: center;
474
- justify-content: space-between;
475
- }
476
-
477
- /* Sheet (bottom drawer) */
478
- .ak-sheet {
479
- position: fixed;
480
- bottom: 0;
481
- left: 0;
482
- right: 0;
483
- z-index: var(--z-ak-modal);
484
- max-height: 85vh;
485
- overflow-y: auto;
486
- border-radius: var(--radius-ak-lg) var(--radius-ak-lg) 0 0;
487
- transform: translateY(100%);
488
- transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
489
- }
490
- .ak-sheet-open,
491
- .ak-sheet.ak-open { transform: translateY(0); }
492
- .ak-sheet-backdrop {
493
- position: fixed;
494
- inset: 0;
495
- z-index: var(--z-ak-overlay);
496
- background: var(--color-ak-overlay);
497
- opacity: 0;
498
- transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
499
- }
500
- .ak-sheet-backdrop-open,
501
- .ak-sheet-backdrop.ak-open { opacity: 1; }
502
- .ak-sheet-handle {
503
- display: flex;
504
- justify-content: center;
505
- padding-top: var(--spacing-ak-1);
506
- }
507
- .ak-sheet-overlay {
508
- position: fixed;
509
- inset: 0;
510
- z-index: var(--z-ak-overlay);
511
- background: var(--color-ak-overlay);
512
- opacity: 0;
513
- visibility: hidden;
514
- transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1),
515
- visibility 240ms cubic-bezier(0.4, 0, 0.2, 1);
516
- }
517
- .ak-sheet-overlay-open { opacity: 1; visibility: visible; }
518
-
519
- /* Drawer */
520
- .ak-drawer {
521
- position: fixed;
522
- top: 0;
523
- left: 0;
524
- bottom: 0;
525
- z-index: var(--z-ak-modal);
526
- width: 20rem;
527
- transform: translateX(-100%);
528
- transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
529
- }
530
- .ak-drawer-open { transform: translateX(0); }
531
- .ak-drawer-backdrop {
532
- position: fixed;
533
- inset: 0;
534
- z-index: var(--z-ak-overlay);
535
- background: var(--color-ak-overlay);
536
- opacity: 0;
537
- transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
538
- }
539
- .ak-drawer-backdrop-open,
540
- .ak-drawer-backdrop.ak-open { opacity: 1; }
541
- .ak-drawer-overlay {
542
- position: fixed;
543
- inset: 0;
544
- z-index: var(--z-ak-overlay);
545
- background: var(--color-ak-overlay);
546
- opacity: 0;
547
- visibility: hidden;
548
- transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1),
549
- visibility 240ms cubic-bezier(0.4, 0, 0.2, 1);
550
- }
551
- .ak-drawer-overlay-open { opacity: 1; visibility: visible; }
552
-
553
- /* Command palette */
554
- .ak-cmd-overlay {
555
- position: fixed;
556
- inset: 0;
557
- z-index: var(--z-ak-modal);
558
- background: var(--color-ak-overlay);
559
- opacity: 0;
560
- visibility: hidden;
561
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
562
- visibility 0s linear var(--duration-ak-base);
563
- }
564
- .ak-cmd-overlay-open { opacity: 1; visibility: visible; transition-delay: 0s; }
565
- .ak-cmd-modal {
566
- position: fixed;
567
- top: 20%;
568
- left: 50%;
569
- transform: translateX(-50%) translateY(8px);
570
- z-index: var(--z-ak-modal);
571
- width: 100%;
572
- max-width: 560px;
573
- background: var(--color-ak-bg);
574
- border: 1px solid var(--color-ak-border);
575
- border-radius: var(--radius-ak-lg);
576
- box-shadow: var(--shadow-ak-xl);
577
- opacity: 0;
578
- visibility: hidden;
579
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
580
- transform var(--duration-ak-base) var(--ease-ak-default),
581
- visibility 0s linear var(--duration-ak-base);
582
- }
583
- .ak-cmd-modal-open {
584
- opacity: 1;
585
- visibility: visible;
586
- transform: translateX(-50%) translateY(0);
587
- transition-delay: 0s;
588
- }
589
- .ak-cmd-input {
590
- width: 100%;
591
- padding: 0.75rem 1rem;
592
- border: none;
593
- background: none;
594
- font-family: inherit;
595
- font-size: var(--text-ak-base);
596
- color: var(--color-ak-text);
597
- outline: none;
598
- }
599
- .ak-cmd-input::placeholder { color: var(--color-ak-text-muted); }
600
- .ak-cmd-result {
601
- display: flex;
602
- align-items: center;
603
- gap: 0.75rem;
604
- padding: 0.5rem 1rem;
605
- cursor: pointer;
606
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
607
- }
608
- .ak-cmd-result:hover,
609
- .ak-cmd-result-active { background: var(--color-ak-hover); }
610
-
611
- /* Quick find */
612
- .ak-quickfind {
613
- position: fixed;
614
- top: 20%;
615
- left: 50%;
616
- transform: translateX(-50%) translateY(8px);
617
- z-index: var(--z-ak-modal);
618
- width: 100%;
619
- max-width: 560px;
620
- background: var(--color-ak-bg);
621
- border: 1px solid var(--color-ak-border);
622
- border-radius: var(--radius-ak-lg);
623
- box-shadow: var(--shadow-ak-xl);
624
- opacity: 0;
625
- visibility: hidden;
626
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
627
- transform var(--duration-ak-base) var(--ease-ak-default),
628
- visibility 0s linear var(--duration-ak-base);
629
- }
630
- .ak-quickfind.ak-open {
631
- opacity: 1;
632
- visibility: visible;
633
- transform: translateX(-50%) translateY(0);
634
- transition-delay: 0s;
635
- }
636
- .ak-quickfind-backdrop {
637
- position: fixed;
638
- inset: 0;
639
- z-index: var(--z-ak-overlay);
640
- background: var(--color-ak-overlay);
641
- opacity: 0;
642
- transition: opacity var(--duration-ak-base) var(--ease-ak-default);
643
- }
644
- .ak-quickfind-backdrop.ak-open { opacity: 1; }
645
- .ak-quickfind-input {
646
- width: 100%;
647
- padding: 0.75rem 1rem;
648
- border: none;
649
- background: none;
650
- font-family: inherit;
651
- font-size: var(--text-ak-base);
652
- color: var(--color-ak-text);
653
- outline: none;
654
- }
655
- .ak-quickfind-input::placeholder { color: var(--color-ak-text-muted); }
656
- .ak-quickfind-input-wrap {
657
- display: flex;
658
- align-items: center;
659
- border-bottom: 1px solid var(--color-ak-border);
660
- }
661
- .ak-quickfind-results {
662
- max-height: 320px;
663
- overflow-y: auto;
664
- }
665
- .ak-quickfind-group-label {
666
- font-size: var(--text-ak-xs);
667
- font-weight: 600;
668
- letter-spacing: 0.05em;
669
- text-transform: uppercase;
670
- color: var(--color-ak-text-muted);
671
- padding: 0.5rem 1rem;
672
- }
673
- .ak-quickfind-item {
674
- display: flex;
675
- align-items: center;
676
- gap: 0.75rem;
677
- padding: 0.5rem 1rem;
678
- cursor: pointer;
679
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
680
- }
681
- .ak-quickfind-item:hover,
682
- .ak-quickfind-item.ak-highlighted { background: var(--color-ak-hover); }
683
- .ak-quickfind-item:focus { outline: none; }
684
- .ak-quickfind-item:focus-visible {
685
- outline: 2px solid var(--color-ak-border-focus);
686
- outline-offset: -2px;
687
- }
688
- .ak-quickfind-empty {
689
- padding: 2rem 1rem;
690
- text-align: center;
691
- color: var(--color-ak-text-muted);
692
- }
693
-
694
- /* Search trigger / input */
695
- .ak-search-trigger {
696
- display: flex;
697
- align-items: center;
698
- gap: 0.5rem;
699
- padding: 0.5rem 0.75rem;
700
- border-radius: var(--radius-ak-md);
701
- border: 1px solid var(--color-ak-border);
702
- background: none;
703
- color: var(--color-ak-text-muted);
704
- cursor: pointer;
705
- font-family: inherit;
706
- font-size: var(--text-ak-sm);
707
- transition: border-color var(--duration-ak-fast) var(--ease-ak-default);
708
- }
709
- .ak-search-trigger:hover { border-color: var(--color-ak-border-strong); }
710
- .ak-search-trigger:focus { outline: none; }
711
- .ak-search-trigger:focus-visible {
712
- outline: 2px solid var(--color-ak-border-focus);
713
- outline-offset: 2px;
714
- }
715
- .ak-search-input {
716
- width: 100%;
717
- border: none;
718
- background: none;
719
- font-family: inherit;
720
- font-size: var(--text-ak-sm);
721
- color: var(--color-ak-text);
722
- outline: none;
723
- }
724
- .ak-search-input::placeholder { color: var(--color-ak-text-muted); }
725
- .ak-search-kbd {
726
- font-size: var(--text-ak-xs);
727
- color: var(--color-ak-text-muted);
728
- padding: 0.125rem 0.375rem;
729
- border: 1px solid var(--color-ak-border);
730
- border-radius: var(--radius-ak-sm);
731
- }
732
-
733
- /* Keyboard shortcut badge */
734
- .ak-kbd {
735
- font-size: var(--text-ak-xs);
736
- color: var(--color-ak-text-muted);
737
- padding: 0.125rem 0.375rem;
738
- border: 1px solid var(--color-ak-border);
739
- border-radius: var(--radius-ak-sm);
740
- font-family: inherit;
741
- }
742
-
743
- /* Secondary links */
744
- .ak-secondary-link {
745
- display: flex;
746
- align-items: center;
747
- gap: 0.75rem;
748
- padding: 0.5rem 0.75rem;
749
- border-radius: var(--radius-ak-md);
750
- color: var(--color-ak-text-secondary);
751
- cursor: pointer;
752
- text-decoration: none;
753
- font-size: var(--text-ak-sm);
754
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
755
- color var(--duration-ak-fast) var(--ease-ak-default);
756
- }
757
- .ak-secondary-link i {
758
- font-size: var(--size-ak-icon-md);
759
- color: var(--color-ak-text-muted);
760
- }
761
- .ak-secondary-link:hover { background: var(--color-ak-hover); }
762
- .ak-secondary-link:focus { outline: none; }
763
- .ak-secondary-link:focus-visible {
764
- outline: 2px solid var(--color-ak-border-focus);
765
- outline-offset: -2px;
766
- }
767
-
768
- /* Action link */
769
- .ak-action-link {
770
- display: flex;
771
- align-items: center;
772
- gap: 0.75rem;
773
- padding: 0.5rem 0.75rem;
774
- border-radius: var(--radius-ak-md);
775
- color: var(--color-ak-text-secondary);
776
- cursor: pointer;
777
- text-decoration: none;
778
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
779
- }
780
- .ak-action-link:hover { background: var(--color-ak-hover); }
781
- .ak-action-link:focus { outline: none; }
782
- .ak-action-link:focus-visible {
783
- outline: 2px solid var(--color-ak-border-focus);
784
- outline-offset: -2px;
785
- }
786
- .ak-action-link--danger { color: var(--color-ak-danger-text); }
787
-
788
- /* Footer link */
789
- .ak-footer-link {
790
- display: flex;
791
- align-items: center;
792
- gap: 0.75rem;
793
- padding: 0.5rem 0.75rem;
794
- border-radius: var(--radius-ak-md);
795
- color: var(--color-ak-text-muted);
796
- cursor: pointer;
797
- text-decoration: none;
798
- font-size: var(--text-ak-sm);
799
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
800
- color var(--duration-ak-fast) var(--ease-ak-default);
801
- }
802
- .ak-footer-link:hover { background: var(--color-ak-hover); color: var(--color-ak-text); }
803
- .ak-footer-link:focus { outline: none; }
804
- .ak-footer-link:focus-visible {
805
- outline: 2px solid var(--color-ak-border-focus);
806
- outline-offset: -2px;
807
- }
808
-
809
- /* Plus button (add new) */
810
- .ak-plus-btn {
811
- display: flex;
812
- align-items: center;
813
- justify-content: center;
814
- border: none;
815
- background: none;
816
- cursor: pointer;
817
- color: var(--color-ak-text-muted);
818
- opacity: 0;
819
- transition: opacity var(--duration-ak-fast) var(--ease-ak-default),
820
- color var(--duration-ak-fast) var(--ease-ak-default);
821
- }
822
- .ak-plus-btn i {
823
- font-size: var(--size-ak-icon-sm);
824
- }
825
- .ak-plus-btn:focus { outline: none; }
826
- .ak-plus-btn:focus-visible {
827
- outline: 2px solid var(--color-ak-border-focus);
828
- outline-offset: 2px;
829
- }
830
-
831
- /* Project links */
832
- .ak-project-link {
833
- display: flex;
834
- align-items: center;
835
- gap: 0.75rem;
836
- padding: 0.5rem 0.75rem;
837
- border-radius: var(--radius-ak-md);
838
- color: var(--color-ak-text-secondary);
839
- cursor: pointer;
840
- text-decoration: none;
841
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
842
- }
843
- .ak-project-link:hover { background: var(--color-ak-hover); }
844
- .ak-project-link:focus { outline: none; }
845
- .ak-project-link:focus-visible {
846
- outline: 2px solid var(--color-ak-border-focus);
847
- outline-offset: -2px;
848
- }
849
- .ak-project-link[aria-current="page"] {
850
- background: var(--color-ak-active);
851
- color: var(--color-ak-text);
852
- }
853
-
854
- /* New project button */
855
- .ak-new-project-btn {
856
- display: flex;
857
- align-items: center;
858
- gap: 0.75rem;
859
- padding: 0.5rem 0.75rem;
860
- border-radius: var(--radius-ak-md);
861
- border: 1px dashed var(--color-ak-border);
862
- background: none;
863
- color: var(--color-ak-text-muted);
864
- cursor: pointer;
865
- font-family: inherit;
866
- font-size: var(--text-ak-sm);
867
- transition: border-color var(--duration-ak-fast) var(--ease-ak-default),
868
- color var(--duration-ak-fast) var(--ease-ak-default);
869
- }
870
- .ak-new-project-btn:hover {
871
- border-color: var(--color-ak-border-strong);
872
- color: var(--color-ak-text);
873
- }
874
- .ak-new-project-btn:focus { outline: none; }
875
- .ak-new-project-btn:focus-visible {
876
- outline: 2px solid var(--color-ak-border-focus);
877
- outline-offset: 2px;
878
- }
879
-
880
- /* Overlay nav */
881
- .ak-overlay-nav {
882
- position: fixed;
883
- inset: 0;
884
- z-index: var(--z-ak-modal);
885
- background: var(--color-ak-bg);
886
- opacity: 0;
887
- visibility: hidden;
888
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
889
- visibility 0s linear var(--duration-ak-base);
890
- }
891
- .ak-overlay-nav-open {
892
- opacity: 1;
893
- visibility: visible;
894
- transition-delay: 0s;
895
- }
896
-
897
- /* Theme toggle */
898
- .ak-theme-toggle {
899
- display: flex;
900
- align-items: center;
901
- justify-content: center;
902
- width: 2rem;
903
- height: 2rem;
904
- border-radius: var(--radius-ak-md);
905
- border: none;
906
- background: none;
907
- color: var(--color-ak-text-secondary);
908
- cursor: pointer;
909
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
910
- color var(--duration-ak-fast) var(--ease-ak-default);
911
- }
912
- .ak-theme-toggle i {
913
- font-size: var(--size-ak-icon-md);
914
- }
915
- .ak-theme-toggle:hover {
916
- background: var(--color-ak-hover);
917
- color: var(--color-ak-text);
918
- }
919
- .ak-theme-toggle:focus { outline: none; }
920
- .ak-theme-toggle:focus-visible {
921
- outline: 2px solid var(--color-ak-border-focus);
922
- outline-offset: 2px;
923
- }
924
-
925
- /* Theme pill toggles */
926
- .ak-theme-pill {
927
- display: flex;
928
- align-items: center;
929
- border: 1px solid var(--color-ak-border);
930
- border-radius: var(--radius-ak-full);
931
- padding: 0.25rem;
932
- }
933
- .ak-theme-pill-btn {
934
- display: flex;
935
- align-items: center;
936
- justify-content: center;
937
- width: 2rem;
938
- height: 2rem;
939
- border-radius: var(--radius-ak-full);
940
- border: none;
941
- background: none;
942
- color: var(--color-ak-text-muted);
943
- cursor: pointer;
944
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
945
- color var(--duration-ak-fast) var(--ease-ak-default);
946
- }
947
- .ak-theme-pill-btn i {
948
- font-size: var(--size-ak-icon-sm);
949
- }
950
- .ak-theme-pill-btn:hover {
951
- color: var(--color-ak-text);
952
- }
953
- .ak-theme-pill-btn:focus { outline: none; }
954
- .ak-theme-pill-btn:focus-visible {
955
- outline: 2px solid var(--color-ak-border-focus);
956
- outline-offset: 2px;
957
- }
958
- .ak-theme-pill-active {
959
- background: var(--color-ak-active);
960
- color: var(--color-ak-text);
961
- }
962
- .ak-theme-pill-active i {
963
- color: var(--color-ak-text);
964
- }
965
-
966
- /* Menu button */
967
- .ak-menu-btn {
968
- display: flex;
969
- align-items: center;
970
- justify-content: center;
971
- border: none;
972
- background: none;
973
- cursor: pointer;
974
- color: var(--color-ak-text-secondary);
975
- transition: color var(--duration-ak-fast) var(--ease-ak-default);
976
- }
977
- .ak-menu-btn i {
978
- font-size: var(--size-ak-icon-lg);
979
- }
980
- .ak-menu-btn:hover { color: var(--color-ak-text); }
981
- .ak-menu-btn:focus-visible {
982
- outline: 2px solid var(--color-ak-border-focus);
983
- outline-offset: 2px;
984
- }
985
-
986
- /* Header */
987
- .ak-header {
988
- display: flex;
989
- align-items: center;
990
- justify-content: space-between;
991
- }
992
-
993
- /* Trigger (generic) */
994
- .ak-trigger {
995
- display: flex;
996
- align-items: center;
997
- justify-content: center;
998
- border: none;
999
- background: var(--color-ak-primary);
1000
- color: var(--color-ak-on-primary);
1001
- border-radius: var(--radius-ak-md);
1002
- cursor: pointer;
1003
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1004
- }
1005
- .ak-trigger:hover { background: var(--color-ak-primary-hover); }
1006
- .ak-trigger:focus { outline: none; }
1007
- .ak-trigger:focus-visible {
1008
- outline: 2px solid var(--color-ak-border-focus);
1009
- outline-offset: 2px;
1010
- }
1011
-
1012
- /* Org links */
1013
- .ak-org-link {
1014
- display: flex;
1015
- align-items: center;
1016
- gap: 0.75rem;
1017
- padding: 0.5rem 0.75rem;
1018
- border-radius: var(--radius-ak-md);
1019
- cursor: pointer;
1020
- text-decoration: none;
1021
- color: var(--color-ak-text-secondary);
1022
- transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1023
- }
1024
- .ak-org-link:hover { background: var(--color-ak-hover); }
1025
- .ak-org-link:focus { outline: none; }
1026
- .ak-org-link:focus-visible {
1027
- outline: 2px solid var(--color-ak-border-focus);
1028
- outline-offset: -2px;
1029
- }
1030
- .ak-org-logo {
1031
- width: 2rem;
1032
- height: 2rem;
1033
- border-radius: var(--radius-ak-md);
1034
- display: flex;
1035
- align-items: center;
1036
- justify-content: center;
1037
- flex-shrink: 0;
1038
- }
1039
- .ak-org-header {
1040
- display: flex;
1041
- align-items: center;
1042
- gap: 0.75rem;
1043
- }
1044
- .ak-org-popover {
1045
- position: absolute;
1046
- background: var(--color-ak-bg);
1047
- border: 1px solid var(--color-ak-border);
1048
- border-radius: var(--radius-ak-lg);
1049
- box-shadow: var(--shadow-ak-lg);
1050
- opacity: 0;
1051
- visibility: hidden;
1052
- transition: opacity var(--duration-ak-base) var(--ease-ak-default),
1053
- visibility 0s linear var(--duration-ak-base);
1054
- z-index: var(--z-ak-dropdown);
1055
- }
1056
-
1057
-
1
+
2
+
3
+ /* Navigation primitives -- links, triggers, tabs, popovers, command palette, search, drawers, sheets */
4
+
5
+
6
+
7
+ /* Nav link */
8
+ .ak-nav-link {
9
+ display: flex;
10
+ align-items: center;
11
+ gap: 0.75rem;
12
+ padding: 0.5rem 0.75rem;
13
+ min-height: 2.25rem;
14
+ border-radius: var(--radius-ak-md);
15
+ color: var(--color-ak-text-secondary);
16
+ cursor: pointer;
17
+ text-decoration: none;
18
+ font-size: var(--text-ak-sm);
19
+ font-weight: 500;
20
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
21
+ color var(--duration-ak-fast) var(--ease-ak-default);
22
+ }
23
+ .ak-nav-link i {
24
+ font-size: var(--size-ak-icon-md);
25
+ flex-shrink: 0;
26
+ }
27
+ .ak-nav-link:hover { background: var(--color-ak-hover); }
28
+ .ak-nav-link:focus { outline: none; }
29
+ .ak-nav-link:focus-visible {
30
+ outline: 2px solid var(--color-ak-border-focus);
31
+ outline-offset: -2px;
32
+ }
33
+ .ak-nav-link[aria-current="page"] {
34
+ background: var(--color-ak-active);
35
+ color: var(--color-ak-text);
36
+ font-weight: 600;
37
+ }
38
+ .ak-nav-link[aria-current="page"] i {
39
+ color: var(--color-ak-text);
40
+ }
41
+ .ak-nav-link-badge {
42
+ font-size: var(--text-ak-xs);
43
+ font-weight: 600;
44
+ color: var(--color-ak-text-muted);
45
+ }
46
+
47
+ /* Nav trigger (collapsible section header) */
48
+ .ak-nav-trigger {
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: space-between;
52
+ gap: 0.75rem;
53
+ width: 100%;
54
+ padding: 0.5rem 0.75rem;
55
+ min-height: 2.25rem;
56
+ border: none;
57
+ background: none;
58
+ cursor: pointer;
59
+ font-family: inherit;
60
+ font-size: var(--text-ak-sm);
61
+ color: var(--color-ak-text-secondary);
62
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
63
+ color var(--duration-ak-fast) var(--ease-ak-default);
64
+ }
65
+ .ak-nav-trigger:hover { background: var(--color-ak-hover); }
66
+ .ak-nav-trigger:focus { outline: none; }
67
+ .ak-nav-trigger:focus-visible {
68
+ outline: 2px solid var(--color-ak-border-focus);
69
+ outline-offset: -2px;
70
+ }
71
+ .ak-nav-trigger[aria-expanded="true"] .ak-chevron {
72
+ transform: rotate(180deg);
73
+ }
74
+ .ak-chevron {
75
+ transition: transform var(--duration-ak-base) var(--ease-ak-default);
76
+ }
77
+
78
+ /* Nav body (collapsible content) */
79
+ .ak-nav-body {
80
+ overflow: hidden;
81
+ max-height: 600px;
82
+ transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
83
+ opacity var(--duration-ak-base) var(--ease-ak-default);
84
+ opacity: 1;
85
+ }
86
+
87
+ /* Nav group / section */
88
+ .ak-nav-group {
89
+ display: flex;
90
+ flex-direction: column;
91
+ gap: 0.125rem;
92
+ }
93
+ .ak-nav-group-label {
94
+ font-size: var(--text-ak-xs);
95
+ font-weight: 600;
96
+ letter-spacing: 0.05em;
97
+ text-transform: uppercase;
98
+ color: var(--color-ak-text-muted);
99
+ padding: 0.5rem 0.75rem;
100
+ }
101
+ .ak-nav-section {
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: 0.125rem;
105
+ }
106
+ .ak-nav-section-label {
107
+ font-size: var(--text-ak-xs);
108
+ font-weight: 600;
109
+ letter-spacing: 0.05em;
110
+ text-transform: uppercase;
111
+ color: var(--color-ak-text-muted);
112
+ padding: 0.5rem 0.75rem;
113
+ }
114
+ .ak-nav-badge {
115
+ font-size: var(--text-ak-xs);
116
+ font-weight: 600;
117
+ padding: 0.125rem 0.375rem;
118
+ border-radius: var(--radius-ak-full);
119
+ background: var(--color-ak-primary);
120
+ color: var(--color-ak-on-primary);
121
+ }
122
+
123
+ /* Sub link / sub list (nested navigation) */
124
+ .ak-sub-link {
125
+ position: relative;
126
+ display: flex;
127
+ align-items: center;
128
+ gap: 0.5rem;
129
+ padding: 0.375rem 0.75rem;
130
+ border-radius: var(--radius-ak-md);
131
+ font-size: var(--text-ak-sm);
132
+ color: var(--color-ak-text-secondary);
133
+ cursor: pointer;
134
+ text-decoration: none;
135
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
136
+ color var(--duration-ak-fast) var(--ease-ak-default);
137
+ }
138
+ .ak-sub-link::before {
139
+ content: '';
140
+ width: 6px;
141
+ height: 6px;
142
+ border-radius: var(--radius-ak-full);
143
+ background: var(--color-ak-border);
144
+ flex-shrink: 0;
145
+ }
146
+ .ak-sub-link:hover { background: var(--color-ak-hover); }
147
+ .ak-sub-link:hover::before { background: var(--color-ak-text-muted); }
148
+ .ak-sub-link:focus { outline: none; }
149
+ .ak-sub-link:focus-visible {
150
+ outline: 2px solid var(--color-ak-border-focus);
151
+ outline-offset: -2px;
152
+ }
153
+ .ak-sub-link[aria-current="page"] {
154
+ background: var(--color-ak-active);
155
+ color: var(--color-ak-text);
156
+ }
157
+ .ak-sub-link[aria-current="page"]::before {
158
+ background: var(--color-ak-primary);
159
+ }
160
+ .ak-sub-list {
161
+ display: flex;
162
+ flex-direction: column;
163
+ gap: 0.125rem;
164
+ padding-left: 2rem;
165
+ }
166
+ .ak-sub-list::before {
167
+ content: '';
168
+ position: absolute;
169
+ left: 1.25rem;
170
+ top: 0;
171
+ bottom: 0;
172
+ width: 1px;
173
+ background: var(--color-ak-border);
174
+ }
175
+
176
+ /* Submenu */
177
+ .ak-submenu {
178
+ overflow: hidden;
179
+ max-height: 0;
180
+ opacity: 0;
181
+ transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
182
+ opacity var(--duration-ak-base) var(--ease-ak-default);
183
+ }
184
+ .ak-submenu-open {
185
+ max-height: 600px;
186
+ opacity: 1;
187
+ }
188
+ .ak-subnav {
189
+ overflow: hidden;
190
+ max-height: 0;
191
+ opacity: 0;
192
+ transition: max-height var(--duration-ak-slow) var(--ease-ak-default),
193
+ opacity var(--duration-ak-base) var(--ease-ak-default);
194
+ }
195
+ .ak-subnav.ak-subnav-open {
196
+ max-height: 600px;
197
+ opacity: 1;
198
+ }
199
+
200
+ /* Popover family */
201
+ .ak-popover {
202
+ position: absolute;
203
+ background: var(--color-ak-bg);
204
+ border: 1px solid var(--color-ak-border);
205
+ border-radius: var(--radius-ak-lg);
206
+ box-shadow: var(--shadow-ak-lg);
207
+ opacity: 0;
208
+ visibility: hidden;
209
+ transform: translateY(4px);
210
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
211
+ transform var(--duration-ak-base) var(--ease-ak-default),
212
+ visibility 0s linear var(--duration-ak-base);
213
+ z-index: var(--z-ak-dropdown);
214
+ }
215
+ .ak-popover-open,
216
+ .ak-popover-panel.ak-open {
217
+ opacity: 1;
218
+ visibility: visible;
219
+ transform: translateY(0);
220
+ transition-delay: 0s;
221
+ }
222
+ .ak-popover-panel {
223
+ position: absolute;
224
+ background: var(--color-ak-bg);
225
+ border: 1px solid var(--color-ak-border);
226
+ border-radius: var(--radius-ak-lg);
227
+ box-shadow: var(--shadow-ak-lg);
228
+ opacity: 0;
229
+ visibility: hidden;
230
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
231
+ visibility 0s linear var(--duration-ak-base);
232
+ z-index: var(--z-ak-dropdown);
233
+ }
234
+ .ak-popover-wrap { position: relative; }
235
+ .ak-popover-header {
236
+ display: flex;
237
+ align-items: center;
238
+ gap: 0.75rem;
239
+ padding: 0.75rem;
240
+ border-bottom: 1px solid var(--color-ak-border);
241
+ }
242
+ .ak-popover-divider {
243
+ height: 1px;
244
+ background: var(--color-ak-border);
245
+ }
246
+ .ak-popover-item {
247
+ display: flex;
248
+ align-items: center;
249
+ gap: 0.75rem;
250
+ padding: 0.5rem 0.75rem;
251
+ min-height: 2.25rem;
252
+ cursor: pointer;
253
+ text-decoration: none;
254
+ color: var(--color-ak-text-secondary);
255
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
256
+ }
257
+ .ak-popover-item:hover { background: var(--color-ak-hover); }
258
+ .ak-popover-item:focus { outline: none; }
259
+ .ak-popover-item:focus-visible {
260
+ outline: 2px solid var(--color-ak-border-focus);
261
+ outline-offset: -2px;
262
+ }
263
+ .ak-popover-item-label {
264
+ display: flex;
265
+ align-items: center;
266
+ gap: 0.5rem;
267
+ }
268
+ .ak-popover-item-label i {
269
+ font-size: var(--size-ak-icon-md);
270
+ color: var(--color-ak-text-muted);
271
+ }
272
+ .ak-popover-item--danger .ak-popover-item-label { color: var(--color-ak-danger-text); }
273
+ .ak-popover-item--danger .ak-popover-item-label i { color: var(--color-ak-danger-text); }
274
+ .ak-popover-kbd {
275
+ font-size: var(--text-ak-xs);
276
+ color: var(--color-ak-text-muted);
277
+ }
278
+ .ak-popover-section {
279
+ display: flex;
280
+ flex-direction: column;
281
+ }
282
+
283
+ /* Group popover */
284
+ .ak-group-popover {
285
+ position: absolute;
286
+ background: var(--color-ak-bg);
287
+ border: 1px solid var(--color-ak-border);
288
+ border-radius: var(--radius-ak-lg);
289
+ box-shadow: var(--shadow-ak-lg);
290
+ opacity: 0;
291
+ visibility: hidden;
292
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
293
+ visibility 0s linear var(--duration-ak-base);
294
+ z-index: var(--z-ak-dropdown);
295
+ }
296
+ .ak-group-popover.is-open {
297
+ opacity: 1;
298
+ visibility: visible;
299
+ transition-delay: 0s;
300
+ }
301
+ .ak-group-popover__item {
302
+ display: flex;
303
+ align-items: center;
304
+ gap: 0.625rem;
305
+ padding: 0.5rem 0.75rem;
306
+ cursor: pointer;
307
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
308
+ }
309
+ .ak-group-popover__item:hover { background: var(--color-ak-hover); }
310
+ .ak-group-popover__avatar {
311
+ width: 1.75rem;
312
+ height: 1.75rem;
313
+ border-radius: var(--radius-ak-full);
314
+ overflow: hidden;
315
+ flex-shrink: 0;
316
+ }
317
+ .ak-group-popover__avatar img { width: 100%; height: 100%; object-fit: cover; }
318
+ .ak-group-popover__name {
319
+ font-size: var(--text-ak-sm);
320
+ font-weight: 500;
321
+ color: var(--color-ak-text);
322
+ }
323
+ .ak-group-popover__status {
324
+ width: 8px;
325
+ height: 8px;
326
+ border-radius: var(--radius-ak-full);
327
+ flex-shrink: 0;
328
+ }
329
+ .ak-group-popover__status--online { background: var(--color-ak-success); }
330
+ .ak-group-popover__status--away { background: var(--color-ak-warning); }
331
+ .ak-group-popover__status--offline { background: var(--color-ak-text-muted); }
332
+
333
+ /* Tab family */
334
+ .ak-tab {
335
+ display: flex;
336
+ align-items: center;
337
+ gap: 0.5rem;
338
+ padding: 0.5rem 0.75rem;
339
+ border: none;
340
+ background: none;
341
+ cursor: pointer;
342
+ font-family: inherit;
343
+ font-size: var(--text-ak-sm);
344
+ color: var(--color-ak-text-secondary);
345
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
346
+ }
347
+ .ak-tab:hover { color: var(--color-ak-text); }
348
+ .ak-tab:focus { outline: none; }
349
+ .ak-tab:focus-visible {
350
+ outline: 2px solid var(--color-ak-border-focus);
351
+ outline-offset: -2px;
352
+ }
353
+ .ak-tab[aria-selected="true"] {
354
+ color: var(--color-ak-text);
355
+ font-weight: 600;
356
+ }
357
+ .ak-tab-bar {
358
+ display: flex;
359
+ border-bottom: 1px solid var(--color-ak-border);
360
+ }
361
+ .ak-tab-item {
362
+ display: flex;
363
+ align-items: center;
364
+ gap: 0.5rem;
365
+ padding: 0.5rem 0.75rem;
366
+ cursor: pointer;
367
+ color: var(--color-ak-text-secondary);
368
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
369
+ }
370
+ .ak-tab-item:hover { color: var(--color-ak-text); }
371
+ .ak-tab-item-active {
372
+ color: var(--color-ak-text);
373
+ font-weight: 600;
374
+ }
375
+ .ak-tab-label {
376
+ font-size: var(--text-ak-sm);
377
+ }
378
+ .ak-tab-btn {
379
+ display: flex;
380
+ align-items: center;
381
+ justify-content: center;
382
+ gap: 0.5rem;
383
+ padding: 0.5rem 0.75rem;
384
+ border: none;
385
+ background: none;
386
+ cursor: pointer;
387
+ font-family: inherit;
388
+ font-size: var(--text-ak-sm);
389
+ color: var(--color-ak-text-secondary);
390
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
391
+ }
392
+ .ak-tab-btn i {
393
+ font-size: var(--size-ak-icon-md);
394
+ }
395
+ .ak-tab-btn:focus { outline: none; }
396
+ .ak-tab-btn:focus-visible {
397
+ outline: 2px solid var(--color-ak-border-focus);
398
+ outline-offset: -2px;
399
+ }
400
+ .ak-tab-btn[aria-selected="true"] {
401
+ color: var(--color-ak-text);
402
+ font-weight: 600;
403
+ }
404
+
405
+ /* Team dropdown/tabs */
406
+ .ak-team-dropdown {
407
+ position: absolute;
408
+ background: var(--color-ak-bg);
409
+ border: 1px solid var(--color-ak-border);
410
+ border-radius: var(--radius-ak-lg);
411
+ box-shadow: var(--shadow-ak-lg);
412
+ opacity: 0;
413
+ visibility: hidden;
414
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
415
+ visibility 0s linear var(--duration-ak-base);
416
+ z-index: var(--z-ak-dropdown);
417
+ }
418
+ .ak-team-dropdown-open {
419
+ opacity: 1;
420
+ visibility: visible;
421
+ transition-delay: 0s;
422
+ }
423
+ .ak-team-tab {
424
+ display: flex;
425
+ align-items: center;
426
+ gap: 0.5rem;
427
+ padding: 0.5rem 0.75rem;
428
+ border: none;
429
+ background: none;
430
+ cursor: pointer;
431
+ font-family: inherit;
432
+ font-size: var(--text-ak-sm);
433
+ color: var(--color-ak-text-muted);
434
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
435
+ }
436
+ .ak-team-tab:hover { color: var(--color-ak-text); }
437
+ .ak-team-tab:focus { outline: none; }
438
+ .ak-team-tab:focus-visible {
439
+ outline: 2px solid var(--color-ak-border-focus);
440
+ outline-offset: -2px;
441
+ }
442
+ .ak-team-tab[aria-selected="true"] {
443
+ color: var(--color-ak-text);
444
+ font-weight: 600;
445
+ }
446
+ .ak-team-tabs {
447
+ display: flex;
448
+ gap: 0.25rem;
449
+ }
450
+
451
+ /* Hamburger (mobile nav trigger) */
452
+ .ak-hamburger {
453
+ display: flex;
454
+ align-items: center;
455
+ justify-content: center;
456
+ border: none;
457
+ background: none;
458
+ cursor: pointer;
459
+ color: var(--color-ak-text);
460
+ }
461
+ .ak-hamburger i {
462
+ font-size: var(--size-ak-icon-lg);
463
+ }
464
+ .ak-hamburger:focus { outline: none; }
465
+ .ak-hamburger:focus-visible {
466
+ outline: 2px solid var(--color-ak-border-focus);
467
+ outline-offset: 2px;
468
+ }
469
+
470
+ /* Topbar */
471
+ .ak-topbar {
472
+ display: flex;
473
+ align-items: center;
474
+ justify-content: space-between;
475
+ }
476
+
477
+ /* Sheet (bottom drawer) */
478
+ .ak-sheet {
479
+ position: fixed;
480
+ bottom: 0;
481
+ left: 0;
482
+ right: 0;
483
+ z-index: var(--z-ak-modal);
484
+ max-height: 85vh;
485
+ overflow-y: auto;
486
+ border-radius: var(--radius-ak-lg) var(--radius-ak-lg) 0 0;
487
+ transform: translateY(100%);
488
+ transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
489
+ }
490
+ .ak-sheet-open,
491
+ .ak-sheet.ak-open { transform: translateY(0); }
492
+ .ak-sheet-backdrop {
493
+ position: fixed;
494
+ inset: 0;
495
+ z-index: var(--z-ak-overlay);
496
+ background: var(--color-ak-overlay);
497
+ opacity: 0;
498
+ transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
499
+ }
500
+ .ak-sheet-backdrop-open,
501
+ .ak-sheet-backdrop.ak-open { opacity: 1; }
502
+ .ak-sheet-handle {
503
+ display: flex;
504
+ justify-content: center;
505
+ padding-top: var(--spacing-ak-1);
506
+ }
507
+ .ak-sheet-overlay {
508
+ position: fixed;
509
+ inset: 0;
510
+ z-index: var(--z-ak-overlay);
511
+ background: var(--color-ak-overlay);
512
+ opacity: 0;
513
+ visibility: hidden;
514
+ transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1),
515
+ visibility 240ms cubic-bezier(0.4, 0, 0.2, 1);
516
+ }
517
+ .ak-sheet-overlay-open { opacity: 1; visibility: visible; }
518
+
519
+ /* Drawer */
520
+ .ak-drawer {
521
+ position: fixed;
522
+ top: 0;
523
+ left: 0;
524
+ bottom: 0;
525
+ z-index: var(--z-ak-modal);
526
+ width: 20rem;
527
+ transform: translateX(-100%);
528
+ transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1);
529
+ }
530
+ .ak-drawer-open { transform: translateX(0); }
531
+ .ak-drawer-backdrop {
532
+ position: fixed;
533
+ inset: 0;
534
+ z-index: var(--z-ak-overlay);
535
+ background: var(--color-ak-overlay);
536
+ opacity: 0;
537
+ transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1);
538
+ }
539
+ .ak-drawer-backdrop-open,
540
+ .ak-drawer-backdrop.ak-open { opacity: 1; }
541
+ .ak-drawer-overlay {
542
+ position: fixed;
543
+ inset: 0;
544
+ z-index: var(--z-ak-overlay);
545
+ background: var(--color-ak-overlay);
546
+ opacity: 0;
547
+ visibility: hidden;
548
+ transition: opacity 240ms cubic-bezier(0.4, 0, 0.2, 1),
549
+ visibility 240ms cubic-bezier(0.4, 0, 0.2, 1);
550
+ }
551
+ .ak-drawer-overlay-open { opacity: 1; visibility: visible; }
552
+
553
+ /* Command palette */
554
+ .ak-cmd-overlay {
555
+ position: fixed;
556
+ inset: 0;
557
+ z-index: var(--z-ak-modal);
558
+ background: var(--color-ak-overlay);
559
+ opacity: 0;
560
+ visibility: hidden;
561
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
562
+ visibility 0s linear var(--duration-ak-base);
563
+ }
564
+ .ak-cmd-overlay-open { opacity: 1; visibility: visible; transition-delay: 0s; }
565
+ .ak-cmd-modal {
566
+ position: fixed;
567
+ top: 20%;
568
+ left: 50%;
569
+ transform: translateX(-50%) translateY(8px);
570
+ z-index: var(--z-ak-modal);
571
+ width: 100%;
572
+ max-width: 560px;
573
+ background: var(--color-ak-bg);
574
+ border: 1px solid var(--color-ak-border);
575
+ border-radius: var(--radius-ak-lg);
576
+ box-shadow: var(--shadow-ak-xl);
577
+ opacity: 0;
578
+ visibility: hidden;
579
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
580
+ transform var(--duration-ak-base) var(--ease-ak-default),
581
+ visibility 0s linear var(--duration-ak-base);
582
+ }
583
+ .ak-cmd-modal-open {
584
+ opacity: 1;
585
+ visibility: visible;
586
+ transform: translateX(-50%) translateY(0);
587
+ transition-delay: 0s;
588
+ }
589
+ .ak-cmd-input {
590
+ width: 100%;
591
+ padding: 0.75rem 1rem;
592
+ border: none;
593
+ background: none;
594
+ font-family: inherit;
595
+ font-size: var(--text-ak-base);
596
+ color: var(--color-ak-text);
597
+ outline: none;
598
+ }
599
+ .ak-cmd-input::placeholder { color: var(--color-ak-text-muted); }
600
+ .ak-cmd-result {
601
+ display: flex;
602
+ align-items: center;
603
+ gap: 0.75rem;
604
+ padding: 0.5rem 1rem;
605
+ cursor: pointer;
606
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
607
+ }
608
+ .ak-cmd-result:hover,
609
+ .ak-cmd-result-active { background: var(--color-ak-hover); }
610
+
611
+ /* Quick find */
612
+ .ak-quickfind {
613
+ position: fixed;
614
+ top: 20%;
615
+ left: 50%;
616
+ transform: translateX(-50%) translateY(8px);
617
+ z-index: var(--z-ak-modal);
618
+ width: 100%;
619
+ max-width: 560px;
620
+ background: var(--color-ak-bg);
621
+ border: 1px solid var(--color-ak-border);
622
+ border-radius: var(--radius-ak-lg);
623
+ box-shadow: var(--shadow-ak-xl);
624
+ opacity: 0;
625
+ visibility: hidden;
626
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
627
+ transform var(--duration-ak-base) var(--ease-ak-default),
628
+ visibility 0s linear var(--duration-ak-base);
629
+ }
630
+ .ak-quickfind.ak-open {
631
+ opacity: 1;
632
+ visibility: visible;
633
+ transform: translateX(-50%) translateY(0);
634
+ transition-delay: 0s;
635
+ }
636
+ .ak-quickfind-backdrop {
637
+ position: fixed;
638
+ inset: 0;
639
+ z-index: var(--z-ak-overlay);
640
+ background: var(--color-ak-overlay);
641
+ opacity: 0;
642
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default);
643
+ }
644
+ .ak-quickfind-backdrop.ak-open { opacity: 1; }
645
+ .ak-quickfind-input {
646
+ width: 100%;
647
+ padding: 0.75rem 1rem;
648
+ border: none;
649
+ background: none;
650
+ font-family: inherit;
651
+ font-size: var(--text-ak-base);
652
+ color: var(--color-ak-text);
653
+ outline: none;
654
+ }
655
+ .ak-quickfind-input::placeholder { color: var(--color-ak-text-muted); }
656
+ .ak-quickfind-input-wrap {
657
+ display: flex;
658
+ align-items: center;
659
+ border-bottom: 1px solid var(--color-ak-border);
660
+ }
661
+ .ak-quickfind-results {
662
+ max-height: 320px;
663
+ overflow-y: auto;
664
+ }
665
+ .ak-quickfind-group-label {
666
+ font-size: var(--text-ak-xs);
667
+ font-weight: 600;
668
+ letter-spacing: 0.05em;
669
+ text-transform: uppercase;
670
+ color: var(--color-ak-text-muted);
671
+ padding: 0.5rem 1rem;
672
+ }
673
+ .ak-quickfind-item {
674
+ display: flex;
675
+ align-items: center;
676
+ gap: 0.75rem;
677
+ padding: 0.5rem 1rem;
678
+ cursor: pointer;
679
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
680
+ }
681
+ .ak-quickfind-item:hover,
682
+ .ak-quickfind-item.ak-highlighted { background: var(--color-ak-hover); }
683
+ .ak-quickfind-item:focus { outline: none; }
684
+ .ak-quickfind-item:focus-visible {
685
+ outline: 2px solid var(--color-ak-border-focus);
686
+ outline-offset: -2px;
687
+ }
688
+ .ak-quickfind-empty {
689
+ padding: 2rem 1rem;
690
+ text-align: center;
691
+ color: var(--color-ak-text-muted);
692
+ }
693
+
694
+ /* Search trigger / input */
695
+ .ak-search-trigger {
696
+ display: flex;
697
+ align-items: center;
698
+ gap: 0.5rem;
699
+ padding: 0.5rem 0.75rem;
700
+ border-radius: var(--radius-ak-md);
701
+ border: 1px solid var(--color-ak-border);
702
+ background: none;
703
+ color: var(--color-ak-text-muted);
704
+ cursor: pointer;
705
+ font-family: inherit;
706
+ font-size: var(--text-ak-sm);
707
+ transition: border-color var(--duration-ak-fast) var(--ease-ak-default);
708
+ }
709
+ .ak-search-trigger:hover { border-color: var(--color-ak-border-strong); }
710
+ .ak-search-trigger:focus { outline: none; }
711
+ .ak-search-trigger:focus-visible {
712
+ outline: 2px solid var(--color-ak-border-focus);
713
+ outline-offset: 2px;
714
+ }
715
+ .ak-search-input {
716
+ width: 100%;
717
+ border: none;
718
+ background: none;
719
+ font-family: inherit;
720
+ font-size: var(--text-ak-sm);
721
+ color: var(--color-ak-text);
722
+ outline: none;
723
+ }
724
+ .ak-search-input::placeholder { color: var(--color-ak-text-muted); }
725
+ .ak-search-kbd {
726
+ font-size: var(--text-ak-xs);
727
+ color: var(--color-ak-text-muted);
728
+ padding: 0.125rem 0.375rem;
729
+ border: 1px solid var(--color-ak-border);
730
+ border-radius: var(--radius-ak-sm);
731
+ }
732
+
733
+ /* Keyboard shortcut badge */
734
+ .ak-kbd {
735
+ font-size: var(--text-ak-xs);
736
+ color: var(--color-ak-text-muted);
737
+ padding: 0.125rem 0.375rem;
738
+ border: 1px solid var(--color-ak-border);
739
+ border-radius: var(--radius-ak-sm);
740
+ font-family: inherit;
741
+ }
742
+
743
+ /* Secondary links */
744
+ .ak-secondary-link {
745
+ display: flex;
746
+ align-items: center;
747
+ gap: 0.75rem;
748
+ padding: 0.5rem 0.75rem;
749
+ border-radius: var(--radius-ak-md);
750
+ color: var(--color-ak-text-secondary);
751
+ cursor: pointer;
752
+ text-decoration: none;
753
+ font-size: var(--text-ak-sm);
754
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
755
+ color var(--duration-ak-fast) var(--ease-ak-default);
756
+ }
757
+ .ak-secondary-link i {
758
+ font-size: var(--size-ak-icon-md);
759
+ color: var(--color-ak-text-muted);
760
+ }
761
+ .ak-secondary-link:hover { background: var(--color-ak-hover); }
762
+ .ak-secondary-link:focus { outline: none; }
763
+ .ak-secondary-link:focus-visible {
764
+ outline: 2px solid var(--color-ak-border-focus);
765
+ outline-offset: -2px;
766
+ }
767
+
768
+ /* Action link */
769
+ .ak-action-link {
770
+ display: flex;
771
+ align-items: center;
772
+ gap: 0.75rem;
773
+ padding: 0.5rem 0.75rem;
774
+ border-radius: var(--radius-ak-md);
775
+ color: var(--color-ak-text-secondary);
776
+ cursor: pointer;
777
+ text-decoration: none;
778
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
779
+ }
780
+ .ak-action-link:hover { background: var(--color-ak-hover); }
781
+ .ak-action-link:focus { outline: none; }
782
+ .ak-action-link:focus-visible {
783
+ outline: 2px solid var(--color-ak-border-focus);
784
+ outline-offset: -2px;
785
+ }
786
+ .ak-action-link--danger { color: var(--color-ak-danger-text); }
787
+
788
+ /* Footer link */
789
+ .ak-footer-link {
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 0.75rem;
793
+ padding: 0.5rem 0.75rem;
794
+ border-radius: var(--radius-ak-md);
795
+ color: var(--color-ak-text-muted);
796
+ cursor: pointer;
797
+ text-decoration: none;
798
+ font-size: var(--text-ak-sm);
799
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
800
+ color var(--duration-ak-fast) var(--ease-ak-default);
801
+ }
802
+ .ak-footer-link:hover { background: var(--color-ak-hover); color: var(--color-ak-text); }
803
+ .ak-footer-link:focus { outline: none; }
804
+ .ak-footer-link:focus-visible {
805
+ outline: 2px solid var(--color-ak-border-focus);
806
+ outline-offset: -2px;
807
+ }
808
+
809
+ /* Plus button (add new) */
810
+ .ak-plus-btn {
811
+ display: flex;
812
+ align-items: center;
813
+ justify-content: center;
814
+ border: none;
815
+ background: none;
816
+ cursor: pointer;
817
+ color: var(--color-ak-text-muted);
818
+ opacity: 0;
819
+ transition: opacity var(--duration-ak-fast) var(--ease-ak-default),
820
+ color var(--duration-ak-fast) var(--ease-ak-default);
821
+ }
822
+ .ak-plus-btn i {
823
+ font-size: var(--size-ak-icon-sm);
824
+ }
825
+ .ak-plus-btn:focus { outline: none; }
826
+ .ak-plus-btn:focus-visible {
827
+ outline: 2px solid var(--color-ak-border-focus);
828
+ outline-offset: 2px;
829
+ }
830
+
831
+ /* Project links */
832
+ .ak-project-link {
833
+ display: flex;
834
+ align-items: center;
835
+ gap: 0.75rem;
836
+ padding: 0.5rem 0.75rem;
837
+ border-radius: var(--radius-ak-md);
838
+ color: var(--color-ak-text-secondary);
839
+ cursor: pointer;
840
+ text-decoration: none;
841
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
842
+ }
843
+ .ak-project-link:hover { background: var(--color-ak-hover); }
844
+ .ak-project-link:focus { outline: none; }
845
+ .ak-project-link:focus-visible {
846
+ outline: 2px solid var(--color-ak-border-focus);
847
+ outline-offset: -2px;
848
+ }
849
+ .ak-project-link[aria-current="page"] {
850
+ background: var(--color-ak-active);
851
+ color: var(--color-ak-text);
852
+ }
853
+
854
+ /* New project button */
855
+ .ak-new-project-btn {
856
+ display: flex;
857
+ align-items: center;
858
+ gap: 0.75rem;
859
+ padding: 0.5rem 0.75rem;
860
+ border-radius: var(--radius-ak-md);
861
+ border: 1px dashed var(--color-ak-border);
862
+ background: none;
863
+ color: var(--color-ak-text-muted);
864
+ cursor: pointer;
865
+ font-family: inherit;
866
+ font-size: var(--text-ak-sm);
867
+ transition: border-color var(--duration-ak-fast) var(--ease-ak-default),
868
+ color var(--duration-ak-fast) var(--ease-ak-default);
869
+ }
870
+ .ak-new-project-btn:hover {
871
+ border-color: var(--color-ak-border-strong);
872
+ color: var(--color-ak-text);
873
+ }
874
+ .ak-new-project-btn:focus { outline: none; }
875
+ .ak-new-project-btn:focus-visible {
876
+ outline: 2px solid var(--color-ak-border-focus);
877
+ outline-offset: 2px;
878
+ }
879
+
880
+ /* Overlay nav */
881
+ .ak-overlay-nav {
882
+ position: fixed;
883
+ inset: 0;
884
+ z-index: var(--z-ak-modal);
885
+ background: var(--color-ak-bg);
886
+ opacity: 0;
887
+ visibility: hidden;
888
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
889
+ visibility 0s linear var(--duration-ak-base);
890
+ }
891
+ .ak-overlay-nav-open {
892
+ opacity: 1;
893
+ visibility: visible;
894
+ transition-delay: 0s;
895
+ }
896
+
897
+ /* Theme toggle */
898
+ .ak-theme-toggle {
899
+ display: flex;
900
+ align-items: center;
901
+ justify-content: center;
902
+ width: 2rem;
903
+ height: 2rem;
904
+ border-radius: var(--radius-ak-md);
905
+ border: none;
906
+ background: none;
907
+ color: var(--color-ak-text-secondary);
908
+ cursor: pointer;
909
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
910
+ color var(--duration-ak-fast) var(--ease-ak-default);
911
+ }
912
+ .ak-theme-toggle i {
913
+ font-size: var(--size-ak-icon-md);
914
+ }
915
+ .ak-theme-toggle:hover {
916
+ background: var(--color-ak-hover);
917
+ color: var(--color-ak-text);
918
+ }
919
+ .ak-theme-toggle:focus { outline: none; }
920
+ .ak-theme-toggle:focus-visible {
921
+ outline: 2px solid var(--color-ak-border-focus);
922
+ outline-offset: 2px;
923
+ }
924
+
925
+ /* Theme pill toggles */
926
+ .ak-theme-pill {
927
+ display: flex;
928
+ align-items: center;
929
+ border: 1px solid var(--color-ak-border);
930
+ border-radius: var(--radius-ak-full);
931
+ padding: 0.25rem;
932
+ }
933
+ .ak-theme-pill-btn {
934
+ display: flex;
935
+ align-items: center;
936
+ justify-content: center;
937
+ width: 2rem;
938
+ height: 2rem;
939
+ border-radius: var(--radius-ak-full);
940
+ border: none;
941
+ background: none;
942
+ color: var(--color-ak-text-muted);
943
+ cursor: pointer;
944
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default),
945
+ color var(--duration-ak-fast) var(--ease-ak-default);
946
+ }
947
+ .ak-theme-pill-btn i {
948
+ font-size: var(--size-ak-icon-sm);
949
+ }
950
+ .ak-theme-pill-btn:hover {
951
+ color: var(--color-ak-text);
952
+ }
953
+ .ak-theme-pill-btn:focus { outline: none; }
954
+ .ak-theme-pill-btn:focus-visible {
955
+ outline: 2px solid var(--color-ak-border-focus);
956
+ outline-offset: 2px;
957
+ }
958
+ .ak-theme-pill-active {
959
+ background: var(--color-ak-active);
960
+ color: var(--color-ak-text);
961
+ }
962
+ .ak-theme-pill-active i {
963
+ color: var(--color-ak-text);
964
+ }
965
+
966
+ /* Menu button */
967
+ .ak-menu-btn {
968
+ display: flex;
969
+ align-items: center;
970
+ justify-content: center;
971
+ border: none;
972
+ background: none;
973
+ cursor: pointer;
974
+ color: var(--color-ak-text-secondary);
975
+ transition: color var(--duration-ak-fast) var(--ease-ak-default);
976
+ }
977
+ .ak-menu-btn i {
978
+ font-size: var(--size-ak-icon-lg);
979
+ }
980
+ .ak-menu-btn:hover { color: var(--color-ak-text); }
981
+ .ak-menu-btn:focus-visible {
982
+ outline: 2px solid var(--color-ak-border-focus);
983
+ outline-offset: 2px;
984
+ }
985
+
986
+ /* Header */
987
+ .ak-header {
988
+ display: flex;
989
+ align-items: center;
990
+ justify-content: space-between;
991
+ }
992
+
993
+ /* Trigger (generic) */
994
+ .ak-trigger {
995
+ display: flex;
996
+ align-items: center;
997
+ justify-content: center;
998
+ border: none;
999
+ background: var(--color-ak-primary);
1000
+ color: var(--color-ak-on-primary);
1001
+ border-radius: var(--radius-ak-md);
1002
+ cursor: pointer;
1003
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1004
+ }
1005
+ .ak-trigger:hover { background: var(--color-ak-primary-hover); }
1006
+ .ak-trigger:focus { outline: none; }
1007
+ .ak-trigger:focus-visible {
1008
+ outline: 2px solid var(--color-ak-border-focus);
1009
+ outline-offset: 2px;
1010
+ }
1011
+
1012
+ /* Org links */
1013
+ .ak-org-link {
1014
+ display: flex;
1015
+ align-items: center;
1016
+ gap: 0.75rem;
1017
+ padding: 0.5rem 0.75rem;
1018
+ border-radius: var(--radius-ak-md);
1019
+ cursor: pointer;
1020
+ text-decoration: none;
1021
+ color: var(--color-ak-text-secondary);
1022
+ transition: background-color var(--duration-ak-fast) var(--ease-ak-default);
1023
+ }
1024
+ .ak-org-link:hover { background: var(--color-ak-hover); }
1025
+ .ak-org-link:focus { outline: none; }
1026
+ .ak-org-link:focus-visible {
1027
+ outline: 2px solid var(--color-ak-border-focus);
1028
+ outline-offset: -2px;
1029
+ }
1030
+ .ak-org-logo {
1031
+ width: 2rem;
1032
+ height: 2rem;
1033
+ border-radius: var(--radius-ak-md);
1034
+ display: flex;
1035
+ align-items: center;
1036
+ justify-content: center;
1037
+ flex-shrink: 0;
1038
+ }
1039
+ .ak-org-header {
1040
+ display: flex;
1041
+ align-items: center;
1042
+ gap: 0.75rem;
1043
+ }
1044
+ .ak-org-popover {
1045
+ position: absolute;
1046
+ background: var(--color-ak-bg);
1047
+ border: 1px solid var(--color-ak-border);
1048
+ border-radius: var(--radius-ak-lg);
1049
+ box-shadow: var(--shadow-ak-lg);
1050
+ opacity: 0;
1051
+ visibility: hidden;
1052
+ transition: opacity var(--duration-ak-base) var(--ease-ak-default),
1053
+ visibility 0s linear var(--duration-ak-base);
1054
+ z-index: var(--z-ak-dropdown);
1055
+ }
1056
+
1057
+