@khipu/design-system 0.1.0-alpha.29 → 0.1.0-alpha.31

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.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
13
13
  * Source: design-system/src/tokens/tokens.json
14
- * Generated: 2026-03-26T19:18:15.487Z
14
+ * Generated: 2026-04-01T17:47:56.079Z
15
15
  *
16
16
  * To regenerate:
17
17
  * cd design-system && npm run tokens:generate
@@ -138,6 +138,20 @@
138
138
  --kds-typography-button-line-height: 26px;
139
139
  --kds-typography-button-letter-spacing: 0.46px;
140
140
 
141
+ /* Typography margins */
142
+ --kds-typography-h1-margin-block-start: 0;
143
+ --kds-typography-h1-margin-block-end: 0;
144
+ --kds-typography-h2-margin-block-start: 0;
145
+ --kds-typography-h2-margin-block-end: 0;
146
+ --kds-typography-h3-margin-block-start: 0;
147
+ --kds-typography-h3-margin-block-end: 0;
148
+ --kds-typography-h4-margin-block-start: 0;
149
+ --kds-typography-h4-margin-block-end: 0;
150
+ --kds-typography-h5-margin-block-start: 0;
151
+ --kds-typography-h5-margin-block-end: 0;
152
+ --kds-typography-h6-margin-block-start: 0;
153
+ --kds-typography-h6-margin-block-end: 0;
154
+
141
155
  /* ==========================================================================
142
156
  SPACING TOKENS
143
157
  ========================================================================== */
@@ -175,6 +189,7 @@
175
189
  --kds-spacing-sidebar-nav-item-gap: 12px;
176
190
  --kds-spacing-sidebar-submenu-indent: 64px;
177
191
  --kds-spacing-sidebar-icon-size: 24px;
192
+ --kds-spacing-sidebar-icon-size-md: 32px;
178
193
  --kds-spacing-sidebar-icon-container-size: 40px;
179
194
  --kds-spacing-sidebar-label-padding-x: 24px;
180
195
  --kds-spacing-sidebar-label-padding-y: 8px;
@@ -225,6 +240,7 @@
225
240
  --kds-shadow-1: 0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12);
226
241
  --kds-shadow-2: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12);
227
242
  --kds-shadow-4: 0px 2px 4px -1px rgba(0,0,0,0.2), 0px 4px 5px 0px rgba(0,0,0,0.14), 0px 1px 10px 0px rgba(0,0,0,0.12);
243
+ --kds-shadow-6: 0px 3px 4px -2px rgba(0,0,0,0.2), 0px 6px 7px 0px rgba(0,0,0,0.14), 0px 2px 12px 1px rgba(0,0,0,0.12);
228
244
  --kds-shadow-8: 0px 5px 5px -3px rgba(0,0,0,0.2), 0px 8px 10px 1px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12);
229
245
  --kds-shadow-16: 0px 8px 10px -5px rgba(0,0,0,0.2), 0px 16px 24px 2px rgba(0,0,0,0.14), 0px 6px 30px 5px rgba(0,0,0,0.12);
230
246
  --kds-shadow-24: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12);
@@ -267,13 +283,151 @@
267
283
 
268
284
 
269
285
  /* Breakpoints */
270
- --kds-breakpoint-mobile: 768px;
271
- --kds-breakpoint-tablet: 1024px;
272
- --kds-breakpoint-desktop: 1025px;
286
+ --kds-breakpoint-mobile: 600px;
287
+ --kds-breakpoint-tablet: 840px;
288
+ --kds-breakpoint-desktop: 1280px;
289
+ --kds-breakpoint-legacyMobile: 768px;
290
+ --kds-breakpoint-legacyTablet: 1024px;
291
+
292
+ /* ==========================================================================
293
+ RESPONSIVE SPACING (MOBILE BASE)
294
+ ========================================================================== */
295
+
296
+
297
+ /* Container */
298
+ --kds-container-padding: 16px;
299
+
300
+ /* Cards */
301
+ --kds-card-padding: 16px;
302
+
303
+ /* Sections */
304
+ --kds-section-gap: 24px;
305
+
306
+ /* Elements */
307
+ --kds-element-gap: 12px;
308
+
309
+ /* Margins */
310
+ --kds-section-margin: 16px;
311
+
312
+ /* ==========================================================================
313
+ RESPONSIVE TYPOGRAPHY (MOBILE BASE)
314
+ ========================================================================== */
315
+
316
+
317
+ /* Headings */
318
+ --kds-font-size-h1: 1.75rem;
319
+ --kds-font-size-h2: 1.5rem;
320
+ --kds-font-size-h3: 1.25rem;
321
+ --kds-font-size-h4: 1.125rem;
322
+ --kds-font-size-h5: 1rem;
323
+ --kds-font-size-h6: 1rem;
324
+
325
+ /* Body */
326
+ --kds-font-size-body1: 0.875rem;
327
+ --kds-font-size-body2: 0.8125rem;
328
+
329
+ /* Components */
330
+ --kds-font-size-button: 0.875rem;
331
+ --kds-font-size-caption: 0.6875rem;
332
+
333
+ }
334
+
335
+ /* ============================================================================
336
+ RESPONSIVE TOKENS (Mobile-First)
337
+ ============================================================================ */
338
+
339
+ /* Tablet (600px+) - Spacing */
340
+ @media (min-width: 600px) {
341
+ :root {
342
+ --kds-container-padding: 24px;
343
+ --kds-card-padding: 20px;
344
+ --kds-section-gap: 32px;
345
+ --kds-element-gap: 16px;
346
+ --kds-section-margin: 24px;
347
+ }
348
+ }
349
+
350
+ /* Tablet (600px+) - Typography */
351
+ @media (min-width: 600px) {
352
+ :root {
353
+ --kds-font-size-h1: 2rem;
354
+ --kds-font-size-h2: 1.75rem;
355
+ --kds-font-size-h3: 1.5rem;
356
+ --kds-font-size-h4: 1.25rem;
357
+ --kds-font-size-h5: 1.125rem;
358
+ --kds-font-size-h6: 1rem;
359
+ --kds-font-size-body1: 0.9375rem;
360
+ --kds-font-size-body2: 0.875rem;
361
+ --kds-font-size-button: 0.9375rem;
362
+ --kds-font-size-caption: 0.75rem;
363
+ }
364
+ }
365
+
366
+ /* Desktop (840px+) - Spacing */
367
+ @media (min-width: 840px) {
368
+ :root {
369
+ --kds-container-padding: 32px;
370
+ --kds-card-padding: 24px;
371
+ --kds-section-gap: 48px;
372
+ --kds-element-gap: 24px;
373
+ --kds-section-margin: 32px;
374
+ }
375
+ }
376
+
377
+ /* Desktop (840px+) - Typography */
378
+ @media (min-width: 840px) {
379
+ :root {
380
+ --kds-font-size-h1: 2.5rem;
381
+ --kds-font-size-h2: 2rem;
382
+ --kds-font-size-h3: 1.75rem;
383
+ --kds-font-size-h4: 1.5rem;
384
+ --kds-font-size-h5: 1.25rem;
385
+ --kds-font-size-h6: 1.25rem;
386
+ --kds-font-size-body1: 1rem;
387
+ --kds-font-size-body2: 0.875rem;
388
+ --kds-font-size-button: 0.9375rem;
389
+ --kds-font-size-caption: 0.75rem;
390
+ }
391
+ }
392
+
393
+ /* ============================================================================
394
+ BASE TYPOGRAPHY STYLES
395
+ Reset default browser margins using design tokens
396
+ Higher specificity to override BeerCSS framework
397
+ ============================================================================ */
398
+
399
+ :where(h1) {
400
+ margin-block-start: var(--kds-typography-h1-margin-block-start) !important;
401
+ margin-block-end: var(--kds-typography-h1-margin-block-end) !important;
402
+ }
403
+
404
+ :where(h2) {
405
+ margin-block-start: var(--kds-typography-h2-margin-block-start) !important;
406
+ margin-block-end: var(--kds-typography-h2-margin-block-end) !important;
407
+ }
408
+
409
+ :where(h3) {
410
+ margin-block-start: var(--kds-typography-h3-margin-block-start) !important;
411
+ margin-block-end: var(--kds-typography-h3-margin-block-end) !important;
412
+ }
413
+
414
+ :where(h4) {
415
+ margin-block-start: var(--kds-typography-h4-margin-block-start) !important;
416
+ margin-block-end: var(--kds-typography-h4-margin-block-end) !important;
417
+ }
418
+
419
+ :where(h5) {
420
+ margin-block-start: var(--kds-typography-h5-margin-block-start) !important;
421
+ margin-block-end: var(--kds-typography-h5-margin-block-end) !important;
422
+ }
273
423
 
424
+ :where(h6) {
425
+ margin-block-start: var(--kds-typography-h6-margin-block-start) !important;
426
+ margin-block-end: var(--kds-typography-h6-margin-block-end) !important;
274
427
  }
275
428
 
276
429
 
430
+
277
431
  /* Khipu BeerCSS Variable Mappings */
278
432
  /* Khipu Material Design 3 Brand Tokens for BeerCSS
279
433
  * Imports core tokens from css-variables.css (auto-generated from src/tokens/index.ts)
@@ -360,8 +514,8 @@ body.dark {
360
514
 
361
515
  /* Modal Base */
362
516
  --kds-modal-bg: var(--kds-color-background-paper);
363
- --kds-modal-padding: var(--kds-spacing-6);
364
- --kds-modal-padding-mobile: var(--kds-spacing-4);
517
+ --kds-modal-padding: var(--kds-spacing-4);
518
+ --kds-modal-padding-mobile: var(--kds-spacing-2);
365
519
  --kds-modal-border-radius: var(--kds-radius-lg);
366
520
  --kds-modal-shadow: var(--kds-shadow-4);
367
521
  --kds-modal-backdrop: rgba(0, 0, 0, 0.5);
@@ -402,6 +556,22 @@ body.dark {
402
556
  --kds-onboarding-max-width: 800px;
403
557
  --kds-onboarding-padding: var(--kds-spacing-6);
404
558
  --kds-onboarding-gap: var(--kds-spacing-6);
559
+
560
+ /* Button Size Variants */
561
+ --kds-button-sm-min-height: 36px;
562
+ --kds-button-sm-padding-y: 6px;
563
+ --kds-button-sm-padding-x: 16px;
564
+ --kds-button-sm-padding: 6px 16px;
565
+
566
+ --kds-button-md-min-height: 42px;
567
+ --kds-button-md-padding-y: 8px;
568
+ --kds-button-md-padding-x: 20px;
569
+ --kds-button-md-padding: 8px 20px;
570
+
571
+ /* Scroll Container Utilities */
572
+ --kds-scroll-sm-height: 280px;
573
+ --kds-scroll-md-height: 420px;
574
+ --kds-scroll-lg-height: 600px;
405
575
  }
406
576
 
407
577
  /* ========================================
@@ -459,6 +629,32 @@ footer {
459
629
  background-color: transparent !important;
460
630
  }
461
631
 
632
+ /* ========================================
633
+ TEXT UTILITIES OVERRIDE
634
+ Fix BeerCSS classes that use wrong color tokens
635
+ ======================================== */
636
+
637
+ /* BeerCSS confuses theme colors (primary/secondary/tertiary) with text colors.
638
+ We must use !important to override BeerCSS's !important declarations */
639
+
640
+ /* Primary text - should be almost black, not purple */
641
+ body .primary-text,
642
+ .primary-text.primary-text {
643
+ color: var(--kds-color-text-primary) !important;
644
+ }
645
+
646
+ /* Secondary text - should be gray, not green */
647
+ body .secondary-text,
648
+ .secondary-text.secondary-text {
649
+ color: var(--kds-color-text-secondary) !important;
650
+ }
651
+
652
+ /* Tertiary text - should be disabled/hint color, not tertiary theme color */
653
+ body .tertiary-text,
654
+ .tertiary-text.tertiary-text {
655
+ color: var(--kds-color-text-disabled) !important;
656
+ }
657
+
462
658
  /* ========================================
463
659
  KHIPU BUTTON SYSTEM
464
660
  Custom button components - don't modify BeerCSS classes
@@ -618,7 +814,7 @@ a.kds-btn-text {
618
814
  background: transparent;
619
815
  color: var(--kds-color-primary-main);
620
816
  border: none;
621
- padding: 6px 16px; /* Menor padding para text variant */
817
+ padding: 6px var(--kds-spacing-2); /* Menor padding para text variant */
622
818
  min-height: 32px; /* Menor altura para text variant */
