@rhinestone/deposit-modal 0.3.0-alpha.0 → 0.3.0-alpha.10

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.
Files changed (40) hide show
  1. package/dist/{DepositModalReown-GXY65HZP.mjs → DepositModalReown-2S76TEXU.mjs} +9 -6
  2. package/dist/{DepositModalReown-HVIEA6YA.cjs → DepositModalReown-4NV6JM2U.cjs} +12 -9
  3. package/dist/{QRCode-SMMYPUQC.cjs → QRCode-KG47KTGX.cjs} +1 -1
  4. package/dist/{QRCode-YMQTKSSK.mjs → QRCode-YJ3EGWQS.mjs} +1 -1
  5. package/dist/{WithdrawModalReown-O6V6KRH6.mjs → WithdrawModalReown-QEQPCSWT.mjs} +4 -4
  6. package/dist/{WithdrawModalReown-4M3PBY2T.cjs → WithdrawModalReown-Z5JVENP6.cjs} +7 -7
  7. package/dist/{chunk-Y3RA3YGA.cjs → chunk-2TWQGPPB.cjs} +1323 -590
  8. package/dist/chunk-7JIDIX27.cjs +554 -0
  9. package/dist/{chunk-FKPTIHU7.mjs → chunk-7MZNQ4C2.mjs} +76 -351
  10. package/dist/{chunk-YQFH2WSW.cjs → chunk-FGVSNARE.cjs} +55 -25
  11. package/dist/{chunk-7SYZG47X.cjs → chunk-HUPEN2T5.cjs} +2820 -1509
  12. package/dist/{chunk-U5QIFNG4.mjs → chunk-N5NOJ4ZV.mjs} +2746 -1435
  13. package/dist/{chunk-5YXAQB6A.mjs → chunk-QXIJLRKC.mjs} +56 -26
  14. package/dist/chunk-SZIYS42B.mjs +554 -0
  15. package/dist/{chunk-UIHAYD7J.mjs → chunk-WVE3JN3C.mjs} +1308 -575
  16. package/dist/{chunk-Z2SIC2TH.cjs → chunk-YI63OMXN.cjs} +157 -432
  17. package/dist/constants-DqVn968d.d.cts +52 -0
  18. package/dist/constants-DqVn968d.d.ts +52 -0
  19. package/dist/constants.cjs +8 -2
  20. package/dist/constants.d.cts +17 -48
  21. package/dist/constants.d.ts +17 -48
  22. package/dist/constants.mjs +7 -1
  23. package/dist/deposit.cjs +4 -4
  24. package/dist/deposit.d.cts +2 -2
  25. package/dist/deposit.d.ts +2 -2
  26. package/dist/deposit.mjs +3 -3
  27. package/dist/index.cjs +16 -7
  28. package/dist/index.d.cts +2 -2
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.mjs +16 -7
  31. package/dist/styles.css +656 -207
  32. package/dist/{types-DRou84ZM.d.cts → types-D6wrO4Ow.d.cts} +33 -8
  33. package/dist/{types-DRou84ZM.d.ts → types-D6wrO4Ow.d.ts} +33 -8
  34. package/dist/withdraw.cjs +4 -4
  35. package/dist/withdraw.d.cts +2 -2
  36. package/dist/withdraw.d.ts +2 -2
  37. package/dist/withdraw.mjs +3 -3
  38. package/package.json +5 -5
  39. package/dist/chunk-EEHUOFIW.mjs +0 -524
  40. package/dist/chunk-XCAF6B3D.cjs +0 -524
package/dist/styles.css CHANGED
@@ -1,6 +1,10 @@
1
1
  /* ABOUTME: Styles for the deposit-modal component. */
2
2
  /* ABOUTME: Uses CSS variables for theming - matches deposit-widget design exactly. */
3
3
 
4
+ /* Self-host the Figma typefaces so the modal renders with the correct
5
+ weights regardless of whether the consumer app loads Inter / Geist Mono. */
6
+ @import url("https://fonts.googleapis.com/css2?family=Geist+Mono:wght@500&family=Inter:wght@400;500;600;700&display=swap");
7
+
4
8
  /* =============================================================================
5
9
  CSS Variables (Light Mode Default) - Using Radix Gray Scale
6
10
  ============================================================================= */
@@ -49,13 +53,30 @@
49
53
  /* Amber (warning) */
50
54
  --color-amber3: #fff7c2;
51
55
  --color-amber8: #e2a336;
56
+ --color-amber11: #92400e;
52
57
 
53
58
  /* Semantic colors */
54
59
  --rs-background: #ffffff;
55
60
  --rs-background-secondary: var(--color-gray1);
56
- --rs-surface-subtle: #fafafa;
61
+ --rs-surface-subtle: #fcfbfb;
57
62
  --rs-surface: var(--color-gray3);
58
63
  --rs-surface-hover: var(--color-gray4);
64
+ /* Figma coin-select/selected — zinc-100 fill + zinc-300 border. */
65
+ --rs-asset-selected-bg: #f4f4f5;
66
+ --rs-asset-selected-border: #d4d4d8;
67
+ /* Figma: icon-wrapper tokens. Same as surface in light, but dark mode
68
+ diverges so we keep them separate. */
69
+ --rs-icon-wrapper-bg: #f4f4f5;
70
+ --rs-icon-wrapper-icon: #9f9fa9;
71
+ /* Figma input/label + view/icon-secondary — differ from the generic
72
+ gray scale: light-mode label/icon is zinc-600 (#52525c), dark mode
73
+ falls to zinc-400 (#9f9fa9). */
74
+ --rs-input-label: #52525c;
75
+ --rs-icon-secondary: #52525c;
76
+ /* Figma button-dark-ghost token — used by amount-step presets. */
77
+ --rs-button-ghost-bg: #e4e4e7;
78
+ --rs-button-ghost-bg-hover: #d4d4d8;
79
+ --rs-button-ghost-text: #27272a;
59
80
 
60
81
  /* Primary (CTA). Default theme uses the dark-on-light pair.
61
82
  A custom theme overrides these directly via inline CSS vars,
@@ -71,9 +92,23 @@
71
92
 
72
93
  --rs-success: var(--color-green9);
73
94
  --rs-success-tint: var(--color-green3);
74
- --rs-error: var(--color-red9);
75
- --rs-error-tint: var(--color-red3);
76
- --rs-warning-tint: var(--color-amber3);
95
+ /* Figma alert palette — alert/red (error) + alert/amber (warning). Amber
96
+ has no distinct border token in the design, so its border matches its bg. */
97
+ --rs-error: #fb2c36;
98
+ --rs-error-tint: #fef2f2;
99
+ --rs-error-border: #ffc9c9;
100
+ --rs-warning: #7b3306;
101
+ --rs-warning-tint: #fee685;
102
+ --rs-warning-border: #fee685;
103
+ /* Callout (generic error/warning notice) — lighter translucent "glass"
104
+ tints so the modal surface shows through. Kept separate from the solid
105
+ alert palette above, which input-error states and badges still use. */
106
+ --rs-callout-error-bg: rgba(251, 44, 54, 0.07);
107
+ --rs-callout-error-border: rgba(251, 44, 54, 0.18);
108
+ --rs-callout-error-text: #e7000b;
109
+ --rs-callout-warning-bg: rgba(245, 158, 11, 0.12);
110
+ --rs-callout-warning-border: rgba(245, 158, 11, 0.24);
111
+ --rs-callout-warning-text: #b45309;
77
112
 
78
113
  --rs-foreground: var(--color-gray12);
79
114
  --rs-muted: var(--color-gray10);
@@ -87,13 +122,14 @@
87
122
  --rs-secondary: var(--color-gray3);
88
123
  --rs-secondary-hover: var(--color-gray4);
89
124
 
90
- --rs-shadow-dropdown:
91
- 0 4px 12px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.06);
125
+ /* Figma: dropdown/select menu uses a tight 0/2/4 shadow at 0.25 so it
126
+ reads on every edge (including the side that sits against the modal). */
127
+ --rs-shadow-dropdown: 0 2px 4px rgba(0, 0, 0, 0.25);
92
128
 
93
129
  /* Sizing */
94
130
  --rs-height-button: 42px;
95
131
  --rs-height-titlebar: 36px;
