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

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-04-01T17:47:56.079Z
14
+ * Generated: 2026-04-06T19:00:54.492Z
15
15
  *
16
16
  * To regenerate:
17
17
  * cd design-system && npm run tokens:generate
@@ -78,6 +78,18 @@
78
78
  /* Divider */
79
79
  --kds-color-divider: rgba(0, 0, 0, 0.12);
80
80
 
81
+ /* Gray palette - Neutral colors */
82
+ --kds-color-gray-50: #F9FAFB;
83
+ --kds-color-gray-100: #F3F4F6;
84
+ --kds-color-gray-200: #E5E7EB;
85
+ --kds-color-gray-300: #D1D5DB;
86
+ --kds-color-gray-400: #9CA3AF;
87
+ --kds-color-gray-500: #6B7280;
88
+ --kds-color-gray-600: #4B5563;
89
+ --kds-color-gray-700: #374151;
90
+ --kds-color-gray-800: #1F2937;
91
+ --kds-color-gray-900: #111827;
92
+
81
93
  /* Input borders */
82
94
  --kds-color-input-enabled-border: rgba(0, 0, 0, 0.23);
83
95
  --kds-color-input-hover-border: rgba(0, 0, 0, 0.87);
@@ -169,6 +181,14 @@
169
181
  --kds-spacing-10: 80px;
170
182
  --kds-spacing-11: 88px;
171
183
  --kds-spacing-12: 96px;
184
+ --kds-spacing-20: 160px;
185
+ --kds-spacing-0-5: 4px;
186
+ --kds-spacing-0-75: 6px;
187
+ --kds-spacing-1-5: 12px;
188
+ --kds-spacing-2-5: 20px;
189
+ --kds-spacing-3-5: 28px;
190
+ --kds-spacing-4-5: 36px;
191
+ --kds-spacing-5-5: 44px;
172
192
 
173
193
  /* Semantic spacing */
174
194
  --kds-spacing-input-padding-y: 16px;
@@ -233,6 +253,19 @@
233
253
  --kds-border-medium: #999999;
234
254
  --kds-border-dark: #666666;
235
255
 
256
+ /* ==========================================================================
257
+ SEMANTIC ALIASES
258
+ ========================================================================== */
259
+
260
+
261
+ /* Surface aliases */
262
+ --kds-surface-base: var(--kds-color-background-default);
263
+
264
+ /* Text aliases */
265
+ --kds-text-primary: var(--kds-color-text-primary);
266
+ --kds-text-secondary: var(--kds-color-text-secondary);
267
+ --kds-text-disabled: var(--kds-color-text-disabled);
268
+
236
269
  /* ==========================================================================
237
270
  SHADOW TOKENS
238
271
  ========================================================================== */
@@ -895,20 +928,9 @@ a.kds-btn.kds-btn-md {
895
928
  box-shadow: var(--kds-shadow-6);
896
929
  }
897
930
 