623
819
  box-shadow: none;
624
820
  }
@@ -656,8 +852,30 @@ a.kds-btn > .kds-icon > i {
656
852
  min-width: var(--kds-spacing-button-icon-size);
657
853
  min-height: var(--kds-spacing-button-icon-size);
658
854
  line-height: 1;
855
+ top: 1px;
856
+ }
857
+
858
+ /* ========================================
859
+ Button Size Variants
860
+ ======================================== */
861
+
862
+ /* Small button - for compact contexts (cards with side-by-side actions) */
863
+ button.kds-btn.kds-btn-sm,
864
+ a.kds-btn.kds-btn-sm {
865
+ min-height: var(--kds-button-sm-min-height);
866
+ padding: var(--kds-button-sm-padding);
867
+ font-size: var(--kds-font-size-sm);
868
+ }
869
+
870
+ /* Medium button - balanced size between small and default */
871
+ button.kds-btn.kds-btn-md,
872
+ a.kds-btn.kds-btn-md {
873
+ min-height: var(--kds-button-md-min-height);
874
+ padding: var(--kds-button-md-padding);
659
875
  }
660
876
 
877
+ /* Default .kds-btn uses --kds-spacing-button-min-height (50px) from base styles */
878
+
661
879
  /* ========================================
662
880
  Card Components (Material Design 3)
663
881
  ======================================== */
