@jjlmoya/utils-alcohol 1.23.0 → 1.25.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.
@@ -394,1223 +394,4 @@ function getIngIconName(type: string): string {
394
394
  new CocktailApp();
395
395
  </script>
396
396
 
397
- <style>
398
- .balancer-app {
399
- max-width: 72rem;
400
- margin: 0 auto;
401
- padding: 0.5rem;
402
- color: #1e293b;
403
- }
404
-
405
- :global(.theme-dark) .balancer-app {
406
- color: #f1f5f9;
407
- }
408
-
409
- .balancer-card {
410
- background: #fff;
411
- border: 1px solid #e2e8f0;
412
- border-radius: 1.25rem;
413
- overflow: clip;
414
- box-shadow: 0 4px 20px rgba(0,0,0,0.06);
415
- }
416
-
417
- :global(.theme-dark) .balancer-card {
418
- background: #0f172a;
419
- border-color: #1e293b;
420
- }
421
-
422
- .balancer-header {
423
- display: flex;
424
- flex-direction: column;
425
- gap: 1rem;
426
- align-items: center;
427
- padding: 1rem 1.5rem;
428
- border-bottom: 1px solid #e2e8f0;
429
- }
430
-
431
- @media (min-width: 768px) {
432
- .balancer-header {
433
- flex-direction: row;
434
- justify-content: space-between;
435
- }
436
- }
437
-
438
- :global(.theme-dark) .balancer-header {
439
- border-color: #1e293b;
440
- }
441
-
442
- .balancer-title {
443
- font-size: 1.25rem;
444
- font-weight: 700;
445
- display: flex;
446
- align-items: center;
447
- gap: 0.5rem;
448
- margin: 0;
449
- }
450
-
451
- .balancer-title-icon {
452
- color: #6366f1;
453
- font-size: 1.5rem;
454
- display: flex;
455
- }
456
-
457
- .balancer-version {
458
- font-size: 0.75rem;
459
- padding: 0.25rem 0.5rem;
460
- background: #e0e7ff;
461
- color: #4f46e5;
462
- border-radius: 9999px;
463
- }
464
-
465
- :global(.theme-dark) .balancer-version {
466
- background: #1e1b4b;
467
- color: #a5b4fc;
468
- }
469
-
470
- .balancer-actions {
471
- display: flex;
472
- align-items: center;
473
- gap: 0.75rem;
474
- }
475
-
476
- .btn-primary {
477
- display: flex;
478
- align-items: center;
479
- gap: 0.5rem;
480
- padding: 0.5rem 1rem;
481
- background: #4f46e5;
482
- color: #fff;
483
- border: none;
484
- border-radius: 0.75rem;
485
- font-weight: 700;
486
- font-size: 0.875rem;
487
- cursor: pointer;
488
- box-shadow: 0 4px 12px rgba(99,102,241,0.3);
489
- transition: background 0.2s;
490
- }
491
-
492
- .btn-primary:hover {
493
- background: #4338ca;
494
- }
495
-
496
- .btn-secondary {
497
- display: flex;
498
- align-items: center;
499
- gap: 0.5rem;
500
- padding: 0.5rem 1rem;
501
- background: #f1f5f9;
502
- color: #475569;
503
- border: none;
504
- border-radius: 0.75rem;
505
- font-weight: 500;
506
- font-size: 0.875rem;
507
- cursor: pointer;
508
- transition: background 0.2s;
509
- }
510
-
511
- :global(.theme-dark) .btn-secondary {
512
- background: #1e293b;
513
- color: #94a3b8;
514
- }
515
-
516
- .btn-secondary:hover {
517
- background: #e0e7ff;
518
- color: #4f46e5;
519
- }
520
-
521
- :global(.theme-dark) .btn-secondary:hover {
522
- background: rgba(99,102,241,0.2);
523
- }
524
-
525
- .btn-danger {
526
- display: flex;
527
- align-items: center;
528
- gap: 0.5rem;
529
- padding: 0.5rem;
530
- color: #ef4444;
531
- background: none;
532
- border: none;
533
- border-radius: 0.75rem;
534
- cursor: pointer;
535
- font-weight: 700;
536
- font-size: 0.875rem;
537
- transition: background 0.2s;
538
- }
539
-
540
- .btn-danger:hover {
541
- background: #fef2f2;
542
- }
543
-
544
- :global(.theme-dark) .btn-danger:hover {
545
- background: rgba(239,68,68,0.1);
546
- }
547
-
548
- .btn-danger-solid {
549
- background: #ef4444;
550
- color: #fff;
551
- border: none;
552
- border-radius: 0.75rem;
553
- font-weight: 700;
554
- padding: 0.75rem;
555
- cursor: pointer;
556
- transition: background 0.2s;
557
- box-shadow: 0 4px 12px rgba(239,68,68,0.3);
558
- }
559
-
560
- .btn-danger-solid:hover {
561
- background: #dc2626;
562
- }
563
-
564
- .balancer-grid {
565
- display: grid;
566
- align-items: start;
567
- }
568
-
569
- @media (min-width: 1024px) {
570
- .balancer-grid {
571
- grid-template-columns: 7fr 5fr;
572
- }
573
- }
574
-
575
- .recipe-column {
576
- display: flex;
577
- flex-direction: column;
578
- gap: 1.5rem;
579
- padding: 1.5rem;
580
- }
581
-
582
- @media (min-width: 1024px) {
583
- .recipe-column {
584
- border-right: 1px solid #e2e8f0;
585
- }
586
- }
587
-
588
- :global(.theme-dark) .recipe-column {
589
- border-color: #1e293b;
590
- }
591
-
592
- .recipe-container {
593
- min-height: 300px;
594
- display: flex;
595
- flex-direction: column;
596
- gap: 1rem;
597
- }
598
-
599
- .empty-state {
600
- display: flex;
601
- flex-direction: column;
602
- align-items: center;
603
- justify-content: center;
604
- padding: 4rem 1rem;
605
- border: 2px dashed #e2e8f0;
606
- border-radius: 1.5rem;
607
- background: rgba(248,250,252,0.5);
608
- }
609
-
610
- :global(.theme-dark) .empty-state {
611
- border-color: #334155;
612
- background: rgba(30,41,59,0.5);
613
- }
614
-
615
- .empty-icon-wrap {
616
- width: 5rem;
617
- height: 5rem;
618
- background: #e0e7ff;
619
- color: #6366f1;
620
- border-radius: 50%;
621
- display: flex;
622
- align-items: center;
623
- justify-content: center;
624
- font-size: 2.5rem;
625
- margin-bottom: 1rem;
626
- }
627
-
628
- :global(.theme-dark) .empty-icon-wrap {
629
- background: rgba(99,102,241,0.2);
630
- }
631
-
632
- .empty-flask-icon {
633
- width: 2.5rem;
634
- height: 2.5rem;
635
- }
636
-
637
- .empty-title {
638
- font-size: 1.125rem;
639
- font-weight: 700;
640
- color: #334155;
641
- margin: 0 0 0.5rem;
642
- }
643
-
644
- :global(.theme-dark) .empty-title {
645
- color: #e2e8f0;
646
- }
647
-
648
- .empty-desc {
649
- color: #64748b;
650
- font-size: 0.875rem;
651
- margin: 0 0 1.5rem;
652
- max-width: 20rem;
653
- text-align: center;
654
- }
655
-
656
- :global(.theme-dark) .empty-desc {
657
- color: #94a3b8;
658
- }
659
-
660
- .btn-add-first {
661
- padding: 0.75rem 1.5rem;
662
- font-size: 1rem;
663
- }
664
-
665
- .btn-add-more {
666
- width: 100%;
667
- padding: 1rem;
668
- border: 2px dashed #cbd5e1;
669
- border-radius: 1rem;
670
- color: #64748b;
671
- background: none;
672
- cursor: pointer;
673
- font-weight: 700;
674
- display: flex;
675
- align-items: center;
676
- justify-content: center;
677
- gap: 0.5rem;
678
- transition: all 0.2s;
679
- }
680
-
681
- :global(.theme-dark) .btn-add-more {
682
- border-color: #334155;
683
- }
684
-
685
- .btn-add-more:hover {
686
- border-color: #6366f1;
687
- color: #6366f1;
688
- }
689
-
690
- .add-more-icon {
691
- font-size: 1.5rem;
692
- }
693
-
694
- .dashboard-column {
695
- display: flex;
696
- flex-direction: column;
697
- position: sticky;
698
- top: 0;
699
- background: #f8fafc;
700
- }
701
-
702
- :global(.theme-dark) .dashboard-column {
703
- background: rgba(0,0,0,0.15);
704
- }
705
-
706
- .flavor-card {
707
- padding: 1.5rem;
708
- border-bottom: 1px solid #e2e8f0;
709
- position: relative;
710
- overflow: hidden;
711
- }
712
-
713
- :global(.theme-dark) .flavor-card {
714
- border-color: #1e293b;
715
- }
716
-
717
- .flavor-card-accent {
718
- position: absolute;
719
- top: 0;
720
- left: 0;
721
- right: 0;
722
- height: 3px;
723
- background: linear-gradient(to right, #6366f1, #a855f7, #ec4899);
724
- }
725
-
726
- .flavor-card-header {
727
- display: flex;
728
- justify-content: space-between;
729
- align-items: flex-start;
730
- margin-bottom: 1rem;
731
- }
732
-
733
- .flavor-card-title {
734
- font-size: 1.125rem;
735
- font-weight: 700;
736
- margin: 0;
737
- }
738
-
739
- .abv-badge {
740
- padding: 0.25rem 0.75rem;
741
- border-radius: 9999px;
742
- background: #f1f5f9;
743
- font-size: 0.75rem;
744
- font-weight: 700;
745
- color: #64748b;
746
- }
747
-
748
- :global(.theme-dark) .abv-badge {
749
- background: #1e293b;
750
- }
751
-
752
- .radar-wrap {
753
- position: relative;
754
- width: 100%;
755
- max-width: 280px;
756
- margin: 0 auto;
757
- aspect-ratio: 1;
758
- }
759
-
760
- .radar-svg {
761
- width: 100%;
762
- height: 100%;
763
- filter: drop-shadow(0 4px 12px rgba(0,0,0,0.1));
764
- }
765
-
766
- .radar-bg-poly {
767
- stroke: #e2e8f0;
768
- }
769
-
770
- :global(.theme-dark) .radar-bg-poly {
771
- stroke: #334155;
772
- }
773
-
774
- .radar-shape {
775
- fill: rgba(99,102,241,0.2);
776
- stroke: #6366f1;
777
- transition: all 0.7s;
778
- }
779
-
780
- .radar-dot {
781
- fill: #4f46e5;
782
- transition: all 0.7s;
783
- }
784
-
785
- .radar-label {
786
- position: absolute;
787
- font-size: 0.625rem;
788
- text-transform: uppercase;
789
- font-weight: 700;
790
- color: #94a3b8;
791
- letter-spacing: 0.05em;
792
- background: #f8fafc;
793
- padding: 0 2px;
794
- }
795
-
796
- :global(.theme-dark) .radar-label {
797
- background: transparent;
798
- }
799
-
800
- .radar-top {
801
- top: 0;
802
- left: 50%;
803
- transform: translateX(-50%) translateY(-0.5rem);
804
- }
805
-
806
- .radar-right-top {
807
- top: 35%;
808
- right: 0;
809
- transform: translateX(0.5rem);
810
- }
811
-
812
- .radar-right-bot {
813
- bottom: 15%;
814
- right: 0;
815
- transform: translateX(0.5rem);
816
- }
817
-
818
- .radar-left-bot {
819
- bottom: 15%;
820
- left: 0;
821
- transform: translateX(-0.5rem);
822
- }
823
-
824
- .radar-left-top {
825
- top: 35%;
826
- left: 0;
827
- transform: translateX(-1rem);
828
- }
829
-
830
- .stats-grid {
831
- display: grid;
832
- grid-template-columns: repeat(3, 1fr);
833
- padding: 1rem 1.5rem;
834
- border-bottom: 1px solid #e2e8f0;
835
- gap: 0.75rem;
836
- }
837
-
838
- :global(.theme-dark) .stats-grid {
839
- border-color: #1e293b;
840
- }
841
-
842
- .stat-card {
843
- padding: 0.75rem;
844
- border-radius: 0.75rem;
845
- border: 1px solid #e2e8f0;
846
- text-align: center;
847
- }
848
-
849
- :global(.theme-dark) .stat-card {
850
- border-color: #1e293b;
851
- }
852
-
853
- .stat-card-label {
854
- font-size: 0.75rem;
855
- color: #94a3b8;
856
- text-transform: uppercase;
857
- font-weight: 700;
858
- margin-bottom: 0.25rem;
859
- }
860
-
861
- .stat-card-value {
862
- font-size: 1.25rem;
863
- font-weight: 900;
864
- color: #334155;
865
- }
866
-
867
- :global(.theme-dark) .stat-card-value {
868
- color: #e2e8f0;
869
- }
870
-
871
- .stat-value-amber {
872
- color: #f59e0b;
873
- }
874
-
875
- .stat-card-unit {
876
- font-size: 0.75rem;
877
- color: #94a3b8;
878
- font-weight: 400;
879
- margin-left: 0.25rem;
880
- }
881
-
882
- .stat-card-color {
883
- display: flex;
884
- flex-direction: column;
885
- align-items: center;
886
- }
887
-
888
- .color-swatch {
889
- width: 2rem;
890
- height: 2rem;
891
- border-radius: 50%;
892
- box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
893
- border: 2px solid #f1f5f9;
894
- overflow: hidden;
895
- margin-top: 0.5rem;
896
- }
897
-
898
- :global(.theme-dark) .color-swatch {
899
- border-color: #334155;
900
- }
901
-
902
- .color-swatch-inner {
903
- width: 100%;
904
- height: 100%;
905
- background: transparent;
906
- transition: background-color 0.5s;
907
- }
908
-
909
- .balance-card {
910
- padding: 1.25rem 1.5rem;
911
- border-bottom: 1px solid #e2e8f0;
912
- }
913
-
914
- :global(.theme-dark) .balance-card {
915
- border-color: #1e293b;
916
- }
917
-
918
- .balance-card-header {
919
- display: flex;
920
- align-items: center;
921
- justify-content: space-between;
922
- margin-bottom: 1.5rem;
923
- }
924
-
925
- .balance-card-title {
926
- font-size: 0.875rem;
927
- font-weight: 700;
928
- color: #64748b;
929
- text-transform: uppercase;
930
- letter-spacing: 0.1em;
931
- margin: 0;
932
- }
933
-
934
- .balance-verdict {
935
- font-size: 1rem;
936
- font-weight: 900;
937
- color: #cbd5e1;
938
- }
939
-
940
- .balance-track {
941
- position: relative;
942
- height: 1rem;
943
- background: #f1f5f9;
944
- border-radius: 9999px;
945
- margin: 0 0.5rem 2rem;
946
- }
947
-
948
- :global(.theme-dark) .balance-track {
949
- background: #1e293b;
950
- }
951
-
952
- .balance-zone {
953
- position: absolute;
954
- top: 0;
955
- height: 100%;
956
- width: 30%;
957
- }
958
-
959
- .balance-zone-left {
960
- left: 0;
961
- background: linear-gradient(to right, rgba(132,204,22,0.2), rgba(132,204,22,0.05));
962
- border-radius: 9999px 0 0 9999px;
963
- }
964
-
965
- .balance-zone-right {
966
- right: 0;
967
- background: linear-gradient(to left, rgba(245,158,11,0.2), rgba(245,158,11,0.05));
968
- border-radius: 0 9999px 9999px 0;
969
- }
970
-
971
- .balance-center-line {
972
- position: absolute;
973
- left: 50%;
974
- top: 0;
975
- height: 100%;
976
- width: 4px;
977
- background: rgba(203,213,225,0.5);
978
- transform: translateX(-50%);
979
- }
980
-
981
- .balance-needle {
982
- position: absolute;
983
- top: 50%;
984
- transform: translate(-50%, -50%);
985
- width: 1.5rem;
986
- height: 1.5rem;
987
- background: #fff;
988
- border: 4px solid #0f172a;
989
- border-radius: 50%;
990
- box-shadow: 0 2px 8px rgba(0,0,0,0.2);
991
- transition: left 0.5s;
992
- z-index: 1;
993
- }
994
-
995
- :global(.theme-dark) .balance-needle {
996
- background: #334155;
997
- border-color: #fff;
998
- }
999
-
1000
- .balance-labels {
1001
- display: flex;
1002
- justify-content: space-between;
1003
- font-size: 0.625rem;
1004
- font-weight: 700;
1005
- text-transform: uppercase;
1006
- letter-spacing: 0.1em;
1007
- padding: 0 0.25rem;
1008
- }
1009
-
1010
- .balance-lbl-acid {
1011
- color: #65a30d;
1012
- }
1013
-
1014
- .balance-lbl-mid {
1015
- color: #cbd5e1;
1016
- }
1017
-
1018
- .balance-lbl-sweet {
1019
- color: #d97706;
1020
- }
1021
397
 
1022
- .fix-box {
1023
- background: #eef2ff;
1024
- padding: 1.25rem 1.5rem;
1025
- display: flex;
1026
- gap: 1rem;
1027
- border-top: 1px solid #e0e7ff;
1028
- }
1029
-
1030
- :global(.theme-dark) .fix-box {
1031
- background: rgba(99,102,241,0.08);
1032
- border-color: rgba(99,102,241,0.2);
1033
- }
1034
-
1035
- .fix-icon-wrap {
1036
- width: 2.5rem;
1037
- height: 2.5rem;
1038
- border-radius: 50%;
1039
- background: #e0e7ff;
1040
- color: #4f46e5;
1041
- flex-shrink: 0;
1042
- display: flex;
1043
- align-items: center;
1044
- justify-content: center;
1045
- font-size: 1.25rem;
1046
- }
1047
-
1048
- :global(.theme-dark) .fix-icon-wrap {
1049
- background: rgba(99,102,241,0.2);
1050
- color: #818cf8;
1051
- }
1052
-
1053
- .fix-icon {
1054
- width: 1.5rem;
1055
- height: 1.5rem;
1056
- }
1057
-
1058
- .fix-title {
1059
- font-weight: 700;
1060
- color: #1e1b4b;
1061
- margin: 0 0 0.25rem;
1062
- font-size: 0.875rem;
1063
- }
1064
-
1065
- :global(.theme-dark) .fix-title {
1066
- color: #c7d2fe;
1067
- }
1068
-
1069
- .fix-text {
1070
- font-size: 0.875rem;
1071
- color: rgba(30,27,75,0.8);
1072
- line-height: 1.6;
1073
- margin: 0;
1074
- }
1075
-
1076
- :global(.theme-dark) .fix-text {
1077
- color: #a5b4fc;
1078
- }
1079
-
1080
- .modal-dialog {
1081
- margin: auto;
1082
- border: none;
1083
- background: transparent;
1084
- padding: 0;
1085
- width: 100%;
1086
- max-width: 42rem;
1087
- border-radius: 1.5rem;
1088
- box-shadow: 0 25px 50px rgba(0,0,0,0.25);
1089
- }
1090
-
1091
- .modal-dialog::backdrop {
1092
- background: rgba(15,23,42,0.4);
1093
- backdrop-filter: blur(4px);
1094
- }
1095
-
1096
- .modal-dialog-wide {
1097
- max-width: 56rem;
1098
- }
1099
-
1100
- .modal-dialog-sm {
1101
- max-width: 24rem;
1102
- }
1103
-
1104
- .modal-body {
1105
- background: #fff;
1106
- border: 1px solid #e2e8f0;
1107
- border-radius: 1.5rem;
1108
- overflow: hidden;
1109
- max-height: 85vh;
1110
- display: flex;
1111
- flex-direction: column;
1112
- }
1113
-
1114
- :global(.theme-dark) .modal-body {
1115
- background: #0f172a;
1116
- border-color: #1e293b;
1117
- }
1118
-
1119
- .modal-header {
1120
- padding: 1.5rem;
1121
- border-bottom: 1px solid #f1f5f9;
1122
- background: rgba(248,250,252,0.8);
1123
- backdrop-filter: blur(4px);
1124
- position: sticky;
1125
- top: 0;
1126
- z-index: 1;
1127
- }
1128
-
1129
- :global(.theme-dark) .modal-header {
1130
- background: rgba(15,23,42,0.8);
1131
- border-color: #1e293b;
1132
- }
1133
-
1134
- .modal-header-row {
1135
- display: flex;
1136
- justify-content: space-between;
1137
- align-items: center;
1138
- margin-bottom: 1rem;
1139
- }
1140
-
1141
- .modal-header-simple {
1142
- display: flex;
1143
- justify-content: space-between;
1144
- align-items: center;
1145
- }
1146
-
1147
- .modal-title {
1148
- font-size: 1.25rem;
1149
- font-weight: 700;
1150
- margin: 0;
1151
- }
1152
-
1153
- .modal-title-with-icon {
1154
- display: flex;
1155
- align-items: center;
1156
- gap: 0.5rem;
1157
- }
1158
-
1159
- .modal-title-icon {
1160
- color: #6366f1;
1161
- width: 1.5rem;
1162
- height: 1.5rem;
1163
- }
1164
-
1165
- .modal-close-btn {
1166
- padding: 0.5rem;
1167
- background: none;
1168
- border: none;
1169
- border-radius: 50%;
1170
- cursor: pointer;
1171
- color: #64748b;
1172
- display: flex;
1173
- transition: background 0.2s;
1174
- }
1175
-
1176
- .modal-close-btn:hover {
1177
- background: #f1f5f9;
1178
- }
1179
-
1180
- :global(.theme-dark) .modal-close-btn:hover {
1181
- background: #1e293b;
1182
- }
1183
-
1184
- .modal-search-wrap {
1185
- position: relative;
1186
- }
1187
-
1188
- .modal-search-icon {
1189
- position: absolute;
1190
- left: 0.75rem;
1191
- top: 50%;
1192
- transform: translateY(-50%);
1193
- color: #94a3b8;
1194
- width: 1.25rem;
1195
- height: 1.25rem;
1196
- }
1197
-
1198
- .modal-search-input {
1199
- width: 100%;
1200
- padding: 0.75rem 1rem 0.75rem 2.5rem;
1201
- background: #fff;
1202
- border: 2px solid #e2e8f0;
1203
- border-radius: 0.75rem;
1204
- outline: none;
1205
- transition: border-color 0.2s;
1206
- box-sizing: border-box;
1207
- }
1208
-
1209
- :global(.theme-dark) .modal-search-input {
1210
- background: #1e293b;
1211
- border-color: #334155;
1212
- color: #f1f5f9;
1213
- }
1214
-
1215
- .modal-search-input:focus {
1216
- border-color: #6366f1;
1217
- }
1218
-
1219
- .modal-scroll {
1220
- flex: 1;
1221
- overflow-y: auto;
1222
- padding: 1rem;
1223
- }
1224
-
1225
- .modal-scroll-bg {
1226
- background: #f8fafc;
1227
- }
1228
-
1229
- :global(.theme-dark) .modal-scroll-bg {
1230
- background: rgba(0,0,0,0.1);
1231
- }
1232
-
1233
- .ing-grid {
1234
- display: grid;
1235
- gap: 0.75rem;
1236
- }
1237
-
1238
- @media (min-width: 640px) {
1239
- .ing-grid {
1240
- grid-template-columns: 1fr 1fr;
1241
- }
1242
- }
1243
-
1244
- .ing-select-btn {
1245
- display: flex;
1246
- align-items: center;
1247
- gap: 0.75rem;
1248
- padding: 0.75rem;
1249
- background: #f8fafc;
1250
- border: 1px solid transparent;
1251
- border-radius: 0.75rem;
1252
- cursor: pointer;
1253
- text-align: left;
1254
- transition: all 0.15s;
1255
- }
1256
-
1257
- :global(.theme-dark) .ing-select-btn {
1258
- background: rgba(30,41,59,0.5);
1259
- }
1260
-
1261
- .ing-select-btn:hover {
1262
- background: #eef2ff;
1263
- border-color: #c7d2fe;
1264
- }
1265
-
1266
- :global(.theme-dark) .ing-select-btn:hover {
1267
- background: rgba(99,102,241,0.1);
1268
- border-color: rgba(99,102,241,0.4);
1269
- }
1270
-
1271
- .ing-icon-wrap {
1272
- width: 2.5rem;
1273
- height: 2.5rem;
1274
- border-radius: 0.5rem;
1275
- display: flex;
1276
- align-items: center;
1277
- justify-content: center;
1278
- font-size: 1.25rem;
1279
- flex-shrink: 0;
1280
- box-shadow: 0 1px 3px rgba(0,0,0,0.1);
1281
- }
1282
-
1283
- .ing-icon-spirit {
1284
- background: #e0e7ff;
1285
- color: #4f46e5;
1286
- }
1287
-
1288
- .ing-icon-citrus {
1289
- background: #ecfccb;
1290
- color: #65a30d;
1291
- }
1292
-
1293
- .ing-icon-syrup {
1294
- background: #fef3c7;
1295
- color: #d97706;
1296
- }
1297
-
1298
- .ing-icon-other {
1299
- background: #f1f5f9;
1300
- color: #475569;
1301
- }
1302
-
1303
- .ing-info {
1304
- display: flex;
1305
- flex-direction: column;
1306
- }
1307
-
1308
- .ing-name {
1309
- font-weight: 700;
1310
- color: #334155;
1311
- font-size: 0.875rem;
1312
- }
1313
-
1314
- :global(.theme-dark) .ing-name {
1315
- color: #e2e8f0;
1316
- }
1317
-
1318
- .ing-select-btn:hover .ing-name {
1319
- color: #4f46e5;
1320
- }
1321
-
1322
- :global(.theme-dark) .ing-select-btn:hover .ing-name {
1323
- color: #818cf8;
1324
- }
1325
-
1326
- .ing-meta {
1327
- font-size: 0.625rem;
1328
- color: #94a3b8;
1329
- font-weight: 700;
1330
- text-transform: uppercase;
1331
- letter-spacing: 0.05em;
1332
- margin-top: 0.125rem;
1333
- }
1334
-
1335
- .presets-grid {
1336
- display: grid;
1337
- gap: 1rem;
1338
- margin-bottom: 2rem;
1339
- }
1340
-
1341
- @media (min-width: 768px) {
1342
- .presets-grid {
1343
- grid-template-columns: 1fr 1fr;
1344
- }
1345
- }
1346
-
1347
- @media (min-width: 1024px) {
1348
- .presets-grid {
1349
- grid-template-columns: repeat(3, 1fr);
1350
- }
1351
- }
1352
-
1353
- .preset-load-btn {
1354
- display: flex;
1355
- flex-direction: column;
1356
- gap: 0.5rem;
1357
- padding: 1rem;
1358
- background: #fff;
1359
- border: 1px solid #e2e8f0;
1360
- border-radius: 0.75rem;
1361
- text-align: left;
1362
- cursor: pointer;
1363
- transition: all 0.15s;
1364
- box-shadow: 0 1px 3px rgba(0,0,0,0.05);
1365
- }
1366
-
1367
- :global(.theme-dark) .preset-load-btn {
1368
- background: #1e293b;
1369
- border-color: #334155;
1370
- }
1371
-
1372
- .preset-load-btn:hover {
1373
- border-color: #6366f1;
1374
- box-shadow: 0 4px 12px rgba(0,0,0,0.1);
1375
- }
1376
-
1377
- .preset-icon-row {
1378
- display: flex;
1379
- align-items: center;
1380
- gap: 0.5rem;
1381
- color: #6366f1;
1382
- margin-bottom: 0.25rem;
1383
- }
1384
-
1385
- .preset-icon {
1386
- width: 1.25rem;
1387
- height: 1.25rem;
1388
- }
1389
-
1390
- .preset-name {
1391
- font-weight: 700;
1392
- color: #0f172a;
1393
- font-size: 0.875rem;
1394
- }
1395
-
1396
- :global(.theme-dark) .preset-name {
1397
- color: #fff;
1398
- }
1399
-
1400
- .preset-desc {
1401
- font-size: 0.75rem;
1402
- color: #64748b;
1403
- line-height: 1.4;
1404
- margin: 0;
1405
- display: -webkit-box;
1406
- -webkit-line-clamp: 2;
1407
- -webkit-box-orient: vertical;
1408
- overflow: hidden;
1409
- }
1410
-
1411
- .section-heading {
1412
- font-size: 0.75rem;
1413
- font-weight: 700;
1414
- text-transform: uppercase;
1415
- color: #94a3b8;
1416
- letter-spacing: 0.1em;
1417
- margin: 0 0 1rem;
1418
- }
1419
-
1420
- .saved-section {
1421
- margin-bottom: 2rem;
1422
- }
1423
-
1424
- .confirm-body {
1425
- background: #fff;
1426
- border: 1px solid #e2e8f0;
1427
- border-radius: 1.5rem;
1428
- padding: 1.5rem;
1429
- display: flex;
1430
- flex-direction: column;
1431
- align-items: center;
1432
- gap: 1rem;
1433
- text-align: center;
1434
- }
1435
-
1436
- :global(.theme-dark) .confirm-body {
1437
- background: #0f172a;
1438
- border-color: #1e293b;
1439
- }
1440
-
1441
- .confirm-icon-wrap {
1442
- width: 4rem;
1443
- height: 4rem;
1444
- border-radius: 50%;
1445
- background: #fef2f2;
1446
- color: #ef4444;
1447
- display: flex;
1448
- align-items: center;
1449
- justify-content: center;
1450
- font-size: 1.875rem;
1451
- margin-bottom: 0.5rem;
1452
- }
1453
-
1454
- :global(.theme-dark) .confirm-icon-wrap {
1455
- background: rgba(239,68,68,0.2);
1456
- }
1457
-
1458
- .confirm-icon {
1459
- width: 2.5rem;
1460
- height: 2.5rem;
1461
- }
1462
-
1463
- .confirm-title {
1464
- font-size: 1.25rem;
1465
- font-weight: 700;
1466
- margin: 0 0 0.5rem;
1467
- }
1468
-
1469
- .confirm-text {
1470
- color: #64748b;
1471
- font-size: 0.875rem;
1472
- margin: 0;
1473
- }
1474
-
1475
- :global(.theme-dark) .confirm-text {
1476
- color: #94a3b8;
1477
- }
1478
-
1479
- .confirm-actions {
1480
- display: flex;
1481
- gap: 0.75rem;
1482
- width: 100%;
1483
- margin-top: 0.5rem;
1484
- }
1485
-
1486
- .btn-confirm {
1487
- flex: 1;
1488
- padding: 0.75rem;
1489
- }
1490
-
1491
- :global(.recipe-row) {
1492
- background: #fff;
1493
- border-radius: 1rem;
1494
- padding: 1rem;
1495
- box-shadow: 0 1px 3px rgba(0,0,0,0.05);
1496
- border: 1px solid #f1f5f9;
1497
- }
1498
-
1499
- :global(.theme-dark .recipe-row) {
1500
- background: #0f172a;
1501
- border-color: #1e293b;
1502
- }
1503
-
1504
- :global(.recipe-row-top) {
1505
- display: flex;
1506
- align-items: center;
1507
- justify-content: space-between;
1508
- margin-bottom: 0.75rem;
1509
- }
1510
-
1511
- :global(.recipe-row-info) {
1512
- display: flex;
1513
- align-items: center;
1514
- gap: 0.75rem;
1515
- }
1516
-
1517
- :global(.recipe-row-name) {
1518
- font-weight: 700;
1519
- color: #334155;
1520
- }
1521
-
1522
- :global(.theme-dark .recipe-row-name) {
1523
- color: #e2e8f0;
1524
- }
1525
-
1526
- :global(.recipe-row-type) {
1527
- font-size: 0.625rem;
1528
- background: #f1f5f9;
1529
- padding: 0.125rem 0.5rem;
1530
- border-radius: 0.25rem;
1531
- color: #64748b;
1532
- font-weight: 700;
1533
- text-transform: uppercase;
1534
- }
1535
-
1536
- :global(.theme-dark .recipe-row-type) {
1537
- background: #1e293b;
1538
- }
1539
-
1540
- :global(.recipe-row-del) {
1541
- opacity: 0;
1542
- transition: opacity 0.2s;
1543
- }
1544
-
1545
- :global(.recipe-row:hover .recipe-row-del) {
1546
- opacity: 1;
1547
- }
1548
-
1549
- :global(.recipe-row-controls) {
1550
- display: flex;
1551
- align-items: center;
1552
- gap: 1rem;
1553
- }
1554
-
1555
- :global(.recipe-range) {
1556
- flex: 1;
1557
- height: 0.5rem;
1558
- border-radius: 0.5rem;
1559
- appearance: none;
1560
- cursor: pointer;
1561
- accent-color: #4f46e5;
1562
- background: #e2e8f0;
1563
- }
1564
-
1565
- :global(.theme-dark .recipe-range) {
1566
- background: #334155;
1567
- }
1568
-
1569
- :global(.recipe-number-wrap) {
1570
- position: relative;
1571
- width: 5rem;
1572
- }
1573
-
1574
- :global(.recipe-number) {
1575
- width: 100%;
1576
- background: #f8fafc;
1577
- border: 1px solid #e2e8f0;
1578
- border-radius: 0.5rem;
1579
- padding: 0.25rem 0.5rem;
1580
- text-align: right;
1581
- font-weight: 700;
1582
- color: #334155;
1583
- font-size: 0.875rem;
1584
- box-sizing: border-box;
1585
- }
1586
-
1587
- :global(.theme-dark .recipe-number) {
1588
- background: #1e293b;
1589
- border-color: #334155;
1590
- color: #e2e8f0;
1591
- }
1592
-
1593
- .text-indigo-400 {
1594
- color: #818cf8;
1595
- }
1596
-
1597
- .text-amber-400 {
1598
- color: #fbbf24;
1599
- }
1600
-
1601
- .text-red-500 {
1602
- color: #ef4444;
1603
- }
1604
-
1605
- .text-lime-400 {
1606
- color: #a3e635;
1607
- }
1608
-
1609
- .text-emerald-400 {
1610
- color: #34d399;
1611
- }
1612
-
1613
- .text-yellow-400 {
1614
- color: #facc15;
1615
- }
1616
- </style>