898
- /* Main content card (centered, max-width) */
899
- .kds-card-main {
900
- background: var(--kds-color-background-paper);
901
- border-radius: var(--kds-radius-md);
902
- padding: var(--kds-spacing-2);
903
- max-width: 800px;
904
- margin: var(--kds-spacing-3) auto;
905
- box-shadow: var(--kds-shadow-card);
906
- }
907
-
908
931
  @media (max-width: 768px) {
909
932
  .kds-card-elevated,
910
- .khipu-card-elevated,
911
- .kds-card-main {
933
+ .khipu-card-elevated {
912
934
  padding: var(--kds-spacing-3);
913
935
  border-radius: var(--kds-radius-md);
914
936
  }
@@ -916,8 +938,7 @@ a.kds-btn.kds-btn-md {
916
938
 
917
939
  @media (max-width: 480px) {
918
940
  .kds-card-elevated,
919
- .khipu-card-elevated,
920
- .kds-card-main {
941
+ .khipu-card-elevated {
921
942
  padding: var(--kds-spacing-2);
922
943
  }
923
944
  }
@@ -989,8 +1010,8 @@ a.kds-btn.kds-btn-md {
989
1010
  position: relative;
990
1011
  display: flex;
991
1012
  flex-direction: column;
992
- gap: var(--kds-spacing-6);
993
- padding: var(--kds-spacing-8);
1013
+ gap: var(--kds-spacing-2);
1014
+ padding: var(--kds-spacing-4);
994
1015
  border-radius: var(--kds-radius-lg);
995
1016
  border: 2px solid var(--kds-border-medium);
996
1017
  max-width: 400px; /* Increased from 365px for better text spacing */
@@ -1007,7 +1028,7 @@ a.kds-btn.kds-btn-md {
1007
1028
  }
1008
1029
 
1009
1030
  /* Recommended Plan */
1010
- .kds-card-plan.recommended {
1031
+ .recommended {
1011
1032
  border-color: var(--primary);
1012
1033
  background: linear-gradient(to bottom, rgba(131, 71, 173, 0.05), var(--kds-surface-base));
1013
1034
  box-shadow: var(--kds-shadow-elevation-3);
@@ -1109,36 +1130,6 @@ a.kds-btn.kds-btn-md {
1109
1130
  color: var(--kds-text-disabled);
1110
1131
  }
1111
1132
 
1112
- /* Verification/Status card (from onboarding patterns) */
1113
- .kds-card-status {
1114
- display: flex;
1115
- align-items: center;
1116
- justify-content: space-between;
1117
- padding: 10px 20px;
1118
- min-height: 80px;
1119
- border-radius: 6px;
1120
- border: 1px solid var(--kds-border-light);
1121
- gap: var(--kds-spacing-4);
1122
- background: var(--kds-surface-base);
1123
- transition: background 0.2s ease;
1124
- }
1125
-
1126
- .kds-card-status.muted {
1127
- border-color: transparent;
1128
- background: var(--kds-surface-elevated);
1129
- }
1130
-
1131
- .kds-card-status .status-icon {
1132
- flex-shrink: 0;
1133
- font-size: 24px;
1134
- min-width: 24px;
1135
- min-height: 24px;
1136
- }
1137
-
1138
- .kds-card-status .status-content {
1139
- flex: 1;
1140
- }
1141
-
1142
1133
  /* Card sections (header, body, footer) */
1143
1134
  .kds-card-header {
1144
1135
  margin-bottom: var(--kds-spacing-3);
@@ -1867,173 +1858,6 @@ body.dark {
1867
1858
  color: var(--primary);
1868
1859
  }
1869
1860
 
1870
- /* ========================================
1871
- Snackbar Components (Material Design 3)
1872
- Floating notifications at bottom of screen
1873
- ======================================== */
1874
-
1875
- /* Base snackbar - extends BeerCSS .snackbar */
1876
- .kds-snackbar {
1877
- position: fixed;
1878
- bottom: var(--kds-spacing-3);
1879
- left: 50%;
1880
- transform: translateX(-50%);
1881
- z-index: var(--kds-z-index-snackbar);
1882
-
1883
- /* Layout */
1884
- display: flex;
1885
- align-items: center;
1886
- gap: var(--kds-spacing-2);
1887
-
1888
- /* Sizing */
1889
- min-width: 344px;
1890
- max-width: 672px;
1891
- padding: var(--kds-spacing-2) var(--kds-spacing-3);
1892
-
1893
- /* Styling */
1894
- border-radius: var(--kds-radius-sm);
1895
- box-shadow: var(--kds-shadow-8);
1896
-
1897
- /* Typography */
1898
- font-family: var(--kds-font-family-primary);
1899
- font-size: var(--kds-font-size-sm);
1900
- font-weight: var(--kds-font-weight-medium);
1901
- line-height: var(--kds-line-height-normal);
1902
-
1903
- /* Animation */
1904
- animation: kds-snackbar-in 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1905
- }
1906
-
1907
- /* Snackbar animation */
1908
- @keyframes kds-snackbar-in {
1909
- from {
1910
- transform: translateX(-50%) translateY(100px);
1911
- opacity: 0;
1912
- }
1913
- to {
1914
- transform: translateX(-50%) translateY(0);
1915
- opacity: 1;
1916
- }
1917
- }
1918
-
1919
- /* Icon */
1920
- .kds-snackbar-icon {
1921
- flex-shrink: 0;
1922
- font-size: var(--kds-spacing-button-icon-size);
1923
- min-width: var(--kds-spacing-button-icon-size);
1924
- min-height: var(--kds-spacing-button-icon-size);
1925
- }
1926
-
1927
- /* Content */
1928
- .kds-snackbar-content {
1929
- flex: 1;
1930
- min-width: 0;
1931
- }
1932
-
1933
- /* Action button (optional) */
1934
- .kds-snackbar-action {
1935
- flex-shrink: 0;
1936
- }
1937
-
1938
- /* Snackbar Variants */
1939
- .kds-snackbar.kds-success {
1940
- background: var(--kds-snackbar-success-bg);
1941
- border: 1px solid 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);
1947
- }
1948
-
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);
1952
- }
1953
-
1954
- .kds-snackbar.kds-warning {
1955
- background: var(--kds-snackbar-warning-bg);
1956
- border: 1px solid var(--kds-color-warning-main);
1957
- color: var(--kds-color-warning-dark);
1958
- }
1959
-
1960
- .kds-snackbar.kds-warning .kds-snackbar-icon {
1961
- color: var(--kds-color-warning-dark);
1962
- }
1963
-
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 {
1970
- background: var(--kds-snackbar-error-bg);
1971
- border: 1px solid 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);
1977
- }
1978
-
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);
1982
- }
1983
-
1984
- .kds-snackbar.kds-info {
1985
- background: var(--kds-snackbar-info-bg);
1986
- border: 1px solid var(--kds-color-info-main);
1987
- color: var(--kds-color-info-dark);
1988
- }
1989
-
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);
1997
- }
1998
-
1999
- /* Static variant for showcase/demo purposes */
2000
- .kds-snackbar.static {
2001
- position: relative;
2002
- left: auto;
2003
- bottom: auto;
2004
- transform: none;
2005
- margin-bottom: var(--kds-spacing-3);
2006
- animation: none;
2007
- }
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
-
2015
- /* Mobile responsive */
2016
- @media (max-width: 768px) {
2017
- .kds-snackbar {
2018
- min-width: calc(100vw - var(--kds-spacing-4));
2019
- max-width: calc(100vw - var(--kds-spacing-4));
2020
- left: var(--kds-spacing-2);
2021
- right: var(--kds-spacing-2);
2022
- transform: translateX(0);
2023
- }
2024
-
2025
- @keyframes kds-snackbar-in {
2026
- from {
2027
- transform: translateY(100px);
2028
- opacity: 0;
2029
- }
2030
- to {
2031
- transform: translateY(0);
2032
- opacity: 1;
2033
- }
2034
- }
2035
- }
2036
-
2037
1861
  /* ========================================
2038
1862
  TOOLTIPS - Personaliza Beer CSS .tooltip
2039
1863
  ======================================== */
@@ -2050,7 +1874,7 @@ body.dark {
2050
1874
  font-size: var(--kds-font-size-xs);
2051
1875
  font-weight: var(--kds-font-weight-medium);
2052
1876
  border-radius: var(--kds-radius-sm);
2053
- padding: calc(var(--kds-spacing-1) / 2) var(--kds-spacing-2);
1877
+ padding: var(--kds-spacing-0-5) var(--kds-spacing-2);
2054
1878
  box-shadow: var(--kds-shadow-4);
2055
1879
  }
2056
1880
 
@@ -2110,52 +1934,11 @@ body.dark {
2110
1934
  max-width: 800px;
2111
1935
  }
2112
1936
 