96
- --rs-width-dialog: 400px;
132
+ --rs-width-dialog: 380px;
97
133
 
98
134
  /* Radius */
99
135
  --rs-radius-none: 0;
@@ -103,10 +139,12 @@
103
139
  --rs-radius-full: 9999px;
104
140
  --rs-radius: var(--rs-radius-md);
105
141
 
106
- /* Typography */
142
+ /* Typography. Figma uses Inter; we list it first and fall back to the
143
+ system stack so consumers that load Inter get the exact design, and
144
+ everyone else gets a sensible default. */
107
145
  font-family:
108
- -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
109
- sans-serif;
146
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
147
+ Arial, sans-serif;
110
148
  font-size: 14px;
111
149
  line-height: 1.5;
112
150
  color: var(--rs-foreground);
@@ -115,12 +153,15 @@
115
153
  -moz-osx-font-smoothing: grayscale;
116
154
  position: relative;
117
155
  /* Flex column so children (header + body) can split available height with
118
- the body region scrolling when it overflows. */
156
+ the body region scrolling when it overflows. Figma: modal applies a
157
+ 16px padding and 16px gap between the header row and the body. */
119
158
  display: flex;
120
159
  flex-direction: column;
121
160
  flex: 1;
122
161
  min-height: 0;
123
162
  overflow: hidden;
163
+ padding: 16px;
164
+ gap: 16px;
124
165
  }
125
166
 
126
167
  /* =============================================================================
@@ -152,7 +193,8 @@
152
193
  --color-red3: rgba(229, 72, 77, 0.1);
153
194
  --color-red4: rgba(229, 72, 77, 0.16);
154
195
  --color-red10: #f16a6e;
155
- --color-amber3: rgba(226, 163, 54, 0.1);
196
+ --color-amber3: rgba(226, 163, 54, 0.12);
197
+ --color-amber11: #fcd34d;
156
198
 
157
199
  /* Inverted neutral pair: light-on-dark CTA */
158
200
  --color-neutral3: rgba(244, 244, 245, 0.08);
@@ -161,14 +203,30 @@
161
203
  --color-neutral10: #e4e4e7;
162
204
  --color-neutral11: #d4d4d8;
163
205
 
164
- --rs-background: #0c0c0c;
206
+ --rs-background: #0a0a0a;
165
207
  /* Well / dropdown / QR-card surface in dark mode. Used by anything that
166
208
  renders an elevated container (asset rows, QR well, select inputs). */
167
209
  --rs-background-secondary: #18181b;
168
210
  --rs-surface-subtle: #18181b;
169
211
  --rs-surface: #27272a;
212
+ /* Figma: icon-wrapper/background — separate from --rs-surface so the
213
+ deposit-header icon tile stays #18181b in dark mode. */
214
+ --rs-icon-wrapper-bg: #18181b;
215
+ --rs-icon-wrapper-icon: #52525c;
216
+ --rs-input-label: #9f9fa9;
217
+ --rs-icon-secondary: #9f9fa9;
218
+ --rs-button-ghost-bg: #27272a;
219
+ --rs-button-ghost-bg-hover: #3f3f46;
220
+ --rs-button-ghost-text: #e4e4e7;
170
221
  --rs-surface-hover: #3f3f46;
171
- --rs-primary-foreground: #18181b;
222
+ /* Figma coin-select/selected (dark) — zinc-900 fill + zinc-700 border. */
223
+ --rs-asset-selected-bg: #18181b;
224
+ --rs-asset-selected-border: #3f3f46;
225
+ /* Figma button-dark in dark mode: zinc-200 disc, near-black label. */
226
+ --rs-primary: #e4e4e7;
227
+ --rs-primary-hover: #d4d4d8;
228
+ --rs-primary-active: #9f9fa9;
229
+ --rs-primary-foreground: #09090b;
172
230
  --rs-primary-disabled-bg: #27272a;
173
231
  --rs-primary-disabled-fg: #71717b;
174
232
  --rs-icon: var(--color-gray10);
@@ -176,6 +234,21 @@
176
234
  --rs-shadow-dropdown:
177
235
  0 4px 20px rgba(0, 0, 0, 0.6), 0 1px 4px rgba(0, 0, 0, 0.4);
178
236
 
237
+ /* Figma alert palette (dark) — alert/red red-950 bg / red-800 border,
238
+ alert/amber amber-600 bg / amber-50 text (border matches bg). */
239
+ --rs-error-tint: #460809;
240
+ --rs-error-border: #9f0712;
241
+ --rs-warning: #fffbeb;
242
+ --rs-warning-tint: #e17100;
243
+ --rs-warning-border: #e17100;
244
+ /* Callout glass tints (dark) — translucent over the near-black surface. */
245
+ --rs-callout-error-bg: rgba(251, 44, 54, 0.13);
246
+ --rs-callout-error-border: rgba(251, 44, 54, 0.3);
247
+ --rs-callout-error-text: #ff6467;
248
+ --rs-callout-warning-bg: rgba(245, 158, 11, 0.13);
249
+ --rs-callout-warning-border: rgba(245, 158, 11, 0.28);
250
+ --rs-callout-warning-text: #fcd34d;
251
+
179
252
  color-scheme: dark;
180
253
  }
181
254
 
@@ -201,13 +274,13 @@
201
274
  }
202
275
 
203
276
  .rs-modal-content {
204
- --rs-radius-lg: 14px;
277
+ --rs-radius-lg: 16px;
205
278
  --rs-background: #ffffff;
206
279
  --rs-border: #f4f4f5;
207
280
 
208
281
  position: relative;
209
282
  width: 100%;
210
- max-width: var(--rs-width-dialog, 400px);
283
+ max-width: var(--rs-width-dialog, 380px);
211
284
  /* Cap the modal at 600px (or viewport-40 on tiny screens) so long lists
212
285
  scroll inside instead of growing the modal. */
213
286
  max-height: min(600px, calc(100vh - 40px));
@@ -223,7 +296,7 @@
223
296
  }
224
297
 
225
298
  .rs-modal-content[data-theme="dark"] {
226
- --rs-background: #0c0c0c;
299
+ --rs-background: #0a0a0a;
227
300
  --rs-border: #18181b;
228
301
  }
229
302
 
@@ -293,6 +366,13 @@
293
366
  min-height: 280px;
294
367
  overflow-y: auto;
295
368
  overscroll-behavior: none;
369
+ /* overflow-y:auto forces overflow-x to clip too, which would cut the left/
370
+ right shadow of absolutely-positioned popups (e.g. the chain/token select
371
+ menus) that sit flush against this scroll container's edge. Pull the box
372
+ out to the modal's padding edge and pad it back so content stays put but
373
+ the clip region gains room for the popup shadow to render. */
374
+ margin-inline: -16px;
375
+ padding-inline: 16px;
296
376
  }
297
377
 
