GameSentenceMiner 2.15.11__py3-none-any.whl → 2.16.0__py3-none-any.whl

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,932 @@
1
+ /* Shared CSS for Game Sentence Miner Web Application */
2
+
3
+ /* Base Styles */
4
+ body {
5
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
6
+ background-color: var(--bg-primary);
7
+ color: var(--text-primary);
8
+ margin: 0;
9
+ padding: 20px;
10
+ transition: background-color 0.3s ease, color 0.3s ease;
11
+ }
12
+
13
+ .container {
14
+ max-width: 1200px;
15
+ margin: auto;
16
+ }
17
+
18
+ h1 {
19
+ text-align: center;
20
+ color: var(--text-secondary);
21
+ margin-bottom: 30px;
22
+ }
23
+
24
+ /* Modal Styles */
25
+ .modal {
26
+ display: none;
27
+ position: fixed;
28
+ z-index: 1000;
29
+ left: 0;
30
+ top: 0;
31
+ width: 100%;
32
+ height: 100%;
33
+ background-color: rgba(0, 0, 0, 0.7);
34
+ justify-content: center;
35
+ align-items: center;
36
+ }
37
+
38
+ .modal.show {
39
+ display: flex;
40
+ }
41
+
42
+ .modal-content {
43
+ background-color: var(--bg-secondary);
44
+ border-radius: 8px;
45
+ box-shadow: 0 4px 20px var(--shadow-color);
46
+ max-width: 600px;
47
+ width: 90%;
48
+ max-height: 80vh;
49
+ overflow-y: auto;
50
+ color: var(--text-primary);
51
+ border: 1px solid var(--border-color);
52
+ }
53
+
54
+ .modal-header {
55
+ display: flex;
56
+ justify-content: space-between;
57
+ align-items: center;
58
+ padding: 20px;
59
+ border-bottom: 1px solid var(--border-color);
60
+ }
61
+
62
+ .modal-header h3 {
63
+ margin: 0;
64
+ color: var(--text-primary);
65
+ }
66
+
67
+ .close-btn {
68
+ background: none;
69
+ border: none;
70
+ font-size: 24px;
71
+ color: var(--text-tertiary);
72
+ cursor: pointer;
73
+ transition: color 0.3s ease;
74
+ }
75
+
76
+ .close-btn:hover {
77
+ color: var(--text-primary);
78
+ }
79
+
80
+ .modal-body {
81
+ padding: 20px;
82
+ }
83
+
84
+ .modal-footer {
85
+ display: flex;
86
+ justify-content: flex-end;
87
+ gap: 10px;
88
+ padding: 20px;
89
+ border-top: 1px solid var(--border-color);
90
+ }
91
+
92
+ /* Form Styles */
93
+ .form-group {
94
+ margin-bottom: 20px;
95
+ }
96
+
97
+ .form-label {
98
+ display: block;
99
+ margin-bottom: 8px;
100
+ font-weight: 600;
101
+ color: var(--text-primary);
102
+ }
103
+
104
+ .form-input, .form-textarea {
105
+ width: 100%;
106
+ padding: 10px;
107
+ border: 1px solid var(--border-color);
108
+ border-radius: 5px;
109
+ background: var(--bg-tertiary);
110
+ color: var(--text-primary);
111
+ font-size: 14px;
112
+ box-sizing: border-box;
113
+ }
114
+
115
+ .form-textarea {
116
+ resize: vertical;
117
+ min-height: 100px;
118
+ }
119
+
120
+ .form-input:focus, .form-textarea:focus {
121
+ outline: none;
122
+ border-color: var(--accent-color);
123
+ box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
124
+ }
125
+
126
+ .checkbox-container {
127
+ display: flex;
128
+ align-items: center;
129
+ gap: 8px;
130
+ margin-bottom: 10px;
131
+ }
132
+
133
+ .checkbox-input {
134
+ width: 16px;
135
+ height: 16px;
136
+ }
137
+
138
+ .checkbox-label {
139
+ color: var(--text-primary);
140
+ font-size: 14px;
141
+ }
142
+
143
+ /* Button Styles */
144
+ .action-btn {
145
+ padding: 12px 20px;
146
+ border: none;
147
+ border-radius: 8px;
148
+ font-size: 14px;
149
+ font-weight: 600;
150
+ cursor: pointer;
151
+ transition: all 0.3s ease;
152
+ text-align: center;
153
+ text-decoration: none;
154
+ display: inline-block;
155
+ }
156
+
157
+ .action-btn.primary {
158
+ background-color: var(--accent-color);
159
+ color: white;
160
+ }
161
+
162
+ .action-btn.primary:hover {
163
+ background-color: #0056b3;
164
+ transform: translateY(-1px);
165
+ }
166
+
167
+ .action-btn.danger {
168
+ background-color: var(--danger-color);
169
+ color: white;
170
+ }
171
+
172
+ .action-btn.danger:hover {
173
+ background-color: #c82333;
174
+ transform: translateY(-1px);
175
+ }
176
+
177
+ .action-btn.warning {
178
+ background-color: var(--warning-color);
179
+ color: #333;
180
+ }
181
+
182
+ .action-btn.warning:hover {
183
+ background-color: #e0a800;
184
+ transform: translateY(-1px);
185
+ }
186
+
187
+ .action-btn.success {
188
+ background-color: var(--success-color);
189
+ color: white;
190
+ }
191
+
192
+ .action-btn.success:hover {
193
+ background-color: #218838;
194
+ transform: translateY(-1px);
195
+ }
196
+
197
+ .control-btn {
198
+ background-color: var(--bg-tertiary);
199
+ color: var(--text-primary);
200
+ border: 1px solid var(--border-color);
201
+ padding: 8px 16px;
202
+ font-size: 14px;
203
+ cursor: pointer;
204
+ border-radius: 5px;
205
+ transition: all 0.3s ease;
206
+ }
207
+
208
+ .control-btn:hover {
209
+ background-color: var(--accent-color);
210
+ color: var(--bg-secondary);
211
+ transform: translateY(-1px);
212
+ }
213
+
214
+ .delete-btn {
215
+ background-color: var(--danger-color);
216
+ color: white;
217
+ border: none;
218
+ padding: 10px 20px;
219
+ font-size: 14px;
220
+ font-weight: 600;
221
+ cursor: pointer;
222
+ border-radius: 5px;
223
+ transition: all 0.3s ease;
224
+ }
225
+
226
+ .delete-btn:hover:not(:disabled) {
227
+ background-color: #c82333;
228
+ transform: translateY(-1px);
229
+ }
230
+
231
+ .delete-btn:disabled {
232
+ background-color: var(--text-tertiary);
233
+ cursor: not-allowed;
234
+ transform: none;
235
+ }
236
+
237
+ .cancel-btn {
238
+ background-color: var(--bg-tertiary);
239
+ color: var(--text-primary);
240
+ border: 1px solid var(--border-color);
241
+ padding: 10px 20px;
242
+ font-size: 14px;
243
+ cursor: pointer;
244
+ border-radius: 5px;
245
+ transition: all 0.3s ease;
246
+ }
247
+
248
+ .cancel-btn:hover {
249
+ background-color: var(--bg-primary);
250
+ }
251
+
252
+ .confirm-delete-btn {
253
+ background-color: var(--danger-color);
254
+ color: white;
255
+ border: none;
256
+ padding: 10px 20px;
257
+ font-size: 14px;
258
+ font-weight: 600;
259
+ cursor: pointer;
260
+ border-radius: 5px;
261
+ transition: all 0.3s ease;
262
+ }
263
+
264
+ .confirm-delete-btn:hover {
265
+ background-color: #c82333;
266
+ transform: translateY(-1px);
267
+ }
268
+
269
+ .ok-btn {
270
+ background-color: var(--success-color);
271
+ color: white;
272
+ border: none;
273
+ padding: 10px 20px;
274
+ font-size: 14px;
275
+ cursor: pointer;
276
+ border-radius: 5px;
277
+ transition: all 0.3s ease;
278
+ }
279
+
280
+ .ok-btn:hover {
281
+ background-color: #218838;
282
+ transform: translateY(-1px);
283
+ }
284
+
285
+ .retry-btn {
286
+ background-color: var(--accent-color);
287
+ color: white;
288
+ border: none;
289
+ padding: 8px 16px;
290
+ font-size: 14px;
291
+ cursor: pointer;
292
+ border-radius: 5px;
293
+ margin-top: 10px;
294
+ transition: all 0.3s ease;
295
+ }
296
+
297
+ .retry-btn:hover {
298
+ background-color: #0056b3;
299
+ transform: translateY(-1px);
300
+ }
301
+
302
+ /* Loading and Message Styles */
303
+ .loading-indicator {
304
+ display: flex;
305
+ align-items: center;
306
+ justify-content: center;
307
+ padding: 40px;
308
+ color: var(--text-tertiary);
309
+ }
310
+
311
+ .spinner {
312
+ border: 3px solid var(--border-color);
313
+ border-top: 3px solid var(--success-color);
314
+ border-radius: 50%;
315
+ width: 20px;
316
+ height: 20px;
317
+ animation: spin 1s linear infinite;
318
+ margin-right: 10px;
319
+ }
320
+
321
+ .spinner.large {
322
+ width: 40px;
323
+ height: 40px;
324
+ border-width: 4px;
325
+ margin-right: 15px;
326
+ }
327
+
328
+ @keyframes spin {
329
+ 0% { transform: rotate(0deg); }
330
+ 100% { transform: rotate(360deg); }
331
+ }
332
+
333
+ .warning-text {
334
+ color: var(--warning-color);
335
+ font-weight: 600;
336
+ margin-bottom: 15px;
337
+ }
338
+
339
+ .error-text {
340
+ color: var(--danger-color);
341
+ font-weight: 600;
342
+ margin-bottom: 15px;
343
+ }
344
+
345
+ .success-text {
346
+ color: var(--success-color);
347
+ font-weight: 600;
348
+ margin-bottom: 15px;
349
+ }
350
+
351
+ .error-message {
352
+ background: var(--danger-color);
353
+ color: var(--bg-secondary);
354
+ padding: 15px;
355
+ border-radius: 5px;
356
+ margin-bottom: 20px;
357
+ border: 1px solid var(--danger-color);
358
+ text-align: center;
359
+ }
360
+
361
+ .no-games-message {
362
+ text-align: center;
363
+ padding: 40px;
364
+ color: var(--text-tertiary);
365
+ }
366
+
367
+ .success-message {
368
+ color: var(--success-color);
369
+ font-weight: 600;
370
+ }
371
+
372
+ .error-result {
373
+ color: var(--danger-color);
374
+ font-weight: 600;
375
+ }
376
+
377
+ .warning-result {
378
+ color: var(--warning-color);
379
+ font-weight: 600;
380
+ }
381
+
382
+ /* Card Styles */
383
+ .management-grid {
384
+ display: grid;
385
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
386
+ gap: 30px;
387
+ margin-bottom: 40px;
388
+ }
389
+
390
+ .management-card {
391
+ background: var(--bg-secondary);
392
+ border-radius: 12px;
393
+ box-shadow: 0 4px 16px var(--shadow-color);
394
+ border: 1px solid var(--border-color);
395
+ padding: 24px;
396
+ transition: all 0.3s ease;
397
+ position: relative;
398
+ overflow: hidden;
399
+ }
400
+
401
+ .management-card:hover {
402
+ transform: translateY(-2px);
403
+ box-shadow: 0 8px 24px var(--shadow-color);
404
+ }
405
+
406
+ .management-card::before {
407
+ content: '';
408
+ position: absolute;
409
+ top: 0;
410
+ left: 0;
411
+ right: 0;
412
+ height: 4px;
413
+ border-radius: 12px 12px 0 0;
414
+ }
415
+
416
+ .management-card.games::before {
417
+ background: linear-gradient(90deg, var(--danger-color), #ff8a80);
418
+ }
419
+
420
+ .management-card.text-lines::before {
421
+ background: linear-gradient(90deg, var(--warning-color), #ffb74d);
422
+ }
423
+
424
+ .management-card.deduplication::before {
425
+ background: linear-gradient(90deg, var(--success-color), #a5d6a7);
426
+ }
427
+
428
+ .card-header {
429
+ display: flex;
430
+ align-items: center;
431
+ margin-bottom: 20px;
432
+ }
433
+
434
+ .card-icon {
435
+ font-size: 32px;
436
+ margin-right: 15px;
437
+ }
438
+
439
+ .card-title {
440
+ font-size: 24px;
441
+ font-weight: 600;
442
+ color: var(--text-primary);
443
+ margin: 0;
444
+ }
445
+
446
+ .card-description {
447
+ color: var(--text-secondary);
448
+ margin-bottom: 20px;
449
+ line-height: 1.5;
450
+ }
451
+
452
+ .card-actions {
453
+ display: flex;
454
+ flex-direction: column;
455
+ gap: 10px;
456
+ }
457
+
458
+ /* Stats and Data Display */
459
+ .stats-row {
460
+ display: flex;
461
+ justify-content: space-between;
462
+ margin: 10px 0;
463
+ padding: 8px 0;
464
+ border-bottom: 1px solid var(--border-color);
465
+ }
466
+
467
+ .stats-row:last-child {
468
+ border-bottom: none;
469
+ }
470
+
471
+ .stats-label {
472
+ color: var(--text-secondary);
473
+ font-weight: 500;
474
+ }
475
+
476
+ .stats-value {
477
+ color: var(--text-primary);
478
+ font-weight: 600;
479
+ }
480
+
481
+ /* Table Styles */
482
+ .table-container {
483
+ overflow-x: auto;
484
+ border-radius: 8px;
485
+ border: 1px solid var(--border-color);
486
+ background-color: var(--bg-secondary);
487
+ }
488
+
489
+ .games-table {
490
+ width: 100%;
491
+ border-collapse: collapse;
492
+ background-color: var(--bg-secondary);
493
+ }
494
+
495
+ .games-table th {
496
+ background-color: var(--bg-tertiary);
497
+ color: var(--text-primary);
498
+ padding: 12px 16px;
499
+ text-align: left;
500
+ font-size: 14px;
501
+ font-weight: 600;
502
+ border-bottom: 2px solid var(--border-color);
503
+ }
504
+
505
+ .games-table th.checkbox-col {
506
+ width: 50px;
507
+ text-align: center;
508
+ }
509
+
510
+ .games-table td {
511
+ padding: 12px 16px;
512
+ border-bottom: 1px solid var(--border-color);
513
+ color: var(--text-primary);
514
+ font-size: 14px;
515
+ }
516
+
517
+ .games-table tr:last-child td {
518
+ border-bottom: none;
519
+ }
520
+
521
+ .games-table tr:hover {
522
+ background-color: var(--bg-tertiary);
523
+ }
524
+
525
+ .games-table tr.selected {
526
+ background-color: var(--success-color);
527
+ }
528
+
529
+ .games-table tr.selected:hover {
530
+ background-color: #218838;
531
+ }
532
+
533
+ .checkbox-cell {
534
+ text-align: center;
535
+ }
536
+
537
+ .game-checkbox {
538
+ width: 16px;
539
+ height: 16px;
540
+ cursor: pointer;
541
+ }
542
+
543
+ #headerCheckbox {
544
+ width: 16px;
545
+ height: 16px;
546
+ cursor: pointer;
547
+ }
548
+
549
+ /* Progress and Summary Styles */
550
+ .progress-container {
551
+ display: flex;
552
+ flex-direction: column;
553
+ align-items: center;
554
+ padding: 20px;
555
+ }
556
+
557
+ .final-warning {
558
+ color: var(--danger-color);
559
+ font-weight: 600;
560
+ margin-top: 15px;
561
+ }
562
+
563
+ .selected-games-list {
564
+ background-color: var(--bg-tertiary);
565
+ border-radius: 5px;
566
+ padding: 15px;
567
+ margin: 15px 0;
568
+ max-height: 200px;
569
+ overflow-y: auto;
570
+ border: 1px solid var(--border-color);
571
+ }
572
+
573
+ .game-item {
574
+ display: flex;
575
+ justify-content: space-between;
576
+ padding: 8px 0;
577
+ border-bottom: 1px solid var(--border-color);
578
+ }
579
+
580
+ .game-item:last-child {
581
+ border-bottom: none;
582
+ }
583
+
584
+ .game-name {
585
+ font-weight: 600;
586
+ color: var(--text-primary);
587
+ }
588
+
589
+ .game-stats {
590
+ color: var(--text-tertiary);
591
+ font-size: 12px;
592
+ }
593
+
594
+ .deletion-summary {
595
+ background-color: var(--bg-tertiary);
596
+ border-radius: 5px;
597
+ padding: 15px;
598
+ margin: 15px 0;
599
+ border: 1px solid var(--border-color);
600
+ }
601
+
602
+ .deletion-summary p {
603
+ margin: 5px 0;
604
+ display: flex;
605
+ justify-content: space-between;
606
+ }
607
+
608
+ /* Search Styles */
609
+ .search-container {
610
+ background: var(--bg-secondary);
611
+ padding: 30px;
612
+ border-radius: 8px;
613
+ box-shadow: 0 4px 12px var(--shadow-color);
614
+ margin-bottom: 30px;
615
+ border: 1px solid var(--border-color);
616
+ }
617
+
618
+ .search-header {
619
+ text-align: center;
620
+ margin-bottom: 25px;
621
+ }
622
+
623
+ .search-header h2 {
624
+ color: var(--text-secondary);
625
+ margin-bottom: 10px;
626
+ }
627
+
628
+ .search-description {
629
+ color: var(--text-tertiary);
630
+ font-size: 14px;
631
+ }
632
+
633
+ .search-input-container {
634
+ position: relative;
635
+ margin-bottom: 20px;
636
+ }
637
+
638
+ .search-input {
639
+ width: 100%;
640
+ padding: 15px 20px;
641
+ font-size: 16px;
642
+ border: 2px solid var(--border-color);
643
+ border-radius: 8px;
644
+ outline: none;
645
+ transition: border-color 0.3s ease;
646
+ box-sizing: border-box;
647
+ background: var(--bg-tertiary);
648
+ color: var(--text-primary);
649
+ }
650
+
651
+ .search-input:focus {
652
+ border-color: var(--accent-color);
653
+ box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
654
+ }
655
+
656
+ .search-input::placeholder {
657
+ color: var(--text-tertiary);
658
+ }
659
+
660
+ .search-filters {
661
+ display: flex;
662
+ gap: 15px;
663
+ flex-wrap: wrap;
664
+ align-items: center;
665
+ margin-bottom: 20px;
666
+ padding-top: 15px;
667
+ border-top: 1px solid #e9ecef;
668
+ }
669
+
670
+ .filter-group {
671
+ display: flex;
672
+ align-items: center;
673
+ gap: 8px;
674
+ }
675
+
676
+ .filter-label {
677
+ font-size: 14px;
678
+ color: var(--text-secondary);
679
+ font-weight: 600;
680
+ }
681
+
682
+ .filter-select {
683
+ padding: 8px 12px;
684
+ border: 1px solid var(--border-color);
685
+ border-radius: 5px;
686
+ background: var(--bg-secondary);
687
+ color: var(--text-primary);
688
+ font-size: 14px;
689
+ min-width: 120px;
690
+ }
691
+
692
+ .search-stats {
693
+ display: flex;
694
+ justify-content: space-between;
695
+ align-items: center;
696
+ margin-bottom: 20px;
697
+ padding: 10px 0;
698
+ font-size: 14px;
699
+ color: var(--text-tertiary);
700
+ }
701
+
702
+ .results-container {
703
+ min-height: 200px;
704
+ }
705
+
706
+ .search-result {
707
+ background: var(--bg-secondary);
708
+ border: 1px solid var(--border-color);
709
+ border-radius: 8px;
710
+ padding: 20px;
711
+ margin-bottom: 15px;
712
+ transition: all 0.2s ease;
713
+ position: relative;
714
+ }
715
+
716
+ .search-result:hover {
717
+ box-shadow: 0 4px 12px var(--shadow-color);
718
+ border-color: var(--accent-color);
719
+ }
720
+
721
+ .result-sentence {
722
+ font-size: 16px;
723
+ line-height: 1.6;
724
+ margin-bottom: 15px;
725
+ color: var(--text-primary);
726
+ }
727
+
728
+ .search-highlight {
729
+ background-color: var(--warning-color);
730
+ padding: 2px 4px;
731
+ border-radius: 3px;
732
+ font-weight: 600;
733
+ color: #333;
734
+ }
735
+
736
+ .result-metadata {
737
+ display: flex;
738
+ flex-wrap: wrap;
739
+ gap: 20px;
740
+ align-items: center;
741
+ padding-top: 15px;
742
+ border-top: 1px solid var(--border-color);
743
+ font-size: 14px;
744
+ }
745
+
746
+ .metadata-item {
747
+ display: flex;
748
+ align-items: center;
749
+ gap: 5px;
750
+ color: var(--text-tertiary);
751
+ }
752
+
753
+ .metadata-label {
754
+ font-weight: 600;
755
+ }
756
+
757
+ .metadata-value {
758
+ color: var(--text-secondary);
759
+ }
760
+
761
+ .game-tag {
762
+ background-color: var(--accent-color);
763
+ color: var(--bg-secondary);
764
+ padding: 4px 8px;
765
+ border-radius: 4px;
766
+ font-size: 12px;
767
+ font-weight: 600;
768
+ }
769
+
770
+ .no-results {
771
+ text-align: center;
772
+ padding: 60px 20px;
773
+ color: var(--text-tertiary);
774
+ }
775
+
776
+ .no-results-icon {
777
+ font-size: 48px;
778
+ margin-bottom: 15px;
779
+ opacity: 0.5;
780
+ }
781
+
782
+ .no-results h3 {
783
+ margin-bottom: 10px;
784
+ color: var(--text-secondary);
785
+ }
786
+
787
+ .empty-state {
788
+ text-align: center;
789
+ padding: 60px 20px;
790
+ color: var(--text-tertiary);
791
+ }
792
+
793
+ .empty-state-icon {
794
+ font-size: 64px;
795
+ margin-bottom: 20px;
796
+ opacity: 0.3;
797
+ }
798
+
799
+ .empty-state h3 {
800
+ margin-bottom: 10px;
801
+ color: var(--text-secondary);
802
+ }
803
+
804
+ /* Pagination */
805
+ .pagination {
806
+ display: flex;
807
+ justify-content: center;
808
+ align-items: center;
809
+ gap: 10px;
810
+ margin-top: 30px;
811
+ }
812
+
813
+ .page-btn {
814
+ padding: 8px 12px;
815
+ border: 1px solid var(--border-color);
816
+ background: var(--bg-secondary);
817
+ color: var(--text-secondary);
818
+ border-radius: 5px;
819
+ cursor: pointer;
820
+ transition: all 0.2s ease;
821
+ }
822
+
823
+ .page-btn:hover:not(:disabled) {
824
+ background: var(--accent-color);
825
+ color: var(--bg-secondary);
826
+ }
827
+
828
+ .page-btn:disabled {
829
+ opacity: 0.5;
830
+ cursor: not-allowed;
831
+ }
832
+
833
+ .page-btn.active {
834
+ background: var(--accent-color);
835
+ color: var(--bg-secondary);
836
+ }
837
+
838
+ /* Responsive Design */
839
+ @media (max-width: 768px) {
840
+ body {
841
+ padding: 10px;
842
+ }
843
+
844
+ .management-grid {
845
+ grid-template-columns: 1fr;
846
+ gap: 20px;
847
+ }
848
+
849
+ .card-actions {
850
+ gap: 8px;
851
+ }
852
+
853
+ .action-btn {
854
+ padding: 10px 16px;
855
+ font-size: 13px;
856
+ }
857
+
858
+ .modal-content {
859
+ width: 95%;
860
+ margin: 10px;
861
+ }
862
+
863
+ .modal-footer {
864
+ flex-direction: column;
865
+ }
866
+
867
+ .modal-footer button {
868
+ width: 100%;
869
+ margin-bottom: 10px;
870
+ }
871
+
872
+ .games-table th, .games-table td {
873
+ padding: 8px 12px;
874
+ font-size: 12px;
875
+ }
876
+
877
+ .search-filters {
878
+ flex-direction: column;
879
+ align-items: stretch;
880
+ }
881
+
882
+ .filter-group {
883
+ justify-content: space-between;
884
+ }
885
+
886
+ .filter-select {
887
+ min-width: auto;
888
+ flex: 1;
889
+ }
890
+
891
+ .result-metadata {
892
+ flex-direction: column;
893
+ align-items: stretch;
894
+ gap: 10px;
895
+ }
896
+
897
+ .search-stats {
898
+ flex-direction: column;
899
+ align-items: stretch;
900
+ gap: 10px;
901
+ }
902
+
903
+ .search-container {
904
+ padding: 20px;
905
+ }
906
+
907
+ .search-input {
908
+ font-size: 16px; /* Prevents zoom on iOS */
909
+ }
910
+
911
+ .search-result {
912
+ padding: 15px;
913
+ }
914
+ }
915
+
916
+ @media (max-width: 480px) {
917
+ .games-table {
918
+ font-size: 11px;
919
+ }
920
+
921
+ .games-table th, .games-table td {
922
+ padding: 6px 8px;
923
+ }
924
+
925
+ /* Hide less critical columns on very small screens */
926
+ .games-table th:nth-child(4),
927
+ .games-table td:nth-child(4),
928
+ .games-table th:nth-child(6),
929
+ .games-table td:nth-child(6) {
930
+ display: none;
931
+ }
932
+ }