2113
- /* Status card content styling */
2114
- .kds-card-status .status-content strong {
2115
- display: block;
2116
- font-weight: var(--kds-font-weight-semibold);
2117
- margin-bottom: var(--kds-spacing-1);
2118
- }
2119
-
2120
- .kds-card-status .status-content p {
2121
- margin: 0;
2122
- font-size: var(--kds-font-size-sm);
2123
- color: var(--on-surface-variant, rgba(0, 0, 0, 0.60));
2124
- }
2125
-
2126
- /* Status icon colors */
2127
- .kds-card-status .status-icon.success {
2128
- color: var(--kds-color-success);
2129
- }
2130
-
2131
- .kds-card-status .status-icon.warning {
2132
- color: var(--kds-color-warning);
2133
- }
2134
-
2135
- .kds-card-status .status-icon.error {
2136
- color: var(--kds-color-error);
2137
- }
2138
-
2139
- .kds-card-status .status-icon.info {
2140
- color: var(--kds-color-info);
2141
- }
2142
-
2143
1937
  /* Card action buttons full width */
2144
- .kds-card-flow button,
2145
1938
  .kds-card-plan button {
2146
1939
  width: 100%;
2147
1940
  }
2148
1941
 
2149
- /* Flow card content spacing */
2150
- .kds-card-flow h3 {
2151
- margin-top: 0;
2152
- }
2153
-
2154
- .kds-card-flow ul {
2155
- margin: var(--kds-spacing-4) 0;
2156
- padding-left: var(--kds-spacing-5);
2157
- }
2158
-
2159
1942
  /* Plan card title */