298
378
  .rs-modal-body::-webkit-scrollbar {
@@ -637,8 +717,10 @@
637
717
 
638
718
  .rs-info-panel-value {
639
719
  font-family:
640
- ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
720
+ "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco,
721
+ Consolas, monospace;
641
722
  font-size: 12px;
723
+ font-weight: 500;
642
724
  color: var(--rs-foreground);
643
725
  }
644
726
 
@@ -690,8 +772,10 @@
690
772
 
691
773
  .rs-card-value--mono {
692
774
  font-family:
693
- ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
775
+ "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco,
776
+ Consolas, monospace;
694
777
  font-size: 12px;
778
+ font-weight: 500;
695
779
  }
696
780
 
697
781
  .rs-card-value--accent {
@@ -872,9 +956,9 @@
872
956
  width: 100%;
873
957
  display: flex;
874
958
  align-items: center;
875
- gap: 12px;
876
- padding: 10px 8px;
877
- background-color: var(--rs-surface-subtle);
959
+ gap: 16px;
960
+ padding: 16px 12px;
961
+ background-color: transparent;
878
962
  border: none;
879
963
  border-radius: 8px;
880
964
  cursor: pointer;
@@ -884,7 +968,7 @@
884
968
  }
885
969
 
886
970
  .rs-asset-row:hover:not(:disabled) {
887
- background-color: var(--rs-surface);
971
+ background-color: var(--rs-surface-subtle);
888
972
  }
889
973
 
890
974
  .rs-asset-row:focus-visible {
@@ -892,8 +976,14 @@
892
976
  outline-offset: 2px;
893
977
  }
894
978
 
895
- .rs-asset-row--selected {
896
- background-color: var(--rs-surface);
979
+ /* Figma coin-select/selected: zinc-100 fill + 1px zinc-300 border (dark:
980
+ zinc-900 fill + zinc-700 border). The inset box-shadow draws the border
981
+ without shifting layout. Listed with :hover so the selected fill persists
982
+ when the row is hovered (a bare :hover out-specifies a single class). */
983
+ .rs-asset-row--selected,
984
+ .rs-asset-row--selected:hover:not(:disabled) {
985
+ background-color: var(--rs-asset-selected-bg);
986
+ box-shadow: inset 0 0 0 1px var(--rs-asset-selected-border);
897
987
  }
898
988
 
899
989
  .rs-asset-info {
@@ -901,7 +991,7 @@
901
991
  flex: 1;
902
992
  min-width: 0;
903
993
  align-items: center;
904
- gap: 12px;
994
+ gap: 16px;
905
995
  }
906
996
 
907
997
  /* Icon group — token glyph (32px) with the chain glyph (14px) overlapping
@@ -914,8 +1004,8 @@
914
1004
  }
915
1005
 
916
1006
  .rs-asset-icon {
917
- width: 32px;
918
- height: 32px;
1007
+ width: 28px;
1008
+ height: 28px;
919
1009
  margin-right: -10px;
920
1010
  border-radius: 50%;
921
1011
  background-color: var(--rs-surface);
@@ -971,14 +1061,14 @@
971
1061
  }
972
1062
 
973
1063
  .rs-asset-name {
974
- font-size: 16px;
1064
+ font-size: 14px;
975
1065
  font-weight: 700;
976
1066
  color: var(--rs-foreground);
977
1067
  line-height: normal;
978
1068
  }
979
1069
 
980
1070
  .rs-asset-chain {
981
- font-size: 14px;
1071
+ font-size: 12px;
982
1072
  font-weight: 500;
983
1073
  color: var(--rs-muted);
984
1074
  line-height: normal;
@@ -993,7 +1083,7 @@
993
1083
 
994
1084
  .rs-asset-balance {
995
1085
  flex-shrink: 0;
996
- font-size: 18px;
1086
+ font-size: 12px;
997
1087
  font-weight: 500;
998
1088
  color: var(--rs-foreground);
999
1089
  text-align: right;
@@ -1140,7 +1230,8 @@
1140
1230
 
1141
1231
  .rs-font-mono {
1142
1232
  font-family:
1143
- ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
1233
+ "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco,
1234
+ Consolas, monospace;
1144
1235
  }
1145
1236
 
1146
1237
  .rs-mt-2 {
@@ -1565,7 +1656,9 @@
1565
1656
  display: flex;
1566
1657
  flex-direction: column;
1567
1658
  flex-grow: 1;
1568
- padding: 12px;
1659
+ /* Outer padding now lives on the parent .rs-modal; this container only
1660
+ manages the vertical rhythm between body slot and powered-by. */
1661
+ padding: 0;
1569
1662
  gap: 16px;
1570
1663
  }
1571
1664
 
@@ -1618,6 +1711,34 @@
1618
1711
  color: var(--rs-foreground);
1619
1712
  }
1620
1713
 
1714
+ /* Inline "Disconnect" pill that sits inside a connected-wallet ListRow's
1715
+ meta slot. 14/Medium text, transparent background so the row's surface
1716
+ shows through. Vertical padding stays under the 36px title+subtitle block
1717
+ so the pill never inflates the row past the 60px the other method cards
1718
+ use — keeps Transfer crypto / External wallet / Polymarket rows uniform. */
1719
+ .rs-list-row-action {
1720
+ appearance: none;
1721
+ border: none;
1722
+ background: transparent;
1723
+ padding: 8px 12px;
1724
+ border-radius: 8px;
1725
+ font-family: inherit;
1726
+ font-size: 14px;
1727
+ font-weight: 500;
1728
+ color: var(--rs-foreground);
1729
+ cursor: pointer;
1730
+ white-space: nowrap;
1731
+ }
1732
+
1733
+ .rs-list-row-action:hover {
1734
+ background: var(--rs-surface-hover);
1735
+ }
1736
+
1737
+ .rs-list-row-action:focus-visible {
1738
+ outline: 2px solid var(--rs-border-accent);
1739
+ outline-offset: 2px;
1740
+ }
1741
+
1621
1742
  .rs-connect-transfer-link {
1622
1743
  margin-top: 10px;
1623
1744
  padding: 0;
@@ -1847,7 +1968,8 @@
1847
1968
  align-items: center;
1848
1969
  justify-content: space-between;
1849
1970
  min-height: 24px;
1850
- padding: 12px 12px 0;
1971
+ /* Padding/gap now live on the parent .rs-modal (matches Figma 1:1). */
1972
+ padding: 0;
1851
1973
  background-color: transparent;
1852
1974
  border-bottom: none;
1853
1975
  }
@@ -1934,30 +2056,67 @@
1934
2056
  font-feature-settings: "tnum";
1935
2057
  }
1936
2058
 
