@deepgram/styles 0.0.1 → 0.0.3

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.
@@ -4,6 +4,12 @@
4
4
  * A comprehensive, mobile-first CSS framework for consistent Deepgram starter UIs
5
5
  * Built with Tailwind CSS utility classes and custom @apply directives
6
6
  *
7
+ * Features:
8
+ * - Semantic color tokens via Tailwind theme
9
+ * - Mobile-first responsive components
10
+ * - BEM methodology with Tailwind utilities
11
+ * - Consistent spacing and typography
12
+ *
7
13
  * @version 3.0.0 - Tailwind Migration
8
14
  * @author Deepgram Starter UIs Team
9
15
  */
@@ -673,6 +679,7 @@ a:hover {
673
679
  }
674
680
 
675
681
  .dg-btn {
682
+ gap: 0.5rem;
676
683
  height: 3rem;
677
684
  /* 48px */
678
685
  }
@@ -694,11 +701,11 @@ a:hover {
694
701
  /* Button Modifier: Primary - Gradient border with glow effect */
695
702
 
696
703
  .dg-btn--primary {
704
+ --tw-text-opacity: 1;
705
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
697
706
  position: relative;
698
707
  border-width: 1px;
699
708
  border-color: transparent;
700
- --tw-text-opacity: 1;
701
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
702
709
  background-image: linear-gradient(rgb(0, 0, 0), rgb(0, 0, 0)), linear-gradient(90deg, rgb(0, 143, 193), rgb(0, 240, 153), rgb(0, 143, 193), rgb(0, 240, 153));
703
710
  background-origin: padding-box, border-box;
704
711
  background-clip: padding-box, border-box;
@@ -736,23 +743,24 @@ a:hover {
736
743
  }
737
744
 
738
745
  .dg-btn--secondary:hover {
746
+ --tw-text-opacity: 1;
747
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
739
748
  border-width: 1px;
740
749
  --tw-border-opacity: 1;
741
750
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
742
751
  --tw-bg-opacity: 1;
743
752
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
744
- --tw-text-opacity: 1;
745
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
746
753
  }
747
754
 
748
755
  /* Button Modifier: Ghost - Transparent with grey border */
749
756
 
750
757
  .dg-btn--ghost {
751
- border-width: 1px;
752
758
  --tw-text-opacity: 1;
753
759
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
754
- background: transparent;
755
- border-color: rgb(136, 136, 140);
760
+ border-width: 1px;
761
+ --tw-border-opacity: 1;
762
+ border-color: rgb(148 148 152 / var(--tw-border-opacity, 1));
763
+ background-color: transparent;
756
764
  }
757
765
 
758
766
  .dg-btn--ghost:hover {
@@ -770,6 +778,1744 @@ a:hover {
770
778
  box-shadow: rgba(38, 44, 52, 0.05) 0 1px 2px;
771
779
  }
772
780
 
781
+ /* Button Modifier: Danger Ghost - For destructive actions */
782
+
783
+ .dg-btn--danger-ghost {
784
+ --tw-text-opacity: 1;
785
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
786
+ border-width: 1px;
787
+ --tw-border-opacity: 1;
788
+ border-color: rgb(240 68 56 / var(--tw-border-opacity, 1));
789
+ background-color: transparent;
790
+ }
791
+
792
+ .dg-btn--danger-ghost:hover {
793
+ --tw-text-opacity: 1;
794
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
795
+ border-color: transparent;
796
+ --tw-bg-opacity: 1;
797
+ background-color: rgb(240 68 56 / var(--tw-bg-opacity, 1));
798
+ }
799
+
800
+ /* Button Modifier: Icon Only */
801
+
802
+ .dg-btn--icon-only {
803
+ width: 3rem;
804
+ height: 3rem;
805
+ padding-left: 0.5rem;
806
+ padding-right: 0.5rem;
807
+ }
808
+
809
+ .dg-btn--icon-only.dg-btn--sm {
810
+ width: 1.5rem;
811
+ height: 1.5rem;
812
+ }
813
+
814
+ /* Button Modifier: Collapse - Responsive mobile-adaptive */
815
+
816
+ .dg-btn--collapse {
817
+ display: inline-flex;
818
+ }
819
+
820
+ @media (max-width: 768px) {
821
+ .dg-btn--collapse {
822
+ width: 100%;
823
+ justify-content: center;
824
+ }
825
+ }
826
+
827
+ /* Button Icon Spacing - Prevent icons from shrinking */
828
+
829
+ .dg-btn i,
830
+ .dg-btn svg {
831
+ flex-shrink: 0;
832
+ }
833
+
834
+ /* ==========================================================================
835
+ LAYOUT COMPONENTS
836
+ ========================================================================== */
837
+
838
+ /* Section Component - Reusable content section */
839
+
840
+ .dg-section {
841
+ width: 100%;
842
+ padding: 0.75rem;
843
+ margin-bottom: 1rem;
844
+ }
845
+
846
+ @media (min-width: 640px) {
847
+ .dg-section {
848
+ padding: 1.25rem 1rem;
849
+ margin-bottom: 1.5rem;
850
+ }
851
+ }
852
+
853
+ @media (min-width: 1024px) {
854
+ .dg-section {
855
+ padding: 2rem 1.5rem;
856
+ margin-bottom: 2rem;
857
+ }
858
+ }
859
+
860
+ .dg-section--compact {
861
+ padding: 0.5rem;
862
+ margin-bottom: 0.5rem;
863
+ }
864
+
865
+ @media (min-width: 640px) {
866
+ .dg-section--compact {
867
+ padding: 0.75rem;
868
+ margin-bottom: 0.75rem;
869
+ }
870
+ }
871
+
872
+ .dg-section--spacious {
873
+ padding: 1.5rem 0.75rem;
874
+ margin-bottom: 2rem;
875
+ }
876
+
877
+ @media (min-width: 640px) {
878
+ .dg-section--spacious {
879
+ padding: 2rem 1.5rem;
880
+ margin-bottom: 2.5rem;
881
+ }
882
+ }
883
+
884
+ .dg-section--bordered {
885
+ border-radius: 0.5rem;
886
+ border-width: 1px;
887
+ --tw-border-opacity: 1;
888
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
889
+ --tw-bg-opacity: 1;
890
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
891
+ }
892
+
893
+ .dg-section--elevated {
894
+ border-radius: 0.5rem;
895
+ border-width: 1px;
896
+ --tw-border-opacity: 1;
897
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
898
+ --tw-bg-opacity: 1;
899
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
900
+ --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
901
+ --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);
902
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
903
+ }
904
+
905
+ /* Fieldset-style section with legend title */
906
+
907
+ .dg-section--fieldset {
908
+ position: relative;
909
+ border-radius: 0.5rem;
910
+ border-width: 1px;
911
+ --tw-border-opacity: 1;
912
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
913
+ padding-top: 2rem;
914
+ }
915
+
916
+ @media (min-width: 640px) {
917
+ .dg-section--fieldset {
918
+ padding-top: 2.5rem;
919
+ }
920
+ }
921
+
922
+ .dg-section--fieldset .dg-section-heading {
923
+ --tw-text-opacity: 1;
924
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
925
+ position: absolute;
926
+ --tw-bg-opacity: 1;
927
+ background-color: rgb(11 11 12 / var(--tw-bg-opacity, 1));
928
+ font-weight: 600;
929
+ text-transform: uppercase;
930
+ letter-spacing: 0.025em;
931
+ margin: 0px;
932
+ padding-left: 0.5rem;
933
+ padding-right: 0.5rem;
934
+ font-size: 1rem;
935
+ line-height: 1.5rem;
936
+ top: -0.75rem;
937
+ left: 1rem;
938
+ }
939
+
940
+ @media (min-width: 640px) {
941
+ .dg-section--fieldset .dg-section-heading {
942
+ font-size: 1.125rem;
943
+ }
944
+ }
945
+
946
+ /* Card Component */
947
+
948
+ .dg-card {
949
+ display: flex;
950
+ width: 100%;
951
+ flex-direction: column;
952
+ border-radius: 0.5rem;
953
+ border-width: 1px;
954
+ --tw-border-opacity: 1;
955
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
956
+ --tw-bg-opacity: 1;
957
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
958
+ margin-bottom: 0.75rem;
959
+ padding: 0.75rem;
960
+ --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
961
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
962
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
963
+ transition-property: box-shadow;
964
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
965
+ transition-duration: 200ms;
966
+ }
967
+
968
+ @media (min-width: 640px) {
969
+ .dg-card {
970
+ margin-bottom: 1rem;
971
+ padding: 1rem;
972
+ }
973
+ }
974
+
975
+ @media (min-width: 1024px) {
976
+ .dg-card {
977
+ padding: 1.5rem;
978
+ }
979
+ }
980
+
981
+ .dg-card:hover {
982
+ --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
983
+ --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);
984
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
985
+ }
986
+
987
+ /* Card Modifiers */
988
+
989
+ .dg-card--compact {
990
+ padding: 0.5rem;
991
+ }
992
+
993
+ @media (min-width: 640px) {
994
+ .dg-card--compact {
995
+ padding: 0.75rem;
996
+ }
997
+ }
998
+
999
+ .dg-card--spacious {
1000
+ padding: 1rem;
1001
+ }
1002
+
1003
+ @media (min-width: 640px) {
1004
+ .dg-card--spacious {
1005
+ padding: 1.5rem;
1006
+ }
1007
+ }
1008
+
1009
+ @media (min-width: 1024px) {
1010
+ .dg-card--spacious {
1011
+ padding: 2rem;
1012
+ }
1013
+ }
1014
+
1015
+ .dg-card--bordered {
1016
+ border-width: 2px;
1017
+ --tw-border-opacity: 1;
1018
+ border-color: rgb(148 148 152 / var(--tw-border-opacity, 1));
1019
+ }
1020
+
1021
+ /* Card with structured layout (image, header, body, footer) */
1022
+
1023
+ .dg-card--structured {
1024
+ justify-content: space-between;
1025
+ padding: 0px;
1026
+ }
1027
+
1028
+ /* Card Image */
1029
+
1030
+ .dg-card__image {
1031
+ width: 100%;
1032
+ flex-shrink: 0;
1033
+ overflow: hidden;
1034
+ border-radius: 0.5rem 0.5rem 0 0;
1035
+ /* Rounded top corners only */
1036
+ }
1037
+
1038
+ .dg-card__image img {
1039
+ display: block;
1040
+ height: 100%;
1041
+ width: 100%;
1042
+ -o-object-fit: cover;
1043
+ object-fit: cover;
1044
+ }
1045
+
1046
+ /* Card Image Size Modifiers */
1047
+
1048
+ .dg-card__image--small {
1049
+ height: 120px;
1050
+ }
1051
+
1052
+ .dg-card__image--medium {
1053
+ height: 160px;
1054
+ }
1055
+
1056
+ .dg-card__image--large {
1057
+ height: 240px;
1058
+ }
1059
+
1060
+ .dg-card__image--aspect-4-3 {
1061
+ aspect-ratio: 4/3;
1062
+ height: auto;
1063
+ }
1064
+
1065
+ /* Card Icon */
1066
+
1067
+ .dg-card__icon {
1068
+ display: flex;
1069
+ align-items: center;
1070
+ padding: 0.75rem;
1071
+ padding-top: 1.5rem;
1072
+ }
1073
+
1074
+ @media (min-width: 640px) {
1075
+ .dg-card__icon {
1076
+ padding: 1rem;
1077
+ padding-top: 2rem;
1078
+ }
1079
+ }
1080
+
1081
+ @media (min-width: 1024px) {
1082
+ .dg-card__icon {
1083
+ padding-left: 1.5rem;
1084
+ padding-right: 1.5rem;
1085
+ padding-bottom: 1.5rem;
1086
+ padding-top: 2.5rem;
1087
+ }
1088
+ }
1089
+
1090
+ .dg-card__icon i,
1091
+ .dg-card__icon svg {
1092
+ --tw-text-opacity: 1;
1093
+ color: rgb(19 239 149 / var(--tw-text-opacity, 1));
1094
+ font-size: 3rem;
1095
+ line-height: 1;
1096
+ }
1097
+
1098
+ /* Card Icon Alignment Modifiers */
1099
+
1100
+ .dg-card__icon--left {
1101
+ justify-content: flex-start;
1102
+ }
1103
+
1104
+ .dg-card__icon--center {
1105
+ justify-content: center;
1106
+ }
1107
+
1108
+ .dg-card__icon--right {
1109
+ justify-content: flex-end;
1110
+ }
1111
+
1112
+ /* Card Header */
1113
+
1114
+ .dg-card__header {
1115
+ display: flex;
1116
+ flex-direction: column;
1117
+ gap: 0.5rem;
1118
+ padding: 0.75rem;
1119
+ }
1120
+
1121
+ @media (min-width: 640px) {
1122
+ .dg-card__header {
1123
+ padding: 1rem;
1124
+ }
1125
+ }
1126
+
1127
+ @media (min-width: 1024px) {
1128
+ .dg-card__header {
1129
+ padding-left: 1.5rem;
1130
+ padding-right: 1.5rem;
1131
+ padding-top: 1.5rem;
1132
+ padding-bottom: 0px;
1133
+ }
1134
+ }
1135
+
1136
+ /* Card Body */
1137
+
1138
+ .dg-card__body {
1139
+ display: flex;
1140
+ flex: 1 1 0%;
1141
+ flex-direction: column;
1142
+ gap: 0.75rem;
1143
+ padding: 0.75rem;
1144
+ }
1145
+
1146
+ @media (min-width: 640px) {
1147
+ .dg-card__body {
1148
+ padding: 1rem;
1149
+ }
1150
+ }
1151
+
1152
+ @media (min-width: 1024px) {
1153
+ .dg-card__body {
1154
+ padding-left: 1.5rem;
1155
+ padding-right: 1.5rem;
1156
+ padding-bottom: 1.5rem;
1157
+ padding-top: 0px;
1158
+ }
1159
+ }
1160
+
1161
+ /* Card Footer */
1162
+
1163
+ .dg-card__footer {
1164
+ margin-top: auto;
1165
+ display: flex;
1166
+ align-items: center;
1167
+ gap: 0.75rem;
1168
+ border-top-width: 1px;
1169
+ border-color: transparent;
1170
+ padding: 0.75rem;
1171
+ }
1172
+
1173
+ @media (min-width: 640px) {
1174
+ .dg-card__footer {
1175
+ padding: 1rem;
1176
+ }
1177
+ }
1178
+
1179
+ @media (min-width: 1024px) {
1180
+ .dg-card__footer {
1181
+ padding: 1.5rem;
1182
+ }
1183
+ }
1184
+
1185
+ /* Card Footer with Border */
1186
+
1187
+ .dg-card__footer--bordered {
1188
+ --tw-border-opacity: 1;
1189
+ border-top-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
1190
+ }
1191
+
1192
+ /* Code Block Component */
1193
+
1194
+ .dg-code-block {
1195
+ width: 100%;
1196
+ overflow: auto;
1197
+ border-radius: 0.5rem;
1198
+ border-width: 1px;
1199
+ --tw-border-opacity: 1;
1200
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
1201
+ --tw-bg-opacity: 1;
1202
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
1203
+ margin-top: 0.75rem;
1204
+ margin-bottom: 0.75rem;
1205
+ max-height: 200px;
1206
+ padding: 0.5rem;
1207
+ -webkit-overflow-scrolling: touch;
1208
+ }
1209
+
1210
+ @media (min-width: 640px) {
1211
+ .dg-code-block {
1212
+ margin-top: 1rem;
1213
+ margin-bottom: 1rem;
1214
+ max-height: 250px;
1215
+ padding: 0.75rem;
1216
+ }
1217
+ }
1218
+
1219
+ @media (min-width: 1024px) {
1220
+ .dg-code-block {
1221
+ max-height: 300px;
1222
+ }
1223
+ }
1224
+
1225
+ .dg-code-block pre {
1226
+ --tw-text-opacity: 1;
1227
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
1228
+ margin: 0px;
1229
+ white-space: pre-wrap;
1230
+ overflow-wrap: break-word;
1231
+ padding: 0px;
1232
+ font-family: Fira Code, Monaco, Consolas, Courier New, monospace;
1233
+ font-size: 0.75rem;
1234
+ line-height: 1rem;
1235
+ line-height: 1.3;
1236
+ }
1237
+
1238
+ @media (min-width: 640px) {
1239
+ .dg-code-block pre {
1240
+ font-size: 0.875rem;
1241
+ line-height: 1.25rem;
1242
+ }
1243
+ }
1244
+
1245
+ .dg-code-block--compact {
1246
+ max-height: 120px;
1247
+ padding: 0.25rem;
1248
+ }
1249
+
1250
+ @media (min-width: 640px) {
1251
+ .dg-code-block--compact {
1252
+ max-height: 150px;
1253
+ padding: 0.5rem;
1254
+ }
1255
+ }
1256
+
1257
+ .dg-code-block--tall {
1258
+ max-height: 300px;
1259
+ }
1260
+
1261
+ @media (min-width: 640px) {
1262
+ .dg-code-block--tall {
1263
+ max-height: 400px;
1264
+ }
1265
+ }
1266
+
1267
+ @media (min-width: 1024px) {
1268
+ .dg-code-block--tall {
1269
+ max-height: 500px;
1270
+ }
1271
+ }
1272
+
1273
+ .dg-code-block--no-scroll {
1274
+ max-height: none;
1275
+ overflow: visible;
1276
+ }
1277
+
1278
+ /* ==========================================================================
1279
+ TYPOGRAPHY COMPONENTS
1280
+ ========================================================================== */
1281
+
1282
+ /* Hero Title */
1283
+
1284
+ .dg-hero-title {
1285
+ margin-bottom: 1.5rem;
1286
+ text-align: center;
1287
+ font-family: Noto Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1288
+ font-size: 3rem;
1289
+ font-weight: 700;
1290
+ line-height: 1.25;
1291
+ background-image: linear-gradient(to right, var(--tw-gradient-stops));
1292
+ --tw-gradient-from: #149afb var(--tw-gradient-from-position);
1293
+ --tw-gradient-to: rgb(20 154 251 / 0) var(--tw-gradient-to-position);
1294
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
1295
+ --tw-gradient-to: #13ef95 var(--tw-gradient-to-position);
1296
+ -webkit-background-clip: text;
1297
+ background-clip: text;
1298
+ -webkit-text-fill-color: transparent;
1299
+ letter-spacing: -0.02em;
1300
+ font-feature-settings: "liga" 0, "dlig" 0, "hlig" 0, "ordn" 0, "ss09", "kern";
1301
+ font-kerning: normal;
1302
+ }
1303
+
1304
+ @media (max-width: 1024px) {
1305
+ .dg-hero-title {
1306
+ font-size: 2.25rem;
1307
+ line-height: 2.5rem;
1308
+ }
1309
+ }
1310
+
1311
+ @media (max-width: 768px) {
1312
+ .dg-hero-title {
1313
+ font-size: 1.875rem;
1314
+ line-height: 2.25rem;
1315
+ }
1316
+ }
1317
+
1318
+ @media (max-width: 640px) {
1319
+ .dg-hero-title {
1320
+ font-size: 1.5rem;
1321
+ line-height: 2rem;
1322
+ }
1323
+ }
1324
+
1325
+ /* Hero Section Container */
1326
+
1327
+ .dg-hero {
1328
+ width: 100%;
1329
+ padding-top: 4rem;
1330
+ padding-bottom: 4rem;
1331
+ padding-left: 1rem;
1332
+ padding-right: 1rem;
1333
+ text-align: center;
1334
+ }
1335
+
1336
+ @media (max-width: 768px) {
1337
+ .dg-hero {
1338
+ padding-top: 3rem;
1339
+ padding-bottom: 3rem;
1340
+ padding-left: 1rem;
1341
+ padding-right: 1rem;
1342
+ }
1343
+ }
1344
+
1345
+ @media (max-width: 640px) {
1346
+ .dg-hero {
1347
+ padding-top: 2rem;
1348
+ padding-bottom: 2rem;
1349
+ padding-left: 1rem;
1350
+ padding-right: 1rem;
1351
+ }
1352
+ }
1353
+
1354
+ /* Hero Content Container */
1355
+
1356
+ .dg-hero__content {
1357
+ margin-left: auto;
1358
+ margin-right: auto;
1359
+ display: flex;
1360
+ max-width: 850px;
1361
+ flex-direction: column;
1362
+ gap: 1.5rem;
1363
+ }
1364
+
1365
+ @media (max-width: 768px) {
1366
+ .dg-hero__content {
1367
+ gap: 1.25rem;
1368
+ }
1369
+ }
1370
+
1371
+ /* Hero Announcement Banner */
1372
+
1373
+ .dg-hero__announcement {
1374
+ display: inline-flex;
1375
+ align-items: center;
1376
+ justify-content: center;
1377
+ border-radius: 9999px;
1378
+ border-width: 1px;
1379
+ margin-left: auto;
1380
+ margin-right: auto;
1381
+ margin-bottom: 0.5rem;
1382
+ border-color: rgb(148 148 152 / 0.3);
1383
+ background-color: rgba(0, 0, 0, 0.5);
1384
+ padding-top: 0.5rem;
1385
+ padding-bottom: 0.5rem;
1386
+ padding-left: 1.25rem;
1387
+ padding-right: 1.25rem;
1388
+ width: -moz-fit-content;
1389
+ width: fit-content;
1390
+ cursor: pointer;
1391
+ gap: 0.75rem;
1392
+ text-decoration-line: none;
1393
+ transition-property: all;
1394
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1395
+ transition-duration: 200ms;
1396
+ }
1397
+
1398
+ .dg-hero__announcement:hover {
1399
+ --tw-translate-y: -0.125rem;
1400
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1401
+ --tw-border-opacity: 1;
1402
+ border-color: rgb(19 239 149 / var(--tw-border-opacity, 1));
1403
+ background-color: rgba(19, 239, 149, 0.1);
1404
+ box-shadow: 0 4px 12px rgba(19, 239, 149, 0.15);
1405
+ }
1406
+
1407
+ .dg-hero__announcement-text {
1408
+ --tw-text-opacity: 1;
1409
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1410
+ white-space: nowrap;
1411
+ font-size: 0.875rem;
1412
+ line-height: 1.25rem;
1413
+ font-weight: 400;
1414
+ }
1415
+
1416
+ @media (max-width: 640px) {
1417
+ .dg-hero__announcement-text {
1418
+ white-space: normal;
1419
+ font-size: 0.75rem;
1420
+ line-height: 1rem;
1421
+ }
1422
+ }
1423
+
1424
+ .dg-hero__announcement-cta {
1425
+ --tw-text-opacity: 1;
1426
+ color: rgb(20 154 251 / var(--tw-text-opacity, 1));
1427
+ display: inline-flex;
1428
+ align-items: center;
1429
+ gap: 0.5rem;
1430
+ font-size: 0.875rem;
1431
+ line-height: 1.25rem;
1432
+ font-weight: 600;
1433
+ transition-property: gap;
1434
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1435
+ transition-duration: 200ms;
1436
+ }
1437
+
1438
+ .dg-hero__announcement:hover .dg-hero__announcement-cta {
1439
+ gap: 0.75rem;
1440
+ }
1441
+
1442
+ @media (max-width: 640px) {
1443
+ .dg-hero__announcement-cta {
1444
+ font-size: 0.75rem;
1445
+ line-height: 1rem;
1446
+ }
1447
+ }
1448
+
1449
+ /* Hero Body Text */
1450
+
1451
+ .dg-hero__body {
1452
+ --tw-text-opacity: 1;
1453
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
1454
+ margin-left: auto;
1455
+ margin-right: auto;
1456
+ max-width: 850px;
1457
+ text-align: center;
1458
+ font-size: 1.125rem;
1459
+ font-weight: 400;
1460
+ line-height: 1.75rem;
1461
+ }
1462
+
1463
+ @media (max-width: 768px) {
1464
+ .dg-hero__body {
1465
+ font-size: 1rem;
1466
+ line-height: 1.5rem;
1467
+ line-height: 1.625;
1468
+ }
1469
+ }
1470
+
1471
+ @media (max-width: 640px) {
1472
+ .dg-hero__body {
1473
+ font-size: 15px;
1474
+ line-height: 1.5;
1475
+ }
1476
+ }
1477
+
1478
+ /* Hero Actions */
1479
+
1480
+ .dg-hero__actions {
1481
+ margin-top: 0.5rem;
1482
+ display: flex;
1483
+ flex-wrap: wrap;
1484
+ align-items: center;
1485
+ justify-content: center;
1486
+ gap: 1rem;
1487
+ }
1488
+
1489
+ @media (max-width: 640px) {
1490
+ .dg-hero__actions {
1491
+ width: 100%;
1492
+ flex-direction: column;
1493
+ }
1494
+
1495
+ .dg-hero__actions > * {
1496
+ width: 100%;
1497
+ }
1498
+ }
1499
+
1500
+ /* Section Heading */
1501
+
1502
+ .dg-section-heading {
1503
+ --tw-text-opacity: 1;
1504
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1505
+ margin-bottom: 1.5rem;
1506
+ font-family: Noto Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1507
+ font-size: 1.5rem;
1508
+ line-height: 2rem;
1509
+ font-weight: 600;
1510
+ display: flex;
1511
+ flex-wrap: wrap;
1512
+ align-items: baseline;
1513
+ gap: 0.5rem;
1514
+ }
1515
+
1516
+ @media (max-width: 640px) {
1517
+ .dg-section-heading {
1518
+ margin-bottom: 0.75rem;
1519
+ gap: 0.375rem;
1520
+ font-size: 1.25rem;
1521
+ line-height: 1.75rem;
1522
+ }
1523
+ }
1524
+
1525
+ /* Small text within section heading */
1526
+
1527
+ .dg-section-heading small {
1528
+ --tw-text-opacity: 1;
1529
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1530
+ font-size: 1rem;
1531
+ line-height: 1.5rem;
1532
+ font-weight: 400;
1533
+ }
1534
+
1535
+ @media (max-width: 640px) {
1536
+ .dg-section-heading small {
1537
+ font-size: 0.875rem;
1538
+ line-height: 1.25rem;
1539
+ }
1540
+ }
1541
+
1542
+ /* Page Heading */
1543
+
1544
+ .dg-page-heading {
1545
+ margin-bottom: 2rem;
1546
+ }
1547
+
1548
+ @media (max-width: 640px) {
1549
+ .dg-page-heading {
1550
+ margin-bottom: 1.5rem;
1551
+ }
1552
+ }
1553
+
1554
+ .dg-page-heading__title {
1555
+ --tw-text-opacity: 1;
1556
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1557
+ margin-bottom: 0.5rem;
1558
+ font-family: Noto Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1559
+ font-size: 2.25rem;
1560
+ line-height: 2.5rem;
1561
+ font-weight: 600;
1562
+ line-height: 1.25;
1563
+ }
1564
+
1565
+ @media (max-width: 768px) {
1566
+ .dg-page-heading__title {
1567
+ font-size: 1.875rem;
1568
+ line-height: 2.25rem;
1569
+ }
1570
+ }
1571
+
1572
+ @media (max-width: 640px) {
1573
+ .dg-page-heading__title {
1574
+ font-size: 1.5rem;
1575
+ line-height: 2rem;
1576
+ }
1577
+ }
1578
+
1579
+ .dg-page-heading__description {
1580
+ --tw-text-opacity: 1;
1581
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1582
+ margin: 0px;
1583
+ max-width: 65ch;
1584
+ font-size: 1.125rem;
1585
+ line-height: 1.75rem;
1586
+ line-height: 1.625;
1587
+ }
1588
+
1589
+ @media (max-width: 768px) {
1590
+ .dg-page-heading__description {
1591
+ font-size: 1rem;
1592
+ line-height: 1.5rem;
1593
+ }
1594
+ }
1595
+
1596
+ @media (max-width: 640px) {
1597
+ .dg-page-heading__description {
1598
+ font-size: 15px;
1599
+ }
1600
+ }
1601
+
1602
+ /* Card Heading */
1603
+
1604
+ .dg-card-heading {
1605
+ --tw-text-opacity: 1;
1606
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1607
+ margin-bottom: 0.75rem;
1608
+ font-family: Noto Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1609
+ font-size: 1.25rem;
1610
+ line-height: 1.75rem;
1611
+ font-weight: 500;
1612
+ display: flex;
1613
+ flex-wrap: wrap;
1614
+ align-items: baseline;
1615
+ gap: 0.375rem;
1616
+ }
1617
+
1618
+ /* Small text within card heading */
1619
+
1620
+ .dg-card-heading small {
1621
+ --tw-text-opacity: 1;
1622
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1623
+ font-size: 0.875rem;
1624
+ line-height: 1.25rem;
1625
+ font-weight: 400;
1626
+ }
1627
+
1628
+ /* Item Title */
1629
+
1630
+ .dg-item-title {
1631
+ --tw-text-opacity: 1;
1632
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1633
+ margin-bottom: 0.25rem;
1634
+ font-family: Noto Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1635
+ font-size: 1rem;
1636
+ line-height: 1.5rem;
1637
+ font-weight: 500;
1638
+ display: flex;
1639
+ flex-wrap: wrap;
1640
+ align-items: baseline;
1641
+ gap: 0.25rem;
1642
+ }
1643
+
1644
+ /* Small text within item title */
1645
+
1646
+ .dg-item-title small {
1647
+ --tw-text-opacity: 1;
1648
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1649
+ font-size: 0.75rem;
1650
+ line-height: 1rem;
1651
+ font-weight: 400;
1652
+ }
1653
+
1654
+ /* Prose Text */
1655
+
1656
+ .dg-prose {
1657
+ --tw-text-opacity: 1;
1658
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
1659
+ margin-bottom: 0.75rem;
1660
+ width: 100%;
1661
+ font-size: 0.875rem;
1662
+ line-height: 1.25rem;
1663
+ line-height: 1.375;
1664
+ }
1665
+
1666
+ @media (min-width: 640px) {
1667
+ .dg-prose {
1668
+ margin-bottom: 1rem;
1669
+ max-width: 65ch;
1670
+ font-size: 1rem;
1671
+ line-height: 1.5rem;
1672
+ }
1673
+ }
1674
+
1675
+ .dg-prose.dg-prose--block {
1676
+ width: 100%;
1677
+ max-width: none;
1678
+ }
1679
+
1680
+ .dg-prose--large {
1681
+ font-size: 1rem;
1682
+ line-height: 1.5rem;
1683
+ }
1684
+
1685
+ @media (min-width: 640px) {
1686
+ .dg-prose--large {
1687
+ font-size: 1.125rem;
1688
+ line-height: 1.75rem;
1689
+ }
1690
+ }
1691
+
1692
+ @media (min-width: 1024px) {
1693
+ .dg-prose--large {
1694
+ font-size: 1.25rem;
1695
+ line-height: 1.75rem;
1696
+ }
1697
+ }
1698
+
1699
+ .dg-prose--small {
1700
+ --tw-text-opacity: 1;
1701
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1702
+ font-size: 0.75rem;
1703
+ line-height: 1rem;
1704
+ }
1705
+
1706
+ @media (min-width: 640px) {
1707
+ .dg-prose--small {
1708
+ font-size: 0.875rem;
1709
+ line-height: 1.25rem;
1710
+ }
1711
+ }
1712
+
1713
+ /* ==========================================================================
1714
+ FORM COMPONENTS
1715
+ ========================================================================== */
1716
+
1717
+ /* Form Input Base Styles */
1718
+
1719
+ .dg-input {
1720
+ width: 100%;
1721
+ border-radius: 0.25rem;
1722
+ border-width: 1px;
1723
+ --tw-border-opacity: 1;
1724
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
1725
+ --tw-bg-opacity: 1;
1726
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
1727
+ padding-left: 1rem;
1728
+ padding-right: 1rem;
1729
+ padding-top: 0.75rem;
1730
+ padding-bottom: 0.75rem;
1731
+ --tw-text-opacity: 1;
1732
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1733
+ font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1734
+ font-size: 0.875rem;
1735
+ line-height: 1.25rem;
1736
+ outline: 2px solid transparent;
1737
+ outline-offset: 2px;
1738
+ transition-property: all;
1739
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1740
+ transition-duration: 300ms;
1741
+ --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1742
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1743
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1744
+ height: 44px;
1745
+ }
1746
+
1747
+ .dg-input::-moz-placeholder {
1748
+ --tw-text-opacity: 1;
1749
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1750
+ }
1751
+
1752
+ .dg-input::placeholder {
1753
+ --tw-text-opacity: 1;
1754
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1755
+ }
1756
+
1757
+ .dg-input:focus {
1758
+ --tw-border-opacity: 1;
1759
+ border-color: rgb(19 239 149 / var(--tw-border-opacity, 1));
1760
+ box-shadow: 0 0 0 1px #13ef95;
1761
+ }
1762
+
1763
+ .dg-input:disabled {
1764
+ cursor: not-allowed;
1765
+ opacity: 0.5;
1766
+ }
1767
+
1768
+ .dg-input--inline {
1769
+ min-width: 200px;
1770
+ }
1771
+
1772
+ .dg-input--full {
1773
+ max-width: none;
1774
+ }
1775
+
1776
+ /* Textarea */
1777
+
1778
+ .dg-textarea {
1779
+ width: 100%;
1780
+ border-radius: 0.25rem;
1781
+ border-width: 1px;
1782
+ --tw-border-opacity: 1;
1783
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
1784
+ --tw-bg-opacity: 1;
1785
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
1786
+ padding-left: 1rem;
1787
+ padding-right: 1rem;
1788
+ padding-top: 0.75rem;
1789
+ padding-bottom: 0.75rem;
1790
+ --tw-text-opacity: 1;
1791
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1792
+ font-family: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
1793
+ font-size: 0.875rem;
1794
+ line-height: 1.25rem;
1795
+ outline: 2px solid transparent;
1796
+ outline-offset: 2px;
1797
+ transition-property: all;
1798
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1799
+ transition-duration: 300ms;
1800
+ --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1801
+ --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
1802
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1803
+ height: 44px;
1804
+ }
1805
+
1806
+ .dg-textarea::-moz-placeholder {
1807
+ --tw-text-opacity: 1;
1808
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1809
+ }
1810
+
1811
+ .dg-textarea::placeholder {
1812
+ --tw-text-opacity: 1;
1813
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1814
+ }
1815
+
1816
+ .dg-textarea:focus {
1817
+ --tw-border-opacity: 1;
1818
+ border-color: rgb(19 239 149 / var(--tw-border-opacity, 1));
1819
+ box-shadow: 0 0 0 1px #13ef95;
1820
+ }
1821
+
1822
+ .dg-textarea:disabled {
1823
+ cursor: not-allowed;
1824
+ opacity: 0.5;
1825
+ }
1826
+
1827
+ .dg-form-field--error .dg-textarea {
1828
+ --tw-border-opacity: 1;
1829
+ border-color: rgb(240 68 56 / var(--tw-border-opacity, 1));
1830
+ }
1831
+
1832
+ .dg-form-field--success .dg-textarea {
1833
+ --tw-border-opacity: 1;
1834
+ border-color: rgb(18 183 106 / var(--tw-border-opacity, 1));
1835
+ }
1836
+
1837
+ .dg-textarea {
1838
+ min-height: 100px;
1839
+ resize: vertical;
1840
+ height: auto;
1841
+ }
1842
+
1843
+ /* Checkbox */
1844
+
1845
+ .dg-checkbox {
1846
+ height: 1.25rem;
1847
+ width: 1.25rem;
1848
+ -webkit-appearance: none;
1849
+ -moz-appearance: none;
1850
+ appearance: none;
1851
+ border-radius: 0.25rem;
1852
+ border-width: 1px;
1853
+ --tw-border-opacity: 1;
1854
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
1855
+ --tw-bg-opacity: 1;
1856
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
1857
+ cursor: pointer;
1858
+ transition-property: all;
1859
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1860
+ transition-duration: 200ms;
1861
+ flex-shrink: 0;
1862
+ position: relative;
1863
+ }
1864
+
1865
+ .dg-checkbox:checked {
1866
+ --tw-border-opacity: 1;
1867
+ border-color: rgb(19 239 149 / var(--tw-border-opacity, 1));
1868
+ --tw-bg-opacity: 1;
1869
+ background-color: rgb(19 239 149 / var(--tw-bg-opacity, 1));
1870
+ }
1871
+
1872
+ .dg-checkbox:checked::after {
1873
+ content: "";
1874
+ position: absolute;
1875
+ left: 6px;
1876
+ top: 2px;
1877
+ width: 5px;
1878
+ height: 10px;
1879
+ border: solid black;
1880
+ border-width: 0 2px 2px 0;
1881
+ transform: rotate(45deg);
1882
+ }
1883
+
1884
+ .dg-checkbox:focus {
1885
+ outline: 2px solid transparent;
1886
+ outline-offset: 2px;
1887
+ box-shadow: 0 0 0 2px rgb(19 239 149 / 50);
1888
+ }
1889
+
1890
+ /* Checkbox Label */
1891
+
1892
+ .dg-checkbox-label {
1893
+ --tw-text-opacity: 1;
1894
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
1895
+ display: flex;
1896
+ cursor: pointer;
1897
+ align-items: flex-start;
1898
+ gap: 0.5rem;
1899
+ font-size: 0.875rem;
1900
+ line-height: 1.25rem;
1901
+ }
1902
+
1903
+ .dg-checkbox-label:hover .dg-checkbox {
1904
+ --tw-border-opacity: 1;
1905
+ border-color: rgb(148 148 152 / var(--tw-border-opacity, 1));
1906
+ }
1907
+
1908
+ /* Checkbox Description Container */
1909
+
1910
+ .dg-checkbox-description {
1911
+ display: flex;
1912
+ flex-direction: column;
1913
+ gap: 0.5rem;
1914
+ }
1915
+
1916
+ /* Checkbox Group Container */
1917
+
1918
+ .dg-checkbox-group {
1919
+ display: flex;
1920
+ flex-direction: column;
1921
+ gap: 0.75rem;
1922
+ }
1923
+
1924
+ /* Form Field */
1925
+
1926
+ .dg-form-field {
1927
+ margin-bottom: 1rem;
1928
+ display: flex;
1929
+ width: 100%;
1930
+ flex-direction: column;
1931
+ gap: 0.75rem;
1932
+ }
1933
+
1934
+ @media (min-width: 640px) {
1935
+ .dg-form-field {
1936
+ max-width: 28rem;
1937
+ }
1938
+ }
1939
+
1940
+ .dg-form-field--full {
1941
+ max-width: none;
1942
+ }
1943
+
1944
+ /* Form Field Error State */
1945
+
1946
+ .dg-form-field--error .dg-input,
1947
+ .dg-form-field--error .dg-textarea {
1948
+ --tw-border-opacity: 1;
1949
+ border-color: rgb(240 68 56 / var(--tw-border-opacity, 1));
1950
+ }
1951
+
1952
+ .dg-form-field--error .dg-form-helper {
1953
+ --tw-text-opacity: 1;
1954
+ color: rgb(240 68 56 / var(--tw-text-opacity, 1));
1955
+ }
1956
+
1957
+ /* Form Field Success State */
1958
+
1959
+ .dg-form-field--success .dg-input,
1960
+ .dg-form-field--success .dg-textarea {
1961
+ --tw-border-opacity: 1;
1962
+ border-color: rgb(18 183 106 / var(--tw-border-opacity, 1));
1963
+ }
1964
+
1965
+ .dg-form-field--success .dg-form-helper {
1966
+ --tw-text-opacity: 1;
1967
+ color: rgb(18 183 106 / var(--tw-text-opacity, 1));
1968
+ }
1969
+
1970
+ /* Form Label */
1971
+
1972
+ .dg-form-label {
1973
+ --tw-text-opacity: 1;
1974
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1975
+ font-size: 0.875rem;
1976
+ line-height: 1.25rem;
1977
+ font-weight: 500;
1978
+ }
1979
+
1980
+ /* Form Error Message (deprecated - use dg-form-helper with dg-form-field--error) */
1981
+
1982
+ .dg-form-error {
1983
+ --tw-text-opacity: 1;
1984
+ color: rgb(240 68 56 / var(--tw-text-opacity, 1));
1985
+ display: block;
1986
+ font-size: 0.75rem;
1987
+ line-height: 1rem;
1988
+ margin: 0;
1989
+ }
1990
+
1991
+ /* Form Helper Text */
1992
+
1993
+ .dg-form-helper {
1994
+ --tw-text-opacity: 1;
1995
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
1996
+ display: block;
1997
+ font-size: 0.75rem;
1998
+ line-height: 1rem;
1999
+ margin: 0;
2000
+ }
2001
+
2002
+ /* File Upload / Drag & Drop Zone */
2003
+
2004
+ .dg-drag-drop-zone {
2005
+ position: relative;
2006
+ border-radius: 0.5rem;
2007
+ border-width: 2px;
2008
+ border-style: dashed;
2009
+ --tw-border-opacity: 1;
2010
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
2011
+ --tw-bg-opacity: 1;
2012
+ background-color: rgb(26 26 31 / var(--tw-bg-opacity, 1));
2013
+ transition-property: all;
2014
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2015
+ transition-duration: 200ms;
2016
+ display: flex;
2017
+ flex-direction: column;
2018
+ align-items: center;
2019
+ justify-content: center;
2020
+ gap: 0.75rem;
2021
+ cursor: pointer;
2022
+ padding: 3rem 2rem;
2023
+ min-height: 200px;
2024
+ }
2025
+
2026
+ .dg-drag-drop-zone:hover {
2027
+ --tw-border-opacity: 1;
2028
+ border-color: rgb(148 148 152 / var(--tw-border-opacity, 1));
2029
+ --tw-bg-opacity: 1;
2030
+ background-color: rgb(11 11 12 / var(--tw-bg-opacity, 1));
2031
+ }
2032
+
2033
+ .dg-drag-drop-zone.drag-over {
2034
+ --tw-border-opacity: 1;
2035
+ border-color: rgb(19 239 149 / var(--tw-border-opacity, 1));
2036
+ background-color: rgba(0, 0, 0, 0.5);
2037
+ }
2038
+
2039
+ .dg-drag-drop-zone__input {
2040
+ position: absolute;
2041
+ inset: 0px;
2042
+ height: 100%;
2043
+ width: 100%;
2044
+ cursor: pointer;
2045
+ opacity: 0;
2046
+ }
2047
+
2048
+ .dg-drag-drop-zone__icon {
2049
+ --tw-text-opacity: 1;
2050
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
2051
+ font-size: 3rem;
2052
+ line-height: 1;
2053
+ }
2054
+
2055
+ .dg-drag-drop-zone:hover .dg-drag-drop-zone__icon {
2056
+ --tw-text-opacity: 1;
2057
+ color: rgb(19 239 149 / var(--tw-text-opacity, 1));
2058
+ }
2059
+
2060
+ .dg-drag-drop-zone__text {
2061
+ --tw-text-opacity: 1;
2062
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2063
+ font-size: 1rem;
2064
+ line-height: 1.5rem;
2065
+ font-weight: 500;
2066
+ }
2067
+
2068
+ .dg-drag-drop-zone__hint {
2069
+ --tw-text-opacity: 1;
2070
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
2071
+ font-size: 0.875rem;
2072
+ line-height: 1.25rem;
2073
+ }
2074
+
2075
+ /* ==========================================================================
2076
+ STATUS & FEEDBACK COMPONENTS
2077
+ ========================================================================== */
2078
+
2079
+ /* Status Banner */
2080
+
2081
+ .dg-status {
2082
+ --tw-text-opacity: 1;
2083
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
2084
+ margin-top: 0.5rem;
2085
+ margin-bottom: 0.5rem;
2086
+ width: 100%;
2087
+ padding-top: 0.25rem;
2088
+ padding-bottom: 0.25rem;
2089
+ font-size: 0.875rem;
2090
+ line-height: 1.25rem;
2091
+ font-style: italic;
2092
+ line-height: 1.375;
2093
+ }
2094
+
2095
+ @media (min-width: 640px) {
2096
+ .dg-status {
2097
+ margin-top: 0.75rem;
2098
+ margin-bottom: 0.75rem;
2099
+ padding-top: 0.5rem;
2100
+ padding-bottom: 0.5rem;
2101
+ font-size: 1rem;
2102
+ line-height: 1.5rem;
2103
+ }
2104
+ }
2105
+
2106
+ .dg-status--info {
2107
+ --tw-text-opacity: 1;
2108
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
2109
+ }
2110
+
2111
+ .dg-status--success {
2112
+ --tw-text-opacity: 1;
2113
+ color: rgb(18 183 106 / var(--tw-text-opacity, 1));
2114
+ }
2115
+
2116
+ .dg-status--warning {
2117
+ --tw-text-opacity: 1;
2118
+ color: rgb(254 200 75 / var(--tw-text-opacity, 1));
2119
+ }
2120
+
2121
+ .dg-status--error {
2122
+ --tw-text-opacity: 1;
2123
+ color: rgb(240 68 56 / var(--tw-text-opacity, 1));
2124
+ }
2125
+
2126
+ .dg-status--primary {
2127
+ --tw-text-opacity: 1;
2128
+ color: rgb(19 239 149 / var(--tw-text-opacity, 1));
2129
+ }
2130
+
2131
+ .dg-status--secondary {
2132
+ --tw-text-opacity: 1;
2133
+ color: rgb(20 154 251 / var(--tw-text-opacity, 1));
2134
+ }
2135
+
2136
+ .dg-status--with-icon {
2137
+ display: flex;
2138
+ align-items: flex-start;
2139
+ gap: 0.25rem;
2140
+ }
2141
+
2142
+ .dg-status--with-icon .dg-status__icon {
2143
+ margin-top: 0.1em;
2144
+ flex-shrink: 0;
2145
+ font-size: 1em;
2146
+ }
2147
+
2148
+ .dg-status--compact {
2149
+ margin-top: 0.25rem;
2150
+ margin-bottom: 0.25rem;
2151
+ padding-top: 0.125rem;
2152
+ padding-bottom: 0.125rem;
2153
+ font-size: 0.75rem;
2154
+ line-height: 1rem;
2155
+ }
2156
+
2157
+ @media (min-width: 640px) {
2158
+ .dg-status--compact {
2159
+ font-size: 0.875rem;
2160
+ line-height: 1.25rem;
2161
+ }
2162
+ }
2163
+
2164
+ /* Spinner */
2165
+
2166
+ .dg-spinner {
2167
+ width: 2.5rem;
2168
+ height: 2.5rem;
2169
+ border-radius: 9999px;
2170
+ border-width: 3px;
2171
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
2172
+ --tw-border-opacity: 1;
2173
+ border-top-color: rgb(19 239 149 / var(--tw-border-opacity, 1));
2174
+ margin-left: auto;
2175
+ margin-right: auto;
2176
+ margin-bottom: 0.75rem;
2177
+ }
2178
+
2179
+ @keyframes spin {
2180
+ to {
2181
+ transform: rotate(360deg);
2182
+ }
2183
+ }
2184
+
2185
+ .dg-spinner {
2186
+ animation: spin 1s linear infinite;
2187
+ }
2188
+
2189
+ @keyframes dg-spin {
2190
+ 0% {
2191
+ transform: rotate(0deg);
2192
+ }
2193
+
2194
+ 100% {
2195
+ transform: rotate(360deg);
2196
+ }
2197
+ }
2198
+
2199
+ /* Processing Title */
2200
+
2201
+ .dg-processing-title {
2202
+ --tw-text-opacity: 1;
2203
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2204
+ margin-bottom: 0.25rem;
2205
+ font-family: Noto Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
2206
+ font-size: 1.25rem;
2207
+ line-height: 1.75rem;
2208
+ font-weight: 500;
2209
+ }
2210
+
2211
+ /* Modal Overlay */
2212
+
2213
+ .dg-modal-overlay {
2214
+ position: fixed;
2215
+ inset: 0px;
2216
+ z-index: 50;
2217
+ display: none;
2218
+ align-items: center;
2219
+ justify-content: center;
2220
+ background-color: rgb(0 0 0 / 0.8);
2221
+ }
2222
+
2223
+ .dg-modal-overlay.visible,
2224
+ .dg-modal-overlay--visible {
2225
+ display: flex;
2226
+ }
2227
+
2228
+ .dg-modal-content {
2229
+ margin: 0.75rem;
2230
+ max-width: 400px;
2231
+ text-align: center;
2232
+ }
2233
+
2234
+ /* ==========================================================================
2235
+ UTILITY COMPONENTS
2236
+ ========================================================================== */
2237
+
2238
+ /* Constrained Width Container */
2239
+
2240
+ .dg-constrain-width {
2241
+ width: 100%;
2242
+ }
2243
+
2244
+ @media (min-width: 640px) {
2245
+ .dg-constrain-width {
2246
+ margin-left: auto;
2247
+ margin-right: auto;
2248
+ max-width: 960px;
2249
+ }
2250
+ }
2251
+
2252
+ /* Center Horizontally - Complements dg-constrain-width */
2253
+
2254
+ .dg-center-h {
2255
+ margin-left: auto;
2256
+ margin-right: auto;
2257
+ }
2258
+
2259
+ /* Responsive Grid */
2260
+
2261
+ .dg-grid-mobile-stack {
2262
+ display: flex;
2263
+ flex-direction: column;
2264
+ gap: 1rem;
2265
+ }
2266
+
2267
+ @media (min-width: 640px) {
2268
+ .dg-grid-mobile-stack {
2269
+ flex-direction: row;
2270
+ gap: 1rem;
2271
+ }
2272
+ }
2273
+
2274
+ .dg-grid-mobile-stack > * {
2275
+ flex: 1 1 0%;
2276
+ }
2277
+
2278
+ /* Action Group */
2279
+
2280
+ .dg-action-group {
2281
+ display: flex;
2282
+ flex-wrap: wrap;
2283
+ justify-content: center;
2284
+ gap: 1rem;
2285
+ }
2286
+
2287
+ @media (max-width: 640px) {
2288
+ .dg-action-group {
2289
+ flex-direction: column;
2290
+ align-items: stretch;
2291
+ }
2292
+
2293
+ .dg-action-group .dg-btn {
2294
+ width: 100%;
2295
+ }
2296
+ }
2297
+
2298
+ /* Footer */
2299
+
2300
+ .dg-footer {
2301
+ margin-top: 4rem;
2302
+ border-top-width: 1px;
2303
+ --tw-border-opacity: 1;
2304
+ border-color: rgb(78 78 82 / var(--tw-border-opacity, 1));
2305
+ text-align: center;
2306
+ }
2307
+
2308
+ /* Text Center Utility */
2309
+
2310
+ .dg-text-center {
2311
+ text-align: center;
2312
+ }
2313
+
2314
+ /* Text Color Utilities */
2315
+
2316
+ .dg-text-danger {
2317
+ --tw-text-opacity: 1;
2318
+ color: rgb(240 68 56 / var(--tw-text-opacity, 1));
2319
+ }
2320
+
2321
+ .dg-text-success {
2322
+ --tw-text-opacity: 1;
2323
+ color: rgb(18 183 106 / var(--tw-text-opacity, 1));
2324
+ }
2325
+
2326
+ .dg-text-warning {
2327
+ --tw-text-opacity: 1;
2328
+ color: rgb(254 200 75 / var(--tw-text-opacity, 1));
2329
+ }
2330
+
2331
+ .dg-text-primary {
2332
+ --tw-text-opacity: 1;
2333
+ color: rgb(19 239 149 / var(--tw-text-opacity, 1));
2334
+ }
2335
+
2336
+ .dg-text-secondary {
2337
+ --tw-text-opacity: 1;
2338
+ color: rgb(20 154 251 / var(--tw-text-opacity, 1));
2339
+ }
2340
+
2341
+ .dg-text-muted {
2342
+ --tw-text-opacity: 1;
2343
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
2344
+ }
2345
+
2346
+ .dg-text-fog {
2347
+ --tw-text-opacity: 1;
2348
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
2349
+ }
2350
+
2351
+ .dg-text-white {
2352
+ --tw-text-opacity: 1;
2353
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2354
+ }
2355
+
2356
+ /* Newsletter Layout */
2357
+
2358
+ .dg-newsletter-container {
2359
+ display: flex;
2360
+ flex-direction: column;
2361
+ gap: 1rem;
2362
+ }
2363
+
2364
+ .dg-newsletter-container--compact {
2365
+ display: flex;
2366
+ flex-direction: column;
2367
+ gap: 0.75rem;
2368
+ }
2369
+
2370
+ .dg-newsletter-form {
2371
+ display: flex;
2372
+ flex-direction: column;
2373
+ gap: 1rem;
2374
+ }
2375
+
2376
+ .dg-newsletter-form--compact {
2377
+ display: flex;
2378
+ flex-direction: column;
2379
+ gap: 0.75rem;
2380
+ }
2381
+
2382
+ .dg-newsletter-form--inline {
2383
+ display: flex;
2384
+ width: 100%;
2385
+ gap: 0.5rem;
2386
+ }
2387
+
2388
+ @media (min-width: 640px) {
2389
+ .dg-newsletter-form--inline {
2390
+ width: auto;
2391
+ }
2392
+ }
2393
+
2394
+ .dg-newsletter-header {
2395
+ display: flex;
2396
+ flex-direction: column;
2397
+ align-items: flex-start;
2398
+ gap: 0.75rem;
2399
+ }
2400
+
2401
+ @media (min-width: 640px) {
2402
+ .dg-newsletter-header {
2403
+ flex-direction: row;
2404
+ align-items: center;
2405
+ }
2406
+ }
2407
+
2408
+ .dg-newsletter-header__content {
2409
+ flex: 1 1 0%;
2410
+ }
2411
+
2412
+ .dg-newsletter-header__actions {
2413
+ width: 100%;
2414
+ }
2415
+
2416
+ @media (min-width: 640px) {
2417
+ .dg-newsletter-header__actions {
2418
+ width: auto;
2419
+ }
2420
+ }
2421
+
2422
+ /* Logo Container */
2423
+
2424
+ .dg-logo-container {
2425
+ display: flex;
2426
+ justify-content: center;
2427
+ }
2428
+
2429
+ .dg-logo {
2430
+ height: 2rem;
2431
+ width: auto;
2432
+ }
2433
+
2434
+ /* Social Links Container */
2435
+
2436
+ .dg-social-links {
2437
+ display: flex;
2438
+ justify-content: center;
2439
+ gap: 1rem;
2440
+ }
2441
+
2442
+ /* Typography Utilities */
2443
+
2444
+ .dg-text-tagline {
2445
+ --tw-text-opacity: 1;
2446
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
2447
+ text-align: center;
2448
+ font-size: 0.875rem;
2449
+ line-height: 1.25rem;
2450
+ }
2451
+
2452
+ .dg-text-subtitle {
2453
+ --tw-text-opacity: 1;
2454
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
2455
+ font-size: 0.875rem;
2456
+ line-height: 1.25rem;
2457
+ }
2458
+
2459
+ .dg-text-heading {
2460
+ --tw-text-opacity: 1;
2461
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2462
+ font-size: 1rem;
2463
+ line-height: 1.5rem;
2464
+ font-weight: 500;
2465
+ }
2466
+
2467
+ .dg-text-heading--with-margin {
2468
+ --tw-text-opacity: 1;
2469
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2470
+ margin-bottom: 0.25rem;
2471
+ font-size: 1rem;
2472
+ line-height: 1.5rem;
2473
+ font-weight: 500;
2474
+ }
2475
+
2476
+ .dg-text-legal {
2477
+ --tw-text-opacity: 1;
2478
+ color: rgb(148 148 152 / var(--tw-text-opacity, 1));
2479
+ text-align: center;
2480
+ font-size: 0.75rem;
2481
+ line-height: 1rem;
2482
+ }
2483
+
2484
+ /* ==========================================================================
2485
+ LINK COMPONENTS
2486
+ ========================================================================== */
2487
+
2488
+ /* Primary Link with hover effect */
2489
+
2490
+ .dg-link {
2491
+ --tw-text-opacity: 1;
2492
+ color: rgb(19 239 149 / var(--tw-text-opacity, 1));
2493
+ transition-property: opacity;
2494
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2495
+ transition-duration: 200ms;
2496
+ }
2497
+
2498
+ .dg-link:hover {
2499
+ opacity: 0.8;
2500
+ }
2501
+
2502
+ /* Social Icon Link */
2503
+
2504
+ .dg-social-link {
2505
+ --tw-text-opacity: 1;
2506
+ color: rgb(237 237 226 / var(--tw-text-opacity, 1));
2507
+ font-size: 1.25rem;
2508
+ line-height: 1.75rem;
2509
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
2510
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2511
+ transition-duration: 200ms;
2512
+ }
2513
+
2514
+ .dg-social-link:hover {
2515
+ --tw-text-opacity: 1;
2516
+ color: rgb(19 239 149 / var(--tw-text-opacity, 1));
2517
+ }
2518
+
773
2519
  .dg-gradient-border {
774
2520
  background-image: linear-gradient(rgb(0, 0, 0), rgb(0, 0, 0)), linear-gradient(90deg, rgb(0, 143, 193), rgb(0, 240, 153), rgb(0, 143, 193), rgb(0, 240, 153));
775
2521
  background-origin: padding-box, border-box;