2160
1943
  .kds-card-plan h3 {
2161
1944
  margin: 0;
@@ -2232,68 +2015,6 @@ label.radio:has(input:disabled) {
2232
2015
  Multi-stage onboarding flow with form validation
2233
2016
  ======================================== */
2234
2017
 
2235
- /* Onboarding Container - Main wrapper for all stages */
2236
- .kds-onboarding-container {
2237
- display: flex;
2238
- flex-direction: column;
2239
- min-height: 100vh;
2240
- background: var(--kds-surface-background);
2241
- }
2242
-
2243
- /* Onboarding Header - Contains stepper and progress */
2244
- .kds-onboarding-header {
2245
- background: var(--kds-color-background-paper);
2246
- border-bottom: 1px solid var(--kds-border-light);
2247
- position: sticky;
2248
- top: 0;
2249
- z-index: 100;
2250
- }
2251
-
2252
- /* Onboarding Main - Content area */
2253
- .kds-onboarding-main {
2254
- flex: 1 0 auto;
2255
- display: flex;
2256
- flex-direction: column;
2257
- padding: var(--kds-onboarding-padding);
2258
- }
2259
-
2260
- /* Onboarding Footer - Action buttons */
2261
- .kds-onboarding-footer {
2262
- flex-shrink: 0;
2263
- background: var(--kds-color-background-paper);
2264
- border-top: 1px solid var(--kds-border-light);
2265
- padding: var(--kds-spacing-4) var(--kds-spacing-6);
2266
- display: flex;
2267
- justify-content: space-between;
2268
- align-items: center;
2269
- gap: var(--kds-spacing-3);
2270
- position: sticky;
2271
- bottom: 0;
2272
- z-index: 100;
2273
- }
2274
-
2275
- .kds-onboarding-footer .button-group {
2276
- display: flex;
2277
- gap: var(--kds-spacing-3);
2278
- align-items: center;
2279
- }
2280
-
2281
- @media (max-width: 768px) {
2282
- .kds-onboarding-footer {
2283
- flex-direction: column;
2284
- align-items: stretch;
2285
- }
2286
-
2287
- .kds-onboarding-footer .button-group {
2288
- width: 100%;
2289
- flex-direction: column;
2290
- }
2291
-
2292
- .kds-onboarding-footer button {
2293
- width: 100% !important;
2294
- }
2295
- }
2296
-
2297
2018
  /* Stage Layout - Individual stage wrapper */
2298
2019
  .kds-stage {
2299
2020
  max-width: var(--kds-onboarding-max-width);
@@ -2360,544 +2081,58 @@ label.radio:has(input:disabled) {
2360
2081
  }
2361
2082
 
2362
2083
  /* ========================================
2363
- FILE UPLOAD COMPONENT
2364
- Drag-and-drop file upload with preview
2084
+ MODAL BASE CONFIGURATION
2085
+ Override BeerCSS modal defaults
2365
2086
  ======================================== */
2366
2087
 
2367
- .kds-file-upload {
2368
- width: 100%;
2369
- }
2370
-
2371
- /* Upload Zone - Drag and drop area */
2372
- .kds-file-upload-zone {
2373
- border: 2px dashed var(--kds-upload-zone-border);
2374
- border-radius: var(--kds-radius-lg);
2375
- background: var(--kds-upload-zone-bg);
2376
- padding: var(--kds-spacing-8);
2377
- text-align: center;
2378
- cursor: pointer;
2379
- transition: all 0.3s ease;
2380
- position: relative;
2088
+ dialog.modal {
2089
+ background: var(--kds-modal-bg);
2090
+ border: none;
2091
+ border-radius: var(--kds-modal-border-radius);
2092
+ padding: var(--kds-modal-padding);
2093
+ max-width: var(--kds-modal-max-width);
2094
+ box-shadow: var(--kds-modal-shadow);
2095
+ z-index: 1000;
2381
2096
  }
2382
2097
 
2383
- .kds-file-upload-zone:hover {
2384
- border-color: var(--kds-upload-zone-border-hover);
2385
- background: #F3F4F6;
2098
+ dialog.modal::backdrop {
2099
+ background: var(--kds-modal-backdrop);
2386
2100
  }
2387
2101
 
2388
- .kds-file-upload-zone.dragover {
2389
- border-color: var(--kds-upload-zone-border-drag);
2390
- background: var(--kds-color-primary-50);
2391
- box-shadow: 0 0 0 4px rgba(131, 71, 173, 0.1);
2392
- }
2102
+ /* ========================================
2103
+ MODAL FIELD STYLES
2104
+ Consistent input/select styling for all modals
2105
+ ======================================== */
2393
2106
 
2394
- .kds-file-upload-zone.error {
2395
- border-color: var(--kds-upload-zone-border-error);
2396
- background: var(--kds-alert-error-bg);
2107
+ dialog.modal .field {
2108
+ margin-bottom: var(--kds-spacing-4);
2109
+ box-sizing: border-box;
2397
2110
  }
2398
2111
 
2399
- .kds-file-upload-zone.success {
2400
- border-color: var(--kds-upload-zone-border-success);
2401
- background: var(--kds-alert-success-bg);
2112
+ dialog.modal .field.border {
2113
+ border: var(--kds-border-width-sm) solid var(--kds-color-divider);
2114
+ border-radius: var(--kds-radius-md);
2115
+ background: var(--kds-color-background-paper);
2116
+ padding: 0;
2402
2117
  }
2403
2118
 
2404
- /* Upload zone content */
2405
- .kds-file-upload-icon {
2406
- font-size: 48px;
2407
- min-width: 48px;
2408
- min-height: 48px;
2409
- color: #9CA3AF;
2410
- margin-bottom: var(--kds-spacing-3);
2119
+ dialog.modal .field.border select,
2120
+ dialog.modal .field.border input {
2121
+ font-size: var(--kds-font-size-md);
2122
+ box-sizing: border-box;
2411
2123
  }
2412
2124
 
2413
- .kds-file-upload-zone.dragover .kds-file-upload-icon {
2414
- color: var(--kds-color-primary-500);
2125
+ /* Focus state - use outline to prevent width change */
2126
+ dialog.modal .field.border:focus-within {
2127
+ outline: var(--kds-border-width-md) solid var(--kds-color-primary-main);
2128
+ outline-offset: 0;
2129
+ border-color: var(--kds-color-primary-main);
2415
2130
  }
2416
2131
 
2417
- .kds-file-upload-text {
2418
- font-size: var(--kds-font-size-base);
2419
- font-weight: var(--kds-font-weight-medium);
2420
- color: var(--kds-color-text-primary);
2421
- margin-bottom: var(--kds-spacing-2);
2422
- }
2423
-
2424
- .kds-file-upload-button {
2425
- color: var(--primary);
2426
- text-decoration: underline;
2427
- cursor: pointer;
2428
- font-weight: 600;
2429
- }
2430
-
2431
- .kds-file-upload-button:hover {
2432
- color: var(--kds-color-primary-700);
2433
- }
2434
-
2435
- .kds-file-upload-helper {
2436
- font-size: var(--kds-font-size-sm);
2437
- color: var(--kds-color-text-secondary);
2438
- display: block;
2439
- margin-top: var(--kds-spacing-1);
2440
- }
2441
-
2442
- .kds-file-upload-hint {
2443
- font-size: var(--kds-font-size-sm);
2444
- color: var(--kds-color-text-secondary);
2445
- }
2446
-
2447
- /* Hidden file input */
2448
- .kds-file-upload input[type="file"] {
2449
- display: none;
2450
- }
2451
-
2452
- /* File Preview Area */
2453
- .kds-file-upload-preview {
2454
- margin-top: var(--kds-spacing-4);
2455
- display: flex;
2456
- flex-direction: column;
2457
- gap: var(--kds-spacing-3);
2458
- }
2459
-
2460
- /* Individual File Item */
2461
- .kds-file-upload-item {
2462
- display: flex;
2463
- align-items: center;
2464
- gap: var(--kds-spacing-3);
2465
- padding: var(--kds-spacing-3);
2466
- background: var(--kds-upload-item-bg);
2467
- border: 1px solid var(--kds-upload-item-border);
2468
- border-radius: var(--kds-radius-md);
2469
- transition: all 0.2s ease;
2470
- }
2471
-
2472
- .kds-file-upload-item:hover {
2473
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2474
- }
2475
-
2476
- /* File icon */
2477
- .kds-file-upload-item-icon {
2478
- flex-shrink: 0;
2479
- width: 40px;
2480
- height: 40px;
2481
- min-width: 40px;
2482
- min-height: 40px;
2483
- display: flex;
2484
- align-items: center;
2485
- justify-content: center;
2486
- background: var(--kds-color-primary-50);
2487
- border-radius: var(--kds-radius-md);
2488
- color: var(--kds-color-primary-500);
2489
- font-size: 20px;
2490
- }
2491
-
2492
- .kds-file-upload-item-icon i {
2493
- min-width: 20px;
2494
- min-height: 20px;
2495
- }
2496
-
2497
- /* File info */
2498
- .kds-file-upload-item-info {
2499
- flex: 1;
2500
- min-width: 0;
2501
- }
2502
-
2503
- .kds-file-upload-item-name {
2504
- font-size: var(--kds-font-size-sm);
2505
- font-weight: var(--kds-font-weight-medium);
2506
- color: var(--kds-color-text-primary);
2507
- white-space: nowrap;
2508
- overflow: hidden;
2509
- text-overflow: ellipsis;
2510
- }
2511
-
2512
- .kds-file-upload-item-meta {
2513
- font-size: var(--kds-font-size-xs);
2514
- color: var(--kds-color-text-secondary);
2515
- margin-top: 2px;
2516
- }
2517
-
2518
- .kds-file-upload-item-size {
2519
- font-size: var(--kds-font-size-xs);
2520
- color: var(--kds-color-text-secondary);
2521
- margin-top: 2px;
2522
- }
2523
-
2524
- /* File status */
2525
- .kds-file-upload-item-status {
2526
- flex-shrink: 0;
2527
- font-size: 20px;
2528
- }
2529
-
2530
- .kds-file-upload-item-status.success {
2531
- color: var(--kds-color-success);
2532
- }
2533
-
2534
- .kds-file-upload-item-status.error {
2535
- color: var(--kds-color-error);
2536
- }
2537
-
2538
- .kds-file-upload-item-status.uploading {
2539
- color: var(--kds-color-info);
2540
- }
2541
-
2542
- /* Remove button */
2543
- .kds-file-upload-item-remove {
2544
- flex-shrink: 0;
2545
- background: transparent;
2546
- border: none;
2547
- color: #9CA3AF;
2548
- cursor: pointer;
2549
- padding: var(--kds-spacing-1);
2550
- border-radius: var(--kds-radius-sm);
2551
- transition: all 0.2s ease;
2552
- font-size: 20px;
2553
- display: flex;
2554
- align-items: center;
2555
- justify-content: center;
2556
- }
2557
-
2558
- .kds-file-upload-item-remove:hover {
2559
- background: var(--kds-alert-error-bg);
2560
- color: var(--kds-color-error);
2561
- }
2562
-
2563
- /* Progress bar (for async uploads) */
2564
- .kds-file-upload-progress {
2565
- height: 4px;
2566
- background: var(--kds-color-background-elevated);
2567
- border-radius: 2px;
2568
- overflow: hidden;
2569
- margin-top: var(--kds-spacing-2);
2570
- }
2571
-
2572
- .kds-file-upload-progress-bar {
2573
- height: 100%;
2574
- background: var(--kds-color-primary-500);
2575
- transition: width 0.3s ease;
2576
- }
2577
-
2578
- /* ========================================
2579
- OTP INPUT COMPONENT
2580
- 6-digit one-time password input
2581
- ======================================== */
2582
-
2583
- .kds-otp-input {
2584
- display: flex;
2585
- justify-content: center;
2586
- gap: var(--kds-spacing-3);
2587
- margin: var(--kds-spacing-6) 0;
2588
- }
2589
-
2590
- .kds-otp-digit {
2591
- width: var(--kds-otp-digit-size);
2592
- height: var(--kds-otp-digit-height);
2593
- font-size: var(--kds-font-size-2xl);
2594
- font-weight: var(--kds-font-weight-bold);
2595
- text-align: center;
2596
- border: 2px solid var(--kds-otp-digit-border);
2597
- border-radius: var(--kds-radius-md);
2598
- background: var(--kds-otp-digit-bg);
2599
- transition: all 0.2s ease;
2600
- outline: none;
2601
- color: var(--kds-color-text-primary);
2602
- }
2603
-
2604
- .kds-otp-digit:focus {
2605
- border-color: var(--kds-otp-digit-border-focus);
2606
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
2607
- }
2608
-
2609
- .kds-otp-digit:not(:placeholder-shown) {
2610
- background: var(--kds-otp-digit-bg-filled);
2611
- border-color: var(--kds-color-success);
2612
- }
2613
-
2614
- .kds-otp-digit.error {
2615
- border-color: var(--kds-color-error);
2616
- background: var(--kds-alert-error-bg);
2617
- }
2618
-
2619
- /* Mobile responsive */
2620
- @media (max-width: 480px) {
2621
- .kds-otp-input {
2622
- gap: var(--kds-spacing-2);
2623
- }
2624
-
2625
- .kds-otp-digit {
2626
- width: 48px;
2627
- height: 56px;
2628
- font-size: var(--kds-font-size-xl);
2629
- }
2630
- }
2631
-
2632
- /* ========================================
2633
- BANK SELECTOR GRID
2634
- Grid of selectable bank cards
2635
- ======================================== */
2636
-
2637
- .kds-bank-grid {
2638
- display: grid;
2639
- grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2640
- gap: var(--kds-spacing-4);
2641
- margin: var(--kds-spacing-4) 0;
2642
- }
2643
-
2644
- @media (max-width: 768px) {
2645
- .kds-bank-grid {
2646
- grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
2647
- gap: var(--kds-spacing-3);
2648
- }
2649
- }
2650
-
2651
- @media (max-width: 480px) {
2652
- .kds-bank-grid {
2653
- grid-template-columns: repeat(3, minmax(0, 1fr));
2654
- gap: var(--kds-spacing-2);
2655
- }
2656
- }
2657
-
2658
- /* Individual Bank Item */
2659
- .kds-bank-item {
2660
- aspect-ratio: 1;
2661
- display: flex;
2662
- flex-direction: column;
2663
- align-items: center;
2664
- justify-content: center;
2665
- padding: var(--kds-spacing-3);
2666
- border: 2px solid var(--kds-bank-item-border);
2667
- border-radius: var(--kds-radius-lg);
2668
- background: var(--kds-color-background-paper);
2669
- cursor: pointer;
2670
- transition: all 0.3s ease;
2671
- position: relative;
2672
- }
2673
-
2674
- .kds-bank-item:hover {
2675
- border-color: var(--kds-bank-item-border-hover);
2676
- background: var(--kds-bank-item-bg-hover);
2677
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2678
- }
2679
-
2680
- .kds-bank-item.selected {
2681
- border-color: var(--kds-bank-item-border-selected);
2682
- background: var(--kds-bank-item-bg-selected);
2683
- box-shadow: 0 4px 6px rgba(59, 130, 246, 0.2);
2684
- }
2685
-
2686
- /* Bank logo */
2687
- .kds-bank-item-logo {
2688
- width: 100%;
2689
- height: auto;
2690
- max-width: 80px;
2691
- margin-bottom: var(--kds-spacing-2);
2692
- object-fit: contain;
2693
- }
2694
-
2695
- /* Bank name */
2696
- .kds-bank-item-name {
2697
- font-size: var(--kds-font-size-xs);
2698
- font-weight: var(--kds-font-weight-medium);
2699
- color: var(--kds-color-text-primary);
2700
- text-align: center;
2701
- line-height: 1.3;
2702
- }
2703
-
2704
- /* Selected checkmark */
2705
- .kds-bank-item-check {
2706
- position: absolute;
2707
- top: 8px;
2708
- right: 8px;
2709
- width: 24px;
2710
- height: 24px;
2711
- background: var(--kds-color-primary-500);
2712
- border-radius: 50%;
2713
- display: none;
2714
- align-items: center;
2715
- justify-content: center;
2716
- color: white;
2717
- font-size: 14px;
2718
- }
2719
-
2720
- .kds-bank-item.selected .kds-bank-item-check {
2721
- display: flex;
2722
- }
2723
-
2724
- .kds-bank-item-check::after {
2725
- content: "✓";
2726
- font-weight: 700;
2727
- }
2728
-
2729
- /* Mobile adjustments */
2730
- @media (max-width: 480px) {
2731
- .kds-bank-item {
2732
- padding: var(--kds-spacing-2);
2733
- }
2734
-
2735
- .kds-bank-item-logo {
2736
- max-width: 60px;
2737
- }
2738
-
2739
- .kds-bank-item-name {
2740
- font-size: 10px;
2741
- }
2742
-
2743
- .kds-bank-item-check {
2744
- width: 20px;
2745
- height: 20px;
2746
- font-size: 12px;
2747
- top: 4px;
2748
- right: 4px;
2749
- }
2750
- }
2751
-
2752
- /* ========================================
2753
- MODAL BASE CONFIGURATION
2754
- Override BeerCSS modal defaults
2755
- ======================================== */
2756
-
2757
- dialog.modal {
2758
- background: var(--kds-modal-bg);
2759
- border: none;
2760
- border-radius: var(--kds-modal-border-radius);
2761
- padding: var(--kds-modal-padding);
2762
- max-width: var(--kds-modal-max-width);
2763
- box-shadow: var(--kds-modal-shadow);
2764
- z-index: 1000;
2765
- }
2766
-
2767
- dialog.modal::backdrop {
2768
- background: var(--kds-modal-backdrop);
2769
- }
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
-
2801
- /* ========================================
2802
- KYC BLOCKING MODAL
2803
- Warning modal for high-risk sectors
2804
- ======================================== */
2805
-
2806
- .kds-kyc-modal {
2807
- background: var(--kds-modal-bg);
2808
- border: none;
2809
- border-radius: var(--kds-modal-border-radius);
2810
- padding: var(--kds-modal-padding);
2811
- max-width: var(--kds-modal-max-width);
2812
- margin: 0 auto;
2813
- box-shadow: var(--kds-modal-shadow);
2814
- }
2815
-
2816
- .kds-kyc-modal-icon {
2817
- text-align: center;
2818
- margin-bottom: var(--kds-spacing-4);
2819
- }
2820
-
2821
- .kds-kyc-modal-icon i {
2822
- font-size: 64px;
2823
- min-width: 64px;
2824
- min-height: 64px;
2825
- color: var(--kds-modal-icon-warning);
2826
- }
2827
-
2828
- .kds-kyc-modal-title {
2829
- font-size: var(--kds-font-size-2xl);
2830
- font-weight: var(--kds-font-weight-bold);
2831
- color: var(--kds-modal-title-color);
2832
- text-align: center;
2833
- margin-bottom: var(--kds-spacing-4);
2834
- }
2835
-
2836
- .kds-kyc-modal-message {
2837
- font-size: var(--kds-font-size-base);
2838
- color: var(--kds-modal-text-color);
2839
- line-height: 1.6;
2840
- margin-bottom: var(--kds-spacing-6);
2841
- text-align: center;
2842
- }
2843
-
2844
- .kds-kyc-modal-contact {
2845
- background: var(--kds-surface-elevated);
2846
- border-radius: var(--kds-radius-md);
2847
- padding: var(--kds-spacing-4);
2848
- margin-bottom: var(--kds-spacing-6);
2849
- border-left: 4px solid var(--primary);
2850
- }
2851
-
2852
- .kds-kyc-modal-contact strong {
2853
- display: block;
2854
- font-weight: var(--kds-font-weight-semibold);
2855
- color: var(--kds-modal-title-color);
2856
- margin-bottom: var(--kds-spacing-2);
2857
- }
2858
-
2859
- .kds-kyc-modal-contact a {
2860
- color: var(--kds-color-primary-500);
2861
- text-decoration: none;
2862
- font-weight: var(--kds-font-weight-medium);
2863
- }
2864
-
2865
- .kds-kyc-modal-contact a:hover {
2866
- text-decoration: underline;
2867
- }
2868
-
2869
- .kds-kyc-modal-actions {
2870
- display: flex;
2871
- gap: var(--kds-spacing-3);
2872
- justify-content: center;
2873
- }
2874
-
2875
- @media (max-width: 480px) {
2876
- .kds-kyc-modal,
2877
- dialog.modal {
2878
- padding: var(--kds-modal-padding-mobile);
2879
- max-width: var(--kds-modal-max-width-mobile);
2880
- }
2881
-
2882
- .kds-kyc-modal-icon i {
2883
- font-size: 48px;
2884
- min-width: 48px;
2885
- min-height: 48px;
2886
- }
2887
-
2888
- .kds-kyc-modal-actions {
2889
- flex-direction: column;
2890
- }
2891
-
2892
- .kds-kyc-modal-actions button {
2893
- width: 100% !important;
2894
- }
2895
- }
2896
-
2897
- /* ========================================
2898
- WELCOME HERO SECTION
2899
- Full-width gradient hero with CTA
2900
- ======================================== */
2132
+ /* ========================================
2133
+ WELCOME HERO SECTION
2134
+ Full-width gradient hero with CTA
2135
+ ======================================== */
2901
2136
 
2902
2137
  .kds-welcome-hero {
2903
2138
  background: linear-gradient(135deg, var(--kds-welcome-gradient-start) 0%, var(--kds-welcome-gradient-end) 100%);
@@ -3091,49 +2326,6 @@ dialog.modal .field.border:focus-within {
3091
2326
  padding-left: var(--kds-spacing-5);
3092
2327
  }
3093
2328
 
3094
- /* ========================================
3095
- SIGNATURE PAD
3096
- Canvas-based signature capture
3097
- ======================================== */
3098
-
3099
- .kds-signature-pad {
3100
- width: 100%;
3101
- }
3102
-
3103
- .kds-signature-canvas-wrapper {
3104
- border: 2px solid var(--kds-signature-border);
3105
- border-radius: var(--kds-radius-md);
3106
- background: var(--kds-signature-bg);
3107
- padding: var(--kds-spacing-2);
3108
- margin-bottom: var(--kds-spacing-3);
3109
- }
3110
-
3111
- .kds-signature-canvas {
3112
- display: block;
3113
- width: 100%;
3114
- height: 200px;
3115
- border-radius: var(--kds-radius-sm);
3116
- cursor: crosshair;
3117
- touch-action: none;
3118
- }
3119
-
3120
- .kds-signature-actions {
3121
- display: flex;
3122
- gap: var(--kds-spacing-2);
3123
- justify-content: flex-end;
3124
- }
3125
-
3126
- .kds-signature-clear {
3127
- background: transparent !important;
3128
- color: var(--kds-color-text-secondary) !important;
3129
- border: 1px solid #D1D5DB !important;
3130
- }
3131
-
3132
- .kds-signature-clear:hover {
3133
- background: #F3F4F6 !important;
3134
- border-color: #9CA3AF !important;
3135
- }
3136
-
3137
2329
  /* Form Grid - 2-column responsive layout for forms */
3138
2330
  .kds-form-grid {
3139
2331
  display: grid;
@@ -3191,228 +2383,6 @@ dialog.modal .field.border:focus-within {
3191
2383
  border-radius: var(--kds-radius-md);
3192
2384
  }
3193
2385
 
3194
- /* ========================================
3195
- SUMMARY CARD (Review/Validation)
3196
- Used in validation stage to show user data
3197
- ======================================== */
3198
-
3199
- .kds-summary-card {
3200
- background: white;
3201
- border: 1px solid var(--kds-border-light);
3202
- border-radius: var(--kds-radius-lg);
3203
- padding: var(--kds-spacing-5);
3204
- margin-bottom: var(--kds-spacing-4);
3205
- }
3206
-
3207
- .kds-summary-card-header {
3208
- display: flex;
3209
- justify-content: space-between;
3210
- align-items: center;
3211
- margin-bottom: var(--kds-spacing-4);
3212
- padding-bottom: var(--kds-spacing-3);
3213
- border-bottom: 1px solid #F3F4F6;
3214
- }
3215
-
3216
- .kds-summary-card-title {
3217
- display: flex;
3218
- align-items: center;
3219
- gap: var(--kds-spacing-2);
3220
- font-size: var(--kds-font-size-lg);
3221
- font-weight: var(--kds-font-weight-semibold);
3222
- color: var(--kds-color-text-primary);
3223
- }
3224
-
3225
- .kds-summary-card-edit {
3226
- color: var(--primary);
3227
- text-decoration: none;
3228
- font-size: var(--kds-font-size-sm);
3229
- font-weight: var(--kds-font-weight-medium);
3230
- display: flex;
3231
- align-items: center;
3232
- gap: 4px;
3233
- transition: opacity 0.2s ease;
3234
- }
3235
-
3236
- .kds-summary-card-edit:hover {
3237
- text-decoration: underline;
3238
- opacity: 0.8;
3239
- }
3240
-
3241
- .kds-summary-row {
3242
- display: flex;
3243
- padding: var(--kds-spacing-2) 0;
3244
- }
3245
-
3246
- .kds-summary-label {
3247
- flex: 0 0 140px;
3248
- font-size: var(--kds-font-size-sm);
3249
- font-weight: var(--kds-font-weight-medium);
3250
- color: var(--kds-color-text-secondary);
3251
- }
3252
-
3253
- .kds-summary-value {
3254
- flex: 1;
3255
- font-size: var(--kds-font-size-sm);
3256
- color: var(--kds-color-text-primary);
3257
- }
3258
-
3259
- .kds-summary-value.badge {
3260
- display: inline-block;
3261
- padding: 4px 12px;
3262
- background: var(--kds-color-primary-100);
3263
- color: var(--primary);
3264
- border-radius: var(--kds-radius-full);
3265
- font-weight: var(--kds-font-weight-medium);
3266
- }
3267
-
3268
- /* ========================================
3269
- SUCCESS PAGE COMPONENTS
3270
- Celebration/completion page layout
3271
- ======================================== */
3272
-
3273
- .kds-success-container {
3274
- display: flex;
3275
- flex-direction: column;
3276
- align-items: center;
3277
- justify-content: center;
3278
- min-height: 80vh;
3279
- text-align: center;
3280
- padding: var(--kds-spacing-8);
3281
- }
3282
-
3283
- .kds-success-icon {
3284
- width: 120px;
3285
- height: 120px;
3286
- background: #ECFDF5;
3287
- border-radius: 50%;
3288
- display: flex;
3289
- align-items: center;
3290
- justify-content: center;
3291
- margin-bottom: var(--kds-spacing-6);
3292
- animation: scaleIn 0.5s ease-out;
3293
- }
3294
-
3295
- @keyframes scaleIn {
3296
- from {
3297
- transform: scale(0);
3298
- opacity: 0;
3299
- }
3300
- to {
3301
- transform: scale(1);
3302
- opacity: 1;
3303
- }
3304
- }
3305
-
3306
- .kds-success-icon i {
3307
- font-size: 80px;
3308
- min-width: 80px;
3309
- min-height: 80px;
3310
- color: var(--kds-color-success);
3311
- }
3312
-
3313
- .kds-success-title {
3314
- font-size: var(--kds-font-size-3xl);
3315
- font-weight: var(--kds-font-weight-bold);
3316
- color: var(--kds-color-text-primary);
3317
- margin-bottom: var(--kds-spacing-3);
3318
- }
3319
-
3320
- .kds-success-subtitle {
3321
- font-size: var(--kds-font-size-lg);
3322
- color: var(--kds-color-text-secondary);
3323
- margin-bottom: var(--kds-spacing-8);
3324
- max-width: 600px;
3325
- }
3326
-
3327
- .kds-next-steps {
3328
- background: white;
3329
- border: 1px solid var(--kds-border-light);
3330
- border-radius: var(--kds-radius-xl);
3331
- padding: var(--kds-spacing-6);
3332
- max-width: 700px;
3333
- width: 100%;
3334
- margin-bottom: var(--kds-spacing-6);
3335
- text-align: left;
3336
- }
3337
-
3338
- .kds-next-steps-title {
3339
- font-size: var(--kds-font-size-xl);
3340
- font-weight: var(--kds-font-weight-semibold);
3341
- color: var(--kds-color-text-primary);
3342
- margin-bottom: var(--kds-spacing-4);
3343
- display: flex;
3344
- align-items: center;
3345
- gap: var(--kds-spacing-2);
3346
- }
3347
-
3348
- .kds-step-item {
3349
- display: flex;
3350
- gap: var(--kds-spacing-3);
3351
- padding: var(--kds-spacing-3) 0;
3352
- border-bottom: 1px solid #F3F4F6;
3353
- }
3354
-
3355
- .kds-step-item:last-child {
3356
- border-bottom: none;
3357
- }
3358
-
3359
- .kds-step-number {
3360
- flex-shrink: 0;
3361
- width: 32px;
3362
- height: 32px;
3363
- background: var(--kds-color-primary-100);
3364
- color: var(--primary);
3365
- border-radius: 50%;
3366
- display: flex;
3367
- align-items: center;
3368
- justify-content: center;
3369
- font-weight: var(--kds-font-weight-semibold);
3370
- font-size: var(--kds-font-size-sm);
3371
- }
3372
-
3373
- .kds-step-content {
3374
- flex: 1;
3375
- }
3376
-
3377
- .kds-step-title {
3378
- font-size: var(--kds-font-size-base);
3379
- font-weight: var(--kds-font-weight-semibold);
3380
- color: var(--kds-color-text-primary);
3381
- margin-bottom: 4px;
3382
- }
3383
-
3384
- .kds-step-description {
3385
- font-size: var(--kds-font-size-sm);
3386
- color: var(--kds-color-text-secondary);
3387
- line-height: 1.5;
3388
- }
3389
-
3390
- .kds-success-actions {
3391
- display: flex;
3392
- gap: var(--kds-spacing-3);
3393
- flex-wrap: wrap;
3394
- justify-content: center;
3395
- }
3396
-
3397
- @media (max-width: 768px) {
3398
- .kds-success-title {
3399
- font-size: var(--kds-font-size-2xl);
3400
- }
3401
-
3402
- .kds-success-subtitle {
3403
- font-size: var(--kds-font-size-base);
3404
- }
3405
-
3406
- .kds-success-actions {
3407
- flex-direction: column;
3408
- width: 100%;
3409
- }
3410
-
3411
- .kds-success-actions button {
3412
- width: 100%;
3413
- }
3414
- }
3415
-
3416
2386
  /* ========================================
3417
2387
  Responsive Utilities
3418
2388
  ======================================== */
@@ -3669,7 +2639,7 @@ footer > .kds-container-center {
3669
2639
  font-size: var(--kds-font-size-sm);
3670
2640
  font-weight: var(--kds-font-weight-semibold);
3671
2641
  line-height: var(--kds-line-height-normal);
3672
- margin-bottom: calc(var(--kds-spacing-1) / 2);
2642
+ margin-bottom: var(--kds-spacing-0-5);
3673
2643
  word-break: normal;
3674
2644
  overflow-wrap: break-word;
3675
2645
  }
@@ -3915,7 +2885,7 @@ footer > .kds-container-center {
3915
2885
  left: 0;
3916
2886
  top: 0;
3917
2887
  bottom: 0;
3918
- width: calc(var(--kds-spacing-1) / 2);
2888
+ width: var(--kds-spacing-0-5);
3919
2889
  background: var(--kds-color-primary-main);
3920
2890
  }
3921
2891
 
@@ -4017,11 +2987,6 @@ footer > .kds-container-center {
4017
2987
  font-weight: var(--kds-font-weight-semibold);
4018
2988
  }
4019
2989
 
4020
- /* Layout con espacio para topbar */
4021
- .kds-page-layout {
4022
- padding-top: var(--kds-spacing-7);
4023
- }
4024
-
4025
2990
  /* Sidebar = drawer full-width */
4026
2991
  .kds-sidebar {
4027
2992
  position: fixed;
@@ -4305,7 +3270,7 @@ footer > .kds-container-center {
4305
3270
 
4306
3271
  .component-tag {
4307
3272
  font-size: var(--kds-font-size-xs);
4308
- padding: calc(var(--kds-spacing-1) / 2) var(--kds-spacing-3);
3273
+ padding: var(--kds-spacing-0-5) var(--kds-spacing-3);
4309
3274
  background: var(--kds-color-background-default);
4310
3275
  color: var(--kds-color-text-secondary);
4311
3276
  border-radius: var(--kds-radius-full);
@@ -4609,50 +3574,6 @@ dialog#surveyModal button.circle {
4609
3574
  line-height: var(--kds-line-height-relaxed);
4610
3575
  }
4611
3576
 
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
3577
  /* ========================================
4657
3578
  CONTRACT CONTENT (Contract page)
4658
3579
  ======================================== */