components.css
Raw
1@layer components {
2 /* --- Buttons --- */
3 .btn {
4 display: inline-flex;
5 align-items: center;
6 gap: var(--space-2);
7 padding: var(--space-2) var(--space-4);
8 border: 1px solid var(--color-border);
9 border-radius: var(--radius-md);
10 font-size: var(--text-sm);
11 font-weight: 500;
12 text-decoration: none;
13 cursor: pointer;
14 background: var(--color-bg-subtle);
15 color: var(--color-text);
16 transition:
17 background 0.1s,
18 border-color 0.1s;
19 white-space: nowrap;
20 }
21 .btn:hover {
22 background: var(--color-bg-inset);
23 border-color: var(--color-border);
24 }
25 .btn:disabled {
26 opacity: 0.5;
27 cursor: not-allowed;
28 }
29 .btn-primary {
30 background: var(--color-accent);
31 border-color: transparent;
32 color: #fff;
33 }
34 .btn-primary:hover {
35 background: color-mix(in srgb, var(--color-accent) 82%, #000);
36 }
37 .btn-secondary {
38 background: var(--color-bg-subtle);
39 border-color: var(--color-border);
40 }
41 .btn-sm {
42 padding: var(--space-1) var(--space-3);
43 font-size: var(--text-xs);
44 }
45 .btn-block {
46 width: 100%;
47 justify-content: center;
48 }
49
50 /* --- Forms --- */
51 .form-group {
52 display: flex;
53 flex-direction: column;
54 gap: var(--space-2);
55 margin-bottom: var(--space-4);
56 }
57 .form-group label,
58 .form-group .form-group-label {
59 font-size: var(--text-sm);
60 font-weight: 500;
61 color: var(--color-text);
62 }
63 .form-group input:not([type="file"]):not([type="checkbox"]),
64 .form-group textarea,
65 .form-group select {
66 padding: var(--space-2) var(--space-3);
67 border: 1px solid var(--color-border);
68 border-radius: var(--radius-md);
69 background: var(--color-bg);
70 color: var(--color-text);
71 font-size: var(--text-sm);
72 }
73 .form-group input:not([type="file"]):not([type="checkbox"]):focus,
74 .form-group textarea:focus {
75 outline: 2px solid var(--color-accent);
76 outline-offset: -1px;
77 border-color: var(--color-accent);
78 }
79 .form-group input[type="file"] {
80 font-size: var(--text-sm);
81 color: var(--color-text);
82 padding: 0;
83 border: none;
84 background: none;
85 }
86 .form-group textarea {
87 resize: vertical;
88 min-height: 120px;
89 }
90 .form-success {
91 background: var(--color-success-bg);
92 color: var(--color-success);
93 border: 1px solid var(--color-success);
94 border-radius: var(--radius-md);
95 padding: var(--space-3) var(--space-4);
96 font-size: var(--text-sm);
97 margin-bottom: var(--space-4);
98 }
99 .form-hint {
100 font-size: var(--text-sm);
101 color: var(--color-text-muted);
102 margin: 0;
103 }
104 .form-error {
105 background: var(--color-danger-bg);
106 color: var(--color-danger);
107 border: 1px solid var(--color-danger);
108 border-radius: var(--radius-md);
109 padding: var(--space-3) var(--space-4);
110 font-size: var(--text-sm);
111 margin-bottom: var(--space-4);
112 }
113 .form-actions {
114 display: flex;
115 gap: var(--space-3);
116 align-items: center;
117 flex-wrap: wrap;
118 }
119 .form-card {
120 background: var(--color-bg-subtle);
121 border: 1px solid var(--color-border);
122 border-radius: var(--radius-lg);
123 padding: var(--space-6);
124 margin-top: var(--space-4);
125 }
126 .checkbox-label {
127 display: flex;
128 align-items: center;
129 gap: var(--space-2);
130 cursor: pointer;
131 }
132
133 /* --- Page header --- */
134 .page-header {
135 display: flex;
136 align-items: center;
137 justify-content: space-between;
138 margin-bottom: var(--space-6);
139 gap: var(--space-4);
140 }
141 .page-title {
142 font-size: var(--text-2xl);
143 color: var(--color-text);
144 margin-bottom: var(--space-4);
145 }
146 .page-title a {
147 text-decoration: none;
148 color: var(--color-link);
149 }
150 .page-title a:hover {
151 text-decoration: underline;
152 }
153 .section-title {
154 font-size: var(--text-lg);
155 margin-bottom: var(--space-4);
156 padding-bottom: var(--space-2);
157 border-bottom: 1px solid var(--color-border);
158 }
159
160 /* --- Auth --- */
161 .auth-container {
162 max-width: 400px;
163 margin: var(--space-12) auto;
164 }
165 .auth-container .page-title {
166 margin-bottom: var(--space-6);
167 }
168 .auth-form {
169 margin-bottom: var(--space-4);
170 }
171 .auth-footer {
172 text-align: center;
173 font-size: var(--text-sm);
174 color: var(--color-text-muted);
175 margin-top: var(--space-4);
176 }
177 .passkey-btn {
178 display: none;
179 margin-top: var(--space-3);
180 }
181
182 /* --- Repo header --- */
183 .repo-header {
184 margin-bottom: var(--space-2);
185 }
186 .repo-title-row {
187 display: flex;
188 align-items: center;
189 gap: var(--space-3);
190 flex-wrap: wrap;
191 }
192 .repo-title-row .page-title {
193 margin-bottom: 0;
194 }
195 .repo-header-title {
196 display: flex;
197 align-items: center;
198 gap: var(--space-3);
199 flex-wrap: wrap;
200 }
201 .repo-description {
202 color: var(--color-text-muted);
203 margin-top: var(--space-2);
204 }
205 .repo-header-meta {
206 display: flex;
207 align-items: center;
208 gap: var(--space-4);
209 margin-bottom: var(--space-3);
210 font-size: var(--text-sm);
211 color: var(--color-text-muted);
212 }
213 .icon {
214 font-style: normal;
215 }
216
217 /* --- Branch selector --- */
218 .branch-selector {
219 display: inline-flex;
220 align-items: center;
221 gap: var(--space-2);
222 }
223 .branch-selector-icon {
224 color: var(--color-text-muted);
225 font-size: var(--text-sm);
226 user-select: none;
227 }
228 .branch-select {
229 padding: var(--space-1) var(--space-2);
230 padding-right: var(--space-5);
231 border: 1px solid var(--color-border);
232 border-radius: var(--radius-md);
233 background: var(--color-bg-subtle);
234 font-size: var(--text-sm);
235 font-family: var(--font-mono);
236 color: var(--color-text);
237 cursor: pointer;
238 appearance: auto;
239 max-width: 180px;
240 }
241 .branch-select:hover {
242 border-color: var(--color-text-muted);
243 }
244 .branch-select:focus {
245 outline: 2px solid var(--color-accent);
246 outline-offset: -1px;
247 }
248
249 /* toolbar row above file tree */
250 .tree-toolbar {
251 display: flex;
252 align-items: center;
253 justify-content: space-between;
254 margin-bottom: var(--space-3);
255 }
256
257 /* commits-header flex row */
258 .commits-header {
259 display: flex;
260 align-items: center;
261 gap: var(--space-4);
262 margin-bottom: var(--space-4);
263 flex-wrap: wrap;
264 }
265 .commits-header .section-title {
266 margin-bottom: 0;
267 }
268
269 /* --- Repo nav bar (tabs + private badge) --- */
270 .repo-nav-bar {
271 display: flex;
272 align-items: center;
273 justify-content: space-between;
274 border-bottom: 1px solid var(--color-border);
275 margin-bottom: var(--space-6);
276 gap: var(--space-4);
277 }
278
279 /* --- Repo tabs --- */
280 .repo-tabs {
281 display: flex;
282 gap: 0;
283 flex: 1;
284 overflow-x: auto;
285 overflow-y: hidden;
286 }
287 .repo-tab {
288 padding: var(--space-3) var(--space-4);
289 font-size: var(--text-sm);
290 text-decoration: none;
291 color: var(--color-text-muted);
292 border-bottom: 2px solid transparent;
293 margin-bottom: -1px;
294 transition: color 0.1s;
295 }
296 .repo-tab:hover {
297 color: var(--color-text);
298 }
299 .repo-tab.active {
300 color: var(--color-text);
301 font-weight: 600;
302 border-bottom-color: var(--color-accent);
303 }
304
305 /* --- Repo list --- */
306 .repo-list {
307 display: flex;
308 flex-direction: column;
309 gap: var(--space-2);
310 }
311 .repo-card {
312 display: flex;
313 align-items: flex-start;
314 justify-content: space-between;
315 padding: var(--space-4) var(--space-5);
316 border: 1px solid var(--color-border);
317 border-radius: var(--radius-lg);
318 background: var(--color-bg);
319 gap: var(--space-4);
320 transition: border-color 0.15s;
321 }
322 .repo-card:hover {
323 border-color: var(--color-accent);
324 }
325 .repo-card-main {
326 flex: 1;
327 min-width: 0;
328 }
329 .repo-card-title {
330 display: flex;
331 align-items: center;
332 gap: var(--space-2);
333 margin-bottom: var(--space-1);
334 }
335 .repo-name {
336 font-size: var(--text-lg);
337 font-weight: 600;
338 color: var(--color-link);
339 text-decoration: none;
340 word-break: break-all;
341 }
342 .repo-name:hover {
343 text-decoration: underline;
344 }
345 .repo-card-meta {
346 display: flex;
347 flex-direction: column;
348 align-items: flex-end;
349 gap: var(--space-1);
350 font-size: var(--text-xs);
351 color: var(--color-text-muted);
352 white-space: nowrap;
353 }
354 .repo-date {
355 color: var(--color-text-muted);
356 }
357
358 /* --- Badges --- */
359 .badge {
360 display: inline-flex;
361 align-items: center;
362 padding: 1px var(--space-2);
363 border-radius: var(--radius-full);
364 font-size: var(--text-xs);
365 font-weight: 500;
366 border: 1px solid;
367 text-decoration: none;
368 }
369 .badge-private {
370 color: var(--color-warning);
371 border-color: var(--color-warning);
372 background: var(--color-warning-bg);
373 }
374 .badge-pinned {
375 color: var(--color-accent);
376 border-color: var(--color-accent);
377 background: var(--color-accent-bg);
378 }
379 .issue-badge,
380 .patch-badge {
381 display: inline-flex;
382 align-items: center;
383 padding: var(--space-1) var(--space-3);
384 border-radius: var(--radius-full);
385 font-size: var(--text-xs);
386 font-weight: 500;
387 text-transform: capitalize;
388 }
389 .issue-badge.open,
390 .patch-badge.open {
391 background: var(--color-success-bg);
392 color: var(--color-success);
393 }
394 .issue-badge.closed,
395 .patch-badge.closed {
396 background: var(--color-danger-bg);
397 color: var(--color-danger);
398 }
399 .issue-badge.completed {
400 background: var(--color-merged-bg);
401 color: var(--color-merged);
402 }
403 .patch-badge.merged {
404 background: var(--color-merged-bg);
405 color: var(--color-merged);
406 }
407 .sig-badge {
408 display: inline-flex;
409 align-items: center;
410 padding: var(--space-1) var(--space-3);
411 border-radius: var(--radius-full);
412 font-size: var(--text-xs);
413 font-weight: 500;
414 }
415 .sig-badge.verified {
416 background: var(--color-success-bg);
417 color: var(--color-success);
418 }
419 .sig-badge.unverified {
420 background: var(--color-danger-bg);
421 color: var(--color-danger);
422 }
423
424 /* --- Empty state --- */
425 .empty-state {
426 text-align: center;
427 padding: var(--space-16) var(--space-4);
428 color: var(--color-text-muted);
429 }
430 .empty-state p {
431 margin-bottom: var(--space-4);
432 font-size: var(--text-lg);
433 }
434
435 /* --- Breadcrumb --- */
436 .breadcrumb {
437 display: flex;
438 align-items: center;
439 flex-wrap: wrap;
440 gap: var(--space-1);
441 font-size: var(--text-sm);
442 margin-bottom: var(--space-4);
443 }
444 .breadcrumb a {
445 color: var(--color-link);
446 text-decoration: none;
447 }
448 .breadcrumb a:hover {
449 text-decoration: underline;
450 }
451 .breadcrumb-sep {
452 color: var(--color-text-muted);
453 }
454 .breadcrumb-current {
455 color: var(--color-text-muted);
456 }
457
458 /* --- Issue / Patch list --- */
459 .list-header {
460 display: flex;
461 align-items: center;
462 justify-content: space-between;
463 padding: var(--space-3) var(--space-4);
464 background: var(--color-bg-subtle);
465 border: 1px solid var(--color-border);
466 border-radius: var(--radius-lg) var(--radius-lg) 0 0;
467 gap: var(--space-4);
468 }
469 .list-header-tabs {
470 display: flex;
471 gap: var(--space-2);
472 }
473 .list-tab {
474 padding: var(--space-1) var(--space-3);
475 border-radius: var(--radius-md);
476 font-size: var(--text-sm);
477 text-decoration: none;
478 color: var(--color-text-muted);
479 }
480 .list-tab:hover {
481 background: var(--color-bg-inset);
482 color: var(--color-text);
483 }
484 .list-tab.active {
485 background: var(--color-bg-inset);
486 color: var(--color-text);
487 font-weight: 600;
488 }
489 .issue-list {
490 border: 1px solid var(--color-border);
491 border-top: none;
492 border-radius: 0 0 var(--radius-lg) var(--radius-lg);
493 }
494 .issue-item {
495 padding: var(--space-4) var(--space-4);
496 border-bottom: 1px solid var(--color-border-muted);
497 }
498 .issue-item:last-child {
499 border-bottom: none;
500 }
501 .issue-main {
502 display: flex;
503 align-items: center;
504 gap: var(--space-2);
505 margin-bottom: var(--space-1);
506 flex-wrap: wrap;
507 }
508 .issue-title {
509 font-weight: 500;
510 text-decoration: none;
511 color: var(--color-text);
512 flex: 1;
513 }
514 .issue-title:hover {
515 color: var(--color-link);
516 }
517 .issue-meta {
518 font-size: var(--text-xs);
519 color: var(--color-text-muted);
520 display: flex;
521 gap: var(--space-3);
522 }
523 .issue-status-dot,
524 .patch-status-dot {
525 width: 8px;
526 height: 8px;
527 border-radius: 50%;
528 flex-shrink: 0;
529 }
530 .issue-status-dot.open,
531 .patch-status-dot.open {
532 background: var(--color-success);
533 }
534 .issue-status-dot.closed,
535 .patch-status-dot.closed {
536 background: var(--color-danger);
537 }
538 .issue-status-dot.completed {
539 background: var(--color-merged);
540 }
541 .patch-status-dot.merged {
542 background: var(--color-merged);
543 }
544
545 /* --- Issue detail / Timeline --- */
546 .issue-detail-header {
547 display: flex;
548 align-items: center;
549 flex-wrap: wrap;
550 gap: var(--space-3);
551 margin-bottom: var(--space-4);
552 }
553 .issue-number {
554 font-size: var(--text-2xl);
555 font-weight: 600;
556 color: var(--color-text-muted);
557 white-space: nowrap;
558 }
559 .issue-detail-title {
560 font-size: var(--text-2xl);
561 font-weight: 600;
562 overflow-wrap: anywhere;
563 }
564 .issue-detail-meta-actions {
565 margin-left: auto;
566 display: flex;
567 gap: var(--space-2);
568 flex-shrink: 0;
569 }
570 .patch-author-meta {
571 display: flex;
572 align-items: center;
573 gap: var(--space-2);
574 font-size: var(--text-xs);
575 margin-top: calc(-1 * var(--space-4));
576 margin-bottom: var(--space-6);
577 }
578 .patch-author-label {
579 color: var(--color-text-muted);
580 }
581 .patch-author-identity {
582 font-family: monospace;
583 }
584 .timeline-item {
585 border: 1px solid var(--color-border);
586 border-radius: var(--radius-lg);
587 margin-bottom: var(--space-4);
588 overflow: hidden;
589 }
590 .timeline-author {
591 background: var(--color-bg-subtle);
592 padding: var(--space-3) var(--space-4);
593 font-size: var(--text-sm);
594 display: flex;
595 align-items: center;
596 justify-content: space-between;
597 gap: var(--space-3);
598 border-bottom: 1px solid var(--color-border);
599 overflow-wrap: anywhere;
600 }
601 .timeline-author time {
602 color: var(--color-text-muted);
603 font-size: var(--text-xs);
604 width: max-content;
605 }
606 .timeline-author-right {
607 margin-left: auto;
608 display: flex;
609 align-items: center;
610 gap: var(--space-2);
611 }
612 .edited-indicator {
613 color: var(--color-text-muted);
614 font-size: var(--text-xs);
615 cursor: default;
616 }
617
618 /* --- Avatars --- */
619 .avatar {
620 display: inline-flex;
621 border-radius: 4px;
622 overflow: hidden;
623 flex-shrink: 0;
624 vertical-align: middle;
625 }
626 .avatar-img {
627 width: 100%;
628 height: 100%;
629 object-fit: cover;
630 display: block;
631 color: transparent;
632 }
633 .avatar-placeholder {
634 display: inline-flex;
635 align-items: center;
636 justify-content: center;
637 border-radius: 4px;
638 background: var(--color-bg-inset);
639 color: var(--color-text-muted);
640 font-weight: 600;
641 flex-shrink: 0;
642 vertical-align: middle;
643 }
644 .avatar-settings {
645 display: flex;
646 align-items: flex-start;
647 gap: var(--space-5);
648 }
649 .avatar-actions {
650 display: flex;
651 flex-direction: column;
652 gap: var(--space-3);
653 }
654 .nav-user {
655 display: inline-flex;
656 align-items: center;
657 gap: var(--space-2);
658 font-size: var(--text-sm);
659 color: var(--color-text-muted);
660 }
661 .timeline-body {
662 padding: var(--space-4);
663 }
664 .timeline-item-new {
665 padding: var(--space-4);
666 }
667 .timeline-item-new .section-title {
668 font-size: var(--text-base);
669 border: none;
670 padding-bottom: 0;
671 }
672 /* Edit <details> (summary only) in .timeline-author; form is a sibling shown via :has() */
673 .timeline-author-right .inline-edit-details {
674 border: none;
675 }
676 .inline-edit-details .when-open {
677 display: none;
678 }
679 .inline-edit-details[open] .when-closed {
680 display: none;
681 }
682 .inline-edit-details[open] .when-open {
683 display: inline;
684 }
685 .inline-edit-form-area {
686 display: none;
687 border-top: 1px solid var(--color-border-muted);
688 }
689 .timeline-item:has(.inline-edit-details[open]) .inline-edit-form-area {
690 display: block;
691 }
692 .timeline-item:has(.inline-edit-details[open]) .timeline-body {
693 display: none;
694 }
695
696 /* Title edit in issue/patch header */
697 .issue-detail-header {
698 align-items: flex-start;
699 }
700 .title-with-edit {
701 flex: 1;
702 min-width: 16rem;
703 display: flex;
704 flex-direction: column;
705 gap: var(--space-1);
706 }
707 .title-edit-details {
708 border: none;
709 align-self: flex-start;
710 }
711 .title-with-edit:has(.title-edit-details[open]) .issue-detail-title {
712 display: none;
713 }
714 .title-with-edit:has(.title-edit-details[open]) > .title-edit-details {
715 display: none;
716 }
717 .title-edit-details > summary {
718 list-style: none;
719 }
720
721 .title-edit-form-area {
722 display: none;
723 }
724 .title-with-edit:has(.title-edit-details[open]) .title-edit-form-area {
725 display: flex;
726 flex: 1;
727 min-width: 0;
728 }
729 .title-edit-form {
730 display: flex;
731 flex-direction: column;
732 gap: var(--space-2);
733 flex: 1;
734 min-width: 0;
735 }
736 .title-edit-form .form-input {
737 min-width: 0;
738 width: 100%;
739 padding: var(--space-2) var(--space-3);
740 border: 1px solid var(--color-border);
741 border-radius: var(--radius-md);
742 background: var(--color-bg);
743 color: var(--color-text);
744 font-size: var(--text-sm);
745 }
746 .title-edit-form .form-input:focus {
747 outline: 2px solid var(--color-accent);
748 outline-offset: -1px;
749 border-color: var(--color-accent);
750 }
751 .title-edit-actions {
752 display: flex;
753 gap: var(--space-2);
754 }
755
756 .inline-edit-form {
757 padding: var(--space-4);
758 display: flex;
759 flex-direction: column;
760 gap: var(--space-3);
761 }
762
763 /* --- Reactions --- */
764 .reaction-bar {
765 display: flex;
766 flex-wrap: wrap;
767 gap: var(--space-2);
768 padding: var(--space-2) var(--space-4);
769 border-top: 1px solid var(--color-border-muted);
770 }
771 .reaction-form {
772 display: inline;
773 }
774 .reaction-btn {
775 display: inline-flex;
776 align-items: center;
777 gap: var(--space-1);
778 padding: var(--space-1) var(--space-3);
779 border: 1px solid var(--color-border);
780 border-radius: var(--radius-full);
781 background: var(--color-bg-subtle);
782 color: var(--color-text);
783 font-size: var(--text-sm);
784 cursor: pointer;
785 transition: background 0.1s;
786 }
787 .reaction-btn:hover {
788 background: var(--color-bg-inset);
789 }
790 .reaction-btn.reacted {
791 background: var(--color-accent-bg);
792 border-color: var(--color-accent);
793 }
794 .reaction-picker {
795 position: relative;
796 }
797 .reaction-add-btn {
798 display: inline-flex;
799 align-items: center;
800 justify-content: center;
801 width: 28px;
802 height: 28px;
803 border: 1px dashed var(--color-border);
804 border-radius: var(--radius-full);
805 background: transparent;
806 cursor: pointer;
807 font-size: var(--text-base);
808 color: var(--color-text-muted);
809 list-style: none;
810 }
811
812 .reaction-picker-dropdown {
813 position: absolute;
814 bottom: calc(100% + var(--space-2));
815 left: 0;
816 background: var(--color-bg);
817 border: 1px solid var(--color-border);
818 border-radius: var(--radius-lg);
819 padding: var(--space-2);
820 display: flex;
821 gap: var(--space-1);
822 z-index: 10;
823 }
824 .reaction-picker-btn {
825 background: none;
826 border: none;
827 font-size: 1.25rem;
828 cursor: pointer;
829 padding: var(--space-1);
830 border-radius: var(--radius-sm);
831 }
832 .reaction-picker-btn:hover {
833 background: var(--color-bg-inset);
834 }
835
836 /* --- Patch subview tabs --- */
837 .patch-tab-nav {
838 display: flex;
839 border-bottom: 1px solid var(--color-border);
840 margin-bottom: var(--space-6);
841 }
842 .tab-count {
843 display: inline-flex;
844 align-items: center;
845 justify-content: center;
846 min-width: 1.4em;
847 padding: 0 var(--space-1);
848 margin-left: var(--space-1);
849 font-size: var(--text-xs);
850 font-weight: 500;
851 background: var(--color-bg-inset);
852 border-radius: 999px;
853 color: var(--color-text-muted);
854 }
855
856 /* --- Patch apply status --- */
857 .apply-status {
858 margin: var(--space-4) 0;
859 }
860 .apply-result {
861 display: flex;
862 align-items: flex-start;
863 gap: var(--space-2);
864 padding: var(--space-3) var(--space-4);
865 border-radius: var(--radius-md);
866 font-size: var(--text-sm);
867 flex-direction: column;
868 }
869 .apply-result > div {
870 display: flex;
871 gap: var(--space-2);
872 align-items: center;
873 }
874 .apply-clean {
875 background: var(--color-success-bg);
876 color: var(--color-success);
877 border: 1px solid var(--color-success);
878 }
879 .apply-conflict {
880 background: var(--color-danger-bg);
881 color: var(--color-danger);
882 border: 1px solid var(--color-danger);
883 }
884 .apply-checking,
885 .apply-unknown {
886 color: var(--color-text-muted);
887 font-style: italic;
888 font-size: var(--text-sm);
889 }
890 .apply-output {
891 font-family: var(--font-mono);
892 font-size: var(--text-xs);
893 white-space: pre-wrap;
894 margin-top: var(--space-2);
895 padding: var(--space-2);
896 background: rgba(0, 0, 0, 0.05);
897 border-radius: var(--radius-sm);
898 width: 100%;
899 }
900 .patch-actions {
901 display: flex;
902 gap: var(--space-3);
903 margin: var(--space-4) 0;
904 flex-wrap: wrap;
905 }
906 .patch-card-title-row {
907 display: flex;
908 align-items: flex-start;
909 gap: var(--space-3);
910 justify-content: space-between;
911 margin-bottom: var(--space-3);
912 }
913 .patch-card-title-row .commit-card-subject {
914 margin-bottom: 0;
915 }
916 .patch-card-description {
917 margin-top: var(--space-4);
918 padding-top: var(--space-4);
919 border-top: 1px solid var(--color-border-muted);
920 }
921
922 /* --- Repo home layout --- */
923 .repo-home-layout {
924 display: grid;
925 gap: var(--space-8);
926 }
927 @media (min-width: 768px) {
928 .repo-home-layout {
929 grid-template-columns: 1fr 1fr;
930 }
931 }
932 .readme-section {
933 border: 1px solid var(--color-border);
934 border-radius: var(--radius-lg);
935 overflow: hidden;
936 }
937 .readme-header {
938 background: var(--color-bg-subtle);
939 padding: var(--space-3) var(--space-4);
940 font-size: var(--text-sm);
941 font-weight: 500;
942 border-bottom: 1px solid var(--color-border);
943 display: flex;
944 align-items: center;
945 justify-content: space-between;
946 }
947
948 /* --- Markdown body --- */
949 .markdown-body {
950 font-size: var(--text-sm);
951 line-height: 1.6;
952 color: var(--color-text);
953 }
954 .markdown-body h1,
955 .markdown-body h2,
956 .markdown-body h3,
957 .markdown-body h4,
958 .markdown-body h5,
959 .markdown-body h6 {
960 margin-top: var(--space-6);
961 margin-bottom: var(--space-3);
962 }
963 .markdown-body p {
964 margin-bottom: var(--space-4);
965 }
966 .markdown-body a {
967 color: var(--color-link);
968 }
969 .markdown-body code {
970 background: var(--color-bg-inset);
971 padding: 0.1em 0.3em;
972 border-radius: var(--radius-sm);
973 font-size: 0.9em;
974 }
975 .markdown-body pre {
976 background: var(--color-bg-subtle);
977 border: 1px solid var(--color-border);
978 border-radius: var(--radius-md);
979 padding: var(--space-4);
980 overflow: auto;
981 margin-bottom: var(--space-4);
982 }
983 .markdown-body pre code {
984 background: none;
985 padding: 0;
986 }
987 .markdown-body ul,
988 .markdown-body ol {
989 padding-left: var(--space-6);
990 margin-bottom: var(--space-4);
991 }
992 .markdown-body ul {
993 list-style: disc;
994 }
995 .markdown-body ol {
996 list-style: decimal;
997 }
998 .markdown-body li {
999 margin-bottom: var(--space-1);
1000 }
1001 .markdown-body blockquote {
1002 border-left: 3px solid var(--color-border);
1003 padding-left: var(--space-4);
1004 color: var(--color-text-muted);
1005 margin: var(--space-4) 0;
1006 }
1007 .markdown-body table {
1008 width: 100%;
1009 border-collapse: collapse;
1010 margin-bottom: var(--space-4);
1011 }
1012 .markdown-body th,
1013 .markdown-body td {
1014 padding: var(--space-2) var(--space-3);
1015 border: 1px solid var(--color-border);
1016 }
1017 .markdown-body th {
1018 background: var(--color-bg-subtle);
1019 font-weight: 600;
1020 }
1021 .markdown-body hr {
1022 border: none;
1023 border-top: 1px solid var(--color-border);
1024 margin: var(--space-6) 0;
1025 }
1026 .markdown-body img {
1027 max-width: 100%;
1028 border-radius: var(--radius-md);
1029 }
1030 .markdown-body details {
1031 margin-bottom: var(--space-4);
1032 }
1033 .markdown-body summary {
1034 cursor: pointer;
1035 font-weight: 500;
1036 }
1037 .readme-section .markdown-body,
1038 .file-blob-body .markdown-body {
1039 padding: var(--space-4);
1040 }
1041
1042 /* --- Code setup block --- */
1043 .code-setup {
1044 background: var(--color-bg-subtle);
1045 border: 1px solid var(--color-border);
1046 border-radius: var(--radius-lg);
1047 padding: var(--space-4);
1048 font-size: var(--text-sm);
1049 margin-top: var(--space-4);
1050 overflow: auto;
1051 text-align: left;
1052 }
1053 .code-plain {
1054 background: var(--color-bg-subtle);
1055 padding: var(--space-4);
1056 overflow: auto;
1057 font-size: var(--text-sm);
1058 line-height: 1.6;
1059 }
1060
1061 /* --- Search row (search form + sort select) --- */
1062 .search-row {
1063 display: flex;
1064 align-items: center;
1065 gap: var(--space-3);
1066 margin-bottom: var(--space-5);
1067 }
1068 .search-form {
1069 flex: 1;
1070 }
1071 .repo-sort-select {
1072 padding: var(--space-1) var(--space-2);
1073 padding-right: var(--space-5);
1074 border: 1px solid var(--color-border);
1075 border-radius: var(--radius-md);
1076 background: var(--color-bg-subtle);
1077 font-size: var(--text-sm);
1078 color: var(--color-text);
1079 cursor: pointer;
1080 appearance: auto;
1081 }
1082 .repo-sort-select:hover {
1083 border-color: var(--color-text-muted);
1084 }
1085 .repo-sort-select:focus {
1086 outline: 2px solid var(--color-accent);
1087 outline-offset: -1px;
1088 }
1089 .search-input-wrap {
1090 display: flex;
1091 gap: var(--space-2);
1092 }
1093 .search-input {
1094 flex: 1;
1095 padding: var(--space-2) var(--space-3);
1096 border: 1px solid var(--color-border);
1097 border-radius: var(--radius-md);
1098 background: var(--color-bg);
1099 color: var(--color-text);
1100 font-size: var(--text-sm);
1101 }
1102 .search-input:focus {
1103 outline: 2px solid var(--color-accent);
1104 outline-offset: -1px;
1105 border-color: var(--color-accent);
1106 }
1107
1108 /* --- Issue close bar --- */
1109 .issue-close-bar {
1110 display: flex;
1111 justify-content: flex-end;
1112 padding: var(--space-3) 0;
1113 border-top: 1px solid var(--color-border-muted);
1114 margin-top: var(--space-2);
1115 }
1116
1117 /* --- Auth divider --- */
1118 .auth-divider {
1119 display: flex;
1120 align-items: center;
1121 gap: var(--space-3);
1122 margin: var(--space-4) 0;
1123 color: var(--color-text-muted);
1124 font-size: var(--text-sm);
1125 }
1126 .auth-divider::before,
1127 .auth-divider::after {
1128 content: "";
1129 flex: 1;
1130 height: 1px;
1131 background: var(--color-border);
1132 }
1133
1134 /* --- Passkey UI in settings --- */
1135 .passkey-actions {
1136 display: flex;
1137 flex-direction: column;
1138 gap: var(--space-3);
1139 align-items: flex-start;
1140 margin-top: var(--space-3);
1141 }
1142 .passkey-status {
1143 font-size: var(--text-sm);
1144 }
1145
1146 /* --- Danger zone --- */
1147 .danger-zone {
1148 margin-top: var(--space-8);
1149 }
1150 .danger-title {
1151 color: var(--color-danger);
1152 border-bottom-color: var(--color-danger);
1153 }
1154 .danger-card {
1155 border-color: var(--color-danger);
1156 background: var(--color-danger-bg);
1157 }
1158 .danger-item {
1159 display: flex;
1160 align-items: center;
1161 justify-content: space-between;
1162 gap: var(--space-4);
1163 flex-wrap: wrap;
1164 }
1165 .danger-item p {
1166 margin: var(--space-1) 0 0;
1167 }
1168 .btn-danger {
1169 background: var(--color-danger);
1170 border-color: transparent;
1171 color: #fff;
1172 }
1173 .btn-danger:hover {
1174 background: color-mix(in srgb, var(--color-danger) 85%, #000);
1175 }
1176
1177 /* --- Release list items --- */
1178 .release-item-header {
1179 display: flex;
1180 gap: var(--space-3);
1181 align-items: flex-start;
1182 }
1183 .release-item-main {
1184 flex: 1;
1185 min-width: 0;
1186 }
1187 .release-item-title {
1188 font-size: var(--text-lg);
1189 font-weight: 700;
1190 text-decoration: none;
1191 color: var(--color-text);
1192 display: block;
1193 margin-bottom: var(--space-1);
1194 }
1195 .release-item-title:hover {
1196 color: var(--color-link);
1197 }
1198 .release-item-meta {
1199 display: flex;
1200 flex-wrap: wrap;
1201 gap: var(--space-3);
1202 align-items: center;
1203 font-size: var(--text-xs);
1204 color: var(--color-text-muted);
1205 }
1206 .release-item-date {
1207 display: flex;
1208 flex-direction: column;
1209 align-items: flex-end;
1210 gap: var(--space-2);
1211 font-size: var(--text-xs);
1212 color: var(--color-text-muted);
1213 white-space: nowrap;
1214 flex-shrink: 0;
1215 }
1216
1217 /* --- Release notes preview in list --- */
1218 .release-notes-section {
1219 margin-top: var(--space-3);
1220 }
1221 .release-notes-label {
1222 font-size: var(--text-xs);
1223 font-weight: 600;
1224 color: var(--color-text-muted);
1225 text-transform: uppercase;
1226 letter-spacing: 0.05em;
1227 margin-bottom: var(--space-2);
1228 }
1229 .notes-expand > summary {
1230 list-style: none;
1231 cursor: pointer;
1232 outline: none;
1233 }
1234
1235 .notes-preview {
1236 max-height: calc(5 * 1.6em);
1237 overflow: hidden;
1238 position: relative;
1239 white-space: pre-wrap;
1240 font-size: var(--text-sm);
1241 color: var(--color-text);
1242 line-height: 1.6;
1243 word-break: break-word;
1244 margin-bottom: var(--space-1);
1245 }
1246 .notes-preview::after {
1247 content: "";
1248 position: absolute;
1249 bottom: 0;
1250 left: 0;
1251 right: 0;
1252 height: 2.5em;
1253 background: linear-gradient(transparent, var(--color-bg));
1254 pointer-events: none;
1255 }
1256 .notes-expand[open] .notes-preview {
1257 display: none;
1258 }
1259 .notes-full {
1260 padding-top: var(--space-3);
1261 padding-bottom: var(--space-1);
1262 }
1263 .notes-expand[open] {
1264 display: flex;
1265 flex-direction: column;
1266 }
1267 .notes-expand[open] > summary {
1268 order: 1;
1269 }
1270 .notes-expand[open] > .notes-full {
1271 order: 0;
1272 }
1273 .notes-toggle-label {
1274 display: inline-block;
1275 font-size: var(--text-xs);
1276 color: var(--color-link);
1277 margin-top: var(--space-1);
1278 }
1279 .notes-toggle-label:hover {
1280 text-decoration: underline;
1281 }
1282 .notes-toggle-label::before {
1283 content: "Show more ↓";
1284 }
1285 .notes-expand[open] .notes-toggle-label::before {
1286 content: "Show less ↑";
1287 }
1288
1289 /* --- Release detail --- */
1290 .release-detail {
1291 padding: var(--space-6) 0;
1292 }
1293 .release-header {
1294 margin-bottom: var(--space-6);
1295 }
1296 .release-notes {
1297 margin-bottom: var(--space-6);
1298 }
1299 .release-assets {
1300 margin-bottom: var(--space-6);
1301 }
1302 .release-assets-heading {
1303 font-size: var(--text-base);
1304 font-weight: 600;
1305 margin-bottom: var(--space-3);
1306 }
1307 .asset-list {
1308 border: 1px solid var(--color-border);
1309 border-radius: var(--radius-lg);
1310 overflow: hidden;
1311 }
1312 .asset-item {
1313 display: flex;
1314 align-items: center;
1315 gap: var(--space-4);
1316 padding: var(--space-3) var(--space-4);
1317 border-bottom: 1px solid var(--color-border-muted);
1318 font-size: var(--text-sm);
1319 }
1320 .asset-item:last-child {
1321 border-bottom: none;
1322 }
1323 .asset-name {
1324 flex: 1;
1325 color: var(--color-link);
1326 text-decoration: none;
1327 font-family: var(--font-mono);
1328 font-size: var(--text-xs);
1329 }
1330 .asset-name:hover {
1331 text-decoration: underline;
1332 }
1333 .asset-name-pending {
1334 color: var(--color-text-muted);
1335 cursor: default;
1336 }
1337 .asset-item-pending {
1338 opacity: 0.6;
1339 }
1340 .asset-size,
1341 .asset-meta {
1342 color: var(--color-text-muted);
1343 font-size: var(--text-xs);
1344 white-space: nowrap;
1345 }
1346 .release-back {
1347 margin-top: var(--space-4);
1348 display: flex;
1349 gap: var(--space-3);
1350 align-items: center;
1351 justify-content: space-between;
1352 }
1353
1354 /* ============================================================
1355 Pagination
1356 ============================================================ */
1357 .commit-verify-hint {
1358 margin-bottom: var(--space-4);
1359 font-size: var(--text-xs);
1360 color: var(--color-text-muted);
1361 }
1362 .commit-verify-hint code {
1363 word-break: break-all;
1364 }
1365 .commit-cursor-nav {
1366 display: flex;
1367 justify-content: space-between;
1368 border-top: 1px solid var(--color-border);
1369 margin-top: var(--space-2);
1370 padding: var(--space-4) 0 var(--space-2);
1371 }
1372
1373 .commit-cursor-prev {
1374 flex: 1;
1375 }
1376 .commit-cursor-next {
1377 flex: 1;
1378 text-align: right;
1379 }
1380
1381 .pagination {
1382 display: grid;
1383 grid-template-columns: 1fr auto 1fr;
1384 align-items: center;
1385 border-top: 1px solid var(--color-border);
1386 margin-top: var(--space-2);
1387 padding: var(--space-4) 0 var(--space-2);
1388 }
1389
1390 .pagination-prev {
1391 justify-self: start;
1392 }
1393 .pagination-next {
1394 justify-self: end;
1395 }
1396
1397 .pagination-info {
1398 justify-self: center;
1399 font-size: var(--text-sm);
1400 color: var(--color-text-muted);
1401 }
1402
1403 .pagination-btn {
1404 display: inline-flex;
1405 align-items: center;
1406 gap: var(--space-1);
1407 padding: var(--space-1) var(--space-3);
1408 border: 1px solid var(--color-border);
1409 border-radius: var(--radius-md);
1410 font-size: var(--text-sm);
1411 font-weight: 500;
1412 text-decoration: none;
1413 color: var(--color-text);
1414 background: var(--color-bg-subtle);
1415 transition:
1416 background 0.1s,
1417 border-color 0.1s;
1418 white-space: nowrap;
1419 }
1420
1421 .pagination-btn:hover {
1422 background: var(--color-bg-inset);
1423 border-color: var(--color-border);
1424 color: var(--color-text);
1425 text-decoration: none;
1426 }
1427
1428 /* Settings */
1429 .theme-options {
1430 display: flex;
1431 gap: var(--space-4);
1432 margin-bottom: var(--space-4);
1433 flex-wrap: wrap;
1434 }
1435 .theme-option {
1436 display: flex;
1437 align-items: center;
1438 gap: var(--space-2);
1439 cursor: pointer;
1440 font-size: var(--text-sm);
1441 }
1442 .settings-form {
1443 display: flex;
1444 flex-direction: column;
1445 gap: var(--space-4);
1446 }
1447 .passkey-list {
1448 display: flex;
1449 flex-direction: column;
1450 gap: var(--space-2);
1451 margin-bottom: var(--space-4);
1452 }
1453 .passkey-item {
1454 display: flex;
1455 align-items: center;
1456 gap: var(--space-3);
1457 padding: var(--space-2) 0;
1458 border-bottom: 1px solid var(--color-border-muted);
1459 font-size: var(--text-sm);
1460 }
1461 .passkey-item:last-child {
1462 border-bottom: none;
1463 }
1464 .passkey-date {
1465 flex: 1;
1466 color: var(--color-text-muted);
1467 }
1468 .queue-bulk-actions {
1469 display: flex;
1470 gap: var(--space-2);
1471 margin-bottom: var(--space-4);
1472 }
1473 .queue-list {
1474 list-style: none;
1475 padding: 0;
1476 margin: 0;
1477 max-height: 32rem;
1478 overflow-y: auto;
1479 }
1480 .queue-item {
1481 display: flex;
1482 align-items: flex-start;
1483 justify-content: space-between;
1484 gap: var(--space-4);
1485 padding: var(--space-3) 0;
1486 border-top: 1px solid var(--color-border-muted);
1487 font-size: var(--text-sm);
1488 }
1489 .queue-item-meta {
1490 display: flex;
1491 flex-direction: column;
1492 gap: var(--space-1);
1493 min-width: 0;
1494 }
1495 .queue-item-header {
1496 display: flex;
1497 align-items: baseline;
1498 gap: var(--space-2);
1499 }
1500 .queue-item-date {
1501 color: var(--color-text-muted);
1502 font-size: var(--text-xs);
1503 }
1504 .queue-item-answer {
1505 margin: 0;
1506 color: var(--color-text-muted);
1507 font-size: var(--text-xs);
1508 white-space: pre-wrap;
1509 word-break: break-word;
1510 }
1511 .queue-item-actions {
1512 display: flex;
1513 gap: var(--space-2);
1514 flex-shrink: 0;
1515 }
1516 .ssh-key-info {
1517 flex: 1;
1518 display: flex;
1519 flex-direction: column;
1520 gap: var(--space-1);
1521 min-width: 0;
1522 }
1523 .ssh-key-name {
1524 font-weight: 500;
1525 }
1526 .ssh-key-fingerprint {
1527 font-family: var(--font-mono);
1528 font-size: var(--text-xs);
1529 overflow: hidden;
1530 text-overflow: ellipsis;
1531 white-space: nowrap;
1532 }
1533 .form-textarea {
1534 resize: vertical;
1535 min-height: 4.5rem;
1536 font-family: var(--font-mono);
1537 font-size: var(--text-sm);
1538 }
1539
1540 /* Clone popup */
1541 .clone-popup-details {
1542 position: relative;
1543 display: inline-block;
1544 }
1545 .clone-popup-details > summary {
1546 list-style: none;
1547 }
1548 .timeline-author-right .inline-edit-details > summary {
1549 list-style: none;
1550 }
1551 .clone-popup {
1552 position: absolute;
1553 right: 1rem;
1554 top: calc(100% + var(--space-2));
1555 background: var(--color-bg);
1556 border: 1px solid var(--color-border);
1557 border-radius: var(--radius-lg);
1558 padding: var(--space-3);
1559 min-width: 22rem;
1560 z-index: 100;
1561 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
1562 display: flex;
1563 flex-direction: column;
1564 gap: var(--space-2);
1565 }
1566 .clone-url-row {
1567 display: flex;
1568 align-items: center;
1569 gap: var(--space-2);
1570 }
1571 .clone-url-label {
1572 font-size: var(--text-xs);
1573 font-weight: 600;
1574 color: var(--color-text-muted);
1575 text-transform: uppercase;
1576 letter-spacing: 0.05em;
1577 min-width: 2.75rem;
1578 }
1579 .clone-url-input {
1580 flex: 1;
1581 font-family: var(--font-mono);
1582 font-size: var(--text-sm);
1583 background: var(--color-bg-subtle);
1584 border: 1px solid var(--color-border-muted);
1585 border-radius: var(--radius-md);
1586 padding: var(--space-1) var(--space-2);
1587 color: var(--color-text);
1588 cursor: text;
1589 min-width: 0;
1590 }
1591
1592 /* User list */
1593 .user-list {
1594 display: flex;
1595 flex-direction: column;
1596 gap: var(--space-2);
1597 margin-bottom: var(--space-6);
1598 }
1599 .user-item {
1600 display: flex;
1601 align-items: center;
1602 gap: var(--space-3);
1603 padding: var(--space-2) 0;
1604 border-bottom: 1px solid var(--color-border-muted);
1605 font-size: var(--text-sm);
1606 }
1607 .user-item:last-child {
1608 border-bottom: none;
1609 }
1610 .user-name {
1611 font-weight: 500;
1612 flex: 1;
1613 }
1614 .user-date {
1615 color: var(--color-text-muted);
1616 font-size: var(--text-xs);
1617 }
1618
1619 /* Labels */
1620 .label-badge {
1621 display: inline-block;
1622 padding: 0 var(--space-2);
1623 border-radius: 2em;
1624 font-size: var(--text-xs);
1625 font-weight: 500;
1626 line-height: 1.6;
1627 word-break: break-all;
1628 }
1629 .issue-labels {
1630 display: flex;
1631 flex-wrap: wrap;
1632 gap: var(--space-1);
1633 margin-bottom: var(--space-2);
1634 }
1635 .issue-labels-row {
1636 display: flex;
1637 flex-wrap: wrap;
1638 align-items: center;
1639 gap: var(--space-2);
1640 padding: var(--space-2) 0 var(--space-3);
1641 }
1642 .label-badge-wrap {
1643 display: inline-flex;
1644 align-items: center;
1645 gap: var(--space-1);
1646 }
1647 .label-remove-form {
1648 display: inline;
1649 }
1650 .label-remove-btn {
1651 background: none;
1652 border: none;
1653 cursor: pointer;
1654 padding: 0 2px;
1655 font-size: var(--text-sm);
1656 line-height: 1;
1657 color: var(--color-text-muted);
1658 opacity: 0.7;
1659 }
1660 .label-remove-btn:hover {
1661 opacity: 1;
1662 }
1663 .label-add-inline-form {
1664 display: inline-flex;
1665 align-items: center;
1666 gap: var(--space-2);
1667 }
1668 .label-select {
1669 font-size: var(--text-sm);
1670 padding: var(--space-1) var(--space-2);
1671 border: 1px solid var(--color-border);
1672 border-radius: var(--radius-md);
1673 background: var(--color-bg);
1674 color: var(--color-text);
1675 height: 2rem;
1676 }
1677 .label-checkbox-list {
1678 display: flex;
1679 flex-wrap: wrap;
1680 gap: var(--space-2);
1681 margin-top: var(--space-1);
1682 }
1683 .label-checkbox-item {
1684 display: inline-flex;
1685 align-items: center;
1686 gap: var(--space-1);
1687 cursor: pointer;
1688 }
1689 .label-settings-list {
1690 display: flex;
1691 flex-direction: column;
1692 margin-bottom: var(--space-4);
1693 max-height: 24rem;
1694 overflow-y: auto;
1695 }
1696 .label-settings-item {
1697 display: flex;
1698 align-items: center;
1699 gap: var(--space-3);
1700 padding: var(--space-2) 0;
1701 border-bottom: 1px solid var(--color-border-muted);
1702 font-size: var(--text-sm);
1703 }
1704 .label-settings-item:last-child {
1705 border-bottom: none;
1706 }
1707 .label-settings-swatch {
1708 width: 12px;
1709 height: 12px;
1710 border-radius: 50%;
1711 flex-shrink: 0;
1712 border: 1px solid rgba(0, 0, 0, 0.15);
1713 }
1714 .label-settings-name {
1715 flex: 1;
1716 font-weight: 500;
1717 }
1718 .label-add-form {
1719 display: flex;
1720 align-items: center;
1721 gap: var(--space-2);
1722 }
1723 .label-name-input {
1724 flex: 1;
1725 min-width: 0;
1726 padding: var(--space-2) var(--space-3);
1727 border: 1px solid var(--color-border);
1728 border-radius: var(--radius-md);
1729 background: var(--color-bg);
1730 color: var(--color-text);
1731 font-size: var(--text-sm);
1732 height: 2rem;
1733 box-sizing: border-box;
1734 }
1735 .label-name-input:focus {
1736 outline: 2px solid var(--color-accent);
1737 outline-offset: -1px;
1738 border-color: var(--color-accent);
1739 }
1740 .label-color-swatch-label {
1741 flex-shrink: 0;
1742 cursor: pointer;
1743 display: block;
1744 line-height: 0;
1745 }
1746 .label-color-input {
1747 display: block;
1748 width: 2rem;
1749 height: 2rem;
1750 cursor: pointer;
1751 appearance: none;
1752 box-sizing: border-box;
1753 clip-path: circle(50%);
1754 border: none;
1755 }
1756
1757 /* Label filter (details/summary popup) */
1758 .list-header-actions {
1759 display: flex;
1760 align-items: center;
1761 gap: var(--space-2);
1762 flex-shrink: 0;
1763 }
1764 .label-filter {
1765 position: relative;
1766 }
1767 .label-filter-popup {
1768 position: absolute;
1769 right: 0;
1770 top: calc(100% + var(--space-1));
1771 z-index: 10;
1772 background: var(--color-bg);
1773 border: 1px solid var(--color-border);
1774 border-radius: var(--radius-lg);
1775 padding: var(--space-3);
1776 min-width: 180px;
1777 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
1778 }
1779 .label-filter-list {
1780 display: flex;
1781 flex-direction: column;
1782 gap: var(--space-2);
1783 margin-bottom: var(--space-3);
1784 max-height: 16rem;
1785 overflow-y: auto;
1786 }
1787 .label-filter-item {
1788 display: flex;
1789 align-items: center;
1790 gap: var(--space-2);
1791 cursor: pointer;
1792 font-size: var(--text-sm);
1793 }
1794 .label-filter-actions {
1795 display: flex;
1796 gap: var(--space-2);
1797 }
1798}
1799