@@ -665,34 +883,34 @@ a.kds-btn > .kds-icon > i {
665
883
  /* Base elevated card */
666
884
  .kds-card-elevated,
667
885
  .khipu-card-elevated {
668
- background: #FFFFFF;
669
- border-radius: 16px;
670
- padding: 32px;
671
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
886
+ background: var(--kds-color-background-paper);
887
+ border-radius: var(--kds-radius-md);
888
+ padding: var(--kds-spacing-2);
889
+ box-shadow: var(--kds-shadow-card);
672
890
  transition: box-shadow 0.3s ease;
673
891
  }
674
892
 
675
893
  .kds-card-elevated:hover,
676
894
  .khipu-card-elevated:hover {
677
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
895
+ box-shadow: var(--kds-shadow-6);
678
896
  }
679
897
 
680
898
  /* Main content card (centered, max-width) */
681
899
  .kds-card-main {
682
- background: #FFFFFF;
683
- border-radius: 16px;
684
- padding: 32px;
900
+ background: var(--kds-color-background-paper);
901
+ border-radius: var(--kds-radius-md);
902
+ padding: var(--kds-spacing-2);
685
903
  max-width: 800px;
686
- margin: 24px auto;
687
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
904
+ margin: var(--kds-spacing-3) auto;
905
+ box-shadow: var(--kds-shadow-card);
688
906
  }
689
907
 
690
908
  @media (max-width: 768px) {
691
909
  .kds-card-elevated,
692
910
  .khipu-card-elevated,
693
911
  .kds-card-main {
694
- padding: 24px;
695
- border-radius: 12px;
912
+ padding: var(--kds-spacing-3);
913
+ border-radius: var(--kds-radius-md);
696
914
  }
697
915
  }
698
916
 
@@ -700,17 +918,16 @@ a.kds-btn > .kds-icon > i {
700
918
  .kds-card-elevated,
701
919
  .khipu-card-elevated,
702
920
  .kds-card-main {
703
- padding: 20px;
704
- margin: 16px;
921
+ padding: var(--kds-spacing-2);
705
922
  }
706
923
  }
707
924
 
708
925
  /* Selection card */
709
926
  .kds-card-selector {
710
- padding: 24px;
711
- border-radius: 12px;
712
- border: 2px solid #E5E7EB; /* gray-200 */
713
- background: #FFFFFF;
927
+ padding: var(--kds-spacing-3);
928
+ border-radius: var(--kds-radius-md);
929
+ border: 2px solid var(--kds-border-light);
930
+ background: var(--kds-color-background-paper);
714
931
  transition: all 0.3s ease;
715
932
  text-align: left;
716
933
  cursor: pointer;
@@ -752,7 +969,7 @@ a.kds-btn > .kds-icon > i {
752
969
  /* Title */
753
970
  .kds-card-selector-title {
754
971
  font-weight: 600;
755
- color: #111827; /* gray-900 */
972
+ color: var(--kds-color-text-primary);
756
973
  margin-bottom: 8px;
757
974
  font-size: 16px;
758
975
  }
@@ -924,29 +1141,34 @@ a.kds-btn > .kds-icon > i {
924
1141
 
925
1142
  /* Card sections (header, body, footer) */
926
1143
  .kds-card-header {
927
- padding-bottom: var(--kds-spacing-3);
928
- border-bottom: 1px solid var(--kds-border-light);
929
1144
  margin-bottom: var(--kds-spacing-3);
930
1145
  }
931
1146
 
932
1147
  .kds-card-header h2,
933
1148
  .kds-card-header h3 {
934
1149
  margin: 0;
935
- font-weight: var(--kds-font-weight-bold);
1150
+ font-weight: var(--kds-font-weight-semibold);
1151
+ font-size: var(--kds-font-size-lg);
1152
+ word-break: break-word;
1153
+ }
1154
+
1155
+ .kds-card-header i {
1156
+ margin-bottom: 0;
1157
+ font-size: var(--kds-spacing-sidebar-icon-size-md);
1158
+ height: var(--kds-spacing-sidebar-icon-size-md);
1159
+ width: var(--kds-spacing-sidebar-icon-size-md);
936
1160
  }
937
1161
 
938
1162
  .kds-card-body {
939
1163
  padding: 0;
940
- margin-bottom: var(--kds-spacing-3);
941
1164
  }
942
1165
 
943
1166
  .kds-card-footer {
944
- padding-top: var(--kds-spacing-3);
945
- border-top: 1px solid var(--kds-border-light);
946
1167
  margin-top: 0;
947
1168
  display: flex;
948
- flex-direction: column;
1169
+ flex-direction: row;
949
1170
  gap: var(--kds-spacing-2);
1171
+ margin-top: var(--kds-spacing-3);
950
1172
  }
951
1173
 
952
1174
  .kds-card-footer button,
@@ -972,7 +1194,7 @@ a.kds-btn > .kds-icon > i {
972
1194
  .khipu-hero {
973
1195
  background: linear-gradient(135deg, var(--khipu-primary) 0%, var(--khipu-primary-dark) 100%);
974
1196
  color: white;
975
- padding: 64px 24px;
1197
+ padding: var(--kds-spacing-8) var(--kds-spacing-3);
976
1198
  text-align: center;
977
1199
  border-radius: 0 0 24px 24px;
978
1200
  margin-bottom: 32px;
@@ -998,12 +1220,12 @@ a.kds-btn > .kds-icon > i {
998
1220
  display: grid;
999
1221
  grid-template-columns: 1fr;
1000
1222
  gap: var(--kds-spacing-4);
1001
- align-items: start;
1223
+ align-items: stretch;
1002
1224
  }
1003
1225
 
1004
1226
  @media (min-width: 768px) {
1005
1227
  .kds-grid-2col {
1006
- grid-template-columns: 1fr 1fr;
1228
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1007
1229
  }
1008
1230
  }
1009
1231
 
@@ -1027,13 +1249,13 @@ a.kds-btn > .kds-icon > i {
1027
1249
 
1028
1250
  @media (min-width: 768px) {
1029
1251
  .kds-grid-3col {
1030
- grid-template-columns: repeat(2, 1fr);
1252
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1031
1253
  }
1032
1254
  }
1033
1255
 
1034
1256
  @media (min-width: 1024px) {
1035
1257
  .kds-grid-3col {
1036
- grid-template-columns: repeat(3, 1fr);
1258
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1037
1259
  }
1038
1260
  }
1039
1261
 
@@ -1045,16 +1267,27 @@ a.kds-btn > .kds-icon > i {
1045
1267
 
1046
1268
  @media (min-width: 768px) {
1047
1269
  .kds-grid-4col {
1048
- grid-template-columns: repeat(2, 1fr);
1270
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1049
1271
  }
1050
1272
  }
1051
1273
 
1052
1274
  @media (min-width: 1024px) {
1053
1275
  .kds-grid-4col {
1054
- grid-template-columns: repeat(4, 1fr);
1276
+ grid-template-columns: repeat(4, minmax(0, 1fr));
1055
1277
  }
1056
1278
  }
1057
1279
 
1280
+ /* Grid cell stretch - ensures all cards in grid have same height */
1281
+ .kds-grid-cell-stretch {
1282
+ display: flex;
1283
+ }
1284
+
1285
+ .kds-grid-cell-stretch > * {
1286
+ flex: 1;
1287
+ display: flex;
1288
+ flex-direction: column;
1289
+ }
1290
+
1058
1291
  /* Flex utilities */
1059
1292
  .kds-flex {
1060
1293
  display: flex;
@@ -1068,6 +1301,10 @@ a.kds-btn > .kds-icon > i {
1068
1301
  flex-direction: row;
1069
1302
  }
1070
1303
 
1304
+ .kds-flex-wrap {
1305
+ flex-wrap: wrap;
1306
+ }
1307
+
1071
1308
  .kds-justify-start {
1072
1309
  justify-content: flex-start;
1073
1310
  }
@@ -1105,6 +1342,30 @@ a.kds-btn > .kds-icon > i {
1105
1342
  .kds-gap-6 { gap: var(--kds-spacing-6); }
1106
1343
  .kds-gap-8 { gap: var(--kds-spacing-8); }
1107
1344
 
1345
+ /* Scroll container utilities */
1346
+ .kds-scroll-container {
1347
+ overflow-y: auto;
1348
+ overflow-x: hidden;
1349
+ }
1350
+
1351
+ .kds-scroll-sm {
1352
+ max-height: var(--kds-scroll-sm-height);
1353
+ overflow-y: auto;
1354
+ overflow-x: hidden;
1355
+ }
1356
+
1357
+ .kds-scroll-md {
1358
+ max-height: var(--kds-scroll-md-height);
1359
+ overflow-y: auto;
1360
+ overflow-x: hidden;
1361
+ }
1362
+
1363
+ .kds-scroll-lg {
1364
+ max-height: var(--kds-scroll-lg-height);
1365
+ overflow-y: auto;
1366
+ overflow-x: hidden;
1367
+ }
1368
+
1108
1369
  /* Spacing utilities - Margin */
1109
1370
  .kds-m-0 { margin: 0; }
1110
1371
  .kds-m-2 { margin: var(--kds-spacing-2); }
@@ -1151,6 +1412,7 @@ a.kds-btn > .kds-icon > i {
1151
1412
  .kds-pt-6 { padding-top: var(--kds-spacing-6); }
1152
1413
  .kds-pt-8 { padding-top: var(--kds-spacing-8); }
1153
1414
 
1415
+ .kds-pb-0 { padding-bottom: var(--kds-spacing-0) !important; }
1154
1416
  .kds-pb-4 { padding-bottom: var(--kds-spacing-4); }
1155
1417
  .kds-pb-6 { padding-bottom: var(--kds-spacing-6); }
1156
1418
  .kds-pb-8 { padding-bottom: var(--kds-spacing-8); }
@@ -1187,9 +1449,8 @@ a.kds-btn > .kds-icon > i {
1187
1449
  align-items: flex-start;
1188
1450
  gap: 0;
1189
1451
  position: relative;
1190
- padding: 24px 0;
1191
- background: #FFFFFF;
1192
- border-bottom: 1px solid #E5E7EB;
1452
+ padding: var(--kds-spacing-3) 0;
1453
+ background: var(--kds-color-background-paper);
1193
1454
  }
1194
1455
 
1195
1456
  /* Progress line connecting steps */
@@ -1200,7 +1461,7 @@ a.kds-btn > .kds-icon > i {
1200
1461
  right: 10%;
1201
1462
  top: 44px;
1202
1463
  height: 2px;
1203
- background: #E5E7EB;
1464
+ background: var(--kds-color-background-elevated);
1204
1465
  z-index: 0;
1205
1466
  }
1206
1467
 
@@ -1221,14 +1482,14 @@ a.kds-btn > .kds-icon > i {
1221
1482
  height: 40px;
1222
1483
  border-radius: 50%;
1223
1484
  margin: 0 auto;
1224
- background: #E5E7EB; /* Pending state - light gray */
1485
+ background: var(--kds-color-background-elevated); /* Pending state - light gray */
1225
1486
  position: relative;
1226
1487
  z-index: 2;
1227
1488
  transition: all 0.3s ease;
1228
1489
  display: flex;
1229
1490
  align-items: center;
1230
1491
  justify-content: center;
1231
- color: #6B7280;
1492
+ color: var(--kds-color-text-secondary);
1232
1493
  font-size: 0; /* Hide number by default */
1233
1494
  font-weight: 600;
1234
1495
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
@@ -1238,7 +1499,7 @@ a.kds-btn > .kds-icon > i {
1238
1499
  .kds-step-label {
1239
1500
  margin-top: 12px;
1240
1501
  font-weight: 400;
1241
- color: #6B7280;
1502
+ color: var(--kds-color-text-secondary);
1242
1503
  line-height: 1.25;
1243
1504
  font-size: 14px;
1244
1505
  transition: color 0.3s ease;
@@ -1253,7 +1514,7 @@ a.kds-btn > .kds-icon > i {
1253
1514
  }
1254
1515
 
1255
1516
  .kds-step.current .kds-step-label {
1256
- color: #111827;
1517
+ color: var(--kds-color-text-primary);
1257
1518
  font-weight: 500;
1258
1519
  }
1259
1520
 
@@ -1264,7 +1525,7 @@ a.kds-btn > .kds-icon > i {
1264
1525
  }
1265
1526
 
1266
1527
  .kds-step.completed .kds-step-label {
1267
- color: #111827;
1528
+ color: var(--kds-color-text-primary);
1268
1529
  }
1269
1530
 
1270
1531
  /* Checkmark for completed steps - Material Symbols icon */
@@ -1283,13 +1544,13 @@ a.kds-btn > .kds-icon > i {
1283
1544
 
1284
1545
  /* Pending step */
1285
1546
  .kds-step .kds-step-indicator {
1286
- background: #E5E7EB;
1547
+ background: var(--kds-color-background-elevated);
1287
1548
  }
1288
1549
 
1289
1550
  /* Responsive - Tablet */
1290
1551
  @media (max-width: 768px) {
1291
1552
  .kds-stepper {
1292
- padding: 24px 0;
1553
+ padding: var(--kds-spacing-3) 0;
1293
1554
  }
1294
1555
 
1295
1556
  .kds-step-indicator {
@@ -1394,8 +1655,8 @@ body.kds-layout {
1394
1655
 
1395
1656
  footer.primary {
1396
1657
  background: var(--surface-container-high, #F5F5F5);
1397
- padding: 32px 24px;
1398
- margin-top: 48px;
1658
+ padding: var(--kds-spacing-4) var(--kds-spacing-3);
1659
+ margin-top: var(--kds-spacing-6);
1399
1660
  }
1400
1661
 
1401
1662
  footer.primary h6 {
@@ -1425,9 +1686,11 @@ footer.primary a:hover {
1425
1686
  .kds-form-label {
1426
1687
  font-size: 14px;
1427
1688
  font-weight: 500;
1428
- color: #111827;
1689
+ color: var(--kds-color-text-primary);
1429
1690
  margin-bottom: 8px;
1430
1691
  display: block;
1692
+ display: flex;
1693
+ gap: 5px;
1431
1694
  }
1432
1695
 
1433
1696
  /* Icon utilities for inline icons */
@@ -1560,12 +1823,6 @@ body.dark {
1560
1823
  appearance: auto;
1561
1824
  -webkit-appearance: auto;
1562
1825
  -moz-appearance: auto;
1563
-
1564
- /* Asegurar que el arrow nativo tenga espacio */
1565
- padding-right: var(--kds-spacing-10); /* 40px */
1566
- background-position: right var(--kds-spacing-4) center; /* 16px desde el borde */
1567
- background-repeat: no-repeat;
1568
- background-size: var(--kds-spacing-5); /* 20px */
1569
1826
  }
1570
1827
 
1571
1828
  /* ==========================================
@@ -1679,44 +1936,64 @@ body.dark {
1679
1936
  }
1680
1937
 
1681
1938
  /* Snackbar Variants */
1682
- .kds-snackbar.success {
1939
+ .kds-snackbar.kds-success {
1683
1940
  background: var(--kds-snackbar-success-bg);
1684
1941
  border: 1px solid var(--kds-color-success-main);
1685
- color: var(--kds-color-success-main);
1942
+ color: var(--kds-color-success-dark);
1943
+ }
1944
+
1945
+ .kds-snackbar.kds-success .kds-snackbar-icon {
1946
+ color: var(--kds-color-success-dark);
1686
1947
  }
1687
1948
 
1688
- .kds-snackbar.success .kds-snackbar-icon {
1689
- color: var(--kds-color-success-main);
1949
+ .kds-snackbar.kds-success .kds-snackbar-action button,
1950
+ .kds-snackbar.kds-success .kds-snackbar-action .kds-btn {
1951
+ color: var(--kds-color-success-dark);
1690
1952
  }
1691
1953
 
1692
- .kds-snackbar.warning {
1954
+ .kds-snackbar.kds-warning {
1693
1955
  background: var(--kds-snackbar-warning-bg);
1694
1956
  border: 1px solid var(--kds-color-warning-main);
1695
- color: var(--kds-color-warning-main);
1957
+ color: var(--kds-color-warning-dark);
1696
1958
  }
1697
1959
 
1698
- .kds-snackbar.warning .kds-snackbar-icon {
1699
- color: var(--kds-color-warning-main);
1960
+ .kds-snackbar.kds-warning .kds-snackbar-icon {
1961
+ color: var(--kds-color-warning-dark);
1700
1962
  }
1701
1963
 
1702
- .kds-snackbar.error {
1964
+ .kds-snackbar.kds-warning .kds-snackbar-action button,
1965
+ .kds-snackbar.kds-warning .kds-snackbar-action .kds-btn {
1966
+ color: var(--kds-color-warning-dark);
1967
+ }
1968
+
1969
+ .kds-snackbar.kds-error {
1703
1970
  background: var(--kds-snackbar-error-bg);
1704
1971
  border: 1px solid var(--kds-color-error-main);
1705
- color: var(--kds-color-error-main);
1972
+ color: var(--kds-color-error-dark);
1973
+ }
1974
+
1975
+ .kds-snackbar.kds-error .kds-snackbar-icon {
1976
+ color: var(--kds-color-error-dark);
1706
1977
  }
1707
1978
 
1708
- .kds-snackbar.error .kds-snackbar-icon {
1709
- color: var(--kds-color-error-main);
1979
+ .kds-snackbar.kds-error .kds-snackbar-action button,
1980
+ .kds-snackbar.kds-error .kds-snackbar-action .kds-btn {
1981
+ color: var(--kds-color-error-dark);
1710
1982
  }
1711
1983
 
1712
- .kds-snackbar.info {
1984
+ .kds-snackbar.kds-info {
1713
1985
  background: var(--kds-snackbar-info-bg);
1714
1986
  border: 1px solid var(--kds-color-info-main);
1715
- color: var(--kds-color-info-main);
1987
+ color: var(--kds-color-info-dark);
1716
1988
  }
1717
1989
 
1718
- .kds-snackbar.info .kds-snackbar-icon {
1719
- color: var(--kds-color-info-main);
1990
+ .kds-snackbar.kds-info .kds-snackbar-icon {
1991
+ color: var(--kds-color-info-dark);
1992
+ }
1993
+
1994
+ .kds-snackbar.kds-info .kds-snackbar-action button,
1995
+ .kds-snackbar.kds-info .kds-snackbar-action .kds-btn {
1996
+ color: var(--kds-color-info-dark);
1720
1997
  }
1721
1998
 
1722
1999
  /* Static variant for showcase/demo purposes */
@@ -1729,6 +2006,12 @@ body.dark {
1729
2006
  animation: none;
1730
2007
  }
1731
2008
 
2009
+ /* Top position variant - for notifications that should appear at top */
2010
+ .kds-snackbar-top {
2011
+ top: var(--kds-spacing-4);
2012
+ bottom: auto;
2013
+ }
2014
+
1732
2015
  /* Mobile responsive */
1733
2016
  @media (max-width: 768px) {
1734
2017
  .kds-snackbar {
@@ -1751,6 +2034,32 @@ body.dark {
1751
2034
  }
1752
2035
  }
1753
2036
 
2037
+ /* ========================================
2038
+ TOOLTIPS - Personaliza Beer CSS .tooltip
2039
+ ======================================== */
2040
+
2041
+ /*
2042
+ * Beer CSS tiene la funcionalidad de .tooltip
2043
+ * Aquí sobrescribimos colores y estilos con tokens de Khipu
2044
+ */
2045
+
2046
+ .tooltip {
2047
+ background-color: var(--kds-color-text-primary);
2048
+ color: var(--kds-color-background-paper);
2049
+ font-family: var(--kds-font-family-primary);
2050
+ font-size: var(--kds-font-size-xs);
2051
+ font-weight: var(--kds-font-weight-medium);
2052
+ border-radius: var(--kds-radius-sm);
2053
+ padding: calc(var(--kds-spacing-1) / 2) var(--kds-spacing-2);
2054
+ box-shadow: var(--kds-shadow-4);
2055
+ }
2056
+
2057
+ /* Tooltip wrapper for inline icons - matches demo pattern */
2058
+ .kds-tooltip-icon {
2059
+ position: relative;
2060
+ display: inline-flex;
2061
+ }
2062
+
1754
2063
  /* ========================================
1755
2064
  Material Symbols Icon Sizing
1756
2065
  ======================================== */
@@ -1789,6 +2098,10 @@ body.dark {
1789
2098
  max-width: 400px;
1790
2099
  }
1791
2100
 
2101
+ .kds-max-w-500 {
2102
+ max-width: 500px;
2103
+ }
2104
+
1792
2105
  .kds-max-w-md {
1793
2106
  max-width: 600px;
1794
2107
  }
@@ -1872,26 +2185,18 @@ label.checkbox,
1872
2185
  label.radio {
1873
2186
  display: flex;
1874
2187
  align-items: center;
1875
- padding: var(--kds-spacing-3) var(--kds-spacing-4);
2188
+ padding: var(--kds-spacing-2) 0;
1876
2189
  border-radius: 8px;
1877
2190
  cursor: pointer;
1878
2191
  transition: background-color 0.2s;
1879
2192
  font-size: 16px;
1880
2193
  line-height: 1.5;
1881
- color: #111827;
1882
- }
1883
-
1884
- label.checkbox:hover,
1885
- label.radio:hover {
1886
- background-color: #F9FAFB;
2194
+ color: var(--kds-color-text-primary);
1887
2195
  }
1888
2196
 
1889
2197
  /* Checkbox/Radio Input */
1890
2198
  label.checkbox input[type="checkbox"],
1891
2199
  label.radio input[type="radio"] {
1892
- width: 20px;
1893
- height: 20px;
1894
- margin-right: var(--kds-spacing-3);
1895
2200
  cursor: pointer;
1896
2201
  flex-shrink: 0;
1897
2202
  }
@@ -1937,8 +2242,8 @@ label.radio:has(input:disabled) {
1937
2242
 
1938
2243
  /* Onboarding Header - Contains stepper and progress */
1939
2244
  .kds-onboarding-header {
1940
- background: #FFFFFF;
1941
- border-bottom: 1px solid #E5E7EB;
2245
+ background: var(--kds-color-background-paper);
2246
+ border-bottom: 1px solid var(--kds-border-light);
1942
2247
  position: sticky;
1943
2248
  top: 0;
1944
2249
  z-index: 100;
@@ -1955,8 +2260,8 @@ label.radio:has(input:disabled) {
1955
2260
  /* Onboarding Footer - Action buttons */
1956
2261
  .kds-onboarding-footer {
1957
2262
  flex-shrink: 0;
1958
- background: #FFFFFF;
1959
- border-top: 1px solid #E5E7EB;
2263
+ background: var(--kds-color-background-paper);
2264
+ border-top: 1px solid var(--kds-border-light);
1960
2265
  padding: var(--kds-spacing-4) var(--kds-spacing-6);
1961
2266
  display: flex;
1962
2267
  justify-content: space-between;
@@ -1998,15 +2303,17 @@ label.radio:has(input:disabled) {
1998
2303
 
1999
2304
  /* Stage Header - Title and subtitle */
2000
2305
  .kds-stage-header {
2001
- text-align: center;
2002
- margin-bottom: var(--kds-spacing-8);
2306
+ display: flex;
2307
+ flex-direction: column;
2308
+ align-items: flex-start;
2309
+ gap: var(--kds-spacing-1);
2310
+ margin-bottom: var(--kds-spacing-2);
2003
2311
  }
2004
2312
 
2005
2313
  /* Stage Content - Main form/content area */
2006
2314
  .kds-stage-content {
2007
2315
  display: flex;
2008
2316
  flex-direction: column;
2009
- gap: var(--kds-onboarding-gap);
2010
2317
  }
2011
2318
 
2012
2319
  /* Stage Actions - Bottom button area (if not using sticky footer) */
@@ -2014,7 +2321,6 @@ label.radio:has(input:disabled) {
2014
2321
  display: flex;
2015
2322
  justify-content: space-between;
2016
2323
  gap: var(--kds-spacing-3);
2017
- margin-top: var(--kds-spacing-8);
2018
2324
  }
2019
2325
 
2020
2326
  @media (max-width: 768px) {
@@ -2029,10 +2335,10 @@ label.radio:has(input:disabled) {
2029
2335
 
2030
2336
  /* Stage Section - Grouping related fields */
2031
2337
  .kds-stage-section {
2032
- background: #FFFFFF;
2338
+ background: var(--kds-color-background-paper);
2033
2339
  border-radius: var(--kds-radius-lg);
2034
2340
  padding: var(--kds-spacing-6);
2035
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
2341
+ box-shadow: var(--kds-shadow-card);
2036
2342
  }
2037
2343
 
2038
2344
  .kds-stage-section + .kds-stage-section {
@@ -2042,13 +2348,13 @@ label.radio:has(input:disabled) {
2042
2348
  .kds-stage-section-title {
2043
2349
  font-size: var(--kds-font-size-lg);
2044
2350
  font-weight: var(--kds-font-weight-semibold);
2045
- color: #111827;
2351
+ color: var(--kds-color-text-primary);
2046
2352
  margin-bottom: var(--kds-spacing-4);
2047
2353
  }
2048
2354
 
2049
2355
  .kds-stage-section-description {
2050
2356
  font-size: var(--kds-font-size-sm);
2051
- color: #6B7280;
2357
+ color: var(--kds-color-text-secondary);
2052
2358
  margin-bottom: var(--kds-spacing-4);
2053
2359
  line-height: 1.5;
2054
2360
  }
@@ -2111,7 +2417,7 @@ label.radio:has(input:disabled) {
2111
2417
  .kds-file-upload-text {
2112
2418
  font-size: var(--kds-font-size-base);
2113
2419
  font-weight: var(--kds-font-weight-medium);
2114
- color: #111827;
2420
+ color: var(--kds-color-text-primary);
2115
2421
  margin-bottom: var(--kds-spacing-2);
2116
2422
  }
2117
2423
 
@@ -2128,14 +2434,14 @@ label.radio:has(input:disabled) {
2128
2434
 
2129
2435
  .kds-file-upload-helper {
2130
2436
  font-size: var(--kds-font-size-sm);
2131
- color: #6B7280;
2437
+ color: var(--kds-color-text-secondary);
2132
2438
  display: block;
2133
2439
  margin-top: var(--kds-spacing-1);
2134
2440
  }
2135
2441
 
2136
2442
  .kds-file-upload-hint {
2137
2443
  font-size: var(--kds-font-size-sm);
2138
- color: #6B7280;
2444
+ color: var(--kds-color-text-secondary);
2139
2445
  }
2140
2446
 
2141
2447
  /* Hidden file input */
@@ -2197,7 +2503,7 @@ label.radio:has(input:disabled) {
2197
2503
  .kds-file-upload-item-name {
2198
2504
  font-size: var(--kds-font-size-sm);
2199
2505
  font-weight: var(--kds-font-weight-medium);
2200
- color: #111827;
2506
+ color: var(--kds-color-text-primary);
2201
2507
  white-space: nowrap;
2202
2508
  overflow: hidden;
2203
2509
  text-overflow: ellipsis;
@@ -2205,13 +2511,13 @@ label.radio:has(input:disabled) {
2205
2511
 
2206
2512
  .kds-file-upload-item-meta {
2207
2513
  font-size: var(--kds-font-size-xs);
2208
- color: #6B7280;
2514
+ color: var(--kds-color-text-secondary);
2209
2515
  margin-top: 2px;
2210
2516
  }
2211
2517
 
2212
2518
  .kds-file-upload-item-size {
2213
2519
  font-size: var(--kds-font-size-xs);
2214
- color: #6B7280;
2520
+ color: var(--kds-color-text-secondary);
2215
2521
  margin-top: 2px;
2216
2522
  }
2217
2523
 
@@ -2257,7 +2563,7 @@ label.radio:has(input:disabled) {
2257
2563
  /* Progress bar (for async uploads) */
2258
2564
  .kds-file-upload-progress {
2259
2565
  height: 4px;
2260
- background: #E5E7EB;
2566
+ background: var(--kds-color-background-elevated);
2261
2567
  border-radius: 2px;
2262
2568
  overflow: hidden;
2263
2569
  margin-top: var(--kds-spacing-2);
@@ -2292,7 +2598,7 @@ label.radio:has(input:disabled) {
2292
2598
  background: var(--kds-otp-digit-bg);
2293
2599
  transition: all 0.2s ease;
2294
2600
  outline: none;
2295
- color: #111827;
2601
+ color: var(--kds-color-text-primary);
2296
2602
  }
2297
2603
 
2298
2604
  .kds-otp-digit:focus {
@@ -2344,7 +2650,7 @@ label.radio:has(input:disabled) {
2344
2650
 
2345
2651
  @media (max-width: 480px) {
2346
2652
  .kds-bank-grid {
2347
- grid-template-columns: repeat(3, 1fr);
2653
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2348
2654
  gap: var(--kds-spacing-2);
2349
2655
  }
2350
2656
  }
@@ -2359,7 +2665,7 @@ label.radio:has(input:disabled) {
2359
2665
  padding: var(--kds-spacing-3);
2360
2666
  border: 2px solid var(--kds-bank-item-border);
2361
2667
  border-radius: var(--kds-radius-lg);
2362
- background: #FFFFFF;
2668
+ background: var(--kds-color-background-paper);
2363
2669
  cursor: pointer;
2364
2670
  transition: all 0.3s ease;
2365
2671
  position: relative;
@@ -2390,7 +2696,7 @@ label.radio:has(input:disabled) {
2390
2696
  .kds-bank-item-name {
2391
2697
  font-size: var(--kds-font-size-xs);
2392
2698
  font-weight: var(--kds-font-weight-medium);
2393
- color: #111827;
2699
+ color: var(--kds-color-text-primary);
2394
2700
  text-align: center;
2395
2701
  line-height: 1.3;
2396
2702
  }
@@ -2455,12 +2761,43 @@ dialog.modal {
2455
2761
  padding: var(--kds-modal-padding);
2456
2762
  max-width: var(--kds-modal-max-width);
2457
2763
  box-shadow: var(--kds-modal-shadow);
2764
+ z-index: 1000;
2458
2765
  }
2459
2766
 
2460
2767
  dialog.modal::backdrop {
2461
2768
  background: var(--kds-modal-backdrop);
2462
2769
  }
2463
2770
 
2771
+ /* ========================================
2772
+ MODAL FIELD STYLES
2773
+ Consistent input/select styling for all modals
2774
+ ======================================== */
2775
+
2776
+ dialog.modal .field {
2777
+ margin-bottom: var(--kds-spacing-4);
2778
+ box-sizing: border-box;
2779
+ }
2780
+
2781
+ dialog.modal .field.border {
2782
+ border: var(--kds-border-width-sm) solid var(--kds-color-divider);
2783
+ border-radius: var(--kds-radius-md);
2784
+ background: var(--kds-color-background-paper);
2785
+ padding: 0;
2786
+ }
2787
+
2788
+ dialog.modal .field.border select,
2789
+ dialog.modal .field.border input {
2790
+ font-size: var(--kds-font-size-md);
2791
+ box-sizing: border-box;
2792
+ }
2793
+
2794
+ /* Focus state - use outline to prevent width change */
2795
+ dialog.modal .field.border:focus-within {
2796
+ outline: var(--kds-border-width-md) solid var(--kds-color-primary-main);
2797
+ outline-offset: 0;
2798
+ border-color: var(--kds-color-primary-main);
2799
+ }
2800
+
2464
2801
  /* ========================================
2465
2802
  KYC BLOCKING MODAL
2466
2803
  Warning modal for high-risk sectors
@@ -2697,7 +3034,7 @@ dialog.modal::backdrop {
2697
3034
  background: var(--kds-accordion-header-bg);
2698
3035
  cursor: pointer;
2699
3036
  font-weight: var(--kds-font-weight-semibold);
2700
- color: #111827;
3037
+ color: var(--kds-color-text-primary);
2701
3038
  list-style: none;
2702
3039
  display: flex;
2703
3040
  justify-content: space-between;
@@ -2710,7 +3047,7 @@ dialog.modal::backdrop {
2710
3047
  }
2711
3048
 
2712
3049
  .kds-contract-accordion summary:hover {
2713
- background: #E5E7EB;
3050
+ background: var(--kds-color-background-elevated);
2714
3051
  }
2715
3052
 
2716
3053
  .kds-contract-accordion summary::after {
@@ -2788,7 +3125,7 @@ dialog.modal::backdrop {
2788
3125
 
2789
3126
  .kds-signature-clear {
2790
3127
  background: transparent !important;
2791
- color: #6B7280 !important;
3128
+ color: var(--kds-color-text-secondary) !important;
2792
3129
  border: 1px solid #D1D5DB !important;
2793
3130
  }
2794
3131
 
@@ -2861,7 +3198,7 @@ dialog.modal::backdrop {
2861
3198
 
2862
3199
  .kds-summary-card {
2863
3200
  background: white;
2864
- border: 1px solid #E5E7EB;
3201
+ border: 1px solid var(--kds-border-light);
2865
3202
  border-radius: var(--kds-radius-lg);
2866
3203
  padding: var(--kds-spacing-5);
2867
3204
  margin-bottom: var(--kds-spacing-4);
@@ -2882,7 +3219,7 @@ dialog.modal::backdrop {
2882
3219
  gap: var(--kds-spacing-2);
2883
3220
  font-size: var(--kds-font-size-lg);
2884
3221
  font-weight: var(--kds-font-weight-semibold);
2885
- color: #111827;
3222
+ color: var(--kds-color-text-primary);
2886
3223
  }
2887
3224
 
2888
3225
  .kds-summary-card-edit {
@@ -2910,13 +3247,13 @@ dialog.modal::backdrop {
2910
3247
  flex: 0 0 140px;
2911
3248
  font-size: var(--kds-font-size-sm);
2912
3249
  font-weight: var(--kds-font-weight-medium);
2913
- color: #6B7280;
3250
+ color: var(--kds-color-text-secondary);
2914
3251
  }
2915
3252
 
2916
3253
  .kds-summary-value {
2917
3254
  flex: 1;
2918
3255
  font-size: var(--kds-font-size-sm);
2919
- color: #111827;
3256
+ color: var(--kds-color-text-primary);
2920
3257
  }
2921
3258
 
2922
3259
  .kds-summary-value.badge {
@@ -2976,20 +3313,20 @@ dialog.modal::backdrop {
2976
3313
  .kds-success-title {
2977
3314
  font-size: var(--kds-font-size-3xl);
2978
3315
  font-weight: var(--kds-font-weight-bold);
2979
- color: #111827;
3316
+ color: var(--kds-color-text-primary);
2980
3317
  margin-bottom: var(--kds-spacing-3);
2981
3318
  }
2982
3319
 
2983
3320
  .kds-success-subtitle {
2984
3321
  font-size: var(--kds-font-size-lg);
2985
- color: #6B7280;
3322
+ color: var(--kds-color-text-secondary);
2986
3323
  margin-bottom: var(--kds-spacing-8);
2987
3324
  max-width: 600px;
2988
3325
  }
2989
3326
 
2990
3327
  .kds-next-steps {
2991
3328
  background: white;
2992
- border: 1px solid #E5E7EB;
3329
+ border: 1px solid var(--kds-border-light);
2993
3330
  border-radius: var(--kds-radius-xl);
2994
3331
  padding: var(--kds-spacing-6);
2995
3332
  max-width: 700px;
@@ -3001,7 +3338,7 @@ dialog.modal::backdrop {
3001
3338
  .kds-next-steps-title {
3002
3339
  font-size: var(--kds-font-size-xl);
3003
3340
  font-weight: var(--kds-font-weight-semibold);
3004
- color: #111827;
3341
+ color: var(--kds-color-text-primary);
3005
3342
  margin-bottom: var(--kds-spacing-4);
3006
3343
  display: flex;
3007
3344
  align-items: center;
@@ -3040,13 +3377,13 @@ dialog.modal::backdrop {
3040
3377
  .kds-step-title {
3041
3378
  font-size: var(--kds-font-size-base);
3042
3379
  font-weight: var(--kds-font-weight-semibold);
3043
- color: #111827;
3380
+ color: var(--kds-color-text-primary);
3044
3381
  margin-bottom: 4px;
3045
3382
  }
3046
3383
 
3047
3384
  .kds-step-description {
3048
3385
  font-size: var(--kds-font-size-sm);
3049
- color: #6B7280;
3386
+ color: var(--kds-color-text-secondary);
3050
3387
  line-height: 1.5;
3051
3388
  }
3052
3389
 
@@ -3090,7 +3427,7 @@ dialog.modal::backdrop {
3090
3427
  }
3091
3428
 
3092
3429
  .khipu-card-elevated {
3093
- padding: 16px;
3430
+ padding: var(--kds-spacing-2);
3094
3431
  }
3095
3432
 
3096
3433
  .snackbar {
@@ -3107,10 +3444,74 @@ dialog.modal::backdrop {
3107
3444
 
3108
3445
  /* Container utilities */
3109
3446
  .kds-container-center {
3447
+ width: 100%;
3448
+ max-width: 1400px;
3110
3449
  margin-left: auto;
3111
3450
  margin-right: auto;
3112
3451
  }
3113
3452
 
3453
+ /* Nav should have no padding - only background color */
3454
+ nav {
3455
+ padding-left: 0 !important;
3456
+ padding-right: 0 !important;
3457
+ }
3458
+
3459
+ /* When inside nav, inherit flex behavior and override BeerCSS margin: 0 */
3460
+ nav > .kds-container-center {
3461
+ display: flex;
3462
+ align-items: center;
3463
+ gap: var(--kds-spacing-4);
3464
+ margin-left: auto !important;
3465
+ margin-right: auto !important;
3466
+ padding-left: var(--kds-spacing-4);
3467
+ padding-right: var(--kds-spacing-4);
3468
+ padding-top: var(--kds-spacing-2);
3469
+ padding-bottom: var(--kds-spacing-2);
3470
+ }
3471
+
3472
+ footer,
3473
+ footer.primary {
3474
+ padding-left: 0 !important;
3475
+ padding-right: 0 !important;
3476
+ }
3477
+
3478
+ /* Footer nav columns - vertical links */
3479
+ footer nav.kds-footer-nav {
3480
+ display: flex;
3481
+ flex-direction: column;
3482
+ gap: var(--kds-spacing-1);
3483
+ }
3484
+
3485
+ footer nav.kds-footer-nav a {
3486
+ font-size: var(--kds-font-size-sm);
3487
+ padding: 0;
3488
+ justify-content: flex-start;
3489
+ }
3490
+
3491
+ /* When inside footer, add padding to align with main content */
3492
+ footer > .kds-container-center {
3493
+ padding-left: var(--kds-spacing-4);
3494
+ padding-right: var(--kds-spacing-4);
3495
+ padding-top: var(--kds-spacing-8);
3496
+ padding-bottom: var(--kds-spacing-8);
3497
+ }
3498
+
3499
+ @media (min-width: 768px) {
3500
+ nav > .kds-container-center {
3501
+ padding-left: var(--kds-spacing-6);
3502
+ padding-right: var(--kds-spacing-6);
3503
+ padding-top: var(--kds-spacing-2);
3504
+ padding-bottom: var(--kds-spacing-2);
3505
+ }
3506
+
3507
+ footer > .kds-container-center {
3508
+ padding-left: var(--kds-spacing-6);
3509
+ padding-right: var(--kds-spacing-6);
3510
+ padding-top: var(--kds-spacing-10);
3511
+ padding-bottom: var(--kds-spacing-10);
3512
+ }
3513
+ }
3514
+
3114
3515
  .max-w-500 {
3115
3516
  max-width: 500px;
3116
3517
  }
@@ -3185,12 +3586,6 @@ dialog.modal::backdrop {
3185
3586
  .kds-stage-section-description {
3186
3587
  margin-bottom: var(--kds-spacing-4);
3187
3588
  }
3188
-
3189
- /* Stage header */
3190
- .kds-stage-header {
3191
- margin-bottom: var(--kds-spacing-8);
3192
- }
3193
-
3194
3589
  .kds-stage-title {
3195
3590
  margin-bottom: var(--kds-spacing-2);
3196
3591
  }
@@ -3227,13 +3622,122 @@ dialog.modal::backdrop {
3227
3622
  margin-bottom: 0; /* Grid gap handles spacing */
3228
3623
  }
3229
3624
 
3230
- /* Alerts have margin */
3231
- .kds-alert {
3232
- margin-bottom: var(--kds-spacing-6);
3233
- }
3625
+ /* ========================================
3626
+ ALERTS - Información contextual
3627
+ ======================================== */
3234
3628
 
3235
- .kds-alert:last-child {
3236
- margin-bottom: 0;
3629
+ /* Base alert structure */
3630
+ .kds-alert {
3631
+ display: flex;
3632
+ align-items: center;
3633
+ gap: var(--kds-spacing-1);
3634
+ padding: var(--kds-spacing-2);
3635
+ border-radius: var(--kds-radius-md);
3636
+ border: 1px solid;
3637
+ font-family: var(--kds-font-family-primary);
3638
+ min-width: 0;
3639
+ flex: 1 1 100%;
3640
+ }
3641
+
3642
+ @media (min-width: 768px) {
3643
+ .kds-alert {
3644
+ padding: var(--kds-spacing-2);
3645
+ flex: 1 1 auto;
3646
+ }
3647
+ }
3648
+
3649
+ .kds-alert:last-child {
3650
+ margin-bottom: 0;
3651
+ }
3652
+
3653
+ /* Icon styling */
3654
+ .kds-alert-icon {
3655
+ flex-shrink: 0;
3656
+ font-size: var(--kds-spacing-button-icon-size);
3657
+ min-width: var(--kds-spacing-button-icon-size);
3658
+ min-height: var(--kds-spacing-button-icon-size);
3659
+ }
3660
+
3661
+ /* Content container */
3662
+ .kds-alert-content {
3663
+ flex: 1;
3664
+ min-width: 0;
3665
+ }
3666
+
3667
+ /* Title (bold) */
3668
+ .kds-alert-title {
3669
+ font-size: var(--kds-font-size-sm);
3670
+ font-weight: var(--kds-font-weight-semibold);
3671
+ line-height: var(--kds-line-height-normal);
3672
+ margin-bottom: calc(var(--kds-spacing-1) / 2);
3673
+ word-break: normal;
3674
+ overflow-wrap: break-word;
3675
+ }
3676
+
3677
+ /* Description (regular) */
3678
+ .kds-alert-description {
3679
+ font-size: var(--kds-font-size-sm);
3680
+ font-weight: var(--kds-font-weight-regular);
3681
+ line-height: var(--kds-line-height-relaxed);
3682
+ word-break: normal;
3683
+ overflow-wrap: break-word;
3684
+ }
3685
+
3686
+ /* Alert Variants */
3687
+ .kds-alert.kds-info {
3688
+ background: var(--kds-alert-info-bg);
3689
+ border-color: var(--kds-color-info-main);
3690
+ color: var(--kds-color-info-dark);
3691
+ }
3692
+
3693
+ .kds-alert.kds-info .kds-alert-icon {
3694
+ color: var(--kds-color-info-dark);
3695
+ }
3696
+
3697
+ .kds-alert.kds-success {
3698
+ background: var(--kds-alert-success-bg);
3699
+ border-color: var(--kds-color-success-main);
3700
+ color: var(--kds-color-success-dark);
3701
+ }
3702
+
3703
+ .kds-alert.kds-success .kds-alert-icon {
3704
+ color: var(--kds-color-success-dark);
3705
+ }
3706
+
3707
+ .kds-alert.kds-warning {
3708
+ background: var(--kds-alert-warning-bg);
3709
+ border-color: var(--kds-color-warning-main);
3710
+ color: var(--kds-color-warning-dark);
3711
+ }
3712
+
3713
+ .kds-alert.kds-warning .kds-alert-icon {
3714
+ color: var(--kds-color-warning-dark);
3715
+ }
3716
+
3717
+ .kds-alert.kds-error {
3718
+ background: var(--kds-alert-error-bg);
3719
+ border-color: var(--kds-color-error-main);
3720
+ color: var(--kds-color-error-dark);
3721
+ }
3722
+
3723
+ .kds-alert.kds-error .kds-alert-icon {
3724
+ color: var(--kds-color-error-dark);
3725
+ }
3726
+
3727
+ /* Lists inside alerts */
3728
+ .kds-alert ul {
3729
+ padding-left: var(--kds-spacing-2);
3730
+ margin-top: var(--kds-spacing-1);
3731
+ margin-bottom: 0;
3732
+ }
3733
+
3734
+ /* Links inside alerts */
3735
+ .kds-alert a {
3736
+ text-decoration: underline;
3737
+ }
3738
+
3739
+ .kds-alert a:hover {
3740
+ text-decoration: none;
3237
3741
  }
3238
3742
 
3239
3743
 
@@ -3253,6 +3757,15 @@ dialog.modal::backdrop {
3253
3757
  .kds-page-layout {
3254
3758
  display: flex;
3255
3759
  min-height: 100vh;
3760
+ padding-left: var(--kds-spacing-4);
3761
+ padding-right: var(--kds-spacing-4);
3762
+ }
3763
+
3764
+ @media (min-width: 768px) {
3765
+ .kds-page-layout {
3766
+ padding-left: var(--kds-spacing-6);
3767
+ padding-right: var(--kds-spacing-6);
3768
+ }
3256
3769
  }
3257
3770
 
3258
3771
  /* Sidebar - Sticky flotante a la izquierda */
@@ -3265,8 +3778,8 @@ dialog.modal::backdrop {
3265
3778
  position: sticky;
3266
3779
  top: var(--kds-spacing-4);
3267
3780
  margin: var(--kds-spacing-4);
3781
+ margin-left: 0;
3268
3782
  height: fit-content;
3269
- overflow-y: auto;
3270
3783
  box-shadow: var(--kds-shadow-2);
3271
3784
  }
3272
3785
 
@@ -3414,8 +3927,13 @@ dialog.modal::backdrop {
3414
3927
  /* Main content */
3415
3928
  .kds-main-content {
3416
3929
  flex: 1;
3417
- padding: var(--kds-spacing-8);
3930
+ min-width: 0;
3418
3931
  overflow-y: auto;
3932
+ display: flex;
3933
+ flex-direction: column;
3934
+ overflow-x: hidden;
3935
+ padding-top: var(--kds-spacing-4);
3936
+ padding-bottom: var(--kds-spacing-4);
3419
3937
  }
3420
3938
 
3421
3939
  /* ============================================
@@ -3450,14 +3968,16 @@ dialog.modal::backdrop {
3450
3968
  color: var(--kds-color-text-primary);
3451
3969
  }
3452
3970
 
3453
- /* Botón hamburger */
3971
+ /* Botón hamburger - oculto en desktop, visible en mobile */
3454
3972
  .kds-hamburger-btn {
3973
+ display: none;
3455
3974
  width: var(--kds-spacing-sidebar-icon-container-size);
3456
3975
  height: var(--kds-spacing-sidebar-icon-container-size);
3457
3976
  border: none;
3458
3977
  background: transparent;
3459
3978
  border-radius: var(--kds-radius-sm);
3460
3979
  cursor: pointer;
3980
+ padding: 0;
3461
3981
  transition: background-color var(--kds-transition-shorter) var(--kds-easing-standard);
3462
3982
  }
3463
3983
 
@@ -3472,6 +3992,13 @@ dialog.modal::backdrop {
3472
3992
 
3473
3993
  /* Mobile (≤ 768px) */
3474
3994
  @media (max-width: 768px) {
3995
+ /* Mostrar hamburger button en nav */
3996
+ .kds-hamburger-btn {
3997
+ display: flex;
3998
+ align-items: center;
3999
+ justify-content: center;
4000
+ }
4001
+
3475
4002
  /* Mostrar topbar */
3476
4003
  .kds-mobile-topbar {
3477
4004
  display: flex;
@@ -3536,7 +4063,45 @@ dialog.modal::backdrop {
3536
4063
  }
3537
4064
 
3538
4065
  /* ============================================
3539
- DEMO PAGE STYLES
4066
+ LIST UTILITIES
4067
+ ============================================ */
4068
+
4069
+ /* Standard list with compact spacing */
4070
+ .kds-list {
4071
+ margin: 0;
4072
+ padding-left: var(--kds-spacing-2);
4073
+ list-style-position: outside;
4074
+ line-height: var(--kds-line-height-relaxed);
4075
+ }
4076
+
4077
+ .kds-list > li {
4078
+ margin-bottom: var(--kds-spacing-2);
4079
+ }
4080
+
4081
+ .kds-list > li:last-child {
4082
+ margin-bottom: 0;
4083
+ }
4084
+
4085
+ /* List without bullets */
4086
+ .kds-list-unstyled {
4087
+ list-style: none;
4088
+ padding-left: 0;
4089
+ }
4090
+
4091
+ /* Code block for displaying code snippets */
4092
+ .kds-code-block {
4093
+ background: var(--kds-color-background-elevated);
4094
+ padding: var(--kds-spacing-4);
4095
+ border-radius: var(--kds-radius-md);
4096
+ overflow-x: auto;
4097
+ font-family: 'Courier New', monospace;
4098
+ font-size: var(--kds-font-size-sm);
4099
+ line-height: var(--kds-line-height-relaxed);
4100
+ color: var(--kds-color-text-primary);
4101
+ }
4102
+
4103
+ /* ============================================
4104
+ DEMO PAGE STYLES (DEPRECATED - Use kds-card-* instead)
3540
4105
  ============================================ */
3541
4106
 
3542
4107
  .demo-card {
@@ -3573,3 +4138,931 @@ dialog.modal::backdrop {
3573
4138
  line-height: var(--kds-line-height-relaxed);
3574
4139
  }
3575
4140
 
4141
+ /* ========================================
4142
+ GALLERY / SHOWCASE COMPONENTS
4143
+ Componentes para páginas de demostración
4144
+ ======================================== */
4145
+
4146
+ /* Gallery Hero Section */
4147
+ .gallery-hero {
4148
+ background: linear-gradient(135deg, #8347AD 0%, #9333EA 100%);
4149
+ color: white;
4150
+ padding: var(--kds-spacing-12) var(--kds-spacing-6);
4151
+ text-align: center;
4152
+ }
4153
+
4154
+ .gallery-hero h1 {
4155
+ font-size: var(--kds-font-size-4xl);
4156
+ font-weight: var(--kds-font-weight-bold);
4157
+ margin: 0 0 var(--kds-spacing-4);
4158
+ line-height: 1.2;
4159
+ }
4160
+
4161
+ .gallery-hero p {
4162
+ font-size: var(--kds-font-size-lg);
4163
+ margin: 0 0 var(--kds-spacing-8);
4164
+ opacity: 0.95;
4165
+ max-width: 600px;
4166
+ margin-left: auto;
4167
+ margin-right: auto;
4168
+ }
4169
+
4170
+ .gallery-hero-actions {
4171
+ display: flex;
4172
+ gap: var(--kds-spacing-4);
4173
+ justify-content: center;
4174
+ flex-wrap: wrap;
4175
+ }
4176
+
4177
+ /* Gallery Container */
4178
+ .gallery-container {
4179
+ padding: var(--kds-spacing-12) var(--kds-spacing-6);
4180
+ }
4181
+
4182
+ .gallery-header {
4183
+ text-align: center;
4184
+ margin-bottom: var(--kds-spacing-10);
4185
+ }
4186
+
4187
+ .gallery-header h2 {
4188
+ font-size: var(--kds-font-size-3xl);
4189
+ font-weight: var(--kds-font-weight-bold);
4190
+ color: var(--kds-color-text-primary);
4191
+ margin: 0 0 var(--kds-spacing-4);
4192
+ }
4193
+
4194
+ .gallery-header p {
4195
+ font-size: var(--kds-font-size-lg);
4196
+ color: var(--kds-color-text-secondary);
4197
+ margin: 0;
4198
+ }
4199
+
4200
+ /* Gallery Grid */
4201
+ .gallery-grid {
4202
+ display: grid;
4203
+ grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
4204
+ gap: var(--kds-spacing-8);
4205
+ margin-bottom: var(--kds-spacing-12);
4206
+ }
4207
+
4208
+ @media (max-width: 768px) {
4209
+ .gallery-grid {
4210
+ grid-template-columns: 1fr;
4211
+ }
4212
+ }
4213
+
4214
+ /* Page Card */
4215
+ .page-card {
4216
+ background: var(--kds-color-background-paper);
4217
+ border-radius: var(--kds-radius-lg);
4218
+ overflow: hidden;
4219
+ box-shadow: var(--kds-shadow-2);
4220
+ transition: all var(--kds-transition-standard) var(--kds-easing-standard);
4221
+ text-decoration: none;
4222
+ color: inherit;
4223
+ display: flex;
4224
+ flex-direction: column;
4225
+ height: 100%;
4226
+ }
4227
+
4228
+ .page-card:hover {
4229
+ transform: translateY(-4px);
4230
+ box-shadow: var(--kds-shadow-8);
4231
+ }
4232
+
4233
+ .page-card-preview {
4234
+ background: linear-gradient(135deg, #F3E8FF 0%, #E9D5FF 100%);
4235
+ height: 200px;
4236
+ display: flex;
4237
+ align-items: center;
4238
+ justify-content: center;
4239
+ position: relative;
4240
+ overflow: hidden;
4241
+ }
4242
+
4243
+ .page-card-preview::before {
4244
+ content: '';
4245
+ position: absolute;
4246
+ top: -50%;
4247
+ left: -50%;
4248
+ width: 200%;
4249
+ height: 200%;
4250
+ background: radial-gradient(circle, rgba(131, 71, 173, 0.1) 0%, transparent 70%);
4251
+ animation: pulse 3s ease-in-out infinite;
4252
+ }
4253
+
4254
+ @keyframes pulse {
4255
+ 0%, 100% { transform: scale(1); opacity: 0.5; }
4256
+ 50% { transform: scale(1.1); opacity: 0.8; }
4257
+ }
4258
+
4259
+ .page-card-preview i {
4260
+ font-size: 80px;
4261
+ min-width: 80px;
4262
+ min-height: 80px;
4263
+ color: var(--kds-color-primary-main);
4264
+ position: relative;
4265
+ z-index: 1;
4266
+ }
4267
+
4268
+ .page-card-content {
4269
+ padding: var(--kds-spacing-6);
4270
+ flex: 1;
4271
+ display: flex;
4272
+ flex-direction: column;
4273
+ }
4274
+
4275
+ .page-card-step {
4276
+ font-size: var(--kds-font-size-xs);
4277
+ font-weight: var(--kds-font-weight-semibold);
4278
+ text-transform: uppercase;
4279
+ letter-spacing: 0.5px;
4280
+ color: var(--kds-color-primary-main);
4281
+ margin-bottom: var(--kds-spacing-2);
4282
+ }
4283
+
4284
+ .page-card-title {
4285
+ font-size: var(--kds-font-size-2xl);
4286
+ font-weight: var(--kds-font-weight-bold);
4287
+ color: var(--kds-color-text-primary);
4288
+ margin: 0 0 var(--kds-spacing-3);
4289
+ }
4290
+
4291
+ .page-card-description {
4292
+ font-size: var(--kds-font-size-md);
4293
+ color: var(--kds-color-text-secondary);
4294
+ line-height: var(--kds-line-height-relaxed);
4295
+ margin: 0 0 var(--kds-spacing-5);
4296
+ flex: 1;
4297
+ }
4298
+
4299
+ .page-card-components {
4300
+ display: flex;
4301
+ flex-wrap: wrap;
4302
+ gap: var(--kds-spacing-2);
4303
+ margin-bottom: var(--kds-spacing-5);
4304
+ }
4305
+
4306
+ .component-tag {
4307
+ font-size: var(--kds-font-size-xs);
4308
+ padding: calc(var(--kds-spacing-1) / 2) var(--kds-spacing-3);
4309
+ background: var(--kds-color-background-default);
4310
+ color: var(--kds-color-text-secondary);
4311
+ border-radius: var(--kds-radius-full);
4312
+ font-weight: var(--kds-font-weight-medium);
4313
+ }
4314
+
4315
+ .page-card-link {
4316
+ display: flex;
4317
+ align-items: center;
4318
+ justify-content: space-between;
4319
+ font-size: var(--kds-font-size-md);
4320
+ font-weight: var(--kds-font-weight-semibold);
4321
+ color: var(--kds-color-primary-main);
4322
+ text-decoration: none;
4323
+ padding-top: var(--kds-spacing-4);
4324
+ border-top: 1px solid var(--kds-color-divider);
4325
+ }
4326
+
4327
+ .page-card-link:hover {
4328
+ color: var(--kds-color-primary-dark);
4329
+ }
4330
+
4331
+ .page-card-link i {
4332
+ font-size: var(--kds-font-size-xl);
4333
+ transition: transform var(--kds-transition-shorter) var(--kds-easing-standard);
4334
+ }
4335
+
4336
+ .page-card:hover .page-card-link i {
4337
+ transform: translateX(4px);
4338
+ }
4339
+
4340
+ /* Component Showcase CTA */
4341
+ .showcase-cta {
4342
+ background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
4343
+ border-radius: var(--kds-radius-lg);
4344
+ padding: var(--kds-spacing-10) var(--kds-spacing-8);
4345
+ text-align: center;
4346
+ color: white;
4347
+ margin-top: var(--kds-spacing-12);
4348
+ }
4349
+
4350
+ .showcase-cta h2 {
4351
+ font-size: var(--kds-font-size-3xl);
4352
+ font-weight: var(--kds-font-weight-bold);
4353
+ margin: 0 0 var(--kds-spacing-4);
4354
+ }
4355
+
4356
+ .showcase-cta p {
4357
+ font-size: var(--kds-font-size-lg);
4358
+ margin: 0 0 var(--kds-spacing-8);
4359
+ opacity: 0.95;
4360
+ }
4361
+
4362
+ /* Gallery Footer */
4363
+ .gallery-footer {
4364
+ background: var(--kds-color-background-paper);
4365
+ border-top: 1px solid var(--kds-color-divider);
4366
+ padding: var(--kds-spacing-10) var(--kds-spacing-6);
4367
+ text-align: center;
4368
+ margin-top: var(--kds-spacing-12);
4369
+ }
4370
+
4371
+ .gallery-footer p {
4372
+ color: var(--kds-color-text-secondary);
4373
+ margin: 0 0 var(--kds-spacing-2);
4374
+ }
4375
+
4376
+ .gallery-footer a {
4377
+ color: var(--kds-color-primary-main);
4378
+ text-decoration: none;
4379
+ font-weight: var(--kds-font-weight-semibold);
4380
+ }
4381
+
4382
+ .gallery-footer a:hover {
4383
+ text-decoration: underline;
4384
+ }
4385
+
4386
+ /* Utility: Remove top padding */
4387
+ .kds-pt-0 {
4388
+ padding-top: 0 !important;
4389
+ }
4390
+
4391
+ /* Highlighted page card (para destacar items especiales) */
4392
+ .page-card-highlighted {
4393
+ border: 2px solid var(--kds-color-primary-main);
4394
+ }
4395
+
4396
+ .page-card-preview-alt {
4397
+ background: linear-gradient(135deg, rgba(131, 71, 173, 0.1) 0%, rgba(147, 51, 234, 0.15) 100%);
4398
+ }
4399
+
4400
+ /* ========================================
4401
+ SURVEY MODAL
4402
+ Modal personalizado para encuesta de bienvenida
4403
+ ======================================== */
4404
+
4405
+ /* Modal container */
4406
+ dialog#surveyModal {
4407
+ background: var(--kds-color-background-paper);
4408
+ border-radius: var(--kds-radius-lg);
4409
+ padding: var(--kds-spacing-5);
4410
+ max-width: 400px;
4411
+ width: 100%;
4412
+ box-shadow: var(--kds-shadow-16);
4413
+ box-sizing: border-box;
4414
+ border: none;
4415
+ }
4416
+
4417
+ dialog#surveyModal::backdrop {
4418
+ background: rgba(0, 0, 0, 0.5);
4419
+ }
4420
+
4421
+ /* Form styling */
4422
+ dialog#surveyModal form {
4423
+ margin: 0;
4424
+ padding: 0;
4425
+ }
4426
+
4427
+ /* Clean input styling - remove BeerCSS underlines */
4428
+ dialog#surveyModal .field {
4429
+ margin-bottom: var(--kds-spacing-4);
4430
+ box-sizing: border-box;
4431
+ }
4432
+
4433
+ dialog#surveyModal .field.border {
4434
+ border: 1px solid var(--kds-color-divider);
4435
+ border-radius: var(--kds-radius-md);
4436
+ background: var(--kds-color-background-paper);
4437
+ padding: 0;
4438
+ }
4439
+
4440
+ dialog#surveyModal .field.border select,
4441
+ dialog#surveyModal .field.border input {
4442
+ border: none;
4443
+ border-bottom: none;
4444
+ padding: var(--kds-spacing-3) var(--kds-spacing-4);
4445
+ background: transparent;
4446
+ color: var(--kds-color-text-primary);
4447
+ font-size: var(--kds-font-size-md);
4448
+ }
4449
+
4450
+ dialog#surveyModal .field.border:focus-within {
4451
+ outline: 2px solid var(--kds-color-primary-main);
4452
+ outline-offset: 0;
4453
+ border-color: var(--kds-color-primary-main);
4454
+ }
4455
+
4456
+ dialog#surveyModal .field label {
4457
+ position: static;
4458
+ display: block;
4459
+ margin-bottom: var(--kds-spacing-2);
4460
+ font-size: var(--kds-font-size-sm);
4461
+ font-weight: var(--kds-font-weight-medium);
4462
+ color: var(--kds-color-text-primary);
4463
+ background: transparent;
4464
+ padding: 0;
4465
+ }
4466
+
4467
+ dialog#surveyModal .field.border {
4468
+ position: relative;
4469
+ }
4470
+
4471
+ /* Button styling */
4472
+ dialog#surveyModal button.primary {
4473
+ width: 100%;
4474
+ max-width: 100%;
4475
+ padding: var(--kds-spacing-3) var(--kds-spacing-5);
4476
+ font-size: var(--kds-font-size-md);
4477
+ font-weight: var(--kds-font-weight-semibold);
4478
+ border-radius: var(--kds-radius-md);
4479
+ transition: all var(--kds-transition-short) var(--kds-easing-standard);
4480
+ height: auto;
4481
+ min-height: auto;
4482
+ line-height: 1.5;
4483
+ box-sizing: border-box;
4484
+ margin: 0;
4485
+ border: none;
4486
+ }
4487
+
4488
+ dialog#surveyModal button.primary:disabled {
4489
+ background: var(--kds-color-action-disabled-bg);
4490
+ color: var(--kds-color-action-disabled);
4491
+ cursor: not-allowed;
4492
+ }
4493
+
4494
+ dialog#surveyModal button.primary:not(:disabled):hover {
4495
+ background: var(--kds-color-primary-dark);
4496
+ }
4497
+
4498
+ /* Close button - hidden */
4499
+ dialog#surveyModal button.circle {
4500
+ display: none;
4501
+ }
4502
+
4503
+ /* Help text */
4504
+ #surveyHelpText {
4505
+ margin-top: var(--kds-spacing-2);
4506
+ text-align: center;
4507
+ font-size: var(--kds-font-size-xs);
4508
+ color: var(--kds-color-text-secondary);
4509
+ }
4510
+
4511
+ /* ========================================
4512
+ SHOWCASE / DEMO COMPONENTS
4513
+ Componentes para páginas de demostración y showcase
4514
+ ======================================== */
4515
+
4516
+ /* Showcase Header */
4517
+ .showcase-header {
4518
+ background: linear-gradient(135deg, #8347AD 0%, #6A2B93 100%);
4519
+ color: white;
4520
+ padding: var(--kds-spacing-12) var(--kds-spacing-6);
4521
+ text-align: center;
4522
+ }
4523
+
4524
+ .showcase-content {
4525
+ padding: var(--kds-spacing-8) var(--kds-spacing-6);
4526
+ }
4527
+
4528
+ /* Component Grid (para showcase de componentes) */
4529
+ .component-grid {
4530
+ display: grid;
4531
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
4532
+ gap: var(--kds-spacing-6);
4533
+ margin-top: var(--kds-spacing-8);
4534
+ }
4535
+
4536
+ /* Demo Header */
4537
+ .demo-header {
4538
+ background: var(--kds-color-primary-main);
4539
+ color: white;
4540
+ padding: var(--kds-spacing-8) var(--kds-spacing-6);
4541
+ text-align: center;
4542
+ }
4543
+
4544
+ /* Demo Navigation Grid */
4545
+ .demo-nav-grid {
4546
+ display: grid;
4547
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
4548
+ gap: var(--kds-spacing-4);
4549
+ padding: var(--kds-spacing-8);
4550
+ }
4551
+
4552
+ /* Demo Stage Card */
4553
+ .demo-stage-card {
4554
+ background: var(--kds-color-background-paper);
4555
+ border-radius: var(--kds-radius-lg);
4556
+ padding: var(--kds-spacing-6);
4557
+ box-shadow: var(--kds-shadow-1);
4558
+ transition: all var(--kds-transition-standard) var(--kds-easing-standard);
4559
+ text-decoration: none;
4560
+ color: inherit;
4561
+ display: flex;
4562
+ flex-direction: column;
4563
+ gap: var(--kds-spacing-3);
4564
+ }
4565
+
4566
+ .demo-stage-card:hover {
4567
+ box-shadow: var(--kds-shadow-4);
4568
+ transform: translateY(-2px);
4569
+ }
4570
+
4571
+ .demo-stage-number,
4572
+ .demo-stage-icon {
4573
+ width: 48px;
4574
+ height: 48px;
4575
+ background: rgba(131, 71, 173, 0.1);
4576
+ color: var(--kds-color-primary-main);
4577
+ border-radius: var(--kds-radius-md);
4578
+ display: flex;
4579
+ align-items: center;
4580
+ justify-content: center;
4581
+ font-size: var(--kds-font-size-2xl);
4582
+ font-weight: var(--kds-font-weight-bold);
4583
+ }
4584
+
4585
+ .demo-stage-number {
4586
+ font-size: var(--kds-font-size-xl);
4587
+ }
4588
+
4589
+ .demo-stage-icon {
4590
+ width: 64px;
4591
+ height: 64px;
4592
+ }
4593
+
4594
+ .demo-stage-icon i {
4595
+ width: auto;
4596
+ height: auto;
4597
+ font-size: var(--kds-font-size-2xl);
4598
+ }
4599
+
4600
+ .demo-stage-title {
4601
+ font-size: var(--kds-font-size-lg);
4602
+ font-weight: var(--kds-font-weight-semibold);
4603
+ color: var(--kds-color-text-primary);
4604
+ }
4605
+
4606
+ .demo-stage-description {
4607
+ font-size: var(--kds-font-size-sm);
4608
+ color: var(--kds-color-text-secondary);
4609
+ line-height: var(--kds-line-height-relaxed);
4610
+ }
4611
+
4612
+ /* ========================================
4613
+ SUMMARY CARD (Validation page)
4614
+ ======================================== */
4615
+
4616
+ .kds-summary-card {
4617
+ background: var(--kds-color-background-paper);
4618
+ border: 1px solid var(--kds-color-divider);
4619
+ border-radius: var(--kds-radius-lg);
4620
+ padding: var(--kds-spacing-5);
4621
+ margin-bottom: var(--kds-spacing-4);
4622
+ }
4623
+
4624
+ .kds-summary-card-header {
4625
+ display: flex;
4626
+ justify-content: space-between;
4627
+ align-items: center;
4628
+ margin-bottom: var(--kds-spacing-4);
4629
+ padding-bottom: var(--kds-spacing-3);
4630
+ border-bottom: 1px solid var(--kds-color-divider);
4631
+ }
4632
+
4633
+ .kds-summary-card-title {
4634
+ font-size: var(--kds-font-size-lg);
4635
+ font-weight: var(--kds-font-weight-semibold);
4636
+ color: var(--kds-color-text-primary);
4637
+ }
4638
+
4639
+ .kds-summary-card-row {
4640
+ display: flex;
4641
+ justify-content: space-between;
4642
+ padding: var(--kds-spacing-2) 0;
4643
+ }
4644
+
4645
+ .kds-summary-card-label {
4646
+ font-size: var(--kds-font-size-sm);
4647
+ color: var(--kds-color-text-secondary);
4648
+ }
4649
+
4650
+ .kds-summary-card-value {
4651
+ font-size: var(--kds-font-size-sm);
4652
+ font-weight: var(--kds-font-weight-medium);
4653
+ color: var(--kds-color-text-primary);
4654
+ }
4655
+
4656
+ /* ========================================
4657
+ CONTRACT CONTENT (Contract page)
4658
+ ======================================== */
4659
+
4660
+ .kds-contract-content {
4661
+ background: var(--kds-color-background-paper);
4662
+ border: 1px solid var(--kds-color-divider);
4663
+ border-radius: var(--kds-radius-lg);
4664
+ padding: var(--kds-spacing-6);
4665
+ max-height: 400px;
4666
+ overflow-y: auto;
4667
+ }
4668
+
4669
+ .kds-contract-content details {
4670
+ margin-bottom: var(--kds-spacing-4);
4671
+ }
4672
+
4673
+ .kds-contract-content summary {
4674
+ cursor: pointer;
4675
+ font-weight: var(--kds-font-weight-semibold);
4676
+ font-size: var(--kds-font-size-md);
4677
+ color: var(--kds-color-text-primary);
4678
+ padding: var(--kds-spacing-3);
4679
+ border-radius: var(--kds-radius-md);
4680
+ transition: background var(--kds-transition-shorter) var(--kds-easing-standard);
4681
+ }
4682
+
4683
+ .kds-contract-content summary:hover {
4684
+ background: var(--kds-color-action-hover);
4685
+ }
4686
+
4687
+ .kds-contract-content details[open] summary {
4688
+ margin-bottom: var(--kds-spacing-3);
4689
+ }
4690
+
4691
+ .kds-contract-content p {
4692
+ margin: var(--kds-spacing-2) 0;
4693
+ line-height: var(--kds-line-height-relaxed);
4694
+ color: var(--kds-color-text-secondary);
4695
+ }
4696
+
4697
+ /* ========================================
4698
+ BANK GRID (Bank connection page)
4699
+ ======================================== */
4700
+
4701
+ .kds-bank-grid {
4702
+ display: grid;
4703
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
4704
+ gap: var(--kds-spacing-4);
4705
+ margin-bottom: var(--kds-spacing-6);
4706
+ }
4707
+
4708
+ .kds-bank-item {
4709
+ aspect-ratio: 1;
4710
+ border: 2px solid var(--kds-color-divider);
4711
+ border-radius: var(--kds-radius-lg);
4712
+ padding: var(--kds-spacing-4);
4713
+ display: flex;
4714
+ flex-direction: column;
4715
+ align-items: center;
4716
+ justify-content: center;
4717
+ cursor: pointer;
4718
+ transition: all var(--kds-transition-short) var(--kds-easing-standard);
4719
+ background: var(--kds-color-background-paper);
4720
+ }
4721
+
4722
+ .kds-bank-item:hover {
4723
+ border-color: var(--kds-color-primary-main);
4724
+ box-shadow: var(--kds-shadow-2);
4725
+ }
4726
+
4727
+ .kds-bank-item.selected {
4728
+ border-color: var(--kds-color-primary-main);
4729
+ background: rgba(131, 71, 173, 0.05);
4730
+ }
4731
+
4732
+ .kds-bank-item img {
4733
+ max-width: 80%;
4734
+ max-height: 60%;
4735
+ object-fit: contain;
4736
+ margin-bottom: var(--kds-spacing-2);
4737
+ }
4738
+
4739
+ .kds-bank-item-name {
4740
+ font-size: var(--kds-font-size-xs);
4741
+ font-weight: var(--kds-font-weight-medium);
4742
+ color: var(--kds-color-text-primary);
4743
+ text-align: center;
4744
+ }
4745
+
4746
+ @media (max-width: 768px) {
4747
+ .kds-bank-grid {
4748
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
4749
+ gap: var(--kds-spacing-3);
4750
+ }
4751
+ }
4752
+
4753
+ /* ========================================
4754
+ UTILITY CLASSES
4755
+ Clases utilitarias para evitar estilos inline
4756
+ ======================================== */
4757
+
4758
+ /* Icon utilities - alineación con texto */
4759
+ .kds-icon-inline {
4760
+ vertical-align: middle;
4761
+ margin-right: var(--kds-spacing-2);
4762
+ }
4763
+
4764
+ /* Text utilities */
4765
+ .kds-text-center {
4766
+ text-align: center;
4767
+ }
4768
+
4769
+ .kds-text-underline {
4770
+ text-decoration: underline;
4771
+ }
4772
+
4773
+ .kds-text-no-decoration {
4774
+ text-decoration: none;
4775
+ }
4776
+
4777
+ /* Spacing utilities */
4778
+ .kds-mt-2 { margin-top: var(--kds-spacing-2); }
4779
+ .kds-mt-3 { margin-top: var(--kds-spacing-3); }
4780
+ .kds-mt-4 { margin-top: var(--kds-spacing-4); }
4781
+ .kds-mt-6 { margin-top: var(--kds-spacing-6); }
4782
+ .kds-mt-8 { margin-top: var(--kds-spacing-8); }
4783
+
4784
+ .kds-mb-2 { margin-bottom: var(--kds-spacing-2); }
4785
+ .kds-mb-3 { margin-bottom: var(--kds-spacing-3); }
4786
+ .kds-mb-4 { margin-bottom: var(--kds-spacing-4); }
4787
+ .kds-mb-6 { margin-bottom: var(--kds-spacing-6); }
4788
+ .kds-mb-8 { margin-bottom: var(--kds-spacing-8); }
4789
+
4790
+ /* Display utilities */
4791
+ .kds-hidden {
4792
+ display: none;
4793
+ }
4794
+
4795
+ .kds-w-full {
4796
+ width: 100%;
4797
+ }
4798
+
4799
+ /* Icon sizes */
4800
+ .kds-icon-sm { font-size: 18px; }
4801
+ .kds-icon-md { font-size: 32px; }
4802
+ .kds-icon-lg { font-size: 48px; }
4803
+ .kds-icon-xl { font-size: 64px; }
4804
+ .kds-icon-xxl { font-size: 80px; }
4805
+
4806
+ /* Position utilities */
4807
+ .kds-absolute-top-right {
4808
+ position: absolute;
4809
+ top: var(--kds-spacing-4);
4810
+ right: var(--kds-spacing-4);
4811
+ }
4812
+
4813
+ /* Color utilities (solo para casos específicos de demo) */
4814
+ .kds-text-warning {
4815
+ color: #92400E;
4816
+ }
4817
+
4818
+ .kds-list-warning {
4819
+ margin: 0;
4820
+ padding-left: var(--kds-spacing-5);
4821
+ color: #78350F;
4822
+ }
4823
+
4824
+ /* ========================================
4825
+ LAYOUT FLEXBOX UTILITIES
4826
+ Utilities for flexbox layouts
4827
+ ======================================== */
4828
+
4829
+ .kds-flex {
4830
+ display: flex;
4831
+ }
4832
+
4833
+ .kds-flex-row {
4834
+ display: flex;
4835
+ flex-direction: row;
4836
+ }
4837
+
4838
+ .kds-flex-col {
4839
+ display: flex;
4840
+ flex-direction: column;
4841
+ }
4842
+
4843
+ .kds-items-start {
4844
+ align-items: flex-start;
4845
+ }
4846
+
4847
+ .kds-items-center {
4848
+ align-items: center;
4849
+ }
4850
+
4851
+ .kds-items-end {
4852
+ align-items: flex-end;
4853
+ }
4854
+
4855
+ .kds-justify-start {
4856
+ justify-content: flex-start;
4857
+ }
4858
+
4859
+ .kds-justify-center {
4860
+ justify-content: center;
4861
+ }
4862
+
4863
+ .kds-justify-between {
4864
+ justify-content: space-between;
4865
+ }
4866
+
4867
+ .kds-justify-end {
4868
+ justify-content: flex-end;
4869
+ }
4870
+
4871
+ .kds-flex-1 {
4872
+ flex: 1;
4873
+ }
4874
+
4875
+ .kds-flex-shrink-0 {
4876
+ flex-shrink: 0;
4877
+ }
4878
+
4879
+ /* Gap utilities */
4880
+ .kds-gap-1 { gap: var(--kds-spacing-1); }
4881
+ .kds-gap-2 { gap: var(--kds-spacing-2); }
4882
+ .kds-gap-3 { gap: var(--kds-spacing-3); }
4883
+ .kds-gap-4 { gap: var(--kds-spacing-4); }
4884
+ .kds-gap-5 { gap: var(--kds-spacing-5); }
4885
+ .kds-gap-6 { gap: var(--kds-spacing-6); }
4886
+ .kds-gap-8 { gap: var(--kds-spacing-8); }
4887
+
4888
+ /* ========================================
4889
+ OPACITY UTILITIES
4890
+ ======================================== */
4891
+
4892
+ .kds-opacity-60 {
4893
+ opacity: 0.6;
4894
+ }
4895
+
4896
+ .kds-opacity-80 {
4897
+ opacity: 0.8;
4898
+ }
4899
+
4900
+ .kds-opacity-90 {
4901
+ opacity: 0.9;
4902
+ }
4903
+
4904
+ /* ========================================
4905
+ BADGE COMPONENT
4906
+ Small chips/badges for labels and status
4907
+ ======================================== */
4908
+
4909
+ .kds-badge {
4910
+ display: inline-block;
4911
+ padding: 2px 8px;
4912
+ border-radius: var(--kds-radius-sm);
4913
+ font-size: var(--kds-font-size-xs);
4914
+ font-weight: var(--kds-font-weight-medium);
4915
+ line-height: 1.5;
4916
+ }
4917
+
4918
+ .kds-badge.success {
4919
+ background-color: var(--kds-color-success-container);
4920
+ color: var(--kds-color-success-dark);
4921
+ }
4922
+
4923
+ .kds-badge.error {
4924
+ background-color: var(--kds-color-error-container);
4925
+ color: var(--kds-color-error-dark);
4926
+ }
4927
+
4928
+ .kds-badge.warning {
4929
+ background-color: var(--kds-color-warning-container);
4930
+ color: var(--kds-color-warning-dark);
4931
+ }
4932
+
4933
+ .kds-badge.info {
4934
+ background-color: var(--kds-color-info-container);
4935
+ color: var(--kds-color-info-dark);
4936
+ }
4937
+
4938
+ .kds-badge.primary {
4939
+ background-color: var(--kds-color-primary-container);
4940
+ color: var(--kds-color-primary-dark);
4941
+ }
4942
+
4943
+ /* ========================================
4944
+ DIVIDER WITH TEXT
4945
+ Separator with optional text
4946
+ ======================================== */
4947
+
4948
+ .kds-divider-text {
4949
+ text-align: center;
4950
+ margin: var(--kds-spacing-6) 0;
4951
+ color: var(--kds-color-text-secondary);
4952
+ position: relative;
4953
+ font-size: var(--kds-font-size-sm);
4954
+ }
4955
+
4956
+ .kds-divider-text span {
4957
+ background: var(--kds-color-background-default);
4958
+ padding: 0 var(--kds-spacing-2);
4959
+ position: relative;
4960
+ z-index: 1;
4961
+ }
4962
+
4963
+ .kds-divider-text::before {
4964
+ content: '';
4965
+ position: absolute;
4966
+ top: 50%;
4967
+ left: 0;
4968
+ right: 0;
4969
+ height: 1px;
4970
+ background: var(--kds-color-divider);
4971
+ }
4972
+
4973
+ /* ========================================
4974
+ CARD ICON CONTENT PATTERN
4975
+ Card with icon on left and content on right
4976
+ ======================================== */
4977
+
4978
+ .kds-card-icon-content {
4979
+ display: flex;
4980
+ align-items: flex-start;
4981
+ gap: var(--kds-spacing-4);
4982
+ }
4983
+
4984
+ .kds-card-icon-content-text {
4985
+ flex: 1;
4986
+ min-width: 0;
4987
+ }
4988
+
4989
+ /* ========================================
4990
+ CARD COMPONENT UTILITIES
4991
+ Padding variants for cards
4992
+ ======================================== */
4993
+
4994
+ .kds-card-elevated.kds-p-0 { padding: 0; }
4995
+ .kds-card-elevated.kds-p-2 { padding: var(--kds-spacing-2); }
4996
+ .kds-card-elevated.kds-p-3 { padding: var(--kds-spacing-3); }
4997
+ .kds-card-elevated.kds-p-4 { padding: var(--kds-spacing-4); }
4998
+ .kds-card-elevated.kds-p-5 { padding: var(--kds-spacing-5); }
4999
+ .kds-card-elevated.kds-p-6 { padding: var(--kds-spacing-6); }
5000
+ .kds-card-elevated.kds-p-8 { padding: var(--kds-spacing-8); }
5001
+
5002
+ /* ========================================
5003
+ SNACKBAR UTILITIES
5004
+ Position variants for snackbar/toast messages
5005
+ ======================================== */
5006
+
5007
+ /* Snackbar positioned at top (above modals) */
5008
+ .snackbar.kds-snackbar-top {
5009
+ top: var(--kds-spacing-4);
5010
+ bottom: auto;
5011
+ z-index: 1400; /* Above modals (1300) */
5012
+ }
5013
+
5014
+ /* ========================================
5015
+ DIRECTIONAL SPACING UTILITIES
5016
+ Margin and padding for individual sides
5017
+ ======================================== */
5018
+
5019
+ /* Margin Left */
5020
+ .kds-ml-0 { margin-left: 0; }
5021
+ .kds-ml-1 { margin-left: var(--kds-spacing-1); }
5022
+ .kds-ml-2 { margin-left: var(--kds-spacing-2); }
5023
+ .kds-ml-3 { margin-left: var(--kds-spacing-3); }
5024
+ .kds-ml-4 { margin-left: var(--kds-spacing-4); }
5025
+ .kds-ml-5 { margin-left: var(--kds-spacing-5); }
5026
+ .kds-ml-6 { margin-left: var(--kds-spacing-6); }
5027
+ .kds-ml-8 { margin-left: var(--kds-spacing-8); }
5028
+
5029
+ /* Margin Right */
5030
+ .kds-mr-0 { margin-right: 0; }
5031
+ .kds-mr-1 { margin-right: var(--kds-spacing-1); }
5032
+ .kds-mr-2 { margin-right: var(--kds-spacing-2); }
5033
+ .kds-mr-3 { margin-right: var(--kds-spacing-3); }
5034
+ .kds-mr-4 { margin-right: var(--kds-spacing-4); }
5035
+ .kds-mr-5 { margin-right: var(--kds-spacing-5); }
5036
+ .kds-mr-6 { margin-right: var(--kds-spacing-6); }
5037
+ .kds-mr-8 { margin-right: var(--kds-spacing-8); }
5038
+
5039
+ /* Padding Left */
5040
+ .kds-pl-0 { padding-left: 0; }
5041
+ .kds-pl-1 { padding-left: var(--kds-spacing-1); }
5042
+ .kds-pl-2 { padding-left: var(--kds-spacing-2); }
5043
+ .kds-pl-3 { padding-left: var(--kds-spacing-3); }
5044
+ .kds-pl-4 { padding-left: var(--kds-spacing-4); }
5045
+ .kds-pl-5 { padding-left: var(--kds-spacing-5); }
5046
+ .kds-pl-6 { padding-left: var(--kds-spacing-6); }
5047
+ .kds-pl-8 { padding-left: var(--kds-spacing-8); }
5048
+
5049
+ /* Padding Right */
5050
+ .kds-pr-0 { padding-right: 0; }
5051
+ .kds-pr-1 { padding-right: var(--kds-spacing-1); }
5052
+ .kds-pr-2 { padding-right: var(--kds-spacing-2); }
5053
+ .kds-pr-3 { padding-right: var(--kds-spacing-3); }
5054
+ .kds-pr-4 { padding-right: var(--kds-spacing-4); }
5055
+ .kds-pr-5 { padding-right: var(--kds-spacing-5); }
5056
+ .kds-pr-6 { padding-right: var(--kds-spacing-6); }
5057
+ .kds-pr-8 { padding-right: var(--kds-spacing-8); }
5058
+
5059
+ /* Colors */
5060
+ .kds-error-text {
5061
+ color: var(--kds-color-error-main) !important;
5062
+ }
5063
+
5064
+ /* Z-index */
5065
+
5066
+ .z-1000 {
5067
+ z-index: 1000;
5068
+ }