@jjlmoya/utils-streaming 1.9.0 → 1.11.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.
@@ -389,929 +389,3 @@ const ui = (rawUi ?? {}) as SorteoUI;
389
389
  update();
390
390
  </script>
391
391
 
392
- <style>
393
- .sorteo-container {
394
- --sorteo-primary: #6366f1;
395
- --sorteo-secondary: #a855f7;
396
- --sorteo-accent: #ec4899;
397
- --sorteo-success: #10b981;
398
- --sorteo-warning: #fbbf24;
399
- --sorteo-danger: #ef4444;
400
- --sorteo-bg: #f8fafc;
401
- --sorteo-card: #fff;
402
- --sorteo-border: #e2e8f0;
403
- --sorteo-text: #1e293b;
404
- --sorteo-text-muted: #64748b;
405
- --sorteo-studio-bg: #0f172a;
406
-
407
- width: 100%;
408
- max-width: 80rem;
409
- margin: 0 auto;
410
- padding: 1.5rem;
411
- }
412
-
413
- :global(.theme-dark) .sorteo-container {
414
- --sorteo-bg: #020617;
415
- --sorteo-card: #0f172a;
416
- --sorteo-border: #1e293b;
417
- --sorteo-text: #f1f5f9;
418
- --sorteo-text-muted: #94a3b8;
419
- }
420
-
421
- .sorteo-grid {
422
- display: grid;
423
- grid-template-columns: 1fr;
424
- gap: 1.5rem;
425
- }
426
-
427
- @media (min-width: 1280px) {
428
- .sorteo-grid {
429
- grid-template-columns: repeat(12, 1fr);
430
- }
431
- }
432
-
433
- .sorteo-sidebar {
434
- grid-column: span 1;
435
- display: flex;
436
- flex-direction: column;
437
- gap: 1.5rem;
438
- height: 800px;
439
- transition: all 0.5s ease;
440
- }
441
-
442
- @media (min-width: 1280px) {
443
- .sorteo-sidebar {
444
- grid-column: span 4;
445
- }
446
- }
447
-
448
- .sorteo-sidebar.hidden {
449
- display: none;
450
- }
451
-
452
- .sorteo-stats-card {
453
- background: var(--sorteo-card);
454
- border-radius: 1.5rem;
455
- padding: 1.5rem;
456
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
457
- border: 1px solid var(--sorteo-border);
458
- position: relative;
459
- overflow: hidden;
460
- flex-shrink: 0;
461
- }
462
-
463
- .sorteo-stats-icon {
464
- position: absolute;
465
- top: 0;
466
- right: 0;
467
- padding: 1rem;
468
- opacity: 0.1;
469
- transition: opacity 0.3s;
470
- }
471
-
472
- .sorteo-stats-card:hover .sorteo-stats-icon {
473
- opacity: 0.2;
474
- }
475
-
476
- .sorteo-stats-icon [data-icon] {
477
- width: 6rem;
478
- height: 6rem;
479
- color: var(--sorteo-primary);
480
- }
481
-
482
- .sorteo-stats-label {
483
- font-size: 0.75rem;
484
- font-weight: 700;
485
- text-transform: uppercase;
486
- letter-spacing: 0.05em;
487
- color: var(--sorteo-text-muted);
488
- margin: 0;
489
- }
490
-
491
- .sorteo-stats-value-wrapper {
492
- display: flex;
493
- align-items: baseline;
494
- gap: 0.5rem;
495
- margin-top: 0.25rem;
496
- }
497
-
498
- .sorteo-count {
499
- font-size: 3rem;
500
- font-weight: 900;
501
- color: var(--sorteo-text);
502
- letter-spacing: -0.05em;
503
- }
504
-
505
- .sorteo-badge {
506
- font-size: 0.75rem;
507
- font-weight: 600;
508
- color: var(--sorteo-success);
509
- background: rgba(16, 185, 129, 0.1);
510
- padding: 0.125rem 0.5rem;
511
- border-radius: 9999px;
512
- }
513
-
514
- .sorteo-panel-tabs {
515
- flex: 1;
516
- background: var(--sorteo-card);
517
- border-radius: 1.5rem;
518
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
519
- border: 1px solid var(--sorteo-border);
520
- display: flex;
521
- flex-direction: column;
522
- overflow: hidden;
523
- min-height: 0;
524
- }
525
-
526
- .sorteo-tabs-header {
527
- display: flex;
528
- border-bottom: 1px solid var(--sorteo-border);
529
- }
530
-
531
- .sorteo-tab-btn {
532
- flex: 1;
533
- padding: 1rem;
534
- font-size: 0.875rem;
535
- font-weight: 600;
536
- text-align: center;
537
- border: none;
538
- border-bottom: 2px solid transparent;
539
- background: transparent;
540
- color: var(--sorteo-text-muted);
541
- cursor: pointer;
542
- transition: all 0.2s;
543
- outline: none;
544
- }
545
-
546
- .sorteo-tab-btn.active {
547
- border-bottom-color: var(--sorteo-primary);
548
- color: var(--sorteo-primary);
549
- background: rgba(99, 102, 241, 0.05);
550
- }
551
-
552
- .sorteo-tab-view {
553
- flex: 1;
554
- display: flex;
555
- flex-direction: column;
556
- min-height: 0;
557
- }
558
-
559
- .sorteo-tab-view.hidden {
560
- display: none;
561
- }
562
-
563
- .sorteo-view-actions {
564
- padding: 0.5rem 1rem;
565
- border-bottom: 1px solid var(--sorteo-border);
566
- display: flex;
567
- justify-content: space-between;
568
- align-items: center;
569
- gap: 0.5rem;
570
- }
571
-
572
- .sorteo-upload-label {
573
- cursor: pointer;
574
- padding: 0.375rem 0.75rem;
575
- border-radius: 0.5rem;
576
- font-size: 0.75rem;
577
- font-weight: 700;
578
- background: rgba(99, 102, 241, 0.05);
579
- color: var(--sorteo-primary);
580
- display: flex;
581
- align-items: center;
582
- gap: 0.5rem;
583
- transition: background 0.2s;
584
- }
585
-
586
- .sorteo-upload-label:hover {
587
- background: rgba(99, 102, 241, 0.1);
588
- }
589
-
590
- .sorteo-icon-btn {
591
- color: var(--sorteo-text-muted);
592
- padding: 0.5rem;
593
- border-radius: 0.5rem;
594
- border: none;
595
- background: transparent;
596
- cursor: pointer;
597
- transition: all 0.2s;
598
- }
599
-
600
- .sorteo-icon-btn:hover {
601
- color: var(--sorteo-danger);
602
- background: rgba(239, 68, 68, 0.05);
603
- }
604
-
605
- .sorteo-textarea-wrapper {
606
- flex: 1;
607
- position: relative;
608
- min-height: 0;
609
- }
610
-
611
- .sorteo-textarea {
612
- width: 100%;
613
- height: 100%;
614
- padding: 1rem;
615
- border: none;
616
- background: transparent;
617
- resize: none;
618
- font-size: 0.875rem;
619
- line-height: 1.5;
620
- color: var(--sorteo-text);
621
- outline: none;
622
- }
623
-
624
- .sorteo-textarea-fade {
625
- position: absolute;
626
- bottom: 0;
627
- left: 0;
628
- width: 100%;
629
- height: 2rem;
630
- background: linear-gradient(to top, var(--sorteo-card), transparent);
631
- pointer-events: none;
632
- }
633
-
634
- .sorteo-view-footer {
635
- padding: 0.5rem 1rem;
636
- border-top: 1px solid var(--sorteo-border);
637
- font-size: 0.625rem;
638
- color: var(--sorteo-text-muted);
639
- display: flex;
640
- justify-content: space-between;
641
- }
642
-
643
- .sorteo-settings-content {
644
- flex: 1;
645
- padding: 1.5rem;
646
- overflow-y: auto;
647
- display: flex;
648
- flex-direction: column;
649
- gap: 2rem;
650
- }
651
-
652
- .sorteo-section-title {
653
- font-size: 0.75rem;
654
- font-weight: 700;
655
- text-transform: uppercase;
656
- color: var(--sorteo-text-muted);
657
- display: flex;
658
- align-items: center;
659
- gap: 0.5rem;
660
- margin-bottom: 1rem;
661
- }
662
-
663
- .sorteo-options-list {
664
- display: flex;
665
- flex-direction: column;
666
- gap: 1rem;
667
- }
668
-
669
- .sorteo-option-item {
670
- display: flex;
671
- align-items: center;
672
- justify-content: space-between;
673
- padding: 0.75rem;
674
- background: rgba(0,0,0,0.02);
675
- border: 1px solid var(--sorteo-border);
676
- border-radius: 0.75rem;
677
- cursor: pointer;
678
- }
679
-
680
- :global(.theme-dark) .sorteo-option-item {
681
- background: rgba(255,255,255,0.02);
682
- }
683
-
684
- .sorteo-option-label {
685
- font-size: 0.875rem;
686
- font-weight: 500;
687
- color: var(--sorteo-text);
688
- }
689
-
690
- .sorteo-switch {
691
- position: relative;
692
- width: 2.25rem;
693
- height: 1.25rem;
694
- }
695
-
696
- .sorteo-switch-slider {
697
- position: absolute;
698
- inset: 0;
699
- background: #cbd5e1;
700
- border-radius: 9999px;
701
- transition: all 0.3s;
702
- }
703
-
704
- :global(.theme-dark) .sorteo-switch-slider {
705
- background: #334155;
706
- }
707
-
708
- .sorteo-switch-slider::after {
709
- content: "";
710
- position: absolute;
711
- top: 2px;
712
- left: 2px;
713
- width: 1rem;
714
- height: 1rem;
715
- background: white;
716
- border-radius: 50%;
717
- transition: all 0.3s;
718
- }
719
-
720
- .sorteo-switch input:checked + .sorteo-switch-slider {
721
- background: var(--sorteo-primary);
722
- }
723
-
724
- .sorteo-switch input:checked + .sorteo-switch-slider.success {
725
- background: var(--sorteo-success);
726
- }
727
-
728
- .sorteo-switch input:checked + .sorteo-switch-slider.primary {
729
- background: var(--sorteo-secondary);
730
- }
731
-
732
- .sorteo-switch input:checked + .sorteo-switch-slider::after {
733
- transform: translateX(1rem);
734
- }
735
-
736
- .sorteo-number-input {
737
- width: 4rem;
738
- text-align: center;
739
- background: var(--sorteo-card);
740
- border: 1px solid var(--sorteo-border);
741
- border-radius: 0.5rem;
742
- padding: 0.25rem;
743
- font-weight: 700;
744
- color: var(--sorteo-text);
745
- outline: none;
746
- }
747
-
748
- .sorteo-field-group {
749
- display: flex;
750
- flex-direction: column;
751
- gap: 0.5rem;
752
- }
753
-
754
- .sorteo-field-label {
755
- font-size: 0.875rem;
756
- font-weight: 500;
757
- color: var(--sorteo-text);
758
- }
759
-
760
- .sorteo-textarea-small {
761
- width: 100%;
762
- height: 8rem;
763
- padding: 0.75rem;
764
- border-radius: 0.75rem;
765
- background: rgba(0,0,0,0.02);
766
- border: 1px solid var(--sorteo-border);
767
- color: var(--sorteo-text);
768
- font-size: 0.75rem;
769
- outline: none;
770
- resize: none;
771
- }
772
-
773
- .sorteo-field-info {
774
- font-size: 0.625rem;
775
- color: var(--sorteo-text-muted);
776
- margin: 0;
777
- }
778
-
779
- .sorteo-stage {
780
- grid-column: span 1;
781
- height: 800px;
782
- position: relative;
783
- transition: all 0.5s ease-in-out;
784
- }
785
-
786
- @media (min-width: 1280px) {
787
- .sorteo-stage {
788
- grid-column: span 8;
789
- }
790
- }
791
-
792
- .sorteo-stage.zen-active {
793
- grid-column: span 12;
794
- }
795
-
796
- .sorteo-zen-btn {
797
- position: absolute;
798
- top: 1.5rem;
799
- left: 1.5rem;
800
- z-index: 50;
801
- padding: 0.5rem;
802
- border-radius: 9999px;
803
- border: none;
804
- background: rgba(255, 255, 255, 0.05);
805
- color: #94a3b8;
806
- backdrop-filter: blur(8px);
807
- cursor: pointer;
808
- opacity: 0;
809
- transition: all 0.3s;
810
- }
811
-
812
- .sorteo-stage:hover .sorteo-zen-btn {
813
- opacity: 1;
814
- }
815
-
816
- .sorteo-zen-btn:hover {
817
- background: white;
818
- color: var(--sorteo-primary);
819
- }
820
-
821
- :global(.theme-dark) .sorteo-zen-btn:hover {
822
- background: black;
823
- }
824
-
825
- .sorteo-studio {
826
- height: 100%;
827
- background: var(--sorteo-studio-bg);
828
- border-radius: 2rem;
829
- border: 4px solid #1e293b;
830
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1);
831
- display: flex;
832
- flex-direction: column;
833
- overflow: hidden;
834
- position: relative;
835
- }
836
-
837
- .sorteo-studio-header {
838
- height: 3rem;
839
- background: #020617;
840
- display: flex;
841
- align-items: center;
842
- padding: 0 1.5rem;
843
- gap: 0.5rem;
844
- }
845
-
846
- .sorteo-dots {
847
- display: flex;
848
- gap: 0.375rem;
849
- }
850
-
851
- .dot {
852
- width: 0.75rem;
853
- height: 0.75rem;
854
- border-radius: 50%;
855
- }
856
-
857
- .dot.red {
858
- background: #ef4444;
859
- opacity: 0.5;
860
- }
861
- .dot.yellow {
862
- background: #f59e0b;
863
- opacity: 0.5;
864
- }
865
- .dot.green {
866
- background: #10b981;
867
- opacity: 0.5;
868
- }
869
-
870
- .sorteo-version {
871
- margin-left: auto;
872
- font-size: 0.75rem;
873
- color: #475569;
874
- text-transform: uppercase;
875
- letter-spacing: 0.2em;
876
- }
877
-
878
- .sorteo-arena {
879
- flex: 1;
880
- position: relative;
881
- background: radial-gradient(circle at center, #1e1b4b, #020617);
882
- display: flex;
883
- align-items: center;
884
- justify-content: center;
885
- overflow: hidden;
886
- }
887
-
888
- .sorteo-grid-bg {
889
- position: absolute;
890
- inset: 0;
891
- background-image:
892
- linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
893
- linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
894
- background-size: 4rem 4rem;
895
- mask-image: radial-gradient(circle at center, black 40%, transparent 80%);
896
- }
897
-
898
- .sorteo-glow {
899
- position: absolute;
900
- top: 0;
901
- left: 50%;
902
- transform: translateX(-50%);
903
- width: 800px;
904
- height: 500px;
905
- background: rgba(99, 102, 241, 0.15);
906
- filter: blur(120px);
907
- border-radius: 50%;
908
- pointer-events: none;
909
- }
910
-
911
- .sorteo-content {
912
- position: relative;
913
- z-index: 10;
914
- width: 100%;
915
- max-width: 56rem;
916
- text-align: center;
917
- padding: 1rem;
918
- }
919
-
920
- .sorteo-state-empty {
921
- transition: all 0.5s ease;
922
- }
923
-
924
- .sorteo-state-empty.hidden-anim {
925
- opacity: 0;
926
- transform: translateY(1rem);
927
- pointer-events: none;
928
- }
929
-
930
- .sorteo-empty-icon {
931
- width: 6rem;
932
- height: 6rem;
933
- background: rgba(30, 41, 59, 0.5);
934
- border: 1px solid rgba(51, 65, 85, 0.5);
935
- border-radius: 50%;
936
- display: inline-flex;
937
- align-items: center;
938
- justify-content: center;
939
- margin-bottom: 1.5rem;
940
- animation: pulse 2s infinite;
941
- }
942
-
943
- .sorteo-empty-icon [data-icon] {
944
- width: 2.5rem;
945
- height: 2.5rem;
946
- color: #64748b;
947
- }
948
-
949
- .sorteo-empty-title {
950
- font-size: 1.875rem;
951
- font-weight: 700;
952
- color: #475569;
953
- margin: 0;
954
- }
955
-
956
- .sorteo-state-countdown {
957
- position: absolute;
958
- inset: 0;
959
- display: flex;
960
- align-items: center;
961
- justify-content: center;
962
- z-index: 50;
963
- pointer-events: none;
964
- }
965
-
966
- .sorteo-countdown-text {
967
- font-size: 15rem;
968
- font-weight: 900;
969
- color: rgba(255,255,255,0.1);
970
- transform: scale(1.5);
971
- filter: blur(2px);
972
- }
973
-
974
- .sorteo-state-active {
975
- display: flex;
976
- flex-direction: column;
977
- align-items: center;
978
- gap: 2rem;
979
- }
980
-
981
- .sorteo-active-label {
982
- color: #818cf8;
983
- font-size: 0.875rem;
984
- letter-spacing: 0.5em;
985
- text-transform: uppercase;
986
- opacity: 0.7;
987
- }
988
-
989
- .sorteo-winner-display {
990
- padding: 3rem 0;
991
- }
992
-
993
- .sorteo-winner-name {
994
- font-size: clamp(3rem, 15vw, 8rem);
995
- font-weight: 900;
996
- color: white;
997
- letter-spacing: -0.02em;
998
- margin: 0;
999
- text-shadow: 0 0 50px rgba(99, 102, 241, 0.5);
1000
- word-break: break-all;
1001
- line-height: 1.1;
1002
- }
1003
-
1004
- .sorteo-winner-name.winner-success {
1005
- color: #34d399;
1006
- text-shadow: 0 0 40px rgba(52, 211, 153, 0.8), 0 0 80px rgba(52, 211, 153, 0.4);
1007
- }
1008
-
1009
- .sorteo-winner-name.scale-up {
1010
- transform: scale(1.1);
1011
- transition: transform 0.5s;
1012
- }
1013
-
1014
- .sorteo-multi-results {
1015
- display: grid;
1016
- grid-template-columns: 1fr;
1017
- gap: 1rem;
1018
- width: 100%;
1019
- max-height: 400px;
1020
- overflow-y: auto;
1021
- padding: 1rem;
1022
- }
1023
-
1024
- @media (min-width: 768px) {
1025
- .sorteo-multi-results { grid-template-columns: repeat(2, 1fr); }
1026
- }
1027
-
1028
- @media (min-width: 1024px) {
1029
- .sorteo-multi-results { grid-template-columns: repeat(3, 1fr); }
1030
- }
1031
-
1032
- .sorteo-result-card {
1033
- background: rgba(30, 41, 59, 0.8);
1034
- border: 1px solid rgba(51, 65, 85, 0.5);
1035
- padding: 1rem;
1036
- border-radius: 0.75rem;
1037
- position: relative;
1038
- display: flex;
1039
- align-items: center;
1040
- justify-content: center;
1041
- transition: all 0.3s;
1042
- }
1043
-
1044
- .sorteo-result-card:hover {
1045
- background: rgba(16, 185, 129, 0.1);
1046
- border-color: rgba(16, 185, 129, 0.3);
1047
- }
1048
-
1049
- .sorteo-result-name {
1050
- font-size: 1.25rem;
1051
- font-weight: 700;
1052
- color: white;
1053
- word-break: break-all;
1054
- }
1055
-
1056
- .sorteo-result-idx {
1057
- position: absolute;
1058
- top: 0.375rem;
1059
- left: 0.375rem;
1060
- font-size: 0.625rem;
1061
- color: #64748b;
1062
- }
1063
-
1064
- .sorteo-winner-actions {
1065
- margin-top: 3rem;
1066
- display: flex;
1067
- justify-content: center;
1068
- }
1069
-
1070
- .sorteo-reroll-btn {
1071
- background: #1e293b;
1072
- color: white;
1073
- padding: 0.75rem 1.5rem;
1074
- border-radius: 9999px;
1075
- font-weight: 700;
1076
- font-size: 0.875rem;
1077
- border: 1px solid #334155;
1078
- cursor: pointer;
1079
- transition: background 0.2s;
1080
- }
1081
-
1082
- .sorteo-reroll-btn:hover {
1083
- background: #334155;
1084
- }
1085
-
1086
- .sorteo-studio-footer {
1087
- height: 6rem;
1088
- background: #0f172a;
1089
- border-top: 1px solid #1e293b;
1090
- display: flex;
1091
- align-items: center;
1092
- justify-content: center;
1093
- padding: 0 2rem;
1094
- }
1095
-
1096
- .sorteo-main-btn {
1097
- width: 100%;
1098
- max-width: 28rem;
1099
- position: relative;
1100
- border: none;
1101
- background: transparent;
1102
- cursor: pointer;
1103
- padding: 0;
1104
- outline: none;
1105
- }
1106
-
1107
- .sorteo-btn-glow {
1108
- position: absolute;
1109
- inset: 0;
1110
- background: linear-gradient(90deg, #6366f1, #a855f7, #ec4899);
1111
- border-radius: 0.75rem;
1112
- filter: blur(8px);
1113
- opacity: 0.25;
1114
- transition: opacity 0.5s;
1115
- }
1116
-
1117
- .sorteo-main-btn:hover:not(:disabled) .sorteo-btn-glow {
1118
- opacity: 0.75;
1119
- }
1120
-
1121
- .sorteo-main-btn:disabled .sorteo-btn-glow {
1122
- display: none;
1123
- }
1124
-
1125
- .sorteo-btn-content {
1126
- position: relative;
1127
- height: 3.5rem;
1128
- background: white;
1129
- border-radius: 0.75rem;
1130
- border: 1px solid #e2e8f0;
1131
- display: flex;
1132
- align-items: center;
1133
- justify-content: center;
1134
- gap: 0.75rem;
1135
- transition: transform 0.1s;
1136
- }
1137
-
1138
- :global(.theme-dark) .sorteo-btn-content {
1139
- background: #020617;
1140
- border-color: #1e293b;
1141
- }
1142
-
1143
- .sorteo-main-btn:active:not(:disabled) .sorteo-btn-content {
1144
- transform: scale(0.98);
1145
- }
1146
-
1147
- .sorteo-btn-content span {
1148
- font-size: 1.25rem;
1149
- font-weight: 900;
1150
- text-transform: uppercase;
1151
- letter-spacing: 0.05em;
1152
- background: linear-gradient(90deg, #4f46e5, #9333ea);
1153
- -webkit-background-clip: text;
1154
- -webkit-text-fill-color: transparent;
1155
- }
1156
-
1157
- :global(.theme-dark) .sorteo-btn-content span {
1158
- background: linear-gradient(90deg, #818cf8, #c084fc);
1159
- -webkit-background-clip: text;
1160
- -webkit-text-fill-color: transparent;
1161
- }
1162
-
1163
- .sorteo-main-btn:disabled .sorteo-btn-content span {
1164
- background: none;
1165
- -webkit-text-fill-color: #475569;
1166
- color: #475569;
1167
- }
1168
-
1169
- .sorteo-btn-content [data-icon] {
1170
- width: 1.5rem;
1171
- height: 1.5rem;
1172
- color: #a855f7;
1173
- }
1174
-
1175
- .sorteo-main-btn:disabled .sorteo-btn-content [data-icon] {
1176
- color: #475569;
1177
- }
1178
-
1179
- .sorteo-history {
1180
- margin-top: 3rem;
1181
- }
1182
-
1183
- .sorteo-history-container {
1184
- border-top: 1px solid var(--sorteo-border);
1185
- padding-top: 2rem;
1186
- }
1187
-
1188
- .sorteo-history-title {
1189
- font-size: 1.125rem;
1190
- font-weight: 700;
1191
- color: var(--sorteo-text);
1192
- display: flex;
1193
- align-items: center;
1194
- gap: 0.5rem;
1195
- margin-bottom: 1.5rem;
1196
- }
1197
-
1198
- .sorteo-history-title [data-icon] {
1199
- width: 1.25rem;
1200
- height: 1.25rem;
1201
- opacity: 0.5;
1202
- }
1203
-
1204
- .sorteo-history-list {
1205
- display: flex;
1206
- flex-wrap: wrap;
1207
- gap: 0.75rem;
1208
- }
1209
-
1210
- .sorteo-no-winners {
1211
- font-size: 0.875rem;
1212
- font-style: italic;
1213
- color: var(--sorteo-text-muted);
1214
- }
1215
-
1216
- .sorteo-history-item {
1217
- background: var(--sorteo-card);
1218
- border: 1px solid var(--sorteo-border);
1219
- border-radius: 9999px;
1220
- padding: 0.375rem 1rem;
1221
- font-size: 0.875rem;
1222
- font-weight: 500;
1223
- color: var(--sorteo-text);
1224
- display: flex;
1225
- align-items: center;
1226
- gap: 0.5rem;
1227
- box-shadow: 0 1px 2px rgba(0,0,0,0.05);
1228
- animation: zoom-in 0.3s ease-out;
1229
- }
1230
-
1231
- .sorteo-history-dot {
1232
- width: 0.5rem;
1233
- height: 0.5rem;
1234
- border-radius: 50%;
1235
- background: var(--sorteo-success);
1236
- }
1237
-
1238
- .sr-only {
1239
- position: absolute;
1240
- width: 1px;
1241
- height: 1px;
1242
- padding: 0;
1243
- margin: -1px;
1244
- overflow: hidden;
1245
- clip-path: inset(50%);
1246
- white-space: nowrap;
1247
- border-width: 0;
1248
- }
1249
-
1250
- .hidden { display: none; }
1251
-
1252
- @keyframes pulse {
1253
- 0%, 100% { opacity: 1; }
1254
- 50% { opacity: 0.5; }
1255
- }
1256
-
1257
- @keyframes ping-slow {
1258
- 0% {
1259
- transform: scale(1);
1260
- opacity: 0.5;
1261
- }
1262
- 100% {
1263
- transform: scale(1.5);
1264
- opacity: 0;
1265
- }
1266
- }
1267
-
1268
- .animate-ping-slow {
1269
- animation: ping-slow 1s cubic-bezier(0, 0, 0.2, 1) infinite;
1270
- }
1271
-
1272
- @keyframes zoom-in {
1273
- 0% {
1274
- opacity: 0;
1275
- transform: scale(0.95);
1276
- }
1277
- 100% {
1278
- opacity: 1;
1279
- transform: scale(1);
1280
- }
1281
- }
1282
-
1283
- .animate-zoom-in {
1284
- animation: zoom-in 0.5s ease-out both;
1285
- }
1286
-
1287
- .sorteo-confetti-particle {
1288
- position: absolute;
1289
- width: 8px;
1290
- height: 8px;
1291
- border-radius: 50%;
1292
- z-index: 50;
1293
- left: 50%;
1294
- top: 50%;
1295
- opacity: 1;
1296
- transform: translate(0, 0) rotate(0deg) scale(0.5);
1297
- animation: confetti-fly 1.5s cubic-bezier(0.1, 1, 0.2, 1) forwards;
1298
- }
1299
-
1300
- @keyframes confetti-fly {
1301
- to {
1302
- transform: translate(var(--tx), var(--ty)) rotate(var(--rot)) scale(1);
1303
- opacity: 0;
1304
- }
1305
- }
1306
-
1307
- .custom-scrollbar::-webkit-scrollbar {
1308
- width: 4px;
1309
- }
1310
- .custom-scrollbar::-webkit-scrollbar-track {
1311
- background: transparent;
1312
- }
1313
- .custom-scrollbar::-webkit-scrollbar-thumb {
1314
- background: var(--sorteo-border);
1315
- border-radius: 10px;
1316
- }
1317
- </style>