nai-aclab 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.
package/web/styles.css ADDED
@@ -0,0 +1,1089 @@
1
+ :root {
2
+ color-scheme: dark;
3
+ --bg: #111315;
4
+ --surface: #191c20;
5
+ --surface-2: #20242a;
6
+ --line: #303640;
7
+ --line-soft: #262b33;
8
+ --text: #edf0f3;
9
+ --muted: #9da7b3;
10
+ --accent: #5ee0b8;
11
+ --accent-2: #8cb6ff;
12
+ --danger: #ff6b7a;
13
+ --warn: #ffd166;
14
+ --shadow: 0 20px 70px rgba(0, 0, 0, 0.35);
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ body {
22
+ margin: 0;
23
+ min-height: 100vh;
24
+ background:
25
+ radial-gradient(circle at top left, rgba(94, 224, 184, 0.12), transparent 28rem),
26
+ linear-gradient(135deg, #101214 0%, #17191d 54%, #12151a 100%);
27
+ color: var(--text);
28
+ font-family: "Segoe UI", "Noto Sans KR", system-ui, sans-serif;
29
+ letter-spacing: 0;
30
+ }
31
+
32
+ button,
33
+ input,
34
+ select,
35
+ textarea {
36
+ font: inherit;
37
+ }
38
+
39
+ button {
40
+ cursor: pointer;
41
+ }
42
+
43
+ .app-shell {
44
+ display: grid;
45
+ grid-template-columns: 260px minmax(0, 1fr);
46
+ min-height: 100vh;
47
+ }
48
+
49
+ .sidebar {
50
+ position: sticky;
51
+ top: 0;
52
+ height: 100vh;
53
+ padding: 22px 16px;
54
+ border-right: 1px solid var(--line-soft);
55
+ background: rgba(17, 19, 21, 0.82);
56
+ backdrop-filter: blur(22px);
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: 24px;
60
+ }
61
+
62
+ .brand {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: 12px;
66
+ padding: 8px;
67
+ }
68
+
69
+ .brand-mark {
70
+ width: 46px;
71
+ height: 46px;
72
+ display: grid;
73
+ place-items: center;
74
+ border: 1px solid rgba(94, 224, 184, 0.38);
75
+ background: linear-gradient(145deg, rgba(94, 224, 184, 0.18), rgba(140, 182, 255, 0.13));
76
+ color: var(--accent);
77
+ font-weight: 800;
78
+ border-radius: 8px;
79
+ }
80
+
81
+ .brand strong,
82
+ .brand span {
83
+ display: block;
84
+ }
85
+
86
+ .brand span {
87
+ color: var(--muted);
88
+ font-size: 12px;
89
+ margin-top: 2px;
90
+ }
91
+
92
+ .nav {
93
+ display: grid;
94
+ gap: 6px;
95
+ }
96
+
97
+ .nav-item {
98
+ width: 100%;
99
+ border: 1px solid transparent;
100
+ background: transparent;
101
+ color: var(--muted);
102
+ text-align: left;
103
+ padding: 12px 13px;
104
+ border-radius: 8px;
105
+ }
106
+
107
+ .nav-item:hover,
108
+ .nav-item.active {
109
+ color: var(--text);
110
+ background: var(--surface-2);
111
+ border-color: var(--line);
112
+ }
113
+
114
+ .sidebar-footer {
115
+ margin-top: auto;
116
+ color: var(--muted);
117
+ font-size: 12px;
118
+ padding: 12px;
119
+ border: 1px solid var(--line-soft);
120
+ border-radius: 8px;
121
+ background: rgba(255, 255, 255, 0.025);
122
+ }
123
+
124
+ .workspace {
125
+ min-width: 0;
126
+ padding: 24px;
127
+ }
128
+
129
+ .topbar {
130
+ display: flex;
131
+ align-items: flex-start;
132
+ justify-content: space-between;
133
+ gap: 18px;
134
+ margin-bottom: 22px;
135
+ }
136
+
137
+ h1,
138
+ h2 {
139
+ margin: 0;
140
+ line-height: 1.2;
141
+ }
142
+
143
+ h1 {
144
+ font-size: 28px;
145
+ }
146
+
147
+ h2 {
148
+ font-size: 16px;
149
+ }
150
+
151
+ p {
152
+ margin: 6px 0 0;
153
+ color: var(--muted);
154
+ line-height: 1.45;
155
+ }
156
+
157
+ .top-actions,
158
+ .button-row {
159
+ display: flex;
160
+ gap: 8px;
161
+ align-items: center;
162
+ flex-wrap: wrap;
163
+ }
164
+
165
+ .primary-button,
166
+ .ghost-button,
167
+ .danger-button,
168
+ .icon-button,
169
+ .mini-button {
170
+ min-height: 38px;
171
+ border-radius: 8px;
172
+ border: 1px solid var(--line);
173
+ color: var(--text);
174
+ padding: 0 14px;
175
+ background: var(--surface-2);
176
+ }
177
+
178
+ .primary-button {
179
+ border-color: rgba(94, 224, 184, 0.55);
180
+ background: linear-gradient(135deg, #2a8f78, #3b6cb8);
181
+ box-shadow: 0 12px 28px rgba(48, 141, 132, 0.18);
182
+ }
183
+
184
+ .ghost-button:hover,
185
+ .icon-button:hover {
186
+ border-color: rgba(140, 182, 255, 0.45);
187
+ }
188
+
189
+ .danger-button {
190
+ color: #ffdce1;
191
+ border-color: rgba(255, 107, 122, 0.4);
192
+ background: rgba(255, 107, 122, 0.08);
193
+ }
194
+
195
+ .icon-button {
196
+ width: 38px;
197
+ padding: 0;
198
+ font-size: 20px;
199
+ }
200
+
201
+ .mini-button {
202
+ min-height: 30px;
203
+ padding: 0 10px;
204
+ font-size: 12px;
205
+ color: #d8fff4;
206
+ border-color: rgba(94, 224, 184, 0.34);
207
+ background: rgba(94, 224, 184, 0.08);
208
+ }
209
+
210
+ .tab-page {
211
+ display: none;
212
+ }
213
+
214
+ .tab-page.active {
215
+ display: block;
216
+ }
217
+
218
+ .grid {
219
+ display: grid;
220
+ gap: 16px;
221
+ }
222
+
223
+ .two-one {
224
+ grid-template-columns: minmax(0, 1.25fr) minmax(320px, 0.75fr);
225
+ }
226
+
227
+ .half {
228
+ grid-template-columns: repeat(2, minmax(0, 1fr));
229
+ }
230
+
231
+ .split {
232
+ display: grid;
233
+ grid-template-columns: 320px minmax(0, 1fr);
234
+ gap: 16px;
235
+ }
236
+
237
+ .panel {
238
+ border: 1px solid var(--line-soft);
239
+ border-radius: 8px;
240
+ background: rgba(25, 28, 32, 0.88);
241
+ box-shadow: var(--shadow);
242
+ padding: 16px;
243
+ }
244
+
245
+ .panel-header {
246
+ display: flex;
247
+ justify-content: space-between;
248
+ align-items: flex-start;
249
+ gap: 12px;
250
+ margin-bottom: 14px;
251
+ }
252
+
253
+ .form-grid {
254
+ display: grid;
255
+ grid-template-columns: repeat(2, minmax(0, 1fr));
256
+ gap: 12px;
257
+ }
258
+
259
+ .form-grid.compact {
260
+ grid-template-columns: repeat(3, minmax(0, 1fr));
261
+ }
262
+
263
+ label,
264
+ .text-label {
265
+ display: grid;
266
+ gap: 7px;
267
+ }
268
+
269
+ label span,
270
+ .text-label span {
271
+ color: var(--muted);
272
+ font-size: 12px;
273
+ }
274
+
275
+ input,
276
+ select,
277
+ textarea {
278
+ width: 100%;
279
+ color: var(--text);
280
+ background: #121519;
281
+ border: 1px solid var(--line);
282
+ border-radius: 8px;
283
+ padding: 10px 11px;
284
+ outline: none;
285
+ }
286
+
287
+ input:focus,
288
+ select:focus,
289
+ textarea:focus {
290
+ border-color: rgba(94, 224, 184, 0.65);
291
+ box-shadow: 0 0 0 3px rgba(94, 224, 184, 0.1);
292
+ }
293
+
294
+ textarea {
295
+ min-height: 170px;
296
+ resize: vertical;
297
+ line-height: 1.5;
298
+ }
299
+
300
+ .text-label.short textarea,
301
+ .text-label.short input {
302
+ min-height: auto;
303
+ }
304
+
305
+ .preview-panel {
306
+ margin-top: 16px;
307
+ }
308
+
309
+ .live-preview-panel {
310
+ margin-bottom: 16px;
311
+ }
312
+
313
+ .prompt-preview {
314
+ display: grid;
315
+ grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
316
+ gap: 12px;
317
+ }
318
+
319
+ pre {
320
+ white-space: pre-wrap;
321
+ word-break: break-word;
322
+ }
323
+
324
+ .prompt-preview pre,
325
+ .log {
326
+ min-height: 180px;
327
+ margin: 8px 0 0;
328
+ padding: 12px;
329
+ border: 1px solid var(--line-soft);
330
+ border-radius: 8px;
331
+ background: #0f1215;
332
+ color: #d6dee8;
333
+ line-height: 1.45;
334
+ overflow: auto;
335
+ }
336
+
337
+ .log {
338
+ height: 240px;
339
+ }
340
+
341
+ .progress-wrap {
342
+ margin-top: 16px;
343
+ }
344
+
345
+ .fixed-artist-panel {
346
+ display: grid;
347
+ gap: 10px;
348
+ margin: 14px 0;
349
+ padding: 12px;
350
+ border: 1px solid var(--line-soft);
351
+ border-radius: 8px;
352
+ background: rgba(255, 255, 255, 0.025);
353
+ }
354
+
355
+ .batting-scene-list {
356
+ display: grid;
357
+ gap: 10px;
358
+ }
359
+
360
+ .batting-scene-row {
361
+ display: grid;
362
+ grid-template-columns: 42px minmax(160px, 1.1fr) minmax(180px, 1fr) minmax(180px, 1fr) 110px 38px;
363
+ gap: 10px;
364
+ align-items: end;
365
+ padding: 12px;
366
+ border: 1px solid var(--line-soft);
367
+ border-radius: 8px;
368
+ background: rgba(255, 255, 255, 0.025);
369
+ }
370
+
371
+ .batting-scene-number {
372
+ min-height: 42px;
373
+ display: grid;
374
+ place-items: center;
375
+ border: 1px solid rgba(140, 182, 255, 0.28);
376
+ border-radius: 8px;
377
+ color: #dce8ff;
378
+ background: rgba(140, 182, 255, 0.08);
379
+ font-weight: 700;
380
+ }
381
+
382
+ .empty-box {
383
+ padding: 18px;
384
+ border: 1px dashed var(--line);
385
+ border-radius: 8px;
386
+ color: var(--muted);
387
+ background: rgba(255, 255, 255, 0.02);
388
+ }
389
+
390
+ .fixed-artist-head {
391
+ display: flex;
392
+ align-items: center;
393
+ justify-content: space-between;
394
+ gap: 10px;
395
+ flex-wrap: wrap;
396
+ }
397
+
398
+ .mode-status {
399
+ display: inline-flex;
400
+ align-items: center;
401
+ min-height: 30px;
402
+ padding: 5px 10px;
403
+ border: 1px solid var(--line-soft);
404
+ border-radius: 999px;
405
+ color: var(--muted);
406
+ background: rgba(255, 255, 255, 0.035);
407
+ font-size: 12px;
408
+ font-weight: 700;
409
+ }
410
+
411
+ .mode-status.fixed {
412
+ color: #d8fff4;
413
+ border-color: rgba(94, 224, 184, 0.36);
414
+ background: rgba(94, 224, 184, 0.1);
415
+ }
416
+
417
+ .fixed-artist-panel p {
418
+ margin: 0;
419
+ }
420
+
421
+ .fixed-artist-list {
422
+ max-height: 170px;
423
+ padding: 2px 0;
424
+ }
425
+
426
+ .fixed-artist-list p {
427
+ color: var(--muted);
428
+ font-size: 12px;
429
+ }
430
+
431
+ .progress-label {
432
+ display: flex;
433
+ justify-content: space-between;
434
+ color: var(--muted);
435
+ font-size: 12px;
436
+ margin-bottom: 7px;
437
+ }
438
+
439
+ .progress {
440
+ position: relative;
441
+ height: 12px;
442
+ background:
443
+ linear-gradient(90deg, rgba(94, 224, 184, 0.08), rgba(140, 182, 255, 0.08)),
444
+ #0d1013;
445
+ border: 1px solid var(--line-soft);
446
+ border-radius: 999px;
447
+ overflow: hidden;
448
+ box-shadow: inset 0 0 18px rgba(94, 224, 184, 0.08);
449
+ }
450
+
451
+ .progress::before {
452
+ content: "";
453
+ position: absolute;
454
+ inset: 0;
455
+ width: 42%;
456
+ background: linear-gradient(90deg, transparent, rgba(94, 224, 184, 0.36), rgba(140, 182, 255, 0.28), transparent);
457
+ filter: blur(1px);
458
+ opacity: 0;
459
+ }
460
+
461
+ .progress.active::before {
462
+ animation: progress-sweep 1.55s ease-in-out infinite;
463
+ }
464
+
465
+ .progress div {
466
+ position: relative;
467
+ z-index: 1;
468
+ height: 100%;
469
+ width: 0%;
470
+ background:
471
+ linear-gradient(120deg, rgba(255, 255, 255, 0.22) 0 18%, transparent 18% 36%, rgba(255, 255, 255, 0.14) 36% 54%, transparent 54% 100%),
472
+ linear-gradient(90deg, var(--accent), var(--accent-2));
473
+ background-size: 42px 100%, 100% 100%;
474
+ box-shadow: 0 0 16px rgba(94, 224, 184, 0.36);
475
+ transition: width 180ms ease;
476
+ }
477
+
478
+ .progress.active div {
479
+ animation: progress-flow 950ms linear infinite;
480
+ }
481
+
482
+ @keyframes progress-sweep {
483
+ 0% {
484
+ transform: translateX(-120%);
485
+ opacity: 0;
486
+ }
487
+
488
+ 20%,
489
+ 80% {
490
+ opacity: 1;
491
+ }
492
+
493
+ 100% {
494
+ transform: translateX(250%);
495
+ opacity: 0;
496
+ }
497
+ }
498
+
499
+ @keyframes progress-flow {
500
+ from {
501
+ background-position: 0 0, 0 0;
502
+ }
503
+
504
+ to {
505
+ background-position: 42px 0, 0 0;
506
+ }
507
+ }
508
+
509
+ .item-list {
510
+ display: grid;
511
+ gap: 7px;
512
+ max-height: calc(100vh - 230px);
513
+ overflow: auto;
514
+ }
515
+
516
+ .history-toolbar {
517
+ display: grid;
518
+ gap: 10px;
519
+ margin-bottom: 12px;
520
+ padding-bottom: 12px;
521
+ border-bottom: 1px solid var(--line-soft);
522
+ }
523
+
524
+ .compact-switch {
525
+ margin: 0;
526
+ }
527
+
528
+ .history-list-row {
529
+ display: grid;
530
+ grid-template-columns: auto minmax(0, 1fr);
531
+ gap: 8px;
532
+ align-items: start;
533
+ border: 1px solid var(--line-soft);
534
+ border-radius: 8px;
535
+ background: rgba(255, 255, 255, 0.025);
536
+ padding: 9px;
537
+ }
538
+
539
+ .history-list-row input {
540
+ width: auto;
541
+ margin-top: 12px;
542
+ }
543
+
544
+ .history-list-row .list-item {
545
+ border: 0;
546
+ background: transparent;
547
+ padding: 2px;
548
+ }
549
+
550
+ .item-list.horizontal {
551
+ grid-auto-flow: column;
552
+ grid-auto-columns: max-content;
553
+ overflow-x: auto;
554
+ overflow-y: hidden;
555
+ max-height: none;
556
+ padding-bottom: 6px;
557
+ }
558
+
559
+ .preset-header-actions {
560
+ display: flex;
561
+ align-items: center;
562
+ gap: 8px;
563
+ flex-wrap: wrap;
564
+ }
565
+
566
+ .list-item {
567
+ border: 1px solid var(--line-soft);
568
+ border-radius: 8px;
569
+ background: rgba(255, 255, 255, 0.025);
570
+ color: var(--text);
571
+ padding: 11px;
572
+ text-align: left;
573
+ }
574
+
575
+ .list-item.active {
576
+ border-color: rgba(94, 224, 184, 0.55);
577
+ background: rgba(94, 224, 184, 0.1);
578
+ }
579
+
580
+ .editor-panel textarea#catTags {
581
+ min-height: 300px;
582
+ }
583
+
584
+ .recognized-box {
585
+ margin: 12px 0;
586
+ border: 1px solid var(--line-soft);
587
+ border-radius: 8px;
588
+ padding: 12px;
589
+ background: rgba(94, 224, 184, 0.055);
590
+ }
591
+
592
+ .recognized-box > div:first-child {
593
+ display: flex;
594
+ align-items: center;
595
+ justify-content: space-between;
596
+ gap: 10px;
597
+ margin-bottom: 10px;
598
+ }
599
+
600
+ .recognized-box strong {
601
+ font-size: 13px;
602
+ }
603
+
604
+ .recognized-box span {
605
+ color: var(--muted);
606
+ font-size: 12px;
607
+ }
608
+
609
+ .tag-chips {
610
+ display: flex;
611
+ flex-wrap: wrap;
612
+ gap: 7px;
613
+ max-height: 150px;
614
+ overflow: auto;
615
+ }
616
+
617
+ .tag-chip {
618
+ display: inline-flex;
619
+ align-items: center;
620
+ min-height: 28px;
621
+ max-width: 100%;
622
+ padding: 5px 9px;
623
+ border: 1px solid rgba(94, 224, 184, 0.36);
624
+ border-radius: 999px;
625
+ background: rgba(94, 224, 184, 0.08);
626
+ color: #d8fff4;
627
+ font-size: 12px;
628
+ white-space: nowrap;
629
+ }
630
+
631
+ .character-editors {
632
+ display: grid;
633
+ gap: 12px;
634
+ }
635
+
636
+ .character-box {
637
+ border: 1px solid var(--line-soft);
638
+ border-radius: 8px;
639
+ padding: 12px;
640
+ background: rgba(255, 255, 255, 0.02);
641
+ }
642
+
643
+ .character-box h3 {
644
+ margin: 0 0 10px;
645
+ font-size: 13px;
646
+ color: var(--accent);
647
+ }
648
+
649
+ .character-box textarea {
650
+ min-height: 92px;
651
+ margin-bottom: 10px;
652
+ }
653
+
654
+ #qualityOverridePrompt {
655
+ min-height: 92px;
656
+ }
657
+
658
+ .switch-row {
659
+ display: flex;
660
+ grid-template-columns: auto 1fr;
661
+ align-items: center;
662
+ gap: 8px;
663
+ margin: 14px 0;
664
+ }
665
+
666
+ .switch-row input {
667
+ width: auto;
668
+ }
669
+
670
+ .history-detail {
671
+ display: grid;
672
+ grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
673
+ gap: 12px;
674
+ }
675
+
676
+ .live-gallery {
677
+ display: grid;
678
+ grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
679
+ gap: 12px;
680
+ }
681
+
682
+ .live-gallery p {
683
+ grid-column: 1 / -1;
684
+ }
685
+
686
+ .image-card {
687
+ border: 1px solid var(--line-soft);
688
+ border-radius: 8px;
689
+ background: #111418;
690
+ overflow: hidden;
691
+ }
692
+
693
+ .image-card img {
694
+ display: block;
695
+ width: 100%;
696
+ aspect-ratio: 1 / 1;
697
+ object-fit: cover;
698
+ cursor: zoom-in;
699
+ }
700
+
701
+ .image-card div {
702
+ padding: 9px;
703
+ color: var(--muted);
704
+ font-size: 12px;
705
+ }
706
+
707
+ .image-card-meta {
708
+ display: grid;
709
+ gap: 8px;
710
+ }
711
+
712
+ .image-card-meta span {
713
+ overflow-wrap: anywhere;
714
+ }
715
+
716
+ .image-card.error {
717
+ border-color: rgba(255, 107, 122, 0.42);
718
+ }
719
+
720
+ .compare-select {
721
+ min-width: 280px;
722
+ }
723
+
724
+ .compare-strip {
725
+ display: grid;
726
+ grid-auto-flow: column;
727
+ grid-auto-columns: 260px;
728
+ gap: 14px;
729
+ overflow-x: auto;
730
+ padding-bottom: 8px;
731
+ scroll-snap-type: x proximity;
732
+ }
733
+
734
+ .compare-card {
735
+ scroll-snap-align: start;
736
+ border: 1px solid var(--line-soft);
737
+ border-radius: 8px;
738
+ background: #111418;
739
+ overflow: hidden;
740
+ }
741
+
742
+ .compare-card img {
743
+ width: 100%;
744
+ aspect-ratio: 1 / 1;
745
+ display: block;
746
+ object-fit: cover;
747
+ cursor: zoom-in;
748
+ }
749
+
750
+ .compare-card-body {
751
+ padding: 11px;
752
+ }
753
+
754
+ .compare-card-body h3 {
755
+ margin: 0 0 8px;
756
+ font-size: 13px;
757
+ }
758
+
759
+ .compare-card-actions {
760
+ margin: 10px 0;
761
+ }
762
+
763
+ .artist-weight-list {
764
+ display: grid;
765
+ gap: 6px;
766
+ max-height: 220px;
767
+ overflow: auto;
768
+ }
769
+
770
+ .artist-weight-row {
771
+ display: grid;
772
+ grid-template-columns: minmax(0, 1fr) auto;
773
+ gap: 8px;
774
+ align-items: center;
775
+ padding: 6px 0;
776
+ border-bottom: 1px solid var(--line-soft);
777
+ font-size: 12px;
778
+ }
779
+
780
+ .artist-weight-row span:first-child {
781
+ color: #d6dee8;
782
+ overflow-wrap: anywhere;
783
+ }
784
+
785
+ .weight-pill {
786
+ min-width: 44px;
787
+ text-align: center;
788
+ padding: 3px 7px;
789
+ border-radius: 999px;
790
+ color: #d8fff4;
791
+ background: rgba(94, 224, 184, 0.12);
792
+ border: 1px solid rgba(94, 224, 184, 0.3);
793
+ }
794
+
795
+ .compare-matrix {
796
+ overflow: auto;
797
+ border: 1px solid var(--line-soft);
798
+ border-radius: 8px;
799
+ }
800
+
801
+ .compare-matrix table {
802
+ width: max-content;
803
+ min-width: 100%;
804
+ border-collapse: collapse;
805
+ background: #101317;
806
+ }
807
+
808
+ .compare-matrix th,
809
+ .compare-matrix td {
810
+ border-bottom: 1px solid var(--line-soft);
811
+ border-right: 1px solid var(--line-soft);
812
+ padding: 9px 10px;
813
+ font-size: 12px;
814
+ text-align: center;
815
+ white-space: nowrap;
816
+ }
817
+
818
+ .compare-matrix th:first-child,
819
+ .compare-matrix td:first-child {
820
+ position: sticky;
821
+ left: 0;
822
+ z-index: 1;
823
+ max-width: 280px;
824
+ text-align: left;
825
+ white-space: normal;
826
+ overflow-wrap: anywhere;
827
+ background: #15191e;
828
+ }
829
+
830
+ .compare-matrix th {
831
+ position: sticky;
832
+ top: 0;
833
+ z-index: 2;
834
+ color: var(--muted);
835
+ background: #15191e;
836
+ }
837
+
838
+ .worldcup {
839
+ display: grid;
840
+ grid-template-columns: repeat(2, minmax(0, 1fr));
841
+ gap: 12px;
842
+ margin-top: 16px;
843
+ }
844
+
845
+ .worldcup-status {
846
+ display: flex;
847
+ align-items: center;
848
+ flex-wrap: wrap;
849
+ gap: 8px;
850
+ min-height: 34px;
851
+ margin-top: 16px;
852
+ color: var(--muted);
853
+ font-size: 12px;
854
+ }
855
+
856
+ .worldcup-status strong,
857
+ .worldcup-status span,
858
+ .worldcup-status em {
859
+ border: 1px solid var(--line-soft);
860
+ border-radius: 999px;
861
+ background: rgba(255, 255, 255, 0.035);
862
+ padding: 6px 10px;
863
+ font-style: normal;
864
+ }
865
+
866
+ .worldcup-status strong {
867
+ color: #d8fff4;
868
+ border-color: rgba(94, 224, 184, 0.34);
869
+ background: rgba(94, 224, 184, 0.09);
870
+ }
871
+
872
+ .worldcup-card {
873
+ border: 1px solid var(--line);
874
+ border-radius: 8px;
875
+ overflow: hidden;
876
+ background: #111418;
877
+ }
878
+
879
+ .worldcup-card-header {
880
+ display: flex;
881
+ align-items: center;
882
+ justify-content: space-between;
883
+ gap: 8px;
884
+ min-height: 42px;
885
+ padding: 8px 10px;
886
+ color: var(--muted);
887
+ font-size: 12px;
888
+ border-bottom: 1px solid var(--line-soft);
889
+ }
890
+
891
+ .worldcup-badge {
892
+ display: inline-flex;
893
+ align-items: center;
894
+ justify-content: center;
895
+ min-width: 42px;
896
+ min-height: 26px;
897
+ border: 1px solid rgba(140, 182, 255, 0.36);
898
+ border-radius: 999px;
899
+ color: #dce8ff;
900
+ background: rgba(140, 182, 255, 0.11);
901
+ font-weight: 700;
902
+ }
903
+
904
+ .worldcup-card img {
905
+ width: 100%;
906
+ aspect-ratio: 1 / 1;
907
+ object-fit: cover;
908
+ display: block;
909
+ }
910
+
911
+ .worldcup-card button {
912
+ width: 100%;
913
+ border-radius: 0;
914
+ border: 0;
915
+ border-top: 1px solid var(--line);
916
+ }
917
+
918
+ .winner-card {
919
+ width: 100%;
920
+ border-color: rgba(94, 224, 184, 0.5);
921
+ }
922
+
923
+ .runner-up-card {
924
+ width: 100%;
925
+ border-color: rgba(140, 182, 255, 0.42);
926
+ }
927
+
928
+ .image-modal[hidden] {
929
+ display: none;
930
+ }
931
+
932
+ .image-modal {
933
+ position: fixed;
934
+ inset: 0;
935
+ z-index: 50;
936
+ display: grid;
937
+ place-items: center;
938
+ padding: 24px;
939
+ }
940
+
941
+ .image-modal-backdrop {
942
+ position: absolute;
943
+ inset: 0;
944
+ background: rgba(4, 6, 8, 0.78);
945
+ backdrop-filter: blur(12px);
946
+ }
947
+
948
+ .image-modal-panel {
949
+ position: relative;
950
+ z-index: 1;
951
+ display: grid;
952
+ grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
953
+ gap: 16px;
954
+ width: min(1440px, 94vw);
955
+ height: min(900px, calc(100vh - 48px));
956
+ max-height: calc(100vh - 48px);
957
+ }
958
+
959
+ .preset-picker-panel {
960
+ position: relative;
961
+ z-index: 1;
962
+ width: min(620px, 100%);
963
+ max-height: calc(100vh - 48px);
964
+ overflow: auto;
965
+ border: 1px solid var(--line-soft);
966
+ border-radius: 8px;
967
+ background: rgba(17, 20, 24, 0.96);
968
+ box-shadow: var(--shadow);
969
+ padding: 16px;
970
+ }
971
+
972
+ .preset-picker-list {
973
+ display: grid;
974
+ gap: 8px;
975
+ }
976
+
977
+ .preset-picker-list .list-item {
978
+ width: 100%;
979
+ }
980
+
981
+ .image-modal-view,
982
+ .image-modal-info {
983
+ border: 1px solid var(--line-soft);
984
+ border-radius: 8px;
985
+ background: rgba(17, 20, 24, 0.96);
986
+ box-shadow: var(--shadow);
987
+ overflow: hidden;
988
+ }
989
+
990
+ .image-modal-view {
991
+ display: grid;
992
+ place-items: center;
993
+ cursor: zoom-in;
994
+ user-select: none;
995
+ min-width: 0;
996
+ min-height: 0;
997
+ padding: 8px;
998
+ }
999
+
1000
+ .image-modal-view img {
1001
+ display: block;
1002
+ width: auto;
1003
+ height: auto;
1004
+ max-width: none;
1005
+ max-height: none;
1006
+ transform-origin: center center;
1007
+ transition: transform 90ms ease-out;
1008
+ will-change: transform;
1009
+ user-select: none;
1010
+ -webkit-user-drag: none;
1011
+ }
1012
+
1013
+ .image-modal-view img.zoomed {
1014
+ cursor: grab;
1015
+ }
1016
+
1017
+ .image-modal-view img.zoomed:active {
1018
+ cursor: grabbing;
1019
+ }
1020
+
1021
+ .image-modal-info {
1022
+ padding: 16px;
1023
+ overflow: auto;
1024
+ }
1025
+
1026
+ .modal-actions {
1027
+ display: grid;
1028
+ margin-bottom: 16px;
1029
+ }
1030
+
1031
+ .modal-section {
1032
+ display: grid;
1033
+ gap: 10px;
1034
+ margin-top: 14px;
1035
+ }
1036
+
1037
+ .modal-section strong {
1038
+ font-size: 13px;
1039
+ }
1040
+
1041
+ .modal-section pre {
1042
+ max-height: 220px;
1043
+ margin: 0;
1044
+ padding: 12px;
1045
+ border: 1px solid var(--line-soft);
1046
+ border-radius: 8px;
1047
+ background: #0f1215;
1048
+ color: #d6dee8;
1049
+ overflow: auto;
1050
+ }
1051
+
1052
+ @media (max-width: 980px) {
1053
+ .app-shell,
1054
+ .two-one,
1055
+ .half,
1056
+ .split,
1057
+ .prompt-preview {
1058
+ grid-template-columns: 1fr;
1059
+ }
1060
+
1061
+ .sidebar {
1062
+ position: static;
1063
+ height: auto;
1064
+ }
1065
+
1066
+ .nav {
1067
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1068
+ }
1069
+
1070
+ .worldcup {
1071
+ grid-template-columns: 1fr;
1072
+ }
1073
+
1074
+ .batting-scene-row {
1075
+ grid-template-columns: 42px 1fr;
1076
+ }
1077
+
1078
+ .batting-scene-row label {
1079
+ grid-column: 1 / -1;
1080
+ }
1081
+
1082
+ .image-modal-panel {
1083
+ grid-template-columns: 1fr;
1084
+ grid-template-rows: minmax(320px, 62vh) minmax(0, auto);
1085
+ width: calc(100vw - 24px);
1086
+ height: calc(100vh - 24px);
1087
+ }
1088
+
1089
+ }