1937
- .rs-amount-input-row > input {
2059
+ .rs-amount-prefix {
2060
+ flex: none;
2061
+ user-select: none;
2062
+ }
2063
+
2064
+ /* The number wrapper layers the real <input> transparently over a visual
2065
+ glyph layer so the caret/editing stays native while the visible digits
2066
+ are the ones we animate. Sized by the visual layer; the input fills it. */
2067
+ .rs-amount-number-wrap {
2068
+ position: relative;
1938
2069
  flex: 1;
1939
2070
  min-width: 0;
2071
+ }
2072
+
2073
+ .rs-amount-number-wrap > input {
2074
+ position: absolute;
2075
+ inset: 0;
1940
2076
  width: 100%;
2077
+ height: 100%;
1941
2078
  background: transparent;
1942
2079
  border: none;
1943
2080
  outline: none;
1944
2081
  font: inherit;
1945
- color: inherit;
2082
+ color: transparent;
1946
2083
  font-feature-settings: "tnum";
1947
2084
  padding: 0;
1948
2085
  caret-color: var(--rs-foreground);
1949
2086
  }
1950
2087
 
1951
- .rs-amount-input-row > input::placeholder {
1952
- color: var(--rs-muted);
2088
+ .rs-amount-number-wrap > input::placeholder {
2089
+ color: transparent;
1953
2090
  }
1954
2091
 
1955
- .rs-amount-input-row > input::-webkit-outer-spin-button,
1956
- .rs-amount-input-row > input::-webkit-inner-spin-button {
2092
+ .rs-amount-number-wrap > input::-webkit-outer-spin-button,
2093
+ .rs-amount-number-wrap > input::-webkit-inner-spin-button {
1957
2094
  -webkit-appearance: none;
1958
2095
  margin: 0;
1959
2096
  }
1960
2097
 
2098
+ .rs-amount-visual {
2099
+ pointer-events: none;
2100
+ display: flex;
2101
+ align-items: center;
2102
+ font-feature-settings: "tnum";
2103
+ }
2104
+
2105
+ .rs-amount-char-slot {
2106
+ display: inline-block;
2107
+ overflow: hidden;
2108
+ height: 1em;
2109
+ line-height: 1;
2110
+ }
2111
+
2112
+ .rs-amount-char-inner {
2113
+ display: block;
2114
+ }
2115
+
2116
+ .rs-amount-visual--placeholder {
2117
+ color: var(--rs-muted);
2118
+ }
2119
+
1961
2120
  .rs-amount-meta {
1962
2121
  display: flex;
1963
2122
  align-items: center;
@@ -1983,19 +2142,20 @@
1983
2142
  flex: 1 0 0;
1984
2143
  min-width: 0;
1985
2144
  padding: 12px 16px;
1986
- background: var(--rs-surface);
2145
+ background: var(--rs-button-ghost-bg);
1987
2146
  border: none;
1988
2147
  border-radius: 8px;
1989
2148
  font-family: inherit;
1990
2149
  font-size: 14px;
1991
2150
  font-weight: 500;
1992
- color: var(--rs-foreground);
2151
+ line-height: normal;
2152
+ color: var(--rs-button-ghost-text);
1993
2153
  cursor: pointer;
1994
2154
  transition: background-color 0.15s;
1995
2155
  }
1996
2156
 
1997
2157
  .rs-amount-preset-btn:hover:not(:disabled) {
1998
- background: var(--rs-surface-hover);
2158
+ background: var(--rs-button-ghost-bg-hover);
1999
2159
  }
2000
2160
 
2001
2161
  .rs-amount-preset-btn:focus-visible {
@@ -2011,10 +2171,30 @@
2011
2171
  .rs-amount-details {
2012
2172
  display: flex;
2013
2173
  flex-direction: column;
2014
- gap: 12px;
2174
+ gap: 4px;
2015
2175
  }
2016
2176
 
2017
2177
  .rs-amount-detail-row {
2178
+ display: flex;
2179
+ align-items: center;
2180
+ justify-content: space-between;
2181
+ gap: 12px;
2182
+ font-size: 12px;
2183
+ font-weight: 500;
2184
+ color: var(--rs-muted);
2185
+ line-height: normal;
2186
+ }
2187
+
2188
+ /* Review-deposit detail rows (ConfirmStep) — Figma uses 14px Medium with
2189
+ 8px stack gap, vs the wallet-deposit-amount rows which are 12px / 4px. */
2190
+ .rs-review-details {
2191
+ display: flex;
2192
+ flex-direction: column;
2193
+ gap: 8px;
2194
+ width: 100%;
2195
+ }
2196
+
2197
+ .rs-review-detail-row {
2018
2198
  display: flex;
2019
2199
  align-items: center;
2020
2200
  justify-content: space-between;
@@ -2025,6 +2205,68 @@
2025
2205
  line-height: normal;
2026
2206
  }
2027
2207
 
2208
+ .rs-review-detail-value {
2209
+ display: flex;
2210
+ align-items: center;
2211
+ gap: 4px;
2212
+ color: var(--rs-muted);
2213
+ font-feature-settings: "tnum";
2214
+ }
2215
+
2216
+ .rs-review-detail-icon {
2217
+ width: 16px;
2218
+ height: 16px;
2219
+ border-radius: 50%;
2220
+ overflow: hidden;
2221
+ flex-shrink: 0;
2222
+ background: var(--rs-background);
2223
+ }
2224
+
2225
+ .rs-review-detail-icon img {
2226
+ width: 100%;
2227
+ height: 100%;
2228
+ object-fit: cover;
2229
+ }
2230
+
2231
+ .rs-review-detail-info {
2232
+ display: inline-flex;
2233
+ width: 16px;
2234
+ height: 16px;
2235
+ align-items: center;
2236
+ justify-content: center;
2237
+ color: var(--rs-icon-secondary);
2238
+ cursor: help;
2239
+ }
2240
+
2241
+ .rs-review-detail-info svg {
2242
+ width: 16px;
2243
+ height: 16px;
2244
+ }
2245
+
2246
+ .rs-review-detail-link {
2247
+ display: inline-flex;
2248
+ width: 16px;
2249
+ height: 16px;
2250
+ align-items: center;
2251
+ justify-content: center;
2252
+ color: var(--rs-muted);
2253
+ text-decoration: none;
2254
+ transition: opacity 0.15s;
2255
+ }
2256
+
2257
+ .rs-review-detail-link:hover {
2258
+ opacity: 0.7;
2259
+ }
2260
+
2261
+ .rs-review-detail-link svg {
2262
+ width: 14px;
2263
+ height: 14px;
2264
+ }
2265
+
2266
+ .rs-review-detail-value--strike {
2267
+ text-decoration: line-through;
2268
+ }
2269
+
2028
2270
  .rs-amount-detail-value {
2029
2271
  display: flex;
2030
2272
  align-items: center;
@@ -2107,6 +2349,60 @@
2107
2349
  color: var(--rs-error);
2108
2350
  }
2109
2351
 
2352
+ .rs-amount-error--warning {
2353
+ background: var(--rs-warning-tint);
2354
+ color: var(--rs-warning);
2355
+ border: 1px solid var(--rs-warning-border);
2356
+ }
2357
+
2358
+ /* Generic inline error / warning notice (Callout). Two-line truncation keeps
2359
+ long messages from blowing out the modal height. */
2360
+ .rs-callout {
2361
+ display: flex;
2362
+ align-items: flex-start;
2363
+ gap: 8px;
2364
+ padding: 10px 12px;
2365
+ border-radius: var(--rs-radius-sm);
2366
+ border: 1px solid transparent;
2367
+ font-size: 13px;
2368
+ font-weight: 500;
2369
+ line-height: 16px;
2370
+ }
2371
+
2372
+ .rs-callout-icon {
2373
+ flex-shrink: 0;
2374
+ width: 16px;
2375
+ height: 16px;
2376
+ display: inline-flex;
2377
+ }
2378
+
2379
+ .rs-callout-icon svg {
2380
+ width: 16px;
2381
+ height: 16px;
2382
+ display: block;
2383
+ }
2384
+
2385
+ .rs-callout-text {
2386
+ min-width: 0;
2387
+ display: -webkit-box;
2388
+ -webkit-box-orient: vertical;
2389
+ -webkit-line-clamp: 2;
2390
+ line-clamp: 2;
2391
+ overflow: hidden;
2392
+ }
2393
+
2394
+ .rs-callout--error {
2395
+ background: var(--rs-callout-error-bg);
2396
+ border-color: var(--rs-callout-error-border);
2397
+ color: var(--rs-callout-error-text);
2398
+ }
2399
+
2400
+ .rs-callout--warning {
2401
+ background: var(--rs-callout-warning-bg);
2402
+ border-color: var(--rs-callout-warning-border);
2403
+ color: var(--rs-callout-warning-text);
2404
+ }
2405
+
2110
2406
  /* =============================================================================
2111
2407
  Confirm Step Redesign (Polymarket Style)
2112
2408
  ============================================================================= */
@@ -2225,17 +2521,6 @@
2225
2521
  Withdraw Form Step
2226
2522
  ============================================================================= */
2227
2523
 
2228
- .rs-withdraw-form {
2229
- padding: 16px;
2230
- display: flex;
2231
- flex-direction: column;
2232
- gap: 16px;
2233
- }
2234
-
2235
- .rs-step-body.rs-withdraw-loading {
2236
- padding: 0 12px;
2237
- }
2238
-
2239
2524
  .rs-withdraw-loading {
2240
2525
  min-height: 240px;
2241
2526
  display: grid;
@@ -2265,7 +2550,8 @@
2265
2550
  .rs-withdraw-label {
2266
2551
  font-size: 14px;
2267
2552
  font-weight: 500;
2268
- color: var(--rs-muted);
2553
+ line-height: normal;
2554
+ color: var(--rs-input-label);
2269
2555
  }
2270
2556
 
2271
2557
  .rs-withdraw-label--sm {
@@ -2278,7 +2564,7 @@
2278
2564
  gap: 8px;
2279
2565
  padding: 12px;
2280
2566
  background: var(--rs-surface-subtle);
2281
- border-radius: var(--rs-radius-md);
2567
+ border-radius: 8px;
2282
2568
  border: 1px solid var(--rs-surface-subtle);
2283
2569
  }
2284
2570
 
@@ -2287,6 +2573,8 @@
2287
2573
  border: none;
2288
2574
  background: transparent;
2289
2575
  font-size: 14px;
2576
+ font-weight: 400;
2577
+ line-height: 20px;
2290
2578
  color: var(--rs-foreground);
2291
2579
  outline: none;
2292
2580
  min-width: 0;
@@ -2298,9 +2586,9 @@
2298
2586
  }
2299
2587
 
2300
2588
  .rs-withdraw-input--address {
2301
- font-family:
2302
- ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
2589
+ font-family: inherit;
2303
2590
  font-size: 14px;
2591
+ font-weight: 400;
2304
2592
  }
2305
2593
 
2306
2594
  .rs-withdraw-input--amount {
@@ -2387,12 +2675,14 @@
2387
2675
  }
2388
2676
 
2389
2677
  .rs-withdraw-max-btn {
2390
- padding: 8px 16px;
2678
+ padding: 12px 16px;
2391
2679
  background: transparent;
2392
- border: 1.19px solid var(--rs-foreground);
2680
+ border: 1.191px solid var(--rs-foreground);
2393
2681
  border-radius: 8px;
2394
- font-size: 14px;
2682
+ font-family: inherit;
2683
+ font-size: 16px;
2395
2684
  font-weight: 500;
2685
+ line-height: normal;
2396
2686
  color: var(--rs-foreground);
2397
2687
  cursor: pointer;
2398
2688
  white-space: nowrap;
@@ -2414,8 +2704,9 @@
2414
2704
  display: flex;
2415
2705
  align-items: center;
2416
2706
  justify-content: space-between;
2417
- font-size: 13px;
2707
+ font-size: 12px;
2418
2708
  font-weight: 500;
2709
+ line-height: normal;
2419
2710
  padding: 0;
2420
2711
  }
2421
2712
 
@@ -2449,14 +2740,15 @@
2449
2740
  justify-content: space-between;
2450
2741
  padding: 12px;
2451
2742
  background: var(--rs-surface-subtle);
2452
- border-radius: var(--rs-radius-md);
2743
+ border-radius: 8px;
2453
2744
  border: 1px solid var(--rs-surface-subtle);
2454
2745
  cursor: pointer;
2455
2746
  transition:
2456
2747
  border-color 0.15s,
2457
2748
  background-color 0.15s;
2458
2749
  width: 100%;
2459
- font-size: 16px;
2750
+ font-size: 14px;
2751
+ line-height: normal;
2460
2752
  }
2461
2753
 
2462
2754
  .rs-withdraw-dropdown:hover {
@@ -2488,9 +2780,9 @@
2488
2780
  }
2489
2781
 
2490
2782
  .rs-withdraw-dropdown-arrow {
2491
- width: 16px;
2492
- height: 16px;
2493
- color: var(--rs-muted-foreground);
2783
+ width: 24px;
2784
+ height: 24px;
2785
+ color: var(--rs-icon-secondary);
2494
2786
  transition: transform 0.15s;
2495
2787
  }
2496
2788
 
@@ -2664,9 +2956,10 @@
2664
2956
  }
2665
2957
 
2666
2958
  .rs-deposit-address-dropdown-label {
2667
- font-size: 12px;
2959
+ font-size: 11px;
2668
2960
  font-weight: 500;
2669
- color: var(--rs-muted-foreground);
2961
+ line-height: normal;
2962
+ color: var(--rs-input-label);
2670
2963
  margin: 0;
2671
2964
  }
2672
2965
 
@@ -2681,14 +2974,16 @@
2681
2974
  display: inline-flex;
2682
2975
  align-items: center;
2683
2976
  gap: 4px;
2684
- color: var(--rs-muted-foreground);
2977
+ font-size: 11px;
2978
+ font-weight: 500;
2979
+ color: var(--rs-input-label);
2685
2980
  }
2686
2981
 
2687
2982
  .rs-deposit-address-min-icon {
2688
2983
  width: 16px;
2689
2984
  height: 16px;
2690
2985
  flex-shrink: 0;
2691
- color: inherit;
2986
+ color: var(--rs-icon-secondary);
2692
2987
  }
2693
2988
 
2694
2989
  /* Price impact accordion — sits at the bottom of the transfer-crypto
@@ -2726,7 +3021,7 @@
2726
3021
  justify-content: center;
2727
3022
  width: 16px;
2728
3023
  height: 16px;
2729
- color: var(--rs-muted);
3024
+ color: var(--rs-icon-secondary);
2730
3025
  flex-shrink: 0;
2731
3026
  }
2732
3027
 
@@ -2736,7 +3031,7 @@
2736
3031
  }
2737
3032
 
2738
3033
  .rs-price-impact-label {
2739
- font-size: 14px;
3034
+ font-size: 12px;
2740
3035
  font-weight: 500;
2741
3036
  color: var(--rs-muted);
2742
3037
  }
@@ -2791,7 +3086,7 @@
2791
3086
  align-items: center;
2792
3087
  gap: 8px;
2793
3088
  padding-top: 12px;
2794
- font-size: 14px;
3089
+ font-size: 12px;
2795
3090
  color: var(--rs-muted);
2796
3091
  }
2797
3092
 
@@ -2871,7 +3166,7 @@
2871
3166
  align-items: center;
2872
3167
  gap: 8px;
2873
3168
  width: 100%;
2874
- padding: 8px 12px;
3169
+ padding: 12px;
2875
3170
  background: var(--rs-surface-subtle);
2876
3171
  border-radius: 8px;
2877
3172
  border: 1px solid var(--rs-surface-subtle);
@@ -2881,6 +3176,7 @@
2881
3176
  background-color 0.15s;
2882
3177
  font-size: 14px;
2883
3178
  font-weight: 500;
3179
+ line-height: normal;
2884
3180
  color: var(--rs-foreground);
2885
3181
  font-family: inherit;
2886
3182
  }
@@ -2890,6 +3186,14 @@
2890
3186
  border-color: var(--rs-surface);
2891
3187
  }
2892
3188
 
3189
+ .rs-deposit-address-dropdown-trigger--open {
3190
+ border-color: #9f9fa9;
3191
+ }
3192
+
3193
+ .rs-deposit-address-dropdown-trigger--open:hover {
3194
+ border-color: #9f9fa9;
3195
+ }
3196
+
2893
3197
  .rs-deposit-address-dropdown-icon {
2894
3198
  width: 24px;
2895
3199
  height: 24px;
@@ -2901,9 +3205,15 @@
2901
3205
  .rs-deposit-address-dropdown-chevron {
2902
3206
  width: 24px;
2903
3207
  height: 24px;
2904
- color: var(--rs-muted);
3208
+ color: var(--rs-icon-secondary);
2905
3209
  margin-left: auto;
2906
3210
  flex-shrink: 0;
3211
+ transition: transform 0.15s ease;
3212
+ }
3213
+
3214
+ .rs-deposit-address-dropdown-trigger--open
3215
+ .rs-deposit-address-dropdown-chevron {
3216
+ transform: rotate(180deg);
2907
3217
  }
2908
3218
 
2909
3219
  .rs-deposit-address-dropdown-menu {
@@ -2912,15 +3222,15 @@
2912
3222
  left: 0;
2913
3223
  right: 0;
2914
3224
  z-index: 20;
2915
- background: var(--rs-background);
2916
- border: 1px solid var(--rs-border);
3225
+ background: var(--rs-surface-subtle);
3226
+ border: 1px solid var(--rs-surface-subtle);
2917
3227
  border-radius: var(--rs-radius-sm);
2918
3228
  box-shadow: var(--rs-shadow-dropdown);
2919
- padding: 4px;
3229
+ padding: 12px;
2920
3230
  display: flex;
2921
3231
  flex-direction: column;
2922
- gap: 2px;
2923
- max-height: 200px;
3232
+ gap: 16px;
3233
+ max-height: 240px;
2924
3234
  overflow-y: auto;
2925
3235
  overscroll-behavior: none;
2926
3236
  animation: rs-dropdown-in 0.12s ease-out;
@@ -2931,26 +3241,26 @@
2931
3241
  align-items: center;
2932
3242
  gap: 6px;
2933
3243
  width: 100%;
2934
- padding: 7px 8px;
3244
+ padding: 0;
2935
3245
  border-radius: calc(var(--rs-radius-sm) - 2px);
2936
3246
  border: none;
2937
3247
  background: transparent;
2938
3248
  color: var(--rs-foreground);
2939
- font-size: 13px;
3249
+ font-size: 14px;
2940
3250
  font-weight: 500;
3251
+ line-height: normal;
2941
3252
  cursor: pointer;
2942
3253
  text-align: left;
2943
- transition: background-color 0.1s;
3254
+ transition: opacity 0.1s;
2944
3255
  font-family: inherit;
2945
3256
  }
2946
3257
 
2947
3258
  .rs-deposit-address-dropdown-item:hover {
2948
- background: var(--rs-surface);
3259
+ opacity: 0.7;
2949
3260
  }
2950
3261
 
2951
3262
  .rs-deposit-address-dropdown-item--active {
2952
- background: var(--rs-primary-tint);
2953
- color: var(--rs-primary);
3263
+ color: var(--rs-foreground);
2954
3264
  }
2955
3265
 
2956
3266
  /* Well-card containing the 280px QR + truncated mono address. */
@@ -2964,28 +3274,50 @@
2964
3274
  border-radius: 8px;
2965
3275
  }
2966
3276
 
3277
+ /* Mid-refetch: dim the address/QR and block interaction so a stale
3278
+ registration can't be copied or scanned until setup is ready again. */
3279
+ .rs-deposit-address-well--updating {
3280
+ opacity: 0.4;
3281
+ pointer-events: none;
3282
+ filter: grayscale(0.3);
3283
+ transition: opacity 0.15s;
3284
+ }
3285
+
3286
+ .rs-deposit-address-updating {
3287
+ display: flex;
3288
+ align-items: center;
3289
+ justify-content: center;
3290
+ gap: 8px;
3291
+ width: 100%;
3292
+ padding: 10px 12px;
3293
+ font-size: 14px;
3294
+ font-weight: 500;
3295
+ color: var(--rs-muted);
3296
+ }
3297
+
2967
3298
  .rs-deposit-address-qr {
2968
3299
  display: flex;
2969
3300
  align-items: center;
2970
3301
  justify-content: center;
2971
- padding: 20px;
3302
+ padding: 12px;
2972
3303
  }
2973
3304
 
2974
3305
  .rs-deposit-address-qr canvas,
2975
3306
  .rs-deposit-address-qr svg {
2976
3307
  display: block;
2977
- width: 220px;
2978
- height: 220px;
3308
+ width: 200px;
3309
+ height: 200px;
2979
3310
  }
2980
3311
 
2981
3312
  .rs-deposit-address-value {
2982
3313
  width: 100%;
2983
- padding: 0 20px 12px;
3314
+ padding: 0 16px 12px;
2984
3315
  font-family:
2985
3316
  "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
2986
3317
  "Liberation Mono", monospace;
2987
- font-size: 13px;
3318
+ font-size: 12px;
2988
3319
  font-weight: 500;
3320
+ line-height: normal;
2989
3321
  color: var(--rs-muted);
2990
3322
  text-align: center;
2991
3323
  word-break: break-all;
@@ -3102,6 +3434,9 @@
3102
3434
  position: relative;
3103
3435
  }
3104
3436
 
3437
+ /* Outer card that groups one-or-more deposit entries. Positioned over
3438
+ the bottom of the deposit-address screen. Figma: card/background +
3439
+ 16px padding/gap + drop-shadow. */
3105
3440
  .rs-deposit-notifications {
3106
3441
  position: absolute;
3107
3442
  bottom: 12px;
@@ -3110,20 +3445,21 @@
3110
3445
  z-index: 10;
3111
3446
  display: flex;
3112
3447
  flex-direction: column;
3113
- gap: 8px;
3114
- pointer-events: none;
3448
+ gap: 16px;
3449
+ padding: 16px;
3450
+ background: var(--rs-surface-subtle);
3451
+ border-radius: 16px;
3452
+ filter: drop-shadow(0 0 6px rgba(0, 0, 0, 0.14));
3453
+ max-height: calc(100% - 24px);
3454
+ overflow-y: auto;
3455
+ animation: rs-notification-slide-up 0.3s ease-out;
3115
3456
  }
3116
3457
 
3117
3458
  .rs-deposit-notification {
3118
- pointer-events: auto;
3119
- background: var(--rs-background);
3120
- border: 1px solid var(--rs-border);
3121
- border-radius: var(--rs-radius-lg);
3122
- overflow: hidden;
3123
- box-shadow:
3124
- 0 -4px 20px rgba(0, 0, 0, 0.10),
3125
- 0 -1px 6px rgba(0, 0, 0, 0.06);
3126
- animation: rs-notification-slide-up 0.3s ease-out;
3459
+ display: flex;
3460
+ flex-direction: column;
3461
+ gap: 4px;
3462
+ width: 100%;
3127
3463
  }
3128
3464
 
3129
3465
  @keyframes rs-notification-slide-up {
@@ -3139,19 +3475,23 @@
3139
3475
 
3140
3476
  .rs-deposit-notification-header {
3141
3477
  display: flex;
3142
- align-items: flex-start;
3143
- gap: 10px;
3144
- padding: 14px 14px 0;
3478
+ align-items: center;
3479
+ gap: 12px;
3480
+ padding: 0;
3145
3481
  }
3146
3482
 
3147
3483
  .rs-deposit-notification-icon {
3148
3484
  flex-shrink: 0;
3149
- padding-top: 1px;
3485
+ width: 42px;
3486
+ height: 42px;
3487
+ display: inline-flex;
3488
+ align-items: center;
3489
+ justify-content: center;
3150
3490
  }
3151
3491
 
3152
3492
  .rs-deposit-notification-badge {
3153
- width: 32px;
3154
- height: 32px;
3493
+ width: 42px;
3494
+ height: 42px;
3155
3495
  border-radius: 50%;
3156
3496
  display: flex;
3157
3497
  align-items: center;
@@ -3159,68 +3499,80 @@
3159
3499
  }
3160
3500
 
3161
3501
  .rs-deposit-notification-badge svg {
3162
- width: 14px;
3163
- height: 14px;
3164
- }
3165
-
3166
- .rs-deposit-notification-badge .rs-spinner {
3167
- width: 16px;
3168
- height: 16px;
3502
+ width: 20px;
3503
+ height: 20px;
3169
3504
  }
3170
3505
 
3171
3506
  .rs-deposit-notification-badge--complete {
3172
- background-color: var(--rs-success-tint);
3173
- color: var(--rs-success);
3507
+ background-color: #00bc7d;
3508
+ color: #ffffff;
3174
3509
  }
3175
3510
 
3176
3511
  .rs-deposit-notification-badge--failed {
3177
- background-color: var(--rs-error-tint);
3178
- color: var(--rs-error);
3512
+ background-color: #fb2c36;
3513
+ color: #ffffff;
3179
3514
  }
3180
3515
 
3181
3516
  .rs-deposit-notification-badge--processing {
3182
- background-color: var(--rs-primary-tint);
3183
- color: var(--rs-primary);
3517
+ background-color: transparent;
3518
+ color: var(--rs-icon-secondary);
3519
+ }
3520
+
3521
+ .rs-deposit-notification-badge--processing .rs-spinner {
3522
+ width: 42px;
3523
+ height: 42px;
3184
3524
  }
3185
3525
 
3186
3526
  .rs-deposit-notification-content {
3187
3527
  flex: 1;
3188
3528
  min-width: 0;
3529
+ display: flex;
3530
+ flex-direction: column;
3531
+ justify-content: center;
3532
+ align-self: stretch;
3533
+ }
3534
+
3535
+ .rs-deposit-notification-title-row {
3536
+ display: flex;
3537
+ align-items: center;
3538
+ justify-content: space-between;
3539
+ gap: 8px;
3540
+ width: 100%;
3189
3541
  }
3190
3542
 
3191
3543
  .rs-deposit-notification-title {
3192
3544
  font-size: 14px;
3193
- font-weight: 600;
3545
+ font-weight: 700;
3546
+ line-height: normal;
3194
3547
  color: var(--rs-foreground);
3195
- line-height: 1.3;
3196
3548
  }
3197
3549
 
3198
3550
  .rs-deposit-notification-subtitle {
3199
3551
  font-size: 12px;
3200
- color: var(--rs-muted-foreground);
3201
- line-height: 1.4;
3202
- margin-top: 2px;
3552
+ font-weight: 500;
3553
+ line-height: normal;
3554
+ color: var(--rs-muted);
3555
+ margin-top: 0;
3556
+ word-break: break-word;
3203
3557
  }
3204
3558
 
3205
3559
  .rs-deposit-notification-close {
3206
3560
  flex-shrink: 0;
3207
- width: 24px;
3208
- height: 24px;
3209
- display: flex;
3561
+ width: 16px;
3562
+ height: 16px;
3563
+ display: inline-flex;
3210
3564
  align-items: center;
3211
3565
  justify-content: center;
3212
3566
  border: none;
3213
3567
  background: transparent;
3214
- color: var(--rs-muted-foreground);
3568
+ color: var(--rs-icon-secondary);
3215
3569
  cursor: pointer;
3216
- border-radius: 4px;
3217
3570
  padding: 0;
3218
- transition: color 0.15s, background 0.15s;
3571
+ transition: opacity 0.15s;
3219
3572
  }
3220
3573
 
3221
3574
  .rs-deposit-notification-close:hover {
3222
- color: var(--rs-foreground);
3223
- background: var(--rs-surface);
3575
+ opacity: 0.7;
3224
3576
  }
3225
3577
 
3226
3578
  .rs-deposit-notification-close svg {
@@ -3228,10 +3580,41 @@
3228
3580
  height: 16px;
3229
3581
  }
3230
3582
 
3583
+ .rs-deposit-notification-toggle {
3584
+ display: flex;
3585
+ align-items: center;
3586
+ justify-content: space-between;
3587
+ width: 100%;
3588
+ height: 33px;
3589
+ padding: 8px 0 8px 54px;
3590
+ border: none;
3591
+ background: transparent;
3592
+ color: var(--rs-muted);
3593
+ font-size: 12px;
3594
+ font-weight: 500;
3595
+ line-height: normal;
3596
+ font-family: inherit;
3597
+ cursor: pointer;
3598
+ margin: 0;
3599
+ text-align: left;
3600
+ }
3601
+
3602
+ .rs-deposit-notification-toggle-chevron {
3603
+ width: 16px;
3604
+ height: 16px;
3605
+ color: var(--rs-icon-secondary);
3606
+ flex-shrink: 0;
3607
+ transition: transform 0.15s ease;
3608
+ }
3609
+
3610
+ .rs-deposit-notification--expanded .rs-deposit-notification-toggle-chevron {
3611
+ transform: rotate(180deg);
3612
+ }
3613
+
3231
3614
  .rs-deposit-notification-details {
3232
- margin: 10px 14px 0;
3615
+ margin: 4px 0 0 54px;
3233
3616
  padding: 8px 10px;
3234
- background: var(--rs-surface);
3617
+ background: var(--rs-background);
3235
3618
  border-radius: var(--rs-radius-sm);
3236
3619
  }
3237
3620
 
@@ -3248,27 +3631,28 @@
3248
3631
 
3249
3632
  .rs-deposit-notification-label {
3250
3633
  font-size: 12px;
3251
- color: var(--rs-muted-foreground);
3634
+ color: var(--rs-muted);
3252
3635
  }
3253
3636
 
3254
3637
  .rs-deposit-notification-value {
3255
3638
  font-size: 12px;
3256
3639
  font-weight: 500;
3257
- color: var(--rs-muted);
3258
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
3640
+ color: var(--rs-foreground);
3641
+ font-family: "Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo,
3642
+ Monaco, Consolas, monospace;
3259
3643
  }
3260
3644
 
3261
3645
  .rs-deposit-notification-link {
3262
3646
  display: inline-flex;
3263
3647
  align-items: center;
3264
3648
  gap: 3px;
3265
- color: var(--rs-muted);
3649
+ color: var(--rs-foreground);
3266
3650
  text-decoration: none;
3267
- transition: color 0.15s;
3651
+ transition: opacity 0.15s;
3268
3652
  }
3269
3653
 
3270
3654
  .rs-deposit-notification-link:hover {
3271
- color: var(--rs-foreground);
3655
+ opacity: 0.7;
3272
3656
  }
3273
3657
 
3274
3658
  .rs-deposit-notification-link-icon {
@@ -3276,27 +3660,6 @@
3276
3660
  height: 10px;
3277
3661
  }
3278
3662
 
3279
- .rs-deposit-notification-toggle {
3280
- display: flex;
3281
- align-items: center;
3282
- justify-content: center;
3283
- width: 100%;
3284
- padding: 10px 0;
3285
- border: none;
3286
- border-top: 1px solid var(--rs-border-surface);
3287
- background: transparent;
3288
- color: var(--rs-muted-foreground);
3289
- font-size: 12px;
3290
- font-weight: 500;
3291
- cursor: pointer;
3292
- transition: color 0.15s;
3293
- margin-top: 10px;
3294
- }
3295
-
3296
- .rs-deposit-notification-toggle:hover {
3297
- color: var(--rs-foreground);
3298
- }
3299
-
3300
3663
  /* =============================================================================
3301
3664
  Processing Badges (centered icon badges)
3302
3665
  ============================================================================= */
@@ -3493,6 +3856,8 @@
3493
3856
  z-index: 10;
3494
3857
  display: flex;
3495
3858
  flex-direction: column;
3859
+ padding: 16px;
3860
+ gap: 16px;
3496
3861
  background: var(--rs-background);
3497
3862
  border-radius: inherit;
3498
3863
  animation: rs-history-slide-in 0.2s cubic-bezier(0.32, 0.72, 0, 1);
@@ -3517,7 +3882,7 @@
3517
3882
  display: flex;
3518
3883
  flex-direction: column;
3519
3884
  flex-grow: 1;
3520
- padding: 12px;
3885
+ padding: 0;
3521
3886
  gap: 16px;
3522
3887
  min-height: 0;
3523
3888
  }
@@ -3545,7 +3910,7 @@
3545
3910
  flex-direction: column;
3546
3911
  align-items: center;
3547
3912
  justify-content: center;
3548
- gap: 4px;
3913
+ gap: 8px;
3549
3914
  }
3550
3915
 
3551
3916
  .rs-history-empty-glyph {
@@ -3578,15 +3943,17 @@
3578
3943
  }
3579
3944
 
3580
3945
  .rs-history-empty-title {
3581
- font-size: 16px;
3946
+ font-size: 14px;
3582
3947
  font-weight: 500;
3583
3948
  color: var(--rs-foreground);
3949
+ line-height: normal;
3584
3950
  }
3585
3951
 
3586
3952
  .rs-history-empty-hint {
3587
- font-size: 14px;
3953
+ font-size: 12px;
3588
3954
  font-weight: 500;
3589
3955
  color: var(--rs-muted);
3956
+ line-height: normal;
3590
3957
  }
3591
3958
 
3592
3959
  /* List of transaction cards. */
@@ -3647,7 +4014,7 @@
3647
4014
  .rs-history-card-row {
3648
4015
  display: flex;
3649
4016
  align-items: center;
3650
- gap: 16px;
4017
+ gap: 8px;
3651
4018
  width: 100%;
3652
4019
  }
3653
4020
 
@@ -3658,8 +4025,8 @@
3658
4025
  }
3659
4026
 
3660
4027
  .rs-history-card-token {
3661
- width: 32px;
3662
- height: 32px;
4028
+ width: 28px;
4029
+ height: 28px;
3663
4030
  margin-right: -10px;
3664
4031
  border-radius: 50%;
3665
4032
  background: var(--rs-surface);
@@ -3706,7 +4073,7 @@
3706
4073
  }
3707
4074
 
3708
4075
  .rs-history-card-title {
3709
- font-size: 16px;
4076
+ font-size: 14px;
3710
4077
  font-weight: 700;
3711
4078
  color: var(--rs-foreground);
3712
4079
  line-height: normal;
@@ -3731,7 +4098,7 @@
3731
4098
  }
3732
4099
 
3733
4100
  .rs-history-card-amount {
3734
- font-size: 18px;
4101
+ font-size: 12px;
3735
4102
  font-weight: 500;
3736
4103
  color: var(--rs-foreground);
3737
4104
  line-height: normal;
@@ -3743,7 +4110,7 @@
3743
4110
  .rs-history-card-details {
3744
4111
  display: flex;
3745
4112
  flex-direction: column;
3746
- gap: 12px;
4113
+ gap: 8px;
3747
4114
  width: 100%;
3748
4115
  }
3749
4116
 
@@ -3754,15 +4121,14 @@
3754
4121
  font-size: 12px;
3755
4122
  font-weight: 500;
3756
4123
  line-height: 18px;
3757
- color: var(--color-blue9, #0084d1);
4124
+ color: #0084d1;
3758
4125
  text-decoration: none;
3759
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
3760
- monospace;
4126
+ font-family: inherit;
3761
4127
  }
3762
4128
 
3763
4129
  .rs-history-card-link svg {
3764
- width: 14px;
3765
- height: 14px;
4130
+ width: 16px;
4131
+ height: 16px;
3766
4132
  }
3767
4133
 
3768
4134
  .rs-history-card-link:hover {
@@ -3806,6 +4172,28 @@
3806
4172
  color: var(--rs-muted);
3807
4173
  }
3808
4174
 
4175
+ /* Dark-mode badge overrides — Figma swaps to deeper saturated fills with
4176
+ light text for contrast against the #18181b card surface. */
4177
+ .rs-modal[data-theme="dark"] .rs-history-badge--completed {
4178
+ background: #006045;
4179
+ color: #d0fae5;
4180
+ }
4181
+
4182
+ .rs-modal[data-theme="dark"] .rs-history-badge--failed {
4183
+ background: #9f0712;
4184
+ color: #ffe2e2;
4185
+ }
4186
+
4187
+ .rs-modal[data-theme="dark"] .rs-history-badge--processing {
4188
+ background: #00407f;
4189
+ color: #bee3ff;
4190
+ }
4191
+
4192
+ .rs-modal[data-theme="dark"] .rs-history-badge--pending {
4193
+ background: #78350f;
4194
+ color: #fde68a;
4195
+ }
4196
+
3809
4197
  /* Load more button at the end of the list. */
3810
4198
  .rs-history-load-more {
3811
4199
  display: flex;
@@ -3917,13 +4305,13 @@
3917
4305
  display: inline-flex;
3918
4306
  align-items: center;
3919
4307
  justify-content: center;
3920
- width: 44px;
3921
- height: 44px;
3922
- padding: 10px;
3923
- background: var(--rs-surface);
3924
- border: 1px solid var(--rs-surface);
4308
+ width: 40px;
4309
+ height: 40px;
4310
+ padding: 8px;
4311
+ background: var(--rs-icon-wrapper-bg);
4312
+ border: 1px solid var(--rs-icon-wrapper-bg);
3925
4313
  border-radius: 8px;
3926
- color: var(--rs-muted-foreground);
4314
+ color: var(--rs-icon-wrapper-icon);
3927
4315
  box-sizing: border-box;
3928
4316
  }
3929
4317
 
@@ -3951,10 +4339,9 @@
3951
4339
  }
3952
4340
 
3953
4341
  .rs-body-header-title {
3954
- font-size: 20px;
4342
+ font-size: 16px;
3955
4343
  font-weight: 700;
3956
4344
  line-height: 1.2;
3957
- letter-spacing: -0.01em;
3958
4345
  color: var(--rs-foreground);
3959
4346
  margin: 0;
3960
4347
  }
@@ -3967,18 +4354,88 @@
3967
4354
  margin: 0;
3968
4355
  }
3969
4356
 
4357
+ /* Ticker — per-digit odometer-style animation for the live timer.
4358
+ Each slot clips its content; the outgoing digit slides up and out while
4359
+ the incoming digit slides up from below. Static chars (e.g. ":") never
4360
+ change so they never animate. */
4361
+
4362
+ .rs-ticker {
4363
+ display: inline-flex;
4364
+ font-variant-numeric: tabular-nums;
4365
+ line-height: 1;
4366
+ }
4367
+
4368
+ .rs-ticker-slot {
4369
+ position: relative;
4370
+ display: inline-block;
4371
+ overflow: hidden;
4372
+ height: 1em;
4373
+ line-height: 1;
4374
+ vertical-align: baseline;
4375
+ }
4376
+
4377
+ .rs-ticker-in,
4378
+ .rs-ticker-out {
4379
+ display: inline-block;
4380
+ line-height: 1;
4381
+ }
4382
+
4383
+ .rs-ticker-out {
4384
+ position: absolute;
4385
+ top: 0;
4386
+ left: 0;
4387
+ right: 0;
4388
+ animation: rs-ticker-out 320ms cubic-bezier(0.16, 1, 0.3, 1) both;
4389
+ }
4390
+
4391
+ .rs-ticker-in {
4392
+ animation: rs-ticker-in 320ms cubic-bezier(0.16, 1, 0.3, 1) both;
4393
+ }
4394
+
4395
+ @keyframes rs-ticker-out {
4396
+ from {
4397
+ transform: translateY(0);
4398
+ opacity: 1;
4399
+ }
4400
+ to {
4401
+ transform: translateY(-70%);
4402
+ opacity: 0;
4403
+ }
4404
+ }
4405
+
4406
+ @keyframes rs-ticker-in {
4407
+ from {
4408
+ transform: translateY(70%);
4409
+ opacity: 0;
4410
+ }
4411
+ to {
4412
+ transform: translateY(0);
4413
+ opacity: 1;
4414
+ }
4415
+ }
4416
+
4417
+ @media (prefers-reduced-motion: reduce) {
4418
+ .rs-ticker-in,
4419
+ .rs-ticker-out {
4420
+ animation: none;
4421
+ }
4422
+ .rs-ticker-out {
4423
+ display: none;
4424
+ }
4425
+ }
4426
+
3970
4427
  /* List row — Figma "oauth button" pattern */
3971
4428
 
3972
4429
  .rs-list {
3973
4430
  display: flex;
3974
4431
  flex-direction: column;
3975
- gap: 12px;
4432
+ gap: 8px;
3976
4433
  }
3977
4434
 
3978
4435
  .rs-list-row {
3979
4436
  display: flex;
3980
4437
  align-items: center;
3981
- gap: 12px;
4438
+ gap: 8px;
3982
4439
  width: 100%;
3983
4440
  padding: 12px;
3984
4441
  background: var(--rs-background-secondary);
@@ -4016,7 +4473,8 @@
4016
4473
  justify-content: center;
4017
4474
  width: 24px;
4018
4475
  height: 24px;
4019
- color: var(--rs-muted-foreground);
4476
+ /* Figma: oauth-button/default/icon — same value light/dark. */
4477
+ color: #71717b;
4020
4478
  }
4021
4479
 
4022
4480
  .rs-list-row-leading svg {
@@ -4050,12 +4508,12 @@
4050
4508
  .rs-list-row-text {
4051
4509
  display: flex;
4052
4510
  flex-direction: column;
4053
- gap: 2px;
4511
+ gap: 4px;
4054
4512
  min-width: 0;
4055
4513
  }
4056
4514
 
4057
4515
  .rs-list-row-title {
4058
- font-size: 16px;
4516
+ font-size: 14px;
4059
4517
  font-weight: 500;
4060
4518
  color: var(--rs-foreground);
4061
4519
  line-height: 1.25;
@@ -4065,7 +4523,7 @@
4065
4523
  }
4066
4524
 
4067
4525
  .rs-list-row-subtitle {
4068
- font-size: 14px;
4526
+ font-size: 12px;
4069
4527
  font-weight: 500;
4070
4528
  color: var(--rs-muted);
4071
4529
  line-height: 1.25;
@@ -4089,32 +4547,22 @@
4089
4547
  .rs-list-row-meta-icons {
4090
4548
  display: flex;
4091
4549
  align-items: center;
4092
- gap: -4px;
4550
+ gap: 4px;
4093
4551
  }
4094
4552
 
4095
4553
  .rs-list-row-meta-icons > * {
4096
- margin-left: -4px;
4097
4554
  width: 20px;
4098
4555
  height: 20px;
4099
- border-radius: 50%;
4100
- background: var(--rs-background);
4101
- border: 1px solid var(--rs-background);
4102
- overflow: hidden;
4103
4556
  display: inline-flex;
4104
4557
  align-items: center;
4105
4558
  justify-content: center;
4106
- }
4107
-
4108
- .rs-list-row-meta-icons > *:first-child {
4109
- margin-left: 0;
4559
+ flex-shrink: 0;
4110
4560
  }
4111
4561
 
4112
4562
  .rs-list-row-meta-icons img,
4113
4563
  .rs-list-row-meta-icons svg {
4114
4564
  width: 100%;
4115
4565
  height: 100%;
4116
- object-fit: cover;
4117
- border-radius: 50%;
4118
4566
  display: block;
4119
4567
  }
4120
4568
 
@@ -4122,7 +4570,8 @@
4122
4570
  flex-shrink: 0;
4123
4571
  width: 16px;
4124
4572
  height: 16px;
4125
- color: var(--rs-muted-foreground);
4573
+ /* Figma: oauth-button/default/icon — same #71717b in both themes. */
4574
+ color: #71717b;
4126
4575
  display: inline-flex;
4127
4576
  align-items: center;
4128
4577
  justify-content: center;