sidekiq_queue_manager 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,838 @@
1
+ /*
2
+ * Sidekiq Queue Manager - shadcn-Inspired Modal System
3
+ * Completely redesigned modal components with clean, minimal aesthetics
4
+ */
5
+
6
+ /* ========================================
7
+ Modal System - shadcn Inspired
8
+ ======================================== */
9
+
10
+ .sqm-custom-modal {
11
+ position: fixed;
12
+ top: 0;
13
+ left: 0;
14
+ width: 100vw;
15
+ height: 100vh;
16
+ z-index: var(--sqm-z-modal);
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ padding: 1rem;
21
+ pointer-events: auto;
22
+ }
23
+
24
+ .sqm-custom-modal-backdrop {
25
+ position: fixed;
26
+ top: 0;
27
+ left: 0;
28
+ width: 100vw;
29
+ height: 100vh;
30
+ background-color: hsl(0 0% 0% / 0.8);
31
+ backdrop-filter: blur(4px);
32
+ -webkit-backdrop-filter: blur(4px);
33
+ animation: sqm-modal-fade-in 0.15s ease-out;
34
+ z-index: calc(var(--sqm-z-modal) - 1);
35
+ }
36
+
37
+ .sqm-custom-modal-content {
38
+ position: relative;
39
+ background: var(--sqm-card);
40
+ border: 1px solid var(--sqm-border);
41
+ border-radius: var(--sqm-radius-lg);
42
+ box-shadow: var(--sqm-shadow-lg);
43
+ max-width: 32rem;
44
+ width: 100%;
45
+ max-height: 90vh;
46
+ overflow: hidden;
47
+ animation: sqm-modal-scale-in 0.15s ease-out;
48
+ z-index: var(--sqm-z-modal);
49
+ transform-origin: center center;
50
+ }
51
+
52
+ /* Enhanced Jobs Modal - Larger and Better */
53
+ .sqm-custom-modal-content.sqm-jobs-modal {
54
+ max-width: 56rem;
55
+ max-height: 85vh;
56
+ }
57
+
58
+ .sqm-custom-modal-header {
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ padding: 1.5rem 1.5rem 0;
63
+ border-bottom: none;
64
+ }
65
+
66
+ .sqm-custom-modal-header h3 {
67
+ margin: 0;
68
+ font-size: 1.125rem;
69
+ font-weight: 600;
70
+ color: var(--sqm-foreground);
71
+ }
72
+
73
+ .sqm-custom-modal-close {
74
+ background: none;
75
+ border: none;
76
+ font-size: 1.25rem;
77
+ cursor: pointer;
78
+ padding: 0.5rem;
79
+ color: var(--sqm-muted-foreground);
80
+ border-radius: var(--sqm-radius-sm);
81
+ transition: var(--sqm-transition);
82
+ width: 2rem;
83
+ height: 2rem;
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ outline: none;
88
+ }
89
+
90
+ .sqm-custom-modal-close:hover {
91
+ background: var(--sqm-accent);
92
+ color: var(--sqm-accent-foreground);
93
+ }
94
+
95
+ .sqm-custom-modal-close:focus-visible {
96
+ outline: 2px solid var(--sqm-ring);
97
+ outline-offset: 2px;
98
+ }
99
+
100
+ .sqm-custom-modal-body {
101
+ padding: 1.5rem;
102
+ color: var(--sqm-foreground);
103
+ max-height: 60vh;
104
+ overflow-y: auto;
105
+ }
106
+
107
+ .sqm-jobs-modal .sqm-custom-modal-body {
108
+ max-height: 70vh;
109
+ padding: 1rem 1.5rem;
110
+ }
111
+
112
+ .sqm-custom-modal-footer {
113
+ display: flex;
114
+ align-items: center;
115
+ justify-content: flex-end;
116
+ gap: 0.75rem;
117
+ padding: 0 1.5rem 1.5rem;
118
+ border-top: none;
119
+ }
120
+
121
+ /* ========================================
122
+ Prompt Dialog Components
123
+ ======================================== */
124
+
125
+ .sqm-prompt-content {
126
+ display: flex;
127
+ flex-direction: column;
128
+ gap: 1rem;
129
+ }
130
+
131
+ .sqm-prompt-message {
132
+ font-size: 0.875rem;
133
+ font-weight: 500;
134
+ color: var(--sqm-foreground);
135
+ line-height: 1.5;
136
+ }
137
+
138
+ .sqm-prompt-help {
139
+ font-size: 0.75rem;
140
+ color: var(--sqm-muted-foreground);
141
+ line-height: 1.4;
142
+ }
143
+
144
+ .sqm-prompt-input {
145
+ width: 100%;
146
+ padding: 0.5rem 0.75rem;
147
+ border: 1px solid var(--sqm-border);
148
+ border-radius: var(--sqm-radius-sm);
149
+ font-size: 0.875rem;
150
+ background: var(--sqm-background);
151
+ color: var(--sqm-foreground);
152
+ transition: var(--sqm-transition);
153
+ font-family: var(--sqm-font-mono);
154
+ outline: none;
155
+ }
156
+
157
+ .sqm-prompt-input:focus {
158
+ border-color: var(--sqm-ring);
159
+ box-shadow: 0 0 0 2px hsl(from var(--sqm-ring) h s l / 0.2);
160
+ }
161
+
162
+ .sqm-prompt-input::placeholder {
163
+ color: var(--sqm-muted-foreground);
164
+ }
165
+
166
+ /* ========================================
167
+ Confirm Dialog Components
168
+ ======================================== */
169
+
170
+ .sqm-confirm-content {
171
+ display: flex;
172
+ align-items: flex-start;
173
+ gap: 0.75rem;
174
+ }
175
+
176
+ .sqm-confirm-icon {
177
+ flex-shrink: 0;
178
+ width: 2.5rem;
179
+ height: 2.5rem;
180
+ border-radius: 50%;
181
+ display: flex;
182
+ align-items: center;
183
+ justify-content: center;
184
+ font-size: 1.25rem;
185
+ margin-top: 0.125rem;
186
+ }
187
+
188
+ .sqm-confirm-icon.warning {
189
+ background: hsl(from var(--sqm-warning) h s l / 0.1);
190
+ color: var(--sqm-warning);
191
+ }
192
+
193
+ .sqm-confirm-icon.danger {
194
+ background: hsl(from var(--sqm-destructive) h s l / 0.1);
195
+ color: var(--sqm-destructive);
196
+ }
197
+
198
+ .sqm-confirm-icon.info {
199
+ background: hsl(from var(--sqm-info) h s l / 0.1);
200
+ color: var(--sqm-info);
201
+ }
202
+
203
+ .sqm-confirm-text {
204
+ flex: 1;
205
+ }
206
+
207
+ .sqm-confirm-message {
208
+ font-size: 0.875rem;
209
+ font-weight: 500;
210
+ color: var(--sqm-foreground);
211
+ line-height: 1.5;
212
+ margin-bottom: 0.5rem;
213
+ }
214
+
215
+ .sqm-confirm-details {
216
+ font-size: 0.75rem;
217
+ color: var(--sqm-muted-foreground);
218
+ line-height: 1.4;
219
+ }
220
+
221
+ /* ========================================
222
+ Modal Button System - Consistent with Main Design
223
+ ======================================== */
224
+
225
+ .sqm-btn-modal {
226
+ display: inline-flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ gap: 0.5rem;
230
+ padding: 0.5rem 1rem;
231
+ font-size: 0.875rem;
232
+ font-weight: 500;
233
+ border-radius: var(--sqm-radius-sm);
234
+ border: 1px solid transparent;
235
+ cursor: pointer;
236
+ transition: var(--sqm-transition);
237
+ text-decoration: none;
238
+ outline: none;
239
+ white-space: nowrap;
240
+ min-width: 5rem;
241
+ }
242
+
243
+ .sqm-btn-modal:disabled {
244
+ opacity: 0.5;
245
+ cursor: not-allowed;
246
+ }
247
+
248
+ .sqm-btn-modal:focus-visible {
249
+ outline: 2px solid var(--sqm-ring);
250
+ outline-offset: 2px;
251
+ }
252
+
253
+ .sqm-btn-modal-primary {
254
+ background: var(--sqm-primary);
255
+ color: var(--sqm-primary-foreground);
256
+ border-color: var(--sqm-primary);
257
+ }
258
+
259
+ .sqm-btn-modal-primary:hover:not(:disabled) {
260
+ background: hsl(from var(--sqm-primary) h s calc(l - 5%));
261
+ }
262
+
263
+ .sqm-btn-modal-danger {
264
+ background: var(--sqm-destructive);
265
+ color: var(--sqm-destructive-foreground);
266
+ border-color: var(--sqm-destructive);
267
+ }
268
+
269
+ .sqm-btn-modal-danger:hover:not(:disabled) {
270
+ background: hsl(from var(--sqm-destructive) h s calc(l - 5%));
271
+ }
272
+
273
+ .sqm-btn-modal-warning {
274
+ background: var(--sqm-warning);
275
+ color: var(--sqm-warning-foreground);
276
+ border-color: var(--sqm-warning);
277
+ }
278
+
279
+ .sqm-btn-modal-warning:hover:not(:disabled) {
280
+ background: hsl(from var(--sqm-warning) h s calc(l - 5%));
281
+ }
282
+
283
+ .sqm-btn-modal-secondary {
284
+ background: var(--sqm-secondary);
285
+ color: var(--sqm-secondary-foreground);
286
+ border-color: var(--sqm-border);
287
+ }
288
+
289
+ .sqm-btn-modal-secondary:hover:not(:disabled) {
290
+ background: var(--sqm-accent);
291
+ }
292
+
293
+ /* ========================================
294
+ Enhanced Job List Components - Better Details
295
+ ======================================== */
296
+
297
+ .sqm-job-list {
298
+ max-height: 500px;
299
+ overflow-y: auto;
300
+ border: 1px solid var(--sqm-border);
301
+ border-radius: var(--sqm-radius-sm);
302
+ background: var(--sqm-background);
303
+ }
304
+
305
+ .sqm-job-item {
306
+ display: flex;
307
+ align-items: flex-start;
308
+ justify-content: space-between;
309
+ padding: 1rem;
310
+ border-bottom: 1px solid var(--sqm-border);
311
+ transition: var(--sqm-transition);
312
+ gap: 1rem;
313
+ }
314
+
315
+ .sqm-job-item:last-child {
316
+ border-bottom: none;
317
+ }
318
+
319
+ .sqm-job-item:hover {
320
+ background: var(--sqm-muted);
321
+ }
322
+
323
+ .sqm-job-info {
324
+ flex: 1;
325
+ min-width: 0;
326
+ overflow: hidden;
327
+ }
328
+
329
+ .sqm-job-header {
330
+ display: flex;
331
+ align-items: center;
332
+ justify-content: space-between;
333
+ margin-bottom: 0.5rem;
334
+ }
335
+
336
+ .sqm-job-class {
337
+ font-family: var(--sqm-font-mono);
338
+ font-size: 0.875rem;
339
+ font-weight: 600;
340
+ color: var(--sqm-primary);
341
+ }
342
+
343
+ .sqm-job-priority {
344
+ font-size: 0.6875rem;
345
+ font-weight: 600;
346
+ padding: 0.125rem 0.375rem;
347
+ border-radius: var(--sqm-radius-sm);
348
+ text-transform: uppercase;
349
+ letter-spacing: 0.05em;
350
+ }
351
+
352
+ .sqm-job-priority.high {
353
+ background: hsl(from var(--sqm-destructive) h s l / 0.1);
354
+ color: var(--sqm-destructive);
355
+ }
356
+
357
+ .sqm-job-priority.normal {
358
+ background: hsl(from var(--sqm-info) h s l / 0.1);
359
+ color: var(--sqm-info);
360
+ }
361
+
362
+ .sqm-job-priority.low {
363
+ background: var(--sqm-muted);
364
+ color: var(--sqm-muted-foreground);
365
+ }
366
+
367
+ .sqm-job-args-container {
368
+ margin-bottom: 0.75rem;
369
+ }
370
+
371
+ .sqm-job-args-label {
372
+ font-size: 0.6875rem;
373
+ font-weight: 600;
374
+ color: var(--sqm-muted-foreground);
375
+ text-transform: uppercase;
376
+ letter-spacing: 0.05em;
377
+ margin-bottom: 0.25rem;
378
+ }
379
+
380
+ .sqm-job-args {
381
+ font-family: var(--sqm-font-mono);
382
+ font-size: 0.75rem;
383
+ color: var(--sqm-foreground);
384
+ background: var(--sqm-muted);
385
+ padding: 0.5rem;
386
+ border-radius: var(--sqm-radius-sm);
387
+ white-space: pre-wrap;
388
+ word-break: break-all;
389
+ max-height: 8rem;
390
+ overflow-y: auto;
391
+ border: 1px solid var(--sqm-border);
392
+ }
393
+
394
+ .sqm-job-meta {
395
+ display: grid;
396
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
397
+ gap: 0.75rem;
398
+ font-size: 0.6875rem;
399
+ color: var(--sqm-muted-foreground);
400
+ font-family: var(--sqm-font-mono);
401
+ overflow: hidden;
402
+ }
403
+
404
+ .sqm-job-meta-item {
405
+ display: flex;
406
+ flex-direction: column;
407
+ gap: 0.125rem;
408
+ min-width: 0;
409
+ overflow: hidden;
410
+ }
411
+
412
+ .sqm-job-meta-label {
413
+ font-weight: 600;
414
+ text-transform: uppercase;
415
+ letter-spacing: 0.05em;
416
+ color: var(--sqm-muted-foreground);
417
+ }
418
+
419
+ .sqm-job-meta-value {
420
+ color: var(--sqm-foreground);
421
+ font-weight: 500;
422
+ word-break: break-all;
423
+ overflow-wrap: break-word;
424
+ hyphens: auto;
425
+ min-width: 0;
426
+ }
427
+
428
+ .sqm-job-meta-value.job-id {
429
+ font-size: 0.625rem;
430
+ background: var(--sqm-muted);
431
+ padding: 0.125rem 0.25rem;
432
+ border-radius: var(--sqm-radius-sm);
433
+ border: 1px solid var(--sqm-border);
434
+ font-family: var(--sqm-font-mono);
435
+ letter-spacing: -0.025em;
436
+ line-height: 1.2;
437
+ }
438
+
439
+ .sqm-job-actions {
440
+ display: flex;
441
+ flex-direction: column;
442
+ gap: 0.5rem;
443
+ margin-left: 1rem;
444
+ flex-shrink: 0;
445
+ }
446
+
447
+ .sqm-job-delete {
448
+ padding: 0.5rem;
449
+ background: transparent;
450
+ color: var(--sqm-muted-foreground);
451
+ border: 1px solid var(--sqm-border);
452
+ border-radius: var(--sqm-radius-sm);
453
+ cursor: pointer;
454
+ transition: var(--sqm-transition);
455
+ display: flex;
456
+ align-items: center;
457
+ justify-content: center;
458
+ outline: none;
459
+ font-size: 0.875rem;
460
+ min-width: 2.5rem;
461
+ min-height: 2.5rem;
462
+ }
463
+
464
+ .sqm-job-delete:hover:not(:disabled) {
465
+ background: hsl(from var(--sqm-destructive) h s l / 0.1);
466
+ color: var(--sqm-destructive);
467
+ border-color: var(--sqm-destructive);
468
+ }
469
+
470
+ .sqm-job-delete:focus-visible {
471
+ outline: 2px solid var(--sqm-ring);
472
+ outline-offset: 2px;
473
+ }
474
+
475
+ .sqm-job-delete:disabled {
476
+ opacity: 0.5;
477
+ cursor: not-allowed;
478
+ }
479
+
480
+ .sqm-job-delete.success {
481
+ background: hsl(from var(--sqm-success) h s l / 0.1);
482
+ color: var(--sqm-success);
483
+ border-color: var(--sqm-success);
484
+ }
485
+
486
+ .sqm-job-status {
487
+ display: inline-flex;
488
+ align-items: center;
489
+ gap: 0.25rem;
490
+ padding: 0.125rem 0.375rem;
491
+ border-radius: var(--sqm-radius-sm);
492
+ font-size: 0.6875rem;
493
+ font-weight: 600;
494
+ text-transform: uppercase;
495
+ letter-spacing: 0.05em;
496
+ }
497
+
498
+ .sqm-job-status.enqueued {
499
+ background: hsl(from var(--sqm-info) h s l / 0.1);
500
+ color: var(--sqm-info);
501
+ }
502
+
503
+ .sqm-job-status.retry {
504
+ background: hsl(from var(--sqm-warning) h s l / 0.1);
505
+ color: var(--sqm-warning);
506
+ }
507
+
508
+ .sqm-job-status.failed {
509
+ background: hsl(from var(--sqm-destructive) h s l / 0.1);
510
+ color: var(--sqm-destructive);
511
+ }
512
+
513
+ /* ========================================
514
+ Enhanced Pagination Components
515
+ ======================================== */
516
+
517
+ .sqm-pagination {
518
+ display: flex;
519
+ align-items: center;
520
+ justify-content: space-between;
521
+ margin-top: 1.5rem;
522
+ padding-top: 1rem;
523
+ border-top: 1px solid var(--sqm-border);
524
+ }
525
+
526
+ .sqm-pagination-info {
527
+ font-size: 0.75rem;
528
+ color: var(--sqm-muted-foreground);
529
+ font-family: var(--sqm-font-mono);
530
+ }
531
+
532
+ .sqm-pagination-controls {
533
+ display: flex;
534
+ align-items: center;
535
+ gap: 0.5rem;
536
+ }
537
+
538
+ .sqm-pagination-btn {
539
+ padding: 0.375rem 0.75rem;
540
+ background: var(--sqm-secondary);
541
+ border: 1px solid var(--sqm-border);
542
+ color: var(--sqm-secondary-foreground);
543
+ border-radius: var(--sqm-radius-sm);
544
+ cursor: pointer;
545
+ transition: var(--sqm-transition);
546
+ font-size: 0.75rem;
547
+ font-weight: 500;
548
+ outline: none;
549
+ }
550
+
551
+ .sqm-pagination-btn:hover:not(:disabled) {
552
+ background: var(--sqm-accent);
553
+ }
554
+
555
+ .sqm-pagination-btn:focus-visible {
556
+ outline: 2px solid var(--sqm-ring);
557
+ outline-offset: 2px;
558
+ }
559
+
560
+ .sqm-pagination-btn:disabled {
561
+ opacity: 0.5;
562
+ cursor: not-allowed;
563
+ }
564
+
565
+ .sqm-pagination-current {
566
+ padding: 0.375rem 0.75rem;
567
+ background: var(--sqm-primary);
568
+ color: var(--sqm-primary-foreground);
569
+ border-radius: var(--sqm-radius-sm);
570
+ font-size: 0.75rem;
571
+ font-weight: 600;
572
+ font-family: var(--sqm-font-mono);
573
+ min-width: 2rem;
574
+ text-align: center;
575
+ }
576
+
577
+ /* ========================================
578
+ Actions Menu - Dropdown Style
579
+ ======================================== */
580
+
581
+ .sqm-actions-menu {
582
+ position: absolute;
583
+ background: var(--sqm-popover);
584
+ border: 1px solid var(--sqm-border);
585
+ border-radius: var(--sqm-radius);
586
+ box-shadow: var(--sqm-shadow-lg);
587
+ z-index: var(--sqm-z-dropdown);
588
+ min-width: 12rem;
589
+ animation: sqm-dropdown-in 0.1s ease-out;
590
+ }
591
+
592
+ .sqm-actions-menu-content {
593
+ padding: 0.25rem;
594
+ }
595
+
596
+ .sqm-actions-menu-header {
597
+ display: flex;
598
+ align-items: center;
599
+ justify-content: space-between;
600
+ padding: 0.5rem 0.75rem;
601
+ border-bottom: 1px solid var(--sqm-border);
602
+ background: var(--sqm-muted);
603
+ margin: -0.25rem -0.25rem 0.25rem;
604
+ border-radius: var(--sqm-radius) var(--sqm-radius) 0 0;
605
+ }
606
+
607
+ .sqm-actions-queue-name {
608
+ font-weight: 600;
609
+ color: var(--sqm-foreground);
610
+ font-family: var(--sqm-font-mono);
611
+ font-size: 0.75rem;
612
+ }
613
+
614
+ .sqm-actions-menu-close {
615
+ background: none;
616
+ border: none;
617
+ cursor: pointer;
618
+ color: var(--sqm-muted-foreground);
619
+ font-size: 1rem;
620
+ padding: 0.25rem;
621
+ border-radius: var(--sqm-radius-sm);
622
+ transition: var(--sqm-transition);
623
+ outline: none;
624
+ }
625
+
626
+ .sqm-actions-menu-close:hover {
627
+ background: var(--sqm-accent);
628
+ color: var(--sqm-accent-foreground);
629
+ }
630
+
631
+ .sqm-actions-menu-close:focus-visible {
632
+ outline: 2px solid var(--sqm-ring);
633
+ outline-offset: 2px;
634
+ }
635
+
636
+ .sqm-actions-menu-body {
637
+ display: flex;
638
+ flex-direction: column;
639
+ gap: 0.125rem;
640
+ }
641
+
642
+ .sqm-actions-menu-item {
643
+ display: flex;
644
+ align-items: center;
645
+ gap: 0.5rem;
646
+ padding: 0.5rem 0.75rem;
647
+ background: none;
648
+ border: none;
649
+ border-radius: var(--sqm-radius-sm);
650
+ cursor: pointer;
651
+ transition: var(--sqm-transition);
652
+ font-size: 0.75rem;
653
+ font-weight: 500;
654
+ color: var(--sqm-foreground);
655
+ text-align: left;
656
+ width: 100%;
657
+ outline: none;
658
+ }
659
+
660
+ .sqm-actions-menu-item:hover {
661
+ background: var(--sqm-accent);
662
+ }
663
+
664
+ .sqm-actions-menu-item:focus-visible {
665
+ outline: 2px solid var(--sqm-ring);
666
+ outline-offset: 2px;
667
+ }
668
+
669
+ .sqm-actions-danger:hover {
670
+ background: hsl(from var(--sqm-destructive) h s l / 0.1);
671
+ color: var(--sqm-destructive);
672
+ }
673
+
674
+ /* ========================================
675
+ Modal Animations - Fixed Center Scaling
676
+ ======================================== */
677
+
678
+ @keyframes sqm-modal-fade-in {
679
+ from {
680
+ opacity: 0;
681
+ }
682
+ to {
683
+ opacity: 1;
684
+ }
685
+ }
686
+
687
+ @keyframes sqm-modal-scale-in {
688
+ from {
689
+ opacity: 0;
690
+ transform: scale(0.95);
691
+ }
692
+ to {
693
+ opacity: 1;
694
+ transform: scale(1);
695
+ }
696
+ }
697
+
698
+ @keyframes sqm-dropdown-in {
699
+ from {
700
+ opacity: 0;
701
+ transform: translateY(-0.25rem);
702
+ }
703
+ to {
704
+ opacity: 1;
705
+ transform: translateY(0);
706
+ }
707
+ }
708
+
709
+ /* Modal fade-out for closing animation */
710
+ .sqm-modal-fade-out {
711
+ opacity: 0 !important;
712
+ transition: opacity 0.15s ease-out !important;
713
+ }
714
+
715
+ .sqm-modal-fade-out .sqm-custom-modal-content {
716
+ transform: scale(0.95) !important;
717
+ transition: transform 0.15s ease-out !important;
718
+ }
719
+
720
+ /* ========================================
721
+ Responsive Modal Design
722
+ ======================================== */
723
+
724
+ @media (max-width: 768px) {
725
+ .sqm-custom-modal-content.sqm-jobs-modal {
726
+ max-width: 95vw;
727
+ margin: 0 auto;
728
+ }
729
+
730
+ .sqm-job-item {
731
+ flex-direction: column;
732
+ gap: 0.75rem;
733
+ }
734
+
735
+ .sqm-job-actions {
736
+ flex-direction: row;
737
+ margin-left: 0;
738
+ align-self: flex-end;
739
+ }
740
+
741
+ .sqm-job-meta {
742
+ grid-template-columns: repeat(2, 1fr);
743
+ gap: 0.5rem;
744
+ }
745
+
746
+ .sqm-job-meta-value.job-id {
747
+ font-size: 0.5625rem;
748
+ padding: 0.1875rem 0.375rem;
749
+ }
750
+ }
751
+
752
+ @media (max-width: 640px) {
753
+ .sqm-custom-modal {
754
+ padding: 1rem;
755
+ }
756
+
757
+ .sqm-custom-modal-content {
758
+ max-width: 100%;
759
+ max-height: 95vh;
760
+ margin: 0;
761
+ }
762
+
763
+ .sqm-custom-modal-content.sqm-jobs-modal {
764
+ max-width: 100%;
765
+ }
766
+
767
+ .sqm-custom-modal-header {
768
+ padding: 1rem 1rem 0.5rem;
769
+ }
770
+
771
+ .sqm-custom-modal-header h3 {
772
+ font-size: 1rem;
773
+ }
774
+
775
+ .sqm-custom-modal-body {
776
+ padding: 1rem;
777
+ }
778
+
779
+ .sqm-jobs-modal .sqm-custom-modal-body {
780
+ padding: 0.75rem 1rem;
781
+ }
782
+
783
+ .sqm-custom-modal-footer {
784
+ padding: 0.5rem 1rem 1rem;
785
+ flex-wrap: wrap;
786
+ gap: 0.5rem;
787
+ }
788
+
789
+ .sqm-btn-modal {
790
+ min-width: 4rem;
791
+ padding: 0.5rem 0.75rem;
792
+ font-size: 0.8125rem;
793
+ }
794
+
795
+ .sqm-confirm-content {
796
+ flex-direction: column;
797
+ text-align: center;
798
+ gap: 1rem;
799
+ }
800
+
801
+ .sqm-confirm-icon {
802
+ margin: 0 auto;
803
+ }
804
+
805
+ .sqm-job-meta {
806
+ grid-template-columns: 1fr;
807
+ gap: 0.5rem;
808
+ }
809
+
810
+ .sqm-job-meta-value.job-id {
811
+ font-size: 0.5625rem;
812
+ padding: 0.25rem 0.5rem;
813
+ max-width: 100%;
814
+ }
815
+
816
+ .sqm-job-args {
817
+ max-height: 6rem;
818
+ }
819
+
820
+ .sqm-actions-menu {
821
+ min-width: 10rem;
822
+ }
823
+ }
824
+
825
+ @media (max-width: 480px) {
826
+ .sqm-custom-modal {
827
+ padding: 0.5rem;
828
+ }
829
+
830
+ .sqm-custom-modal-content {
831
+ border-radius: var(--sqm-radius);
832
+ }
833
+
834
+ .sqm-job-args {
835
+ max-height: 4rem;
836
+ font-size: 0.6875rem;
837
+ }
838
+ }