@oss-autopilot/core 0.45.0 → 0.46.1

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,765 +0,0 @@
1
- /**
2
- * Dashboard CSS styles: theme variables, layout, component styles.
3
- * Extracted from dashboard-templates.ts for maintainability.
4
- */
5
- export const DASHBOARD_CSS = `
6
- :root, [data-theme="dark"] {
7
- --bg-base: #080b10;
8
- --bg-surface: rgba(22, 27, 34, 0.65);
9
- --bg-elevated: rgba(28, 33, 40, 0.8);
10
- --border: rgba(48, 54, 61, 0.6);
11
- --border-muted: rgba(33, 38, 45, 0.5);
12
- --text-primary: #e6edf3;
13
- --text-secondary: #8b949e;
14
- --text-muted: #6e7681;
15
- --accent-merged: #a855f7;
16
- --accent-merged-dim: rgba(168, 85, 247, 0.12);
17
- --accent-open: #3fb950;
18
- --accent-open-dim: rgba(63, 185, 80, 0.12);
19
- --accent-warning: #d29922;
20
- --accent-warning-dim: rgba(210, 153, 34, 0.12);
21
- --accent-error: #f85149;
22
- --accent-error-dim: rgba(248, 81, 73, 0.10);
23
- --accent-conflict: #da3633;
24
- --accent-info: #58a6ff;
25
- --accent-info-dim: rgba(88, 166, 255, 0.08);
26
- --chart-border: rgba(8, 11, 16, 0.8);
27
- --chart-grid: rgba(48, 54, 61, 0.3);
28
- --scrollbar-track: rgba(28, 33, 40, 0.8);
29
- --scrollbar-thumb: rgba(48, 54, 61, 0.6);
30
- }
31
-
32
- [data-theme="light"] {
33
- --bg-base: #f6f8fa;
34
- --bg-surface: rgba(255, 255, 255, 0.85);
35
- --bg-elevated: rgba(246, 248, 250, 0.95);
36
- --border: rgba(208, 215, 222, 0.6);
37
- --border-muted: rgba(216, 222, 228, 0.5);
38
- --text-primary: #1f2328;
39
- --text-secondary: #656d76;
40
- --text-muted: #8b949e;
41
- --accent-merged: #8250df;
42
- --accent-merged-dim: rgba(130, 80, 223, 0.1);
43
- --accent-open: #1a7f37;
44
- --accent-open-dim: rgba(26, 127, 55, 0.1);
45
- --accent-warning: #9a6700;
46
- --accent-warning-dim: rgba(154, 103, 0, 0.1);
47
- --accent-error: #cf222e;
48
- --accent-error-dim: rgba(207, 34, 46, 0.08);
49
- --accent-conflict: #cf222e;
50
- --accent-info: #0969da;
51
- --accent-info-dim: rgba(9, 105, 218, 0.08);
52
- --chart-border: rgba(255, 255, 255, 0.8);
53
- --chart-grid: rgba(208, 215, 222, 0.4);
54
- --scrollbar-track: rgba(246, 248, 250, 0.95);
55
- --scrollbar-thumb: rgba(208, 215, 222, 0.6);
56
- }
57
-
58
- @media (prefers-color-scheme: light) {
59
- :root:not([data-theme="dark"]) {
60
- --bg-base: #f6f8fa;
61
- --bg-surface: rgba(255, 255, 255, 0.85);
62
- --bg-elevated: rgba(246, 248, 250, 0.95);
63
- --border: rgba(208, 215, 222, 0.6);
64
- --border-muted: rgba(216, 222, 228, 0.5);
65
- --text-primary: #1f2328;
66
- --text-secondary: #656d76;
67
- --text-muted: #8b949e;
68
- --accent-merged: #8250df;
69
- --accent-merged-dim: rgba(130, 80, 223, 0.1);
70
- --accent-open: #1a7f37;
71
- --accent-open-dim: rgba(26, 127, 55, 0.1);
72
- --accent-warning: #9a6700;
73
- --accent-warning-dim: rgba(154, 103, 0, 0.1);
74
- --accent-error: #cf222e;
75
- --accent-error-dim: rgba(207, 34, 46, 0.08);
76
- --accent-conflict: #cf222e;
77
- --accent-info: #0969da;
78
- --accent-info-dim: rgba(9, 105, 218, 0.08);
79
- --chart-border: rgba(255, 255, 255, 0.8);
80
- --chart-grid: rgba(208, 215, 222, 0.4);
81
- --scrollbar-track: rgba(246, 248, 250, 0.95);
82
- --scrollbar-thumb: rgba(208, 215, 222, 0.6);
83
- }
84
- }
85
-
86
- * { margin: 0; padding: 0; box-sizing: border-box; }
87
-
88
- body {
89
- font-family: 'Geist', -apple-system, BlinkMacSystemFont, sans-serif;
90
- background: var(--bg-base);
91
- color: var(--text-primary);
92
- min-height: 100vh;
93
- line-height: 1.5;
94
- overflow-x: hidden;
95
- }
96
-
97
- body::before {
98
- content: '';
99
- position: fixed;
100
- top: -20%; left: -10%;
101
- width: 60%; height: 60%;
102
- background: radial-gradient(ellipse, rgba(88, 166, 255, 0.06) 0%, transparent 70%);
103
- pointer-events: none;
104
- z-index: 0;
105
- }
106
-
107
- body::after {
108
- content: '';
109
- position: fixed;
110
- bottom: -20%; right: -10%;
111
- width: 50%; height: 50%;
112
- background: radial-gradient(ellipse, rgba(168, 85, 247, 0.05) 0%, transparent 70%);
113
- pointer-events: none;
114
- z-index: 0;
115
- }
116
-
117
- [data-theme="light"] body::before,
118
- [data-theme="light"] body::after {
119
- display: none;
120
- }
121
-
122
- .container {
123
- max-width: 1400px;
124
- margin: 0 auto;
125
- padding: 2rem;
126
- position: relative;
127
- z-index: 1;
128
- }
129
-
130
- .header {
131
- display: flex;
132
- align-items: center;
133
- justify-content: space-between;
134
- margin-bottom: 1.5rem;
135
- padding-bottom: 1rem;
136
- border-bottom: 1px solid var(--border-muted);
137
- }
138
-
139
- .header-left {
140
- display: flex;
141
- align-items: center;
142
- gap: 1rem;
143
- }
144
-
145
- .logo {
146
- width: 44px;
147
- height: 44px;
148
- background: linear-gradient(135deg, var(--accent-info) 0%, var(--accent-merged) 50%, #f778ba 100%);
149
- border-radius: 12px;
150
- display: flex;
151
- align-items: center;
152
- justify-content: center;
153
- font-size: 1.5rem;
154
- box-shadow: 0 0 24px rgba(168, 85, 247, 0.3), 0 0 48px rgba(88, 166, 255, 0.15);
155
- }
156
-
157
- .header h1 {
158
- font-size: 1.75rem;
159
- font-weight: 600;
160
- letter-spacing: -0.02em;
161
- background: linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);
162
- -webkit-background-clip: text;
163
- -webkit-text-fill-color: transparent;
164
- background-clip: text;
165
- }
166
-
167
- .header-subtitle {
168
- font-family: 'Geist Mono', monospace;
169
- font-size: 0.75rem;
170
- color: var(--text-muted);
171
- text-transform: uppercase;
172
- letter-spacing: 0.1em;
173
- }
174
-
175
- .timestamp {
176
- font-family: 'Geist Mono', monospace;
177
- font-size: 0.8rem;
178
- color: var(--text-muted);
179
- display: flex;
180
- align-items: center;
181
- gap: 0.5rem;
182
- }
183
-
184
- .timestamp::before {
185
- content: '';
186
- width: 8px;
187
- height: 8px;
188
- background: var(--accent-open);
189
- border-radius: 50%;
190
- animation: pulse 2s ease-in-out infinite;
191
- }
192
-
193
- @keyframes pulse {
194
- 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(35, 134, 54, 0.4); }
195
- 50% { opacity: 0.8; box-shadow: 0 0 0 8px rgba(35, 134, 54, 0); }
196
- }
197
-
198
- .stats-grid {
199
- display: flex;
200
- background: var(--bg-surface);
201
- border: 1px solid var(--border-muted);
202
- border-radius: 12px;
203
- margin-bottom: 1.5rem;
204
- overflow: hidden;
205
- }
206
-
207
- @media (max-width: 768px) {
208
- .stats-grid { flex-wrap: wrap; }
209
- .stat-card { flex: 1 1 33%; }
210
- }
211
-
212
- .stat-card {
213
- flex: 1;
214
- padding: 1rem 1.25rem;
215
- position: relative;
216
- transition: background 0.2s ease;
217
- }
218
-
219
- .stat-card + .stat-card {
220
- border-left: 1px solid var(--border-muted);
221
- }
222
-
223
- .stat-card:hover {
224
- background: rgba(255, 255, 255, 0.02);
225
- }
226
-
227
- .stat-card::after {
228
- content: '';
229
- position: absolute;
230
- bottom: 0; left: 0.75rem; right: 0.75rem;
231
- height: 2px;
232
- background: var(--accent-color, var(--border));
233
- border-radius: 2px;
234
- opacity: 0.7;
235
- }
236
-
237
- .stat-card.active { --accent-color: var(--accent-open); }
238
- .stat-card.merged { --accent-color: var(--accent-merged); }
239
- .stat-card.closed { --accent-color: var(--text-muted); }
240
- .stat-card.rate { --accent-color: var(--accent-info); }
241
-
242
- .stat-value {
243
- font-family: 'Geist Mono', monospace;
244
- font-size: 1.75rem;
245
- font-weight: 600;
246
- line-height: 1;
247
- margin-bottom: 0.25rem;
248
- }
249
-
250
- .stat-card.active .stat-value { color: var(--accent-open); }
251
- .stat-card.merged .stat-value { color: var(--accent-merged); }
252
- .stat-card.closed .stat-value { color: var(--text-muted); }
253
- .stat-card.rate .stat-value { color: var(--accent-info); }
254
-
255
- .stat-label {
256
- font-size: 0.7rem;
257
- color: var(--text-secondary);
258
- text-transform: uppercase;
259
- letter-spacing: 0.05em;
260
- }
261
-
262
- .health-section {
263
- background: var(--bg-surface);
264
- border: 1px solid var(--border-muted);
265
- border-radius: 10px;
266
- padding: 1.25rem;
267
- margin-bottom: 1.25rem;
268
- }
269
-
270
- .health-header {
271
- display: flex;
272
- align-items: center;
273
- gap: 0.75rem;
274
- margin-bottom: 1rem;
275
- }
276
-
277
- .health-header h2 {
278
- font-size: 1rem;
279
- font-weight: 600;
280
- color: var(--text-primary);
281
- }
282
-
283
- .health-badge {
284
- font-family: 'Geist Mono', monospace;
285
- font-size: 0.7rem;
286
- padding: 0.25rem 0.5rem;
287
- border-radius: 4px;
288
- background: var(--accent-error-dim);
289
- color: var(--accent-error);
290
- }
291
-
292
- .health-items {
293
- display: grid;
294
- grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
295
- gap: 0.75rem;
296
- }
297
-
298
- .health-item {
299
- display: flex;
300
- align-items: center;
301
- gap: 0.75rem;
302
- padding: 0.75rem 1rem;
303
- background: var(--bg-elevated);
304
- border-radius: 8px;
305
- border-left: 3px solid;
306
- transition: transform 0.15s ease;
307
- }
308
-
309
- .health-item:hover { transform: translateX(4px); }
310
-
311
- .health-item.ci-failing {
312
- border-left-color: var(--accent-error);
313
- background: var(--accent-error-dim);
314
- }
315
-
316
- .health-item.conflict {
317
- border-left-color: var(--accent-conflict);
318
- background: rgba(218, 54, 51, 0.1);
319
- }
320
-
321
- .health-item.incomplete-checklist {
322
- border-left-color: var(--accent-info);
323
- }
324
- .health-item.needs-response,
325
- .health-item.needs-changes {
326
- border-left-color: var(--accent-warning);
327
- background: var(--accent-warning-dim);
328
- }
329
-
330
- .health-item.changes-addressed,
331
- .health-item.waiting-maintainer {
332
- border-left-color: var(--accent-info);
333
- background: var(--accent-info-dim);
334
- }
335
-
336
- .health-item.ci-not-running {
337
- border-left-color: var(--text-muted);
338
- background: rgba(110, 118, 129, 0.1);
339
- }
340
-
341
- .health-item.missing-files {
342
- border-left-color: var(--accent-warning);
343
- background: var(--accent-warning-dim);
344
- }
345
-
346
- .health-item.ci-blocked {
347
- border-left-color: var(--text-muted);
348
- background: rgba(110, 118, 129, 0.1);
349
- }
350
-
351
- .health-item.needs-rebase {
352
- border-left-color: var(--accent-warning);
353
- background: var(--accent-warning-dim);
354
- }
355
-
356
- .health-item.shelved {
357
- border-left-color: var(--text-muted);
358
- background: rgba(110, 118, 129, 0.06);
359
- opacity: 0.6;
360
- }
361
-
362
- .health-item.shelved .health-icon { background: rgba(110, 118, 129, 0.12); color: var(--text-muted); }
363
-
364
- .health-item.auto-unshelved {
365
- border-left-color: var(--accent-info);
366
- background: var(--accent-info-dim);
367
- }
368
-
369
- .health-item.auto-unshelved .health-icon { background: var(--accent-info-dim); color: var(--accent-info); }
370
-
371
- .stat-card.shelved { --accent-color: var(--text-muted); }
372
- .stat-card.shelved .stat-value { color: var(--text-muted); }
373
-
374
- .waiting-section {
375
- border-color: rgba(88, 166, 255, 0.2);
376
- }
377
-
378
- .health-icon {
379
- width: 32px;
380
- height: 32px;
381
- border-radius: 8px;
382
- display: flex;
383
- align-items: center;
384
- justify-content: center;
385
- font-size: 1rem;
386
- flex-shrink: 0;
387
- }
388
-
389
- .health-item.ci-failing .health-icon { background: var(--accent-error-dim); color: var(--accent-error); }
390
- .health-item.conflict .health-icon { background: rgba(218, 54, 51, 0.15); color: var(--accent-conflict); }
391
- .health-item.incomplete-checklist .health-icon { background: var(--accent-info-dim); color: var(--accent-info); }
392
- .health-item.needs-response .health-icon,
393
- .health-item.needs-changes .health-icon { background: var(--accent-warning-dim); color: var(--accent-warning); }
394
- .health-item.changes-addressed .health-icon,
395
- .health-item.waiting-maintainer .health-icon { background: var(--accent-info-dim); color: var(--accent-info); }
396
- .health-item.ci-not-running .health-icon { background: rgba(110, 118, 129, 0.15); color: var(--text-muted); }
397
- .health-item.missing-files .health-icon { background: var(--accent-warning-dim); color: var(--accent-warning); }
398
- .health-item.ci-blocked .health-icon { background: rgba(110, 118, 129, 0.15); color: var(--text-muted); }
399
- .health-item.needs-rebase .health-icon { background: var(--accent-warning-dim); color: var(--accent-warning); }
400
-
401
- .health-content { flex: 1; min-width: 0; }
402
-
403
- .health-title {
404
- font-size: 0.85rem;
405
- font-weight: 500;
406
- color: var(--text-primary);
407
- white-space: nowrap;
408
- overflow: hidden;
409
- text-overflow: ellipsis;
410
- }
411
-
412
- .health-title a { color: inherit; text-decoration: none; }
413
- .health-title a:hover { color: var(--accent-info); }
414
-
415
- .health-meta {
416
- font-family: 'Geist Mono', monospace;
417
- font-size: 0.7rem;
418
- color: var(--text-muted);
419
- }
420
-
421
- .health-empty {
422
- display: flex;
423
- align-items: center;
424
- justify-content: center;
425
- padding: 2rem;
426
- color: var(--text-muted);
427
- font-size: 0.9rem;
428
- }
429
-
430
- .health-empty::before {
431
- content: '\\2713';
432
- display: inline-flex;
433
- align-items: center;
434
- justify-content: center;
435
- width: 24px;
436
- height: 24px;
437
- background: var(--accent-open-dim);
438
- color: var(--accent-open);
439
- border-radius: 50%;
440
- margin-right: 0.75rem;
441
- font-weight: bold;
442
- }
443
-
444
- .main-grid {
445
- display: grid;
446
- grid-template-columns: 1fr 1fr;
447
- gap: 1.25rem;
448
- margin-bottom: 1.25rem;
449
- }
450
-
451
- @media (max-width: 1024px) { .main-grid { grid-template-columns: 1fr; } }
452
-
453
- .card {
454
- background: var(--bg-surface);
455
- border: 1px solid var(--border-muted);
456
- border-radius: 10px;
457
- overflow: hidden;
458
- }
459
-
460
- .card-header {
461
- display: flex;
462
- align-items: center;
463
- justify-content: space-between;
464
- padding: 0.75rem 1.125rem;
465
- border-bottom: 1px solid var(--border-muted);
466
- }
467
-
468
- .card-title {
469
- font-size: 0.75rem;
470
- font-weight: 600;
471
- color: var(--text-secondary);
472
- text-transform: uppercase;
473
- letter-spacing: 0.04em;
474
- }
475
-
476
- .card-body { padding: 1rem 1.125rem; }
477
-
478
- .chart-container {
479
- position: relative;
480
- height: 260px;
481
- }
482
-
483
- .pr-list-section {
484
- background: var(--bg-surface);
485
- border: 1px solid var(--border-muted);
486
- border-radius: 10px;
487
- overflow: hidden;
488
- }
489
-
490
- .pr-list-header {
491
- display: flex;
492
- align-items: center;
493
- justify-content: space-between;
494
- padding: 0.75rem 1.125rem;
495
- border-bottom: 1px solid var(--border-muted);
496
- }
497
-
498
- .pr-list-title {
499
- font-size: 0.75rem;
500
- font-weight: 600;
501
- color: var(--text-secondary);
502
- text-transform: uppercase;
503
- letter-spacing: 0.04em;
504
- }
505
-
506
- .pr-count {
507
- font-family: 'Geist Mono', monospace;
508
- font-size: 0.75rem;
509
- padding: 0.25rem 0.5rem;
510
- background: var(--accent-open-dim);
511
- color: var(--accent-open);
512
- border-radius: 4px;
513
- }
514
-
515
- .pr-list {
516
- max-height: 600px;
517
- overflow-y: auto;
518
- }
519
-
520
- .pr-list::-webkit-scrollbar { width: 6px; }
521
- .pr-list::-webkit-scrollbar-track { background: var(--scrollbar-track, var(--bg-elevated)); }
522
- .pr-list::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb, var(--border)); border-radius: 3px; }
523
-
524
- .pr-item {
525
- display: flex;
526
- align-items: flex-start;
527
- gap: 1rem;
528
- padding: 1rem 1.25rem;
529
- border-bottom: 1px solid var(--border-muted);
530
- transition: background 0.15s ease;
531
- }
532
-
533
- .pr-item:last-child { border-bottom: none; }
534
- .pr-item:hover { background: var(--bg-elevated); }
535
-
536
- .pr-status-indicator {
537
- width: 40px;
538
- height: 40px;
539
- border-radius: 10px;
540
- display: flex;
541
- align-items: center;
542
- justify-content: center;
543
- flex-shrink: 0;
544
- font-size: 1.1rem;
545
- background: var(--accent-open-dim);
546
- color: var(--accent-open);
547
- }
548
-
549
- .pr-item.has-issues .pr-status-indicator {
550
- background: var(--accent-error-dim);
551
- color: var(--accent-error);
552
- animation: attention-pulse 2s ease-in-out infinite;
553
- }
554
-
555
- .pr-item.stale .pr-status-indicator {
556
- background: var(--accent-warning-dim);
557
- color: var(--accent-warning);
558
- }
559
-
560
- @keyframes attention-pulse {
561
- 0%, 100% { box-shadow: 0 0 0 0 rgba(248, 81, 73, 0.4); }
562
- 50% { box-shadow: 0 0 0 6px rgba(248, 81, 73, 0); }
563
- }
564
-
565
- .pr-content { flex: 1; min-width: 0; }
566
-
567
- .pr-title-row {
568
- display: flex;
569
- align-items: center;
570
- gap: 0.5rem;
571
- margin-bottom: 0.25rem;
572
- }
573
-
574
- .pr-title {
575
- font-size: 0.9rem;
576
- font-weight: 500;
577
- color: var(--text-primary);
578
- text-decoration: none;
579
- white-space: nowrap;
580
- overflow: hidden;
581
- text-overflow: ellipsis;
582
- }
583
-
584
- .pr-title:hover { color: var(--accent-info); }
585
-
586
- .pr-repo {
587
- font-family: 'Geist Mono', monospace;
588
- font-size: 0.75rem;
589
- color: var(--text-muted);
590
- flex-shrink: 0;
591
- }
592
-
593
- .pr-badges {
594
- display: flex;
595
- flex-wrap: wrap;
596
- gap: 0.5rem;
597
- }
598
-
599
- .badge {
600
- font-family: 'Geist Mono', monospace;
601
- font-size: 0.65rem;
602
- font-weight: 500;
603
- padding: 0.2rem 0.5rem;
604
- border-radius: 4px;
605
- text-transform: uppercase;
606
- letter-spacing: 0.03em;
607
- }
608
-
609
- .badge-ci-failing { background: var(--accent-error-dim); color: var(--accent-error); }
610
- .badge-conflict { background: rgba(218, 54, 51, 0.15); color: var(--accent-conflict); }
611
- .badge-needs-response { background: var(--accent-warning-dim); color: var(--accent-warning); }
612
- .badge-stale { background: var(--accent-warning-dim); color: var(--accent-warning); }
613
- .badge-passing { background: var(--accent-open-dim); color: var(--accent-open); }
614
- .badge-pending { background: var(--accent-info-dim); color: var(--accent-info); }
615
- .badge-days { background: var(--bg-elevated); color: var(--text-muted); }
616
- .badge-changes-requested { background: var(--accent-warning-dim); color: var(--accent-warning); }
617
- .badge-changes-addressed { background: var(--accent-info-dim); color: var(--accent-info); }
618
-
619
- .pr-activity {
620
- font-family: 'Geist Mono', monospace;
621
- font-size: 0.7rem;
622
- color: var(--text-muted);
623
- margin-left: auto;
624
- text-align: right;
625
- flex-shrink: 0;
626
- }
627
-
628
- .empty-state {
629
- display: flex;
630
- flex-direction: column;
631
- align-items: center;
632
- justify-content: center;
633
- padding: 3rem;
634
- color: var(--text-muted);
635
- }
636
-
637
- .empty-state-icon {
638
- font-size: 2.5rem;
639
- margin-bottom: 1rem;
640
- opacity: 0.5;
641
- }
642
-
643
- .footer {
644
- text-align: center;
645
- padding-top: 1.5rem;
646
- border-top: 1px solid var(--border-muted);
647
- margin-top: 1.5rem;
648
- }
649
-
650
- .footer p {
651
- font-family: 'Geist Mono', monospace;
652
- font-size: 0.7rem;
653
- color: var(--text-muted);
654
- }
655
-
656
- @keyframes fadeInUp {
657
- from { opacity: 0; transform: translateY(12px); }
658
- to { opacity: 1; transform: translateY(0); }
659
- }
660
-
661
- .stats-grid, .health-section, .pr-list-section {
662
- animation: fadeInUp 0.35s ease;
663
- }
664
-
665
- .theme-toggle {
666
- background: var(--bg-elevated);
667
- border: 1px solid var(--border-muted);
668
- border-radius: 8px;
669
- padding: 0.4rem 0.6rem;
670
- cursor: pointer;
671
- color: var(--text-secondary);
672
- display: flex;
673
- align-items: center;
674
- gap: 0.4rem;
675
- font-family: 'Geist Mono', monospace;
676
- font-size: 0.7rem;
677
- transition: background 0.2s ease, color 0.2s ease;
678
- }
679
-
680
- .theme-toggle:hover {
681
- background: var(--bg-surface);
682
- color: var(--text-primary);
683
- }
684
-
685
- .theme-toggle svg { flex-shrink: 0; }
686
-
687
- .header-controls {
688
- display: flex;
689
- align-items: center;
690
- gap: 0.75rem;
691
- }
692
-
693
- .filter-toolbar {
694
- display: flex;
695
- align-items: center;
696
- gap: 0.75rem;
697
- padding: 0.75rem 1rem;
698
- background: var(--bg-surface);
699
- border: 1px solid var(--border-muted);
700
- border-radius: 10px;
701
- margin-bottom: 1.25rem;
702
- flex-wrap: wrap;
703
- }
704
-
705
- .filter-toolbar label {
706
- font-family: 'Geist Mono', monospace;
707
- font-size: 0.7rem;
708
- color: var(--text-muted);
709
- text-transform: uppercase;
710
- letter-spacing: 0.04em;
711
- flex-shrink: 0;
712
- }
713
-
714
- .filter-search {
715
- flex: 1;
716
- min-width: 180px;
717
- padding: 0.4rem 0.75rem;
718
- background: var(--bg-elevated);
719
- border: 1px solid var(--border-muted);
720
- border-radius: 6px;
721
- color: var(--text-primary);
722
- font-family: 'Geist', sans-serif;
723
- font-size: 0.8rem;
724
- outline: none;
725
- transition: border-color 0.2s ease;
726
- }
727
-
728
- .filter-search:focus {
729
- border-color: var(--accent-info);
730
- }
731
-
732
- .filter-search::placeholder {
733
- color: var(--text-muted);
734
- }
735
-
736
- .filter-select {
737
- padding: 0.4rem 0.75rem;
738
- background: var(--bg-elevated);
739
- border: 1px solid var(--border-muted);
740
- border-radius: 6px;
741
- color: var(--text-primary);
742
- font-family: 'Geist', sans-serif;
743
- font-size: 0.8rem;
744
- outline: none;
745
- cursor: pointer;
746
- transition: border-color 0.2s ease;
747
- }
748
-
749
- .filter-select:focus {
750
- border-color: var(--accent-info);
751
- }
752
-
753
- .filter-count {
754
- font-family: 'Geist Mono', monospace;
755
- font-size: 0.7rem;
756
- color: var(--text-muted);
757
- margin-left: auto;
758
- flex-shrink: 0;
759
- }
760
-
761
- .pr-item[data-hidden="true"],
762
- .health-item[data-hidden="true"] {
763
- display: none;
764
- }
765
- `;