@letsprogram/ng-oat 0.1.6 → 0.1.8

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.
@@ -1,7 +1,10 @@
1
1
  @layer theme, base, components, animations, utilities;
2
2
 
3
3
  @layer base {
4
- *, *::before, *::after {
4
+
5
+ *,
6
+ *::before,
7
+ *::after {
5
8
  box-sizing: border-box;
6
9
  -webkit-tap-highlight-color: transparent;
7
10
  }
@@ -15,7 +18,9 @@
15
18
  }
16
19
 
17
20
  /* Top-layer elements don't inherit from body. Set explicitly. */
18
- body, dialog, [popover] {
21
+ body,
22
+ dialog,
23
+ [popover] {
19
24
  font-family: var(--font-sans);
20
25
  font-size: var(--text-regular);
21
26
  line-height: var(--leading-normal);
@@ -29,18 +34,33 @@
29
34
  }
30
35
 
31
36
  main {
32
- padding-block-start: var(--space-8);
37
+ padding-block-start: var(--topnav-offset);
33
38
  }
34
39
 
35
- img, picture, video, canvas, svg {
40
+ img,
41
+ picture,
42
+ video,
43
+ canvas,
44
+ svg {
36
45
  max-width: 100%;
37
46
  }
38
47
 
39
- p, h1, h2, h3, h4, h5, h6 {
48
+ p,
49
+ h1,
50
+ h2,
51
+ h3,
52
+ h4,
53
+ h5,
54
+ h6 {
40
55
  overflow-wrap: break-word;
41
56
  }
42
57
 
43
- h1, h2, h3, h4, h5, h6 {
58
+ h1,
59
+ h2,
60
+ h3,
61
+ h4,
62
+ h5,
63
+ h6 {
44
64
  font-weight: var(--font-semibold);
45
65
  line-height: var(--leading-tight);
46
66
  text-wrap: balance;
@@ -103,11 +123,13 @@
103
123
  }
104
124
  }
105
125
 
106
- strong, b {
126
+ strong,
127
+ b {
107
128
  font-weight: var(--font-semibold);
108
129
  }
109
130
 
110
- em, i {
131
+ em,
132
+ i {
111
133
  font-style: italic;
112
134
  }
113
135
 
@@ -152,7 +174,8 @@
152
174
  margin: var(--space-2) 0;
153
175
  }
154
176
 
155
- ul, ol {
177
+ ul,
178
+ ol {
156
179
  padding-inline-start: var(--space-6);
157
180
  margin-block-end: var(--space-4);
158
181
  }
@@ -201,19 +224,37 @@
201
224
  color: var(--prose-body);
202
225
  max-width: 65ch;
203
226
 
204
- > * + * {
227
+ >*+* {
205
228
  margin-block-start: var(--space-5);
206
229
  }
207
230
 
208
- h1, h2, h3, h4, h5, h6 {
231
+ h1,
232
+ h2,
233
+ h3,
234
+ h4,
235
+ h5,
236
+ h6 {
209
237
  color: var(--prose-heading);
210
238
  letter-spacing: var(--tracking-tight);
211
239
  }
212
240
 
213
- h1 { margin-block-start: 0; }
214
- h2 { margin-block-start: var(--space-10); }
215
- h3 { margin-block-start: var(--space-8); }
216
- h4, h5, h6 { margin-block-start: var(--space-6); }
241
+ h1 {
242
+ margin-block-start: 0;
243
+ }
244
+
245
+ h2 {
246
+ margin-block-start: var(--space-10);
247
+ }
248
+
249
+ h3 {
250
+ margin-block-start: var(--space-8);
251
+ }
252
+
253
+ h4,
254
+ h5,
255
+ h6 {
256
+ margin-block-start: var(--space-6);
257
+ }
217
258
 
218
259
  a {
219
260
  color: var(--prose-link);
@@ -245,7 +286,8 @@
245
286
  font-style: italic;
246
287
  }
247
288
 
248
- img, video {
289
+ img,
290
+ video {
249
291
  border-radius: var(--radius-medium);
250
292
  }
251
293
 
@@ -275,10 +317,20 @@
275
317
  }
276
318
 
277
319
  /* Prose width variants */
278
- .prose-sm { max-width: 45ch; font-size: var(--text-7); }
279
- .prose-lg { max-width: 75ch; }
280
- .prose-full { max-width: none; }
320
+ .prose-sm {
321
+ max-width: 45ch;
322
+ font-size: var(--text-7);
323
+ }
324
+
325
+ .prose-lg {
326
+ max-width: 75ch;
327
+ }
328
+
329
+ .prose-full {
330
+ max-width: none;
331
+ }
281
332
  }
333
+
282
334
  @layer theme {
283
335
  :root {
284
336
  color-scheme: light dark;
@@ -315,12 +367,12 @@
315
367
  /* ── Spacing (fluid) ─────────────────────────────────────────────────── */
316
368
  --space-1: 0.25rem;
317
369
  --space-2: 0.5rem;
318
- --space-3: clamp(0.5rem, 1.5vw, 0.75rem);
319
- --space-4: clamp(0.5rem, 2vw, 1rem);
320
- --space-5: clamp(0.75rem, 2.5vw, 1.25rem);
321
- --space-6: clamp(0.75rem, 3vw, 1.5rem);
322
- --space-8: clamp(1rem, 4vw, 2rem);
323
- --space-10: clamp(1.5rem, 5vw, 2.5rem);
370
+ --space-3: clamp(0.5rem, 1.5vw, 0.75rem);
371
+ --space-4: clamp(0.5rem, 2vw, 1rem);
372
+ --space-5: clamp(0.75rem, 2.5vw, 1.25rem);
373
+ --space-6: clamp(0.75rem, 3vw, 1.5rem);
374
+ --space-8: clamp(1rem, 4vw, 2rem);
375
+ --space-10: clamp(1.5rem, 5vw, 2.5rem);
324
376
  --space-12: 3rem;
325
377
  --space-14: 3.5rem;
326
378
  --space-16: 4rem;
@@ -329,7 +381,7 @@
329
381
  /* ── Border radius (fluid) ───────────────────────────────────────────── */
330
382
  --radius-small: 0.125rem;
331
383
  --radius-medium: clamp(0.25rem, 0.8vw, 0.375rem);
332
- --radius-large: clamp(0.5rem, 1.5vw, 0.75rem);
384
+ --radius-large: clamp(0.5rem, 1.5vw, 0.75rem);
333
385
  --radius-full: 9999px;
334
386
 
335
387
  --bar-height: 0.5rem;
@@ -382,7 +434,9 @@
382
434
  --z-modal: 200;
383
435
  }
384
436
  }
437
+
385
438
  @layer animations {
439
+
386
440
  /* Pop-in animation for modals/overlays - swings from above */
387
441
  .animate-pop-in {
388
442
  opacity: 1;
@@ -441,6 +495,7 @@
441
495
  }
442
496
  }
443
497
  }
498
+
444
499
  @layer base {
445
500
  label {
446
501
  display: block;
@@ -641,27 +696,28 @@
641
696
  padding: 0;
642
697
  margin: 0;
643
698
 
644
- & > :is(input, textarea, select) {
699
+ &> :is(input, textarea, select) {
645
700
  flex: 1;
646
701
  margin-block-start: 0;
647
-
702
+
648
703
  &:not(:focus) {
649
704
  border-inline-end-color: transparent;
650
705
  }
651
706
  }
652
707
 
653
- & > :is(input, textarea, select, button) {
708
+ &> :is(input, textarea, select, button) {
654
709
  border-radius: 0;
710
+
655
711
  &:first-child {
656
712
  border-radius: var(--radius-medium) 0 0 var(--radius-medium);
657
713
  }
658
-
714
+
659
715
  &:last-child {
660
716
  border-radius: 0 var(--radius-medium) var(--radius-medium) 0;
661
717
  }
662
718
  }
663
719
 
664
- & > legend {
720
+ &>legend {
665
721
  float: inline-start;
666
722
  display: inline-flex;
667
723
  align-items: center;
@@ -680,7 +736,8 @@
680
736
  margin-block-end: var(--space-4);
681
737
 
682
738
  /* Hint text that succeeds an input with aria-describedby */
683
- [data-hint], .error {
739
+ [data-hint],
740
+ .error {
684
741
  font-size: var(--text-8);
685
742
  font-weight: var(--font-normal);
686
743
  color: var(--muted-foreground);
@@ -698,8 +755,11 @@
698
755
  }
699
756
  }
700
757
  }
758
+
701
759
  @layer base {
702
- :is(button, [type=submit], [type=reset], [type=button], a.button), ::file-selector-button {
760
+
761
+ :is(button, [type=submit], [type=reset], [type=button], a.button),
762
+ ::file-selector-button {
703
763
  --_hov: color-mix(in srgb, var(--primary), white 25%);
704
764
 
705
765
  display: inline-flex;
@@ -807,6 +867,7 @@
807
867
  color: var(--foreground);
808
868
  border: 1px solid var(--border);
809
869
  }
870
+
810
871
  ::file-selector-button:hover {
811
872
  /* pseudoelement:hover can't be nested and has to be a separate block. */
812
873
  background-color: var(--accent);
@@ -820,27 +881,28 @@
820
881
  display: inline-flex;
821
882
 
822
883
  /* In menu.buttons, <li> children are expected to have just one child, which is a button/or a.button */
823
- & > li {
824
- &:first-child > * {
884
+ &>li {
885
+ &:first-child>* {
825
886
  border-start-start-radius: var(--radius-medium);
826
887
  border-end-start-radius: var(--radius-medium);
827
888
  }
828
889
 
829
- &:last-child > * {
890
+ &:last-child>* {
830
891
  border-start-end-radius: var(--radius-medium);
831
892
  border-end-end-radius: var(--radius-medium);
832
893
  }
833
894
 
834
- & > * {
895
+ &>* {
835
896
  border-radius: 0;
836
897
  }
837
898
 
838
- &:not(:last-child) > * {
899
+ &:not(:last-child)>* {
839
900
  border-inline-end: 1px solid rgb(from var(--primary-foreground) r g b / 0.2);
840
901
  }
841
902
  }
842
903
  }
843
904
  }
905
+
844
906
  @layer components {
845
907
  .card {
846
908
  background-color: var(--card);
@@ -888,6 +950,7 @@
888
950
  border-top: 1px solid var(--border);
889
951
  }
890
952
  }
953
+
891
954
  @layer components {
892
955
  .badge {
893
956
  display: inline-flex;
@@ -914,36 +977,31 @@
914
977
 
915
978
  &.success {
916
979
  color: var(--success);
917
- background-color: light-dark(
918
- color-mix(in srgb, var(--success) 10%, transparent),
919
- color-mix(in srgb, var(--success) 30%, transparent)
920
- );
980
+ background-color: light-dark(color-mix(in srgb, var(--success) 10%, transparent),
981
+ color-mix(in srgb, var(--success) 30%, transparent));
921
982
  }
922
983
 
923
984
  &.warning {
924
985
  color: var(--warning);
925
- background-color: light-dark(
926
- color-mix(in srgb, var(--warning) 10%, transparent),
927
- color-mix(in srgb, var(--warning) 30%, transparent)
928
- );
986
+ background-color: light-dark(color-mix(in srgb, var(--warning) 10%, transparent),
987
+ color-mix(in srgb, var(--warning) 30%, transparent));
929
988
  }
930
989
 
931
990
  &.danger {
932
991
  color: var(--danger);
933
- background-color: light-dark(
934
- color-mix(in srgb, var(--danger) 10%, transparent),
935
- color-mix(in srgb, var(--danger) 30%, transparent)
936
- );
992
+ background-color: light-dark(color-mix(in srgb, var(--danger) 10%, transparent),
993
+ color-mix(in srgb, var(--danger) 30%, transparent));
937
994
  }
938
995
  }
939
996
  }
997
+
940
998
  @layer components {
941
999
  details {
942
1000
  border: 1px solid var(--border);
943
1001
  border-radius: var(--radius-medium);
944
1002
  overflow: hidden;
945
1003
 
946
- & + details {
1004
+ &+details {
947
1005
  margin-top: -1px;
948
1006
  border-start-start-radius: 0;
949
1007
  border-start-end-radius: 0;
@@ -974,7 +1032,8 @@
974
1032
  background-color: var(--muted);
975
1033
  }
976
1034
 
977
- &::-webkit-details-marker, &::marker {
1035
+ &::-webkit-details-marker,
1036
+ &::marker {
978
1037
  display: none;
979
1038
  }
980
1039
 
@@ -995,10 +1054,11 @@
995
1054
  }
996
1055
  }
997
1056
 
998
- details > *:not(summary) {
1057
+ details>*:not(summary) {
999
1058
  margin: clamp(var(--space-2), 3vw, var(--space-4));
1000
1059
  }
1001
1060
  }
1061
+
1002
1062
  @layer components {
1003
1063
  [role="alert"] {
1004
1064
  position: relative;
@@ -1017,10 +1077,8 @@
1017
1077
  &[data-variant="error"],
1018
1078
  &[data-variant="danger"] {
1019
1079
  color: var(--danger);
1020
- background-color: light-dark(
1021
- color-mix(in srgb, var(--danger) 8%, transparent),
1022
- color-mix(in srgb, var(--danger) 20%, transparent)
1023
- );
1080
+ background-color: light-dark(color-mix(in srgb, var(--danger) 8%, transparent),
1081
+ color-mix(in srgb, var(--danger) 20%, transparent));
1024
1082
 
1025
1083
  & a {
1026
1084
  color: var(--danger);
@@ -1029,10 +1087,8 @@
1029
1087
 
1030
1088
  &[data-variant="success"] {
1031
1089
  color: var(--success);
1032
- background-color: light-dark(
1033
- color-mix(in srgb, var(--success) 8%, transparent),
1034
- color-mix(in srgb, var(--success) 20%, transparent)
1035
- );
1090
+ background-color: light-dark(color-mix(in srgb, var(--success) 8%, transparent),
1091
+ color-mix(in srgb, var(--success) 20%, transparent));
1036
1092
 
1037
1093
  & a {
1038
1094
  color: var(--success);
@@ -1041,10 +1097,8 @@
1041
1097
 
1042
1098
  &[data-variant="warning"] {
1043
1099
  color: var(--warning);
1044
- background-color: light-dark(
1045
- color-mix(in srgb, var(--warning) 8%, transparent),
1046
- color-mix(in srgb, var(--warning) 20%, transparent)
1047
- );
1100
+ background-color: light-dark(color-mix(in srgb, var(--warning) 8%, transparent),
1101
+ color-mix(in srgb, var(--warning) 20%, transparent));
1048
1102
 
1049
1103
  & a {
1050
1104
  color: var(--warning);
@@ -1052,6 +1106,7 @@
1052
1106
  }
1053
1107
  }
1054
1108
  }
1109
+
1055
1110
  @layer components {
1056
1111
  dialog {
1057
1112
  position: fixed;
@@ -1105,33 +1160,42 @@
1105
1160
  }
1106
1161
  }
1107
1162
 
1108
- & > header,
1109
- & > form > header {
1163
+ &>header,
1164
+ &>form>header {
1110
1165
  display: flex;
1111
1166
  flex-direction: column;
1112
1167
  gap: var(--space-1);
1113
1168
  padding: var(--space-6);
1114
1169
  padding-block-end: 0;
1115
1170
 
1116
- & > h1, & > h2, & > h3, & > h4, & > h5, & > h6 {
1171
+ &>h1,
1172
+ &>h2,
1173
+ &>h3,
1174
+ &>h4,
1175
+ &>h5,
1176
+ &>h6 {
1117
1177
  margin-block-end: 0;
1118
1178
  }
1119
1179
 
1120
- & > p {
1180
+ &>p {
1121
1181
  font-size: var(--text-7);
1122
1182
  color: var(--muted-foreground);
1123
1183
  margin-block-end: 0;
1124
1184
  }
1125
1185
  }
1126
1186
 
1127
- & > p, & > div, & > section,
1128
- & > form > p, & > form > div, & > form > section {
1187
+ &>p,
1188
+ &>div,
1189
+ &>section,
1190
+ &>form>p,
1191
+ &>form>div,
1192
+ &>form>section {
1129
1193
  padding: var(--space-6);
1130
1194
  overflow-y: auto;
1131
1195
  }
1132
1196
 
1133
- & > footer,
1134
- & > form > footer {
1197
+ &>footer,
1198
+ &>form>footer {
1135
1199
  display: flex;
1136
1200
  justify-content: flex-end;
1137
1201
  gap: var(--space-2);
@@ -1140,6 +1204,7 @@
1140
1204
  }
1141
1205
  }
1142
1206
  }
1207
+
1143
1208
  @layer components {
1144
1209
  ot-dropdown {
1145
1210
  [popover] {
@@ -1188,13 +1253,15 @@
1188
1253
  border-radius: var(--radius-small);
1189
1254
  cursor: pointer;
1190
1255
 
1191
- &:hover, &:focus {
1256
+ &:hover,
1257
+ &:focus {
1192
1258
  background-color: var(--accent);
1193
1259
  outline: none;
1194
1260
  }
1195
1261
  }
1196
1262
  }
1197
1263
  }
1264
+
1198
1265
  @layer components {
1199
1266
  :root {
1200
1267
  --grid-cols: 12;
@@ -1219,28 +1286,83 @@
1219
1286
  }
1220
1287
 
1221
1288
  /* Column spans using CSS custom property */
1222
- .col, [class*="col-"] { grid-column-end: span var(--span, var(--grid-cols)); }
1223
-
1224
- .col-1 { --span: 1; }
1225
- .col-2 { --span: 2; }
1226
- .col-3 { --span: 3; }
1227
- .col-4 { --span: 4; }
1228
- .col-5 { --span: 5; }
1229
- .col-6 { --span: 6; }
1230
- .col-7 { --span: 7; }
1231
- .col-8 { --span: 8; }
1232
- .col-9 { --span: 9; }
1233
- .col-10 { --span: 10; }
1234
- .col-11 { --span: 11; }
1235
- .col-12 { --span: 12; }
1289
+ .col,
1290
+ [class*="col-"] {
1291
+ grid-column-end: span var(--span, var(--grid-cols));
1292
+ }
1293
+
1294
+ .col-1 {
1295
+ --span: 1;
1296
+ }
1297
+
1298
+ .col-2 {
1299
+ --span: 2;
1300
+ }
1301
+
1302
+ .col-3 {
1303
+ --span: 3;
1304
+ }
1305
+
1306
+ .col-4 {
1307
+ --span: 4;
1308
+ }
1309
+
1310
+ .col-5 {
1311
+ --span: 5;
1312
+ }
1313
+
1314
+ .col-6 {
1315
+ --span: 6;
1316
+ }
1317
+
1318
+ .col-7 {
1319
+ --span: 7;
1320
+ }
1321
+
1322
+ .col-8 {
1323
+ --span: 8;
1324
+ }
1325
+
1326
+ .col-9 {
1327
+ --span: 9;
1328
+ }
1329
+
1330
+ .col-10 {
1331
+ --span: 10;
1332
+ }
1333
+
1334
+ .col-11 {
1335
+ --span: 11;
1336
+ }
1337
+
1338
+ .col-12 {
1339
+ --span: 12;
1340
+ }
1236
1341
 
1237
1342
  /* Offsets via grid-column-start */
1238
- .offset-1 { grid-column-start: 2; }
1239
- .offset-2 { grid-column-start: 3; }
1240
- .offset-3 { grid-column-start: 4; }
1241
- .offset-4 { grid-column-start: 5; }
1242
- .offset-5 { grid-column-start: 6; }
1243
- .offset-6 { grid-column-start: 7; }
1343
+ .offset-1 {
1344
+ grid-column-start: 2;
1345
+ }
1346
+
1347
+ .offset-2 {
1348
+ grid-column-start: 3;
1349
+ }
1350
+
1351
+ .offset-3 {
1352
+ grid-column-start: 4;
1353
+ }
1354
+
1355
+ .offset-4 {
1356
+ grid-column-start: 5;
1357
+ }
1358
+
1359
+ .offset-5 {
1360
+ grid-column-start: 6;
1361
+ }
1362
+
1363
+ .offset-6 {
1364
+ grid-column-start: 7;
1365
+ }
1244
1366
 
1245
1367
  .col-end {
1246
1368
  grid-column-start: span var(--span, 1);
@@ -1265,29 +1387,62 @@
1265
1387
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
1266
1388
  }
1267
1389
 
1268
- /* Container-query breakpoints for .grid children */
1269
- @container (min-width: 640px) {
1270
- .grid { grid-template-columns: repeat(2, 1fr); }
1390
+ /* .grid template-columns use @media (viewport) a container cannot query
1391
+ * its own size via @container; those rules would query the *parent* container,
1392
+ * causing mismatches in sidebar layouts where content width < 1024px. */
1393
+ @media (min-width: 640px) {
1394
+ .grid {
1395
+ grid-template-columns: repeat(2, 1fr);
1396
+ }
1397
+ }
1398
+
1399
+ @media (min-width: 1024px) {
1400
+ .grid {
1401
+ grid-template-columns: repeat(var(--grid-cols, 12), 1fr);
1402
+ }
1271
1403
  }
1272
- @container (min-width: 1024px) {
1273
- .grid { grid-template-columns: repeat(var(--grid-cols, 12), 1fr); }
1274
- .grid > * { grid-column: span var(--span, 1); }
1404
+
1405
+ /* Children's column span responds to the .grid container's own width */
1406
+ @container (min-width: 640px) {
1407
+ .grid>* {
1408
+ grid-column: span var(--span, 1);
1409
+ }
1275
1410
  }
1276
1411
 
1277
1412
  /* Allow explicit column count override on .grid: .grid.cols-2, .grid.cols-3, etc. */
1278
- .grid.cols-2 { --grid-cols: 2; }
1279
- .grid.cols-3 { --grid-cols: 3; }
1280
- .grid.cols-4 { --grid-cols: 4; }
1413
+ .grid.cols-2 {
1414
+ --grid-cols: 2;
1415
+ }
1281
1416
 
1282
- @container (min-width: 640px) {
1283
- .grid.cols-2, .grid.cols-3, .grid.cols-4 {
1417
+ .grid.cols-3 {
1418
+ --grid-cols: 3;
1419
+ }
1420
+
1421
+ .grid.cols-4 {
1422
+ --grid-cols: 4;
1423
+ }
1424
+
1425
+ @media (min-width: 640px) {
1426
+
1427
+ .grid.cols-2,
1428
+ .grid.cols-3,
1429
+ .grid.cols-4 {
1284
1430
  grid-template-columns: repeat(2, 1fr);
1285
1431
  }
1286
1432
  }
1287
- @container (min-width: 1024px) {
1288
- .grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
1289
- .grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
1290
- .grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
1433
+
1434
+ @media (min-width: 1024px) {
1435
+ .grid.cols-2 {
1436
+ grid-template-columns: repeat(2, 1fr);
1437
+ }
1438
+
1439
+ .grid.cols-3 {
1440
+ grid-template-columns: repeat(3, 1fr);
1441
+ }
1442
+
1443
+ .grid.cols-4 {
1444
+ grid-template-columns: repeat(4, 1fr);
1445
+ }
1291
1446
  }
1292
1447
 
1293
1448
  /* ── Responsive .row breakpoints (media queries) ───────────────────────── */
@@ -1297,9 +1452,12 @@
1297
1452
  --grid-cols: 1;
1298
1453
  --grid-gap: 1rem;
1299
1454
  }
1300
- .col, [class*="col-"] {
1455
+
1456
+ .col,
1457
+ [class*="col-"] {
1301
1458
  --span: 1;
1302
1459
  }
1460
+
1303
1461
  [class*="offset-"] {
1304
1462
  grid-column-start: auto;
1305
1463
  }
@@ -1311,9 +1469,12 @@
1311
1469
  --grid-cols: 4;
1312
1470
  --grid-gap: 1rem;
1313
1471
  }
1314
- .col, [class*="col-"] {
1472
+
1473
+ .col,
1474
+ [class*="col-"] {
1315
1475
  --span: 4;
1316
1476
  }
1477
+
1317
1478
  [class*="offset-"] {
1318
1479
  grid-column-start: auto;
1319
1480
  }
@@ -1322,68 +1483,209 @@
1322
1483
  /* ── Responsive column classes (media queries for power users) ─────────── */
1323
1484
  /* sm: 640px+ */
1324
1485
  @media (min-width: 640px) {
1325
- .sm\:col-1 { --span: 1; }
1326
- .sm\:col-2 { --span: 2; }
1327
- .sm\:col-3 { --span: 3; }
1328
- .sm\:col-4 { --span: 4; }
1329
- .sm\:col-5 { --span: 5; }
1330
- .sm\:col-6 { --span: 6; }
1331
- .sm\:col-7 { --span: 7; }
1332
- .sm\:col-8 { --span: 8; }
1333
- .sm\:col-9 { --span: 9; }
1334
- .sm\:col-10 { --span: 10; }
1335
- .sm\:col-11 { --span: 11; }
1336
- .sm\:col-12 { --span: 12; }
1486
+ .sm\:col-1 {
1487
+ --span: 1;
1488
+ }
1489
+
1490
+ .sm\:col-2 {
1491
+ --span: 2;
1492
+ }
1493
+
1494
+ .sm\:col-3 {
1495
+ --span: 3;
1496
+ }
1497
+
1498
+ .sm\:col-4 {
1499
+ --span: 4;
1500
+ }
1501
+
1502
+ .sm\:col-5 {
1503
+ --span: 5;
1504
+ }
1505
+
1506
+ .sm\:col-6 {
1507
+ --span: 6;
1508
+ }
1509
+
1510
+ .sm\:col-7 {
1511
+ --span: 7;
1512
+ }
1513
+
1514
+ .sm\:col-8 {
1515
+ --span: 8;
1516
+ }
1517
+
1518
+ .sm\:col-9 {
1519
+ --span: 9;
1520
+ }
1521
+
1522
+ .sm\:col-10 {
1523
+ --span: 10;
1524
+ }
1525
+
1526
+ .sm\:col-11 {
1527
+ --span: 11;
1528
+ }
1529
+
1530
+ .sm\:col-12 {
1531
+ --span: 12;
1532
+ }
1337
1533
  }
1338
1534
 
1339
1535
  /* md: 768px+ */
1340
1536
  @media (min-width: 768px) {
1341
- .md\:col-1 { --span: 1; }
1342
- .md\:col-2 { --span: 2; }
1343
- .md\:col-3 { --span: 3; }
1344
- .md\:col-4 { --span: 4; }
1345
- .md\:col-5 { --span: 5; }
1346
- .md\:col-6 { --span: 6; }
1347
- .md\:col-7 { --span: 7; }
1348
- .md\:col-8 { --span: 8; }
1349
- .md\:col-9 { --span: 9; }
1350
- .md\:col-10 { --span: 10; }
1351
- .md\:col-11 { --span: 11; }
1352
- .md\:col-12 { --span: 12; }
1537
+ .md\:col-1 {
1538
+ --span: 1;
1539
+ }
1540
+
1541
+ .md\:col-2 {
1542
+ --span: 2;
1543
+ }
1544
+
1545
+ .md\:col-3 {
1546
+ --span: 3;
1547
+ }
1548
+
1549
+ .md\:col-4 {
1550
+ --span: 4;
1551
+ }
1552
+
1553
+ .md\:col-5 {
1554
+ --span: 5;
1555
+ }
1556
+
1557
+ .md\:col-6 {
1558
+ --span: 6;
1559
+ }
1560
+
1561
+ .md\:col-7 {
1562
+ --span: 7;
1563
+ }
1564
+
1565
+ .md\:col-8 {
1566
+ --span: 8;
1567
+ }
1568
+
1569
+ .md\:col-9 {
1570
+ --span: 9;
1571
+ }
1572
+
1573
+ .md\:col-10 {
1574
+ --span: 10;
1575
+ }
1576
+
1577
+ .md\:col-11 {
1578
+ --span: 11;
1579
+ }
1580
+
1581
+ .md\:col-12 {
1582
+ --span: 12;
1583
+ }
1353
1584
  }
1354
1585
 
1355
1586
  /* lg: 1024px+ */
1356
1587
  @media (min-width: 1024px) {
1357
- .lg\:col-1 { --span: 1; }
1358
- .lg\:col-2 { --span: 2; }
1359
- .lg\:col-3 { --span: 3; }
1360
- .lg\:col-4 { --span: 4; }
1361
- .lg\:col-5 { --span: 5; }
1362
- .lg\:col-6 { --span: 6; }
1363
- .lg\:col-7 { --span: 7; }
1364
- .lg\:col-8 { --span: 8; }
1365
- .lg\:col-9 { --span: 9; }
1366
- .lg\:col-10 { --span: 10; }
1367
- .lg\:col-11 { --span: 11; }
1368
- .lg\:col-12 { --span: 12; }
1588
+ .lg\:col-1 {
1589
+ --span: 1;
1590
+ }
1591
+
1592
+ .lg\:col-2 {
1593
+ --span: 2;
1594
+ }
1595
+
1596
+ .lg\:col-3 {
1597
+ --span: 3;
1598
+ }
1599
+
1600
+ .lg\:col-4 {
1601
+ --span: 4;
1602
+ }
1603
+
1604
+ .lg\:col-5 {
1605
+ --span: 5;
1606
+ }
1607
+
1608
+ .lg\:col-6 {
1609
+ --span: 6;
1610
+ }
1611
+
1612
+ .lg\:col-7 {
1613
+ --span: 7;
1614
+ }
1615
+
1616
+ .lg\:col-8 {
1617
+ --span: 8;
1618
+ }
1619
+
1620
+ .lg\:col-9 {
1621
+ --span: 9;
1622
+ }
1623
+
1624
+ .lg\:col-10 {
1625
+ --span: 10;
1626
+ }
1627
+
1628
+ .lg\:col-11 {
1629
+ --span: 11;
1630
+ }
1631
+
1632
+ .lg\:col-12 {
1633
+ --span: 12;
1634
+ }
1369
1635
  }
1370
1636
 
1371
1637
  /* xl: 1280px+ */
1372
1638
  @media (min-width: 1280px) {
1373
- .xl\:col-1 { --span: 1; }
1374
- .xl\:col-2 { --span: 2; }
1375
- .xl\:col-3 { --span: 3; }
1376
- .xl\:col-4 { --span: 4; }
1377
- .xl\:col-5 { --span: 5; }
1378
- .xl\:col-6 { --span: 6; }
1379
- .xl\:col-7 { --span: 7; }
1380
- .xl\:col-8 { --span: 8; }
1381
- .xl\:col-9 { --span: 9; }
1382
- .xl\:col-10 { --span: 10; }
1383
- .xl\:col-11 { --span: 11; }
1384
- .xl\:col-12 { --span: 12; }
1639
+ .xl\:col-1 {
1640
+ --span: 1;
1641
+ }
1642
+
1643
+ .xl\:col-2 {
1644
+ --span: 2;
1645
+ }
1646
+
1647
+ .xl\:col-3 {
1648
+ --span: 3;
1649
+ }
1650
+
1651
+ .xl\:col-4 {
1652
+ --span: 4;
1653
+ }
1654
+
1655
+ .xl\:col-5 {
1656
+ --span: 5;
1657
+ }
1658
+
1659
+ .xl\:col-6 {
1660
+ --span: 6;
1661
+ }
1662
+
1663
+ .xl\:col-7 {
1664
+ --span: 7;
1665
+ }
1666
+
1667
+ .xl\:col-8 {
1668
+ --span: 8;
1669
+ }
1670
+
1671
+ .xl\:col-9 {
1672
+ --span: 9;
1673
+ }
1674
+
1675
+ .xl\:col-10 {
1676
+ --span: 10;
1677
+ }
1678
+
1679
+ .xl\:col-11 {
1680
+ --span: 11;
1681
+ }
1682
+
1683
+ .xl\:col-12 {
1684
+ --span: 12;
1685
+ }
1385
1686
  }
1386
1687
  }
1688
+
1387
1689
  @layer base {
1388
1690
  progress {
1389
1691
  appearance: none;
@@ -1459,6 +1761,7 @@
1459
1761
  }
1460
1762
  }
1461
1763
  }
1764
+
1462
1765
  @layer components {
1463
1766
  [data-sidebar-layout] {
1464
1767
  --topnav-offset: 0px;
@@ -1468,19 +1771,19 @@
1468
1771
  min-height: 100dvh;
1469
1772
  gap: var(--space-4);
1470
1773
 
1471
- > main {
1774
+ >main {
1472
1775
  min-width: 0;
1473
1776
  }
1474
1777
 
1475
1778
  &:has(nav[data-topnav]) {
1476
1779
  --topnav-offset: var(--space-12);
1477
1780
 
1478
- > main [id] {
1781
+ >main [id] {
1479
1782
  scroll-margin-block-start: calc(var(--space-12) + var(--space-6));
1480
1783
  }
1481
1784
  }
1482
1785
 
1483
- > aside[data-sidebar] {
1786
+ >aside[data-sidebar] {
1484
1787
  position: sticky;
1485
1788
  top: var(--topnav-offset);
1486
1789
  z-index: 1;
@@ -1497,11 +1800,11 @@
1497
1800
  padding: var(--space-3);
1498
1801
  }
1499
1802
 
1500
- > footer {
1803
+ >footer {
1501
1804
  margin-block-start: auto;
1502
1805
  }
1503
1806
 
1504
- > nav {
1807
+ >nav {
1505
1808
  flex: 1;
1506
1809
  min-height: 0;
1507
1810
  overflow-y: auto;
@@ -1539,9 +1842,18 @@
1539
1842
  border: none;
1540
1843
  overflow: visible;
1541
1844
 
1542
- & + details { margin-top: 0; }
1543
- &[open] summary { border-bottom: none; }
1544
- > ul { margin-inline-start: var(--space-4); padding: var(--space-1) 0; }
1845
+ &+details {
1846
+ margin-top: 0;
1847
+ }
1848
+
1849
+ &[open] summary {
1850
+ border-bottom: none;
1851
+ }
1852
+
1853
+ >ul {
1854
+ margin-inline-start: var(--space-4);
1855
+ padding: var(--space-1) 0;
1856
+ }
1545
1857
  }
1546
1858
 
1547
1859
  summary {
@@ -1571,13 +1883,13 @@
1571
1883
  background-color: var(--background);
1572
1884
  border-bottom: 1px solid var(--border);
1573
1885
  box-shadow: var(--shadow-small);
1574
-
1886
+
1575
1887
  a {
1576
1888
  text-decoration: none;
1577
1889
  }
1578
1890
  }
1579
1891
 
1580
- nav[data-topnav] ~ main {
1892
+ nav[data-topnav]~main {
1581
1893
  margin-block-start: var(--space-12);
1582
1894
  }
1583
1895
 
@@ -1600,7 +1912,7 @@
1600
1912
  display: inline-block;
1601
1913
  }
1602
1914
 
1603
- > aside[data-sidebar] {
1915
+ >aside[data-sidebar] {
1604
1916
  transform: translateX(0);
1605
1917
  opacity: 1;
1606
1918
  transition: transform var(--transition), opacity var(--transition), visibility var(--transition);
@@ -1610,7 +1922,7 @@
1610
1922
  grid-template-columns: 0px 1fr;
1611
1923
  gap: 0;
1612
1924
 
1613
- > aside[data-sidebar] {
1925
+ >aside[data-sidebar] {
1614
1926
  overflow: hidden;
1615
1927
  min-width: 0;
1616
1928
  transform: translateX(-100%);
@@ -1626,7 +1938,7 @@
1626
1938
  [data-sidebar-layout] {
1627
1939
  grid-template-columns: 1fr;
1628
1940
 
1629
- > aside[data-sidebar] {
1941
+ >aside[data-sidebar] {
1630
1942
  position: fixed;
1631
1943
  left: 0;
1632
1944
  width: min(16rem, 80vw);
@@ -1635,11 +1947,14 @@
1635
1947
  box-shadow: var(--shadow-large);
1636
1948
  }
1637
1949
 
1638
- &[data-sidebar-open] > aside[data-sidebar] {
1950
+ &[data-sidebar-open]>aside[data-sidebar] {
1639
1951
  transform: translateX(0);
1640
1952
  }
1641
1953
  }
1642
- [data-sidebar-toggle] { display: inline-block; }
1954
+
1955
+ [data-sidebar-toggle] {
1956
+ display: inline-block;
1957
+ }
1643
1958
 
1644
1959
  [data-sidebar-header] {
1645
1960
  display: flex;
@@ -1650,24 +1965,21 @@
1650
1965
  }
1651
1966
  }
1652
1967
  }
1968
+
1653
1969
  @layer components {
1654
1970
  [role="status"].skeleton {
1655
- --_c: light-dark(
1656
- color-mix(in srgb, var(--muted) 30%, white),
1657
- color-mix(in srgb, var(--muted) 90%, var(--foreground))
1658
- );
1971
+ --_c: light-dark(color-mix(in srgb, var(--muted) 30%, white),
1972
+ color-mix(in srgb, var(--muted) 90%, var(--foreground)));
1659
1973
 
1660
1974
  margin-block-end: var(--space-3);
1661
1975
  background: var(--muted);
1662
1976
  border-radius: var(--radius-medium);
1663
1977
  animation: anim 2s infinite;
1664
1978
  background-size: 200% 100%;
1665
- background-image: linear-gradient(
1666
- 90deg,
1667
- var(--muted) 0%,
1668
- var(--_c) 50%,
1669
- var(--muted) 100%
1670
- );
1979
+ background-image: linear-gradient(90deg,
1980
+ var(--muted) 0%,
1981
+ var(--_c) 50%,
1982
+ var(--muted) 100%);
1671
1983
 
1672
1984
  &.box {
1673
1985
  width: 4rem;
@@ -1685,10 +1997,16 @@
1685
1997
  }
1686
1998
 
1687
1999
  @keyframes anim {
1688
- from { background-position: 200% 0; }
1689
- to { background-position: -200% 0; }
2000
+ from {
2001
+ background-position: 200% 0;
2002
+ }
2003
+
2004
+ to {
2005
+ background-position: -200% 0;
2006
+ }
1690
2007
  }
1691
2008
  }
2009
+
1692
2010
  @layer components {
1693
2011
  [aria-busy="true"] {
1694
2012
  &::before {
@@ -1719,7 +2037,7 @@
1719
2037
  &[data-spinner~="overlay"] {
1720
2038
  position: relative;
1721
2039
 
1722
- > * {
2040
+ >* {
1723
2041
  opacity: 0.3;
1724
2042
 
1725
2043
  /* "disable" all elements in the container while it's busy */
@@ -1741,7 +2059,9 @@
1741
2059
  }
1742
2060
  }
1743
2061
  }
2062
+
1744
2063
  @layer base {
2064
+
1745
2065
  /* Container to get horizontal scroll on small screens. */
1746
2066
  .table {
1747
2067
  min-width: 320px;
@@ -1759,7 +2079,8 @@
1759
2079
  border-bottom: 1px solid var(--border);
1760
2080
  }
1761
2081
 
1762
- th, td {
2082
+ th,
2083
+ td {
1763
2084
  overflow-wrap: break-word;
1764
2085
  }
1765
2086
 
@@ -1787,6 +2108,7 @@
1787
2108
  }
1788
2109
  }
1789
2110
  }
2111
+
1790
2112
  @layer components {
1791
2113
  [role="tablist"] {
1792
2114
  display: inline-flex;
@@ -1838,6 +2160,7 @@
1838
2160
  }
1839
2161
  }
1840
2162
  }
2163
+
1841
2164
  @layer components {
1842
2165
  .toast-container {
1843
2166
  position: fixed;
@@ -1870,10 +2193,12 @@
1870
2193
 
1871
2194
  /* Stack full-width on narrow screens */
1872
2195
  @media (max-width: 639px) {
2196
+
1873
2197
  &[data-placement="top-left"],
1874
2198
  &[data-placement="top-right"] {
1875
2199
  inset: var(--space-4) var(--space-2) auto var(--space-2);
1876
2200
  }
2201
+
1877
2202
  &[data-placement="bottom-left"],
1878
2203
  &[data-placement="bottom-right"] {
1879
2204
  inset: auto var(--space-2) var(--space-4) var(--space-2);
@@ -1920,6 +2245,7 @@
1920
2245
  line-height: var(--leading-tight);
1921
2246
  margin: 0 0 var(--space-2) 0;
1922
2247
  }
2248
+
1923
2249
  .toast-message {
1924
2250
  color: var(--muted-foreground);
1925
2251
  font-size: var(--text-7);
@@ -1928,6 +2254,7 @@
1928
2254
 
1929
2255
  &[data-variant="success"] {
1930
2256
  border-inline-start-color: var(--success);
2257
+
1931
2258
  .toast-title {
1932
2259
  color: var(--success);
1933
2260
  }
@@ -1935,6 +2262,7 @@
1935
2262
 
1936
2263
  &[data-variant="danger"] {
1937
2264
  border-inline-start-color: var(--danger);
2265
+
1938
2266
  .toast-title {
1939
2267
  color: var(--danger);
1940
2268
  }
@@ -1942,12 +2270,13 @@
1942
2270
 
1943
2271
  &[data-variant="warning"] {
1944
2272
  border-inline-start-color: var(--warning);
2273
+
1945
2274
  .toast-title {
1946
2275
  color: var(--warning);
1947
2276
  }
1948
2277
  }
1949
2278
 
1950
- & > [data-close] {
2279
+ &>[data-close] {
1951
2280
  margin-inline-start: auto;
1952
2281
  background: none;
1953
2282
  border: none;
@@ -1977,6 +2306,7 @@
1977
2306
  }
1978
2307
  }
1979
2308
  }
2309
+
1980
2310
  @layer components {
1981
2311
  [data-tooltip] {
1982
2312
  position: relative;
@@ -2024,6 +2354,7 @@
2024
2354
  transform: translateX(-50%) translateY(0);
2025
2355
  }
2026
2356
  }
2357
+
2027
2358
  @layer components {
2028
2359
  .avatar {
2029
2360
  --avatar-size: 40px;
@@ -2049,9 +2380,17 @@
2049
2380
  object-fit: cover;
2050
2381
  }
2051
2382
 
2052
- .avatar-sm { --avatar-size: 32px; }
2053
- .avatar-lg { --avatar-size: 48px; }
2054
- .avatar-xl { --avatar-size: 64px; }
2383
+ .avatar-sm {
2384
+ --avatar-size: 32px;
2385
+ }
2386
+
2387
+ .avatar-lg {
2388
+ --avatar-size: 48px;
2389
+ }
2390
+
2391
+ .avatar-xl {
2392
+ --avatar-size: 64px;
2393
+ }
2055
2394
 
2056
2395
  .avatar-group {
2057
2396
  display: inline-flex;
@@ -2062,10 +2401,11 @@
2062
2401
  outline: 2px solid var(--background);
2063
2402
  }
2064
2403
 
2065
- .avatar-group .avatar + .avatar {
2404
+ .avatar-group .avatar+.avatar {
2066
2405
  margin-inline-start: calc(var(--avatar-size) * -0.3);
2067
2406
  }
2068
2407
  }
2408
+
2069
2409
  @layer components {
2070
2410
  .file-upload {
2071
2411
  display: flex;
@@ -2169,6 +2509,7 @@
2169
2509
  height: 1rem;
2170
2510
  }
2171
2511
  }
2512
+
2172
2513
  @layer components {
2173
2514
  .otp-group {
2174
2515
  display: inline-flex;
@@ -2213,6 +2554,7 @@
2213
2554
  font-weight: var(--font-semibold);
2214
2555
  }
2215
2556
  }
2557
+
2216
2558
  @layer components {
2217
2559
  .search-input {
2218
2560
  position: relative;
@@ -2298,6 +2640,7 @@
2298
2640
  display: none;
2299
2641
  }
2300
2642
  }
2643
+
2301
2644
  @layer components {
2302
2645
  .separator-vertical {
2303
2646
  border-top: none;
@@ -2323,6 +2666,7 @@
2323
2666
  border-top: 1px solid var(--border);
2324
2667
  }
2325
2668
  }
2669
+
2326
2670
  @layer components {
2327
2671
  .toggle {
2328
2672
  display: inline-flex;
@@ -2394,6 +2738,7 @@
2394
2738
  border-end-end-radius: var(--radius-medium);
2395
2739
  }
2396
2740
  }
2741
+
2397
2742
  @layer components {
2398
2743
  .chip {
2399
2744
  display: inline-flex;
@@ -2580,6 +2925,7 @@
2580
2925
  padding: 0;
2581
2926
  }
2582
2927
  }
2928
+
2583
2929
  @layer components {
2584
2930
  .carousel {
2585
2931
  position: relative;
@@ -2691,8 +3037,13 @@
2691
3037
  opacity: 0.9;
2692
3038
  }
2693
3039
 
2694
- .carousel-prev { left: var(--space-3); }
2695
- .carousel-next { right: var(--space-3); }
3040
+ .carousel-prev {
3041
+ left: var(--space-3);
3042
+ }
3043
+
3044
+ .carousel-next {
3045
+ right: var(--space-3);
3046
+ }
2696
3047
 
2697
3048
  .carousel-prev:hover,
2698
3049
  .carousel-next:hover {
@@ -2782,13 +3133,21 @@
2782
3133
  }
2783
3134
 
2784
3135
  /* Aspect ratios */
2785
- .carousel.ratio-16-9 .carousel-slide { aspect-ratio: 16 / 9; }
2786
- .carousel.ratio-4-3 .carousel-slide { aspect-ratio: 4 / 3; }
2787
- .carousel.ratio-1-1 .carousel-slide { aspect-ratio: 1 / 1; }
2788
-
2789
- /* ── Card Carousel ──────────────────────────────────────────────── */
2790
- .card-carousel {
2791
- position: relative;
3136
+ .carousel.ratio-16-9 .carousel-slide {
3137
+ aspect-ratio: 16 / 9;
3138
+ }
3139
+
3140
+ .carousel.ratio-4-3 .carousel-slide {
3141
+ aspect-ratio: 4 / 3;
3142
+ }
3143
+
3144
+ .carousel.ratio-1-1 .carousel-slide {
3145
+ aspect-ratio: 1 / 1;
3146
+ }
3147
+
3148
+ /* ── Card Carousel ──────────────────────────────────────────────── */
3149
+ .card-carousel {
3150
+ position: relative;
2792
3151
  }
2793
3152
 
2794
3153
  .card-carousel-header {
@@ -3003,114 +3362,350 @@
3003
3362
  }
3004
3363
  }
3005
3364
  }
3365
+
3006
3366
  @layer utilities {
3367
+
3007
3368
  /* ── Text alignment ──────────────────────────────────────────────────── */
3008
- .align-left { text-align: start; }
3009
- .align-center { text-align: center; }
3010
- .align-right { text-align: end; }
3369
+ .align-left {
3370
+ text-align: start;
3371
+ }
3011
3372
 
3012
- .text-left { text-align: start; }
3013
- .text-center { text-align: center; }
3014
- .text-right { text-align: end; }
3373
+ .align-center {
3374
+ text-align: center;
3375
+ }
3376
+
3377
+ .align-right {
3378
+ text-align: end;
3379
+ }
3380
+
3381
+ .text-left {
3382
+ text-align: start;
3383
+ }
3384
+
3385
+ .text-center {
3386
+ text-align: center;
3387
+ }
3388
+
3389
+ .text-right {
3390
+ text-align: end;
3391
+ }
3015
3392
 
3016
3393
  /* ── Text colors ─────────────────────────────────────────────────────── */
3017
- .text-light { color: var(--muted-foreground); }
3018
- .text-lighter { color: var(--faint-foreground); }
3019
- .text-danger { color: var(--danger); }
3020
- .text-success { color: var(--success); }
3021
- .text-warning { color: var(--warning); }
3022
- .text-primary { color: var(--primary); }
3023
- .text-muted { color: var(--muted-foreground); }
3394
+ .text-light {
3395
+ color: var(--muted-foreground);
3396
+ }
3397
+
3398
+ .text-lighter {
3399
+ color: var(--faint-foreground);
3400
+ }
3401
+
3402
+ .text-danger {
3403
+ color: var(--danger);
3404
+ }
3405
+
3406
+ .text-success {
3407
+ color: var(--success);
3408
+ }
3409
+
3410
+ .text-warning {
3411
+ color: var(--warning);
3412
+ }
3413
+
3414
+ .text-primary {
3415
+ color: var(--primary);
3416
+ }
3417
+
3418
+ .text-muted {
3419
+ color: var(--muted-foreground);
3420
+ }
3024
3421
 
3025
3422
  /* ── Text sizes (maps to theme tokens) ───────────────────────────────── */
3026
- .text-1 { font-size: var(--text-1); }
3027
- .text-2 { font-size: var(--text-2); }
3028
- .text-3 { font-size: var(--text-3); }
3029
- .text-4 { font-size: var(--text-4); }
3030
- .text-5 { font-size: var(--text-5); }
3031
- .text-6 { font-size: var(--text-6); }
3032
- .text-7 { font-size: var(--text-7); }
3033
- .text-8 { font-size: var(--text-8); }
3034
-
3035
- .text-small { font-size: var(--text-7); }
3036
- .text-xs { font-size: var(--text-8); }
3037
- .text-regular { font-size: var(--text-regular); }
3423
+ .text-1 {
3424
+ font-size: var(--text-1);
3425
+ }
3426
+
3427
+ .text-2 {
3428
+ font-size: var(--text-2);
3429
+ }
3430
+
3431
+ .text-3 {
3432
+ font-size: var(--text-3);
3433
+ }
3434
+
3435
+ .text-4 {
3436
+ font-size: var(--text-4);
3437
+ }
3438
+
3439
+ .text-5 {
3440
+ font-size: var(--text-5);
3441
+ }
3442
+
3443
+ .text-6 {
3444
+ font-size: var(--text-6);
3445
+ }
3446
+
3447
+ .text-7 {
3448
+ font-size: var(--text-7);
3449
+ }
3450
+
3451
+ .text-8 {
3452
+ font-size: var(--text-8);
3453
+ }
3454
+
3455
+ .text-small {
3456
+ font-size: var(--text-7);
3457
+ }
3458
+
3459
+ .text-xs {
3460
+ font-size: var(--text-8);
3461
+ }
3462
+
3463
+ .text-regular {
3464
+ font-size: var(--text-regular);
3465
+ }
3038
3466
 
3039
3467
  /* ── Font weight ─────────────────────────────────────────────────────── */
3040
- .font-normal { font-weight: var(--font-normal); }
3041
- .font-medium { font-weight: var(--font-medium); }
3042
- .font-semibold { font-weight: var(--font-semibold); }
3043
- .font-bold { font-weight: var(--font-bold); }
3468
+ .font-normal {
3469
+ font-weight: var(--font-normal);
3470
+ }
3471
+
3472
+ .font-medium {
3473
+ font-weight: var(--font-medium);
3474
+ }
3475
+
3476
+ .font-semibold {
3477
+ font-weight: var(--font-semibold);
3478
+ }
3479
+
3480
+ .font-bold {
3481
+ font-weight: var(--font-bold);
3482
+ }
3044
3483
 
3045
3484
  /* ── Font family ─────────────────────────────────────────────────────── */
3046
- .font-sans { font-family: var(--font-sans); }
3047
- .font-mono { font-family: var(--font-mono); }
3485
+ .font-sans {
3486
+ font-family: var(--font-sans);
3487
+ }
3488
+
3489
+ .font-mono {
3490
+ font-family: var(--font-mono);
3491
+ }
3048
3492
 
3049
3493
  /* ── Line-height ─────────────────────────────────────────────────────── */
3050
- .leading-none { line-height: var(--leading-none); }
3051
- .leading-tight { line-height: var(--leading-tight); }
3052
- .leading-snug { line-height: var(--leading-snug); }
3053
- .leading-normal { line-height: var(--leading-normal); }
3054
- .leading-relaxed { line-height: var(--leading-relaxed); }
3055
- .leading-loose { line-height: var(--leading-loose); }
3494
+ .leading-none {
3495
+ line-height: var(--leading-none);
3496
+ }
3497
+
3498
+ .leading-tight {
3499
+ line-height: var(--leading-tight);
3500
+ }
3501
+
3502
+ .leading-snug {
3503
+ line-height: var(--leading-snug);
3504
+ }
3505
+
3506
+ .leading-normal {
3507
+ line-height: var(--leading-normal);
3508
+ }
3509
+
3510
+ .leading-relaxed {
3511
+ line-height: var(--leading-relaxed);
3512
+ }
3513
+
3514
+ .leading-loose {
3515
+ line-height: var(--leading-loose);
3516
+ }
3056
3517
 
3057
3518
  /* ── Letter-spacing ──────────────────────────────────────────────────── */
3058
- .tracking-tighter { letter-spacing: var(--tracking-tighter); }
3059
- .tracking-tight { letter-spacing: var(--tracking-tight); }
3060
- .tracking-normal { letter-spacing: var(--tracking-normal); }
3061
- .tracking-wide { letter-spacing: var(--tracking-wide); }
3062
- .tracking-wider { letter-spacing: var(--tracking-wider); }
3063
- .tracking-widest { letter-spacing: var(--tracking-widest); }
3519
+ .tracking-tighter {
3520
+ letter-spacing: var(--tracking-tighter);
3521
+ }
3522
+
3523
+ .tracking-tight {
3524
+ letter-spacing: var(--tracking-tight);
3525
+ }
3526
+
3527
+ .tracking-normal {
3528
+ letter-spacing: var(--tracking-normal);
3529
+ }
3530
+
3531
+ .tracking-wide {
3532
+ letter-spacing: var(--tracking-wide);
3533
+ }
3534
+
3535
+ .tracking-wider {
3536
+ letter-spacing: var(--tracking-wider);
3537
+ }
3538
+
3539
+ .tracking-widest {
3540
+ letter-spacing: var(--tracking-widest);
3541
+ }
3064
3542
 
3065
3543
  /* ── Text transform ──────────────────────────────────────────────────── */
3066
- .uppercase { text-transform: uppercase; }
3067
- .lowercase { text-transform: lowercase; }
3068
- .capitalize { text-transform: capitalize; }
3069
- .normal-case { text-transform: none; }
3544
+ .uppercase {
3545
+ text-transform: uppercase;
3546
+ }
3547
+
3548
+ .lowercase {
3549
+ text-transform: lowercase;
3550
+ }
3551
+
3552
+ .capitalize {
3553
+ text-transform: capitalize;
3554
+ }
3555
+
3556
+ .normal-case {
3557
+ text-transform: none;
3558
+ }
3070
3559
 
3071
3560
  /* ── Text decoration ─────────────────────────────────────────────────── */
3072
- .underline { text-decoration-line: underline; }
3073
- .overline { text-decoration-line: overline; }
3074
- .line-through { text-decoration-line: line-through; }
3075
- .no-underline { text-decoration-line: none; }
3561
+ .underline {
3562
+ text-decoration-line: underline;
3563
+ }
3564
+
3565
+ .overline {
3566
+ text-decoration-line: overline;
3567
+ }
3568
+
3569
+ .line-through {
3570
+ text-decoration-line: line-through;
3571
+ }
3572
+
3573
+ .no-underline {
3574
+ text-decoration-line: none;
3575
+ }
3076
3576
 
3077
3577
  /* ── Text wrapping ───────────────────────────────────────────────────── */
3078
- .text-balance { text-wrap: balance; }
3079
- .text-pretty { text-wrap: pretty; }
3080
- .text-nowrap { text-wrap: nowrap; }
3578
+ .text-balance {
3579
+ text-wrap: balance;
3580
+ }
3581
+
3582
+ .text-pretty {
3583
+ text-wrap: pretty;
3584
+ }
3585
+
3586
+ .text-nowrap {
3587
+ text-wrap: nowrap;
3588
+ }
3081
3589
 
3082
3590
  /* ── White-space ─────────────────────────────────────────────────────── */
3083
- .whitespace-normal { white-space: normal; }
3084
- .whitespace-nowrap { white-space: nowrap; }
3085
- .whitespace-pre { white-space: pre; }
3086
- .whitespace-pre-line { white-space: pre-line; }
3087
- .whitespace-pre-wrap { white-space: pre-wrap; }
3591
+ .whitespace-normal {
3592
+ white-space: normal;
3593
+ }
3594
+
3595
+ .whitespace-nowrap {
3596
+ white-space: nowrap;
3597
+ }
3598
+
3599
+ .whitespace-pre {
3600
+ white-space: pre;
3601
+ }
3602
+
3603
+ .whitespace-pre-line {
3604
+ white-space: pre-line;
3605
+ }
3606
+
3607
+ .whitespace-pre-wrap {
3608
+ white-space: pre-wrap;
3609
+ }
3088
3610
 
3089
3611
  /* ── Line clamp (multi-line truncation) ──────────────────────────────── */
3090
- .line-clamp-1 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; }
3091
- .line-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
3092
- .line-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
3093
- .line-clamp-4 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
3094
- .line-clamp-none { display: block; -webkit-box-orient: initial; -webkit-line-clamp: none; overflow: visible; }
3612
+ .line-clamp-1 {
3613
+ display: -webkit-box;
3614
+ -webkit-box-orient: vertical;
3615
+ -webkit-line-clamp: 1;
3616
+ overflow: hidden;
3617
+ }
3618
+
3619
+ .line-clamp-2 {
3620
+ display: -webkit-box;
3621
+ -webkit-box-orient: vertical;
3622
+ -webkit-line-clamp: 2;
3623
+ overflow: hidden;
3624
+ }
3625
+
3626
+ .line-clamp-3 {
3627
+ display: -webkit-box;
3628
+ -webkit-box-orient: vertical;
3629
+ -webkit-line-clamp: 3;
3630
+ overflow: hidden;
3631
+ }
3632
+
3633
+ .line-clamp-4 {
3634
+ display: -webkit-box;
3635
+ -webkit-box-orient: vertical;
3636
+ -webkit-line-clamp: 4;
3637
+ overflow: hidden;
3638
+ }
3639
+
3640
+ .line-clamp-none {
3641
+ display: block;
3642
+ -webkit-box-orient: initial;
3643
+ -webkit-line-clamp: none;
3644
+ overflow: visible;
3645
+ }
3095
3646
 
3096
3647
  /* ── Word break ──────────────────────────────────────────────────────── */
3097
- .break-normal { overflow-wrap: normal; word-break: normal; }
3098
- .break-words { overflow-wrap: break-word; }
3099
- .break-all { word-break: break-all; }
3648
+ .break-normal {
3649
+ overflow-wrap: normal;
3650
+ word-break: normal;
3651
+ }
3652
+
3653
+ .break-words {
3654
+ overflow-wrap: break-word;
3655
+ }
3656
+
3657
+ .break-all {
3658
+ word-break: break-all;
3659
+ }
3100
3660
 
3101
3661
  /* ── Flexbox ─────────────────────────────────────────────────────────── */
3102
- .flex { display: flex; }
3103
- .flex-col { flex-direction: column; }
3104
- .flex-row { flex-direction: row; }
3105
- .flex-wrap { flex-wrap: wrap; }
3106
- .flex-1 { flex: 1; }
3107
- .items-center { align-items: center; }
3108
- .items-start { align-items: flex-start; }
3109
- .items-end { align-items: flex-end; }
3110
- .justify-center { justify-content: center; }
3111
- .justify-between { justify-content: space-between; }
3112
- .justify-end { justify-content: flex-end; }
3113
- .justify-start { justify-content: flex-start; }
3662
+ .flex {
3663
+ display: flex;
3664
+ }
3665
+
3666
+ .flex-col {
3667
+ flex-direction: column;
3668
+ }
3669
+
3670
+ .flex-row {
3671
+ flex-direction: row;
3672
+ }
3673
+
3674
+ .flex-wrap {
3675
+ flex-wrap: wrap;
3676
+ }
3677
+
3678
+ .flex-1 {
3679
+ flex: 1;
3680
+ }
3681
+
3682
+ .items-center {
3683
+ align-items: center;
3684
+ }
3685
+
3686
+ .items-start {
3687
+ align-items: flex-start;
3688
+ }
3689
+
3690
+ .items-end {
3691
+ align-items: flex-end;
3692
+ }
3693
+
3694
+ .justify-center {
3695
+ justify-content: center;
3696
+ }
3697
+
3698
+ .justify-between {
3699
+ justify-content: space-between;
3700
+ }
3701
+
3702
+ .justify-end {
3703
+ justify-content: flex-end;
3704
+ }
3705
+
3706
+ .justify-start {
3707
+ justify-content: flex-start;
3708
+ }
3114
3709
 
3115
3710
  /* Bootstrap inspired. */
3116
3711
  .hstack {
@@ -3125,6 +3720,7 @@
3125
3720
  margin: 0;
3126
3721
  }
3127
3722
  }
3723
+
3128
3724
  .vstack {
3129
3725
  display: flex;
3130
3726
  flex-direction: column;
@@ -3132,59 +3728,174 @@
3132
3728
  }
3133
3729
 
3134
3730
  /* ── Gap ──────────────────────────────────────────────────────────────── */
3135
- .gap-1 { gap: var(--space-1); }
3136
- .gap-2 { gap: var(--space-2); }
3137
- .gap-3 { gap: var(--space-3); }
3138
- .gap-4 { gap: var(--space-4); }
3139
- .gap-6 { gap: var(--space-6); }
3140
- .gap-8 { gap: var(--space-8); }
3731
+ .gap-1 {
3732
+ gap: var(--space-1);
3733
+ }
3734
+
3735
+ .gap-2 {
3736
+ gap: var(--space-2);
3737
+ }
3738
+
3739
+ .gap-3 {
3740
+ gap: var(--space-3);
3741
+ }
3742
+
3743
+ .gap-4 {
3744
+ gap: var(--space-4);
3745
+ }
3746
+
3747
+ .gap-6 {
3748
+ gap: var(--space-6);
3749
+ }
3750
+
3751
+ .gap-8 {
3752
+ gap: var(--space-8);
3753
+ }
3141
3754
 
3142
3755
  /* ── Margin ──────────────────────────────────────────────────────────── */
3143
- .mt-0 { margin-block-start: 0; }
3144
- .mt-2 { margin-block-start: var(--space-2); }
3145
- .mt-4 { margin-block-start: var(--space-4); }
3146
- .mt-6 { margin-block-start: var(--space-6); }
3147
- .mt-8 { margin-block-start: var(--space-8); }
3148
-
3149
- .mb-0 { margin-block-end: 0; }
3150
- .mb-2 { margin-block-end: var(--space-2); }
3151
- .mb-4 { margin-block-end: var(--space-4); }
3152
- .mb-6 { margin-block-end: var(--space-6); }
3153
- .mb-8 { margin-block-end: var(--space-8); }
3756
+ .mt-0 {
3757
+ margin-block-start: 0;
3758
+ }
3759
+
3760
+ .mt-2 {
3761
+ margin-block-start: var(--space-2);
3762
+ }
3763
+
3764
+ .mt-4 {
3765
+ margin-block-start: var(--space-4);
3766
+ }
3767
+
3768
+ .mt-6 {
3769
+ margin-block-start: var(--space-6);
3770
+ }
3771
+
3772
+ .mt-8 {
3773
+ margin-block-start: var(--space-8);
3774
+ }
3775
+
3776
+ .mb-0 {
3777
+ margin-block-end: 0;
3778
+ }
3779
+
3780
+ .mb-2 {
3781
+ margin-block-end: var(--space-2);
3782
+ }
3783
+
3784
+ .mb-4 {
3785
+ margin-block-end: var(--space-4);
3786
+ }
3787
+
3788
+ .mb-6 {
3789
+ margin-block-end: var(--space-6);
3790
+ }
3791
+
3792
+ .mb-8 {
3793
+ margin-block-end: var(--space-8);
3794
+ }
3154
3795
 
3155
3796
  /* ── Padding ─────────────────────────────────────────────────────────── */
3156
- .p-0 { padding: 0; }
3157
- .p-2 { padding: var(--space-2); }
3158
- .p-4 { padding: var(--space-4); }
3159
- .p-6 { padding: var(--space-6); }
3160
- .p-8 { padding: var(--space-8); }
3797
+ .p-0 {
3798
+ padding: 0;
3799
+ }
3800
+
3801
+ .p-2 {
3802
+ padding: var(--space-2);
3803
+ }
3161
3804
 
3162
- .px-2 { padding-inline: var(--space-2); }
3163
- .px-4 { padding-inline: var(--space-4); }
3164
- .py-2 { padding-block: var(--space-2); }
3165
- .py-4 { padding-block: var(--space-4); }
3805
+ .p-4 {
3806
+ padding: var(--space-4);
3807
+ }
3808
+
3809
+ .p-6 {
3810
+ padding: var(--space-6);
3811
+ }
3812
+
3813
+ .p-8 {
3814
+ padding: var(--space-8);
3815
+ }
3816
+
3817
+ .px-2 {
3818
+ padding-inline: var(--space-2);
3819
+ }
3820
+
3821
+ .px-4 {
3822
+ padding-inline: var(--space-4);
3823
+ }
3824
+
3825
+ .py-2 {
3826
+ padding-block: var(--space-2);
3827
+ }
3828
+
3829
+ .py-4 {
3830
+ padding-block: var(--space-4);
3831
+ }
3166
3832
 
3167
3833
  /* ── Width ───────────────────────────────────────────────────────────── */
3168
- .w-100 { width: 100%; }
3169
- .w-auto { width: auto; }
3170
- .max-w-sm { max-width: 24rem; }
3171
- .max-w-md { max-width: 28rem; }
3172
- .max-w-lg { max-width: 32rem; }
3173
- .max-w-xl { max-width: 36rem; }
3834
+ .w-100 {
3835
+ width: 100%;
3836
+ }
3837
+
3838
+ .w-auto {
3839
+ width: auto;
3840
+ }
3841
+
3842
+ .max-w-sm {
3843
+ max-width: 24rem;
3844
+ }
3845
+
3846
+ .max-w-md {
3847
+ max-width: 28rem;
3848
+ }
3849
+
3850
+ .max-w-lg {
3851
+ max-width: 32rem;
3852
+ }
3853
+
3854
+ .max-w-xl {
3855
+ max-width: 36rem;
3856
+ }
3174
3857
 
3175
3858
  /* ── Display ─────────────────────────────────────────────────────────── */
3176
- .d-none { display: none; }
3177
- .d-block { display: block; }
3178
- .d-flex { display: flex; }
3179
- .d-grid { display: grid; }
3180
- .d-inline { display: inline; }
3181
- .d-inline-block { display: inline-block; }
3182
- .d-inline-flex { display: inline-flex; }
3859
+ .d-none {
3860
+ display: none;
3861
+ }
3862
+
3863
+ .d-block {
3864
+ display: block;
3865
+ }
3866
+
3867
+ .d-flex {
3868
+ display: flex;
3869
+ }
3870
+
3871
+ .d-grid {
3872
+ display: grid;
3873
+ }
3874
+
3875
+ .d-inline {
3876
+ display: inline;
3877
+ }
3878
+
3879
+ .d-inline-block {
3880
+ display: inline-block;
3881
+ }
3882
+
3883
+ .d-inline-flex {
3884
+ display: inline-flex;
3885
+ }
3183
3886
 
3184
3887
  /* ── Overflow ─────────────────────────────────────────────────────────── */
3185
- .overflow-auto { overflow: auto; }
3186
- .overflow-hidden { overflow: hidden; }
3187
- .overflow-x-auto { overflow-x: auto; }
3888
+ .overflow-auto {
3889
+ overflow: auto;
3890
+ }
3891
+
3892
+ .overflow-hidden {
3893
+ overflow: hidden;
3894
+ }
3895
+
3896
+ .overflow-x-auto {
3897
+ overflow-x: auto;
3898
+ }
3188
3899
 
3189
3900
  /* ── Misc ─────────────────────────────────────────────────────────────── */
3190
3901
  .truncate {
@@ -3213,117 +3924,340 @@
3213
3924
 
3214
3925
  /* ── Responsive display utilities (media queries) ────────────────────── */
3215
3926
  @media (max-width: 639px) {
3216
- .sm\:d-none { display: none; }
3217
- .hide-mobile { display: none; }
3927
+ .sm\:d-none {
3928
+ display: none;
3929
+ }
3930
+
3931
+ .hide-mobile {
3932
+ display: none;
3933
+ }
3218
3934
  }
3935
+
3219
3936
  @media (min-width: 640px) {
3220
- .sm\:d-block { display: block; }
3221
- .sm\:d-flex { display: flex; }
3222
- .sm\:d-grid { display: grid; }
3223
- .sm\:d-none { display: none; }
3224
- .sm\:flex-row { flex-direction: row; }
3225
- .sm\:flex-col { flex-direction: column; }
3226
- .show-mobile { display: none; }
3937
+ .sm\:d-block {
3938
+ display: block;
3939
+ }
3940
+
3941
+ .sm\:d-flex {
3942
+ display: flex;
3943
+ }
3944
+
3945
+ .sm\:d-grid {
3946
+ display: grid;
3947
+ }
3948
+
3949
+ .sm\:d-none {
3950
+ display: none;
3951
+ }
3952
+
3953
+ .sm\:flex-row {
3954
+ flex-direction: row;
3955
+ }
3956
+
3957
+ .sm\:flex-col {
3958
+ flex-direction: column;
3959
+ }
3960
+
3961
+ .show-mobile {
3962
+ display: none;
3963
+ }
3227
3964
  }
3965
+
3228
3966
  @media (min-width: 768px) {
3229
- .md\:d-block { display: block; }
3230
- .md\:d-flex { display: flex; }
3231
- .md\:d-grid { display: grid; }
3232
- .md\:d-none { display: none; }
3233
- .md\:flex-row { flex-direction: row; }
3234
- .md\:flex-col { flex-direction: column; }
3967
+ .md\:d-block {
3968
+ display: block;
3969
+ }
3970
+
3971
+ .md\:d-flex {
3972
+ display: flex;
3973
+ }
3974
+
3975
+ .md\:d-grid {
3976
+ display: grid;
3977
+ }
3978
+
3979
+ .md\:d-none {
3980
+ display: none;
3981
+ }
3982
+
3983
+ .md\:flex-row {
3984
+ flex-direction: row;
3985
+ }
3986
+
3987
+ .md\:flex-col {
3988
+ flex-direction: column;
3989
+ }
3235
3990
  }
3991
+
3236
3992
  @media (min-width: 1024px) {
3237
- .lg\:d-block { display: block; }
3238
- .lg\:d-flex { display: flex; }
3239
- .lg\:d-grid { display: grid; }
3240
- .lg\:d-none { display: none; }
3241
- .lg\:flex-row { flex-direction: row; }
3242
- .lg\:flex-col { flex-direction: column; }
3993
+ .lg\:d-block {
3994
+ display: block;
3995
+ }
3996
+
3997
+ .lg\:d-flex {
3998
+ display: flex;
3999
+ }
4000
+
4001
+ .lg\:d-grid {
4002
+ display: grid;
4003
+ }
4004
+
4005
+ .lg\:d-none {
4006
+ display: none;
4007
+ }
4008
+
4009
+ .lg\:flex-row {
4010
+ flex-direction: row;
4011
+ }
4012
+
4013
+ .lg\:flex-col {
4014
+ flex-direction: column;
4015
+ }
3243
4016
  }
4017
+
3244
4018
  @media (min-width: 1280px) {
3245
- .xl\:d-block { display: block; }
3246
- .xl\:d-flex { display: flex; }
3247
- .xl\:d-grid { display: grid; }
3248
- .xl\:d-none { display: none; }
4019
+ .xl\:d-block {
4020
+ display: block;
4021
+ }
4022
+
4023
+ .xl\:d-flex {
4024
+ display: flex;
4025
+ }
4026
+
4027
+ .xl\:d-grid {
4028
+ display: grid;
4029
+ }
4030
+
4031
+ .xl\:d-none {
4032
+ display: none;
4033
+ }
3249
4034
  }
3250
4035
 
3251
4036
  /* ── Responsive text alignment ───────────────────────────────────────── */
3252
4037
  @media (min-width: 640px) {
3253
- .sm\:text-left { text-align: start; }
3254
- .sm\:text-center { text-align: center; }
3255
- .sm\:text-right { text-align: end; }
4038
+ .sm\:text-left {
4039
+ text-align: start;
4040
+ }
4041
+
4042
+ .sm\:text-center {
4043
+ text-align: center;
4044
+ }
4045
+
4046
+ .sm\:text-right {
4047
+ text-align: end;
4048
+ }
3256
4049
  }
4050
+
3257
4051
  @media (min-width: 768px) {
3258
- .md\:text-left { text-align: start; }
3259
- .md\:text-center { text-align: center; }
3260
- .md\:text-right { text-align: end; }
4052
+ .md\:text-left {
4053
+ text-align: start;
4054
+ }
4055
+
4056
+ .md\:text-center {
4057
+ text-align: center;
4058
+ }
4059
+
4060
+ .md\:text-right {
4061
+ text-align: end;
4062
+ }
3261
4063
  }
4064
+
3262
4065
  @media (min-width: 1024px) {
3263
- .lg\:text-left { text-align: start; }
3264
- .lg\:text-center { text-align: center; }
3265
- .lg\:text-right { text-align: end; }
4066
+ .lg\:text-left {
4067
+ text-align: start;
4068
+ }
4069
+
4070
+ .lg\:text-center {
4071
+ text-align: center;
4072
+ }
4073
+
4074
+ .lg\:text-right {
4075
+ text-align: end;
4076
+ }
3266
4077
  }
3267
4078
 
3268
4079
  /* ── Responsive text sizes ─────────────────────────────────────────── */
3269
4080
  @media (min-width: 640px) {
3270
- .sm\:text-1 { font-size: var(--text-1); }
3271
- .sm\:text-2 { font-size: var(--text-2); }
3272
- .sm\:text-3 { font-size: var(--text-3); }
3273
- .sm\:text-4 { font-size: var(--text-4); }
3274
- .sm\:text-5 { font-size: var(--text-5); }
3275
- .sm\:text-6 { font-size: var(--text-6); }
3276
- .sm\:text-7 { font-size: var(--text-7); }
3277
- .sm\:text-8 { font-size: var(--text-8); }
4081
+ .sm\:text-1 {
4082
+ font-size: var(--text-1);
4083
+ }
4084
+
4085
+ .sm\:text-2 {
4086
+ font-size: var(--text-2);
4087
+ }
4088
+
4089
+ .sm\:text-3 {
4090
+ font-size: var(--text-3);
4091
+ }
4092
+
4093
+ .sm\:text-4 {
4094
+ font-size: var(--text-4);
4095
+ }
4096
+
4097
+ .sm\:text-5 {
4098
+ font-size: var(--text-5);
4099
+ }
4100
+
4101
+ .sm\:text-6 {
4102
+ font-size: var(--text-6);
4103
+ }
4104
+
4105
+ .sm\:text-7 {
4106
+ font-size: var(--text-7);
4107
+ }
4108
+
4109
+ .sm\:text-8 {
4110
+ font-size: var(--text-8);
4111
+ }
3278
4112
  }
4113
+
3279
4114
  @media (min-width: 768px) {
3280
- .md\:text-1 { font-size: var(--text-1); }
3281
- .md\:text-2 { font-size: var(--text-2); }
3282
- .md\:text-3 { font-size: var(--text-3); }
3283
- .md\:text-4 { font-size: var(--text-4); }
3284
- .md\:text-5 { font-size: var(--text-5); }
3285
- .md\:text-6 { font-size: var(--text-6); }
3286
- .md\:text-7 { font-size: var(--text-7); }
3287
- .md\:text-8 { font-size: var(--text-8); }
4115
+ .md\:text-1 {
4116
+ font-size: var(--text-1);
4117
+ }
4118
+
4119
+ .md\:text-2 {
4120
+ font-size: var(--text-2);
4121
+ }
4122
+
4123
+ .md\:text-3 {
4124
+ font-size: var(--text-3);
4125
+ }
4126
+
4127
+ .md\:text-4 {
4128
+ font-size: var(--text-4);
4129
+ }
4130
+
4131
+ .md\:text-5 {
4132
+ font-size: var(--text-5);
4133
+ }
4134
+
4135
+ .md\:text-6 {
4136
+ font-size: var(--text-6);
4137
+ }
4138
+
4139
+ .md\:text-7 {
4140
+ font-size: var(--text-7);
4141
+ }
4142
+
4143
+ .md\:text-8 {
4144
+ font-size: var(--text-8);
4145
+ }
3288
4146
  }
4147
+
3289
4148
  @media (min-width: 1024px) {
3290
- .lg\:text-1 { font-size: var(--text-1); }
3291
- .lg\:text-2 { font-size: var(--text-2); }
3292
- .lg\:text-3 { font-size: var(--text-3); }
3293
- .lg\:text-4 { font-size: var(--text-4); }
3294
- .lg\:text-5 { font-size: var(--text-5); }
3295
- .lg\:text-6 { font-size: var(--text-6); }
3296
- .lg\:text-7 { font-size: var(--text-7); }
3297
- .lg\:text-8 { font-size: var(--text-8); }
4149
+ .lg\:text-1 {
4150
+ font-size: var(--text-1);
4151
+ }
4152
+
4153
+ .lg\:text-2 {
4154
+ font-size: var(--text-2);
4155
+ }
4156
+
4157
+ .lg\:text-3 {
4158
+ font-size: var(--text-3);
4159
+ }
4160
+
4161
+ .lg\:text-4 {
4162
+ font-size: var(--text-4);
4163
+ }
4164
+
4165
+ .lg\:text-5 {
4166
+ font-size: var(--text-5);
4167
+ }
4168
+
4169
+ .lg\:text-6 {
4170
+ font-size: var(--text-6);
4171
+ }
4172
+
4173
+ .lg\:text-7 {
4174
+ font-size: var(--text-7);
4175
+ }
4176
+
4177
+ .lg\:text-8 {
4178
+ font-size: var(--text-8);
4179
+ }
3298
4180
  }
3299
4181
 
3300
4182
  /* ── Responsive gap ──────────────────────────────────────────────────── */
3301
4183
  @media (min-width: 640px) {
3302
- .sm\:gap-2 { gap: var(--space-2); }
3303
- .sm\:gap-4 { gap: var(--space-4); }
3304
- .sm\:gap-6 { gap: var(--space-6); }
3305
- .sm\:gap-8 { gap: var(--space-8); }
4184
+ .sm\:gap-2 {
4185
+ gap: var(--space-2);
4186
+ }
4187
+
4188
+ .sm\:gap-4 {
4189
+ gap: var(--space-4);
4190
+ }
4191
+
4192
+ .sm\:gap-6 {
4193
+ gap: var(--space-6);
4194
+ }
4195
+
4196
+ .sm\:gap-8 {
4197
+ gap: var(--space-8);
4198
+ }
3306
4199
  }
4200
+
3307
4201
  @media (min-width: 768px) {
3308
- .md\:gap-2 { gap: var(--space-2); }
3309
- .md\:gap-4 { gap: var(--space-4); }
3310
- .md\:gap-6 { gap: var(--space-6); }
3311
- .md\:gap-8 { gap: var(--space-8); }
4202
+ .md\:gap-2 {
4203
+ gap: var(--space-2);
4204
+ }
4205
+
4206
+ .md\:gap-4 {
4207
+ gap: var(--space-4);
4208
+ }
4209
+
4210
+ .md\:gap-6 {
4211
+ gap: var(--space-6);
4212
+ }
4213
+
4214
+ .md\:gap-8 {
4215
+ gap: var(--space-8);
4216
+ }
3312
4217
  }
3313
4218
 
3314
4219
  /* ── Responsive padding ──────────────────────────────────────────────── */
3315
4220
  @media (min-width: 640px) {
3316
- .sm\:p-4 { padding: var(--space-4); }
3317
- .sm\:p-6 { padding: var(--space-6); }
3318
- .sm\:p-8 { padding: var(--space-8); }
3319
- .sm\:px-4 { padding-inline: var(--space-4); }
3320
- .sm\:px-6 { padding-inline: var(--space-6); }
4221
+ .sm\:p-4 {
4222
+ padding: var(--space-4);
4223
+ }
4224
+
4225
+ .sm\:p-6 {
4226
+ padding: var(--space-6);
4227
+ }
4228
+
4229
+ .sm\:p-8 {
4230
+ padding: var(--space-8);
4231
+ }
4232
+
4233
+ .sm\:px-4 {
4234
+ padding-inline: var(--space-4);
4235
+ }
4236
+
4237
+ .sm\:px-6 {
4238
+ padding-inline: var(--space-6);
4239
+ }
3321
4240
  }
4241
+
3322
4242
  @media (min-width: 768px) {
3323
- .md\:p-4 { padding: var(--space-4); }
3324
- .md\:p-6 { padding: var(--space-6); }
3325
- .md\:p-8 { padding: var(--space-8); }
3326
- .md\:px-4 { padding-inline: var(--space-4); }
3327
- .md\:px-6 { padding-inline: var(--space-6); }
4243
+ .md\:p-4 {
4244
+ padding: var(--space-4);
4245
+ }
4246
+
4247
+ .md\:p-6 {
4248
+ padding: var(--space-6);
4249
+ }
4250
+
4251
+ .md\:p-8 {
4252
+ padding: var(--space-8);
4253
+ }
4254
+
4255
+ .md\:px-4 {
4256
+ padding-inline: var(--space-4);
4257
+ }
4258
+
4259
+ .md\:px-6 {
4260
+ padding-inline: var(--space-6);
4261
+ }
3328
4262
  }
3329
- }
4263
+ }