@salesmind-ai/design-system 0.2.1 → 0.3.1

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 (142) hide show
  1. package/README.md +32 -2
  2. package/dist/AppearancePanel-UT57J69V.d.cts +51 -0
  3. package/dist/AppearancePanel-UT57J69V.d.ts +51 -0
  4. package/dist/AppearanceProvider-C36a8-eb.d.cts +45 -0
  5. package/dist/AppearanceProvider-C36a8-eb.d.ts +45 -0
  6. package/dist/Breadcrumb-RX-B_gDV.d.cts +44 -0
  7. package/dist/Breadcrumb-RX-B_gDV.d.ts +44 -0
  8. package/dist/ExportMenu-A2TLFiVv.d.cts +311 -0
  9. package/dist/ExportMenu-C8qck5AT.d.ts +311 -0
  10. package/dist/SectionShell-BfBw5q0Y.d.cts +18 -0
  11. package/dist/SectionShell-BfBw5q0Y.d.ts +18 -0
  12. package/dist/Select-BdZmK0Lt.d.cts +66 -0
  13. package/dist/Select-BdZmK0Lt.d.ts +66 -0
  14. package/dist/admin/index.cjs +2941 -0
  15. package/dist/admin/index.cjs.map +1 -0
  16. package/dist/admin/index.css +4145 -0
  17. package/dist/admin/index.css.map +1 -0
  18. package/dist/admin/index.d.cts +491 -0
  19. package/dist/admin/index.d.ts +491 -0
  20. package/dist/admin/index.js +2918 -0
  21. package/dist/admin/index.js.map +1 -0
  22. package/dist/{audit-CiyPkxk1.d.cts → audit-BS2fn7M4.d.ts} +2 -51
  23. package/dist/{audit-CiyPkxk1.d.ts → audit-DwCmg32J.d.cts} +2 -51
  24. package/dist/blog/index.cjs +1074 -0
  25. package/dist/blog/index.cjs.map +1 -0
  26. package/dist/blog/index.css +1422 -0
  27. package/dist/blog/index.css.map +1 -0
  28. package/dist/blog/index.d.cts +233 -0
  29. package/dist/blog/index.d.ts +233 -0
  30. package/dist/blog/index.js +1056 -0
  31. package/dist/blog/index.js.map +1 -0
  32. package/dist/chart-types-BGVVO-zl.d.cts +208 -0
  33. package/dist/chart-types-BGVVO-zl.d.ts +208 -0
  34. package/dist/charts/index.cjs +2698 -0
  35. package/dist/charts/index.cjs.map +1 -0
  36. package/dist/charts/index.css +1167 -0
  37. package/dist/charts/index.css.map +1 -0
  38. package/dist/charts/index.d.cts +453 -0
  39. package/dist/charts/index.d.ts +453 -0
  40. package/dist/charts/index.js +2682 -0
  41. package/dist/charts/index.js.map +1 -0
  42. package/dist/core/index.cjs +526 -395
  43. package/dist/core/index.cjs.map +1 -1
  44. package/dist/core/index.css +294 -0
  45. package/dist/core/index.css.map +1 -1
  46. package/dist/core/index.d.cts +7 -982
  47. package/dist/core/index.d.ts +7 -982
  48. package/dist/core/index.js +476 -351
  49. package/dist/core/index.js.map +1 -1
  50. package/dist/i18n/index.cjs +585 -0
  51. package/dist/i18n/index.cjs.map +1 -0
  52. package/dist/i18n/index.d.cts +855 -0
  53. package/dist/i18n/index.d.ts +855 -0
  54. package/dist/i18n/index.js +547 -0
  55. package/dist/i18n/index.js.map +1 -0
  56. package/dist/index.cjs +3 -2
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.css +11 -7
  59. package/dist/index.css.map +1 -1
  60. package/dist/index.d.cts +22 -1290
  61. package/dist/index.d.ts +22 -1290
  62. package/dist/index.js +3 -2
  63. package/dist/index.js.map +1 -1
  64. package/dist/marketing/index.cjs +2144 -3023
  65. package/dist/marketing/index.cjs.map +1 -1
  66. package/dist/marketing/index.css +3729 -4824
  67. package/dist/marketing/index.css.map +1 -1
  68. package/dist/marketing/index.d.cts +1351 -4
  69. package/dist/marketing/index.d.ts +1351 -4
  70. package/dist/marketing/index.js +2190 -3054
  71. package/dist/marketing/index.js.map +1 -1
  72. package/dist/motion/index.cjs +1230 -0
  73. package/dist/motion/index.cjs.map +1 -0
  74. package/dist/motion/index.css +699 -0
  75. package/dist/motion/index.css.map +1 -0
  76. package/dist/motion/index.d.cts +68 -0
  77. package/dist/motion/index.d.ts +68 -0
  78. package/dist/motion/index.js +1218 -0
  79. package/dist/motion/index.js.map +1 -0
  80. package/dist/nav/index.cjs +1533 -0
  81. package/dist/nav/index.cjs.map +1 -0
  82. package/dist/nav/index.css +1984 -0
  83. package/dist/nav/index.css.map +1 -0
  84. package/dist/nav/index.d.cts +279 -0
  85. package/dist/nav/index.d.ts +279 -0
  86. package/dist/nav/index.js +1501 -0
  87. package/dist/nav/index.js.map +1 -0
  88. package/dist/report/index.cjs +26 -1649
  89. package/dist/report/index.cjs.map +1 -1
  90. package/dist/report/index.css +0 -963
  91. package/dist/report/index.css.map +1 -1
  92. package/dist/report/index.d.cts +4 -2
  93. package/dist/report/index.d.ts +4 -2
  94. package/dist/report/index.js +27 -1640
  95. package/dist/report/index.js.map +1 -1
  96. package/dist/sections/index.cjs +385 -0
  97. package/dist/sections/index.cjs.map +1 -0
  98. package/dist/sections/index.css +815 -0
  99. package/dist/sections/index.css.map +1 -0
  100. package/dist/sections/index.d.cts +69 -0
  101. package/dist/sections/index.d.ts +69 -0
  102. package/dist/sections/index.js +374 -0
  103. package/dist/sections/index.js.map +1 -0
  104. package/dist/social-proof/index.cjs +1255 -0
  105. package/dist/social-proof/index.cjs.map +1 -0
  106. package/dist/social-proof/index.css +1423 -0
  107. package/dist/social-proof/index.css.map +1 -0
  108. package/dist/social-proof/index.d.cts +258 -0
  109. package/dist/social-proof/index.d.ts +258 -0
  110. package/dist/social-proof/index.js +1238 -0
  111. package/dist/social-proof/index.js.map +1 -0
  112. package/dist/theme/index.cjs +573 -0
  113. package/dist/theme/index.cjs.map +1 -0
  114. package/dist/theme/index.css +464 -0
  115. package/dist/theme/index.css.map +1 -0
  116. package/dist/theme/index.d.cts +48 -0
  117. package/dist/theme/index.d.ts +48 -0
  118. package/dist/theme/index.js +558 -0
  119. package/dist/theme/index.js.map +1 -0
  120. package/dist/types-DAlgDGzw.d.cts +52 -0
  121. package/dist/types-DAlgDGzw.d.ts +52 -0
  122. package/dist/web/client/index.cjs +501 -0
  123. package/dist/web/client/index.cjs.map +1 -0
  124. package/dist/web/client/index.css +456 -0
  125. package/dist/web/client/index.css.map +1 -0
  126. package/dist/web/client/index.d.cts +172 -0
  127. package/dist/web/client/index.d.ts +172 -0
  128. package/dist/web/client/index.js +486 -0
  129. package/dist/web/client/index.js.map +1 -0
  130. package/dist/web/index.d.cts +6 -893
  131. package/dist/web/index.d.ts +6 -893
  132. package/dist/web/server/index.cjs +569 -0
  133. package/dist/web/server/index.cjs.map +1 -0
  134. package/dist/web/server/index.d.cts +725 -0
  135. package/dist/web/server/index.d.ts +725 -0
  136. package/dist/web/server/index.js +562 -0
  137. package/dist/web/server/index.js.map +1 -0
  138. package/package.json +81 -9
  139. package/dist/ExportMenu-hEe5MhLq.d.cts +0 -1027
  140. package/dist/ExportMenu-hEe5MhLq.d.ts +0 -1027
  141. package/dist/index-B64suAAc.d.cts +0 -1498
  142. package/dist/index-B64suAAc.d.ts +0 -1498
@@ -0,0 +1,4145 @@
1
+ /* src/components/Sidebar/Sidebar.css */
2
+ .ds-sidebar {
3
+ position: fixed;
4
+ top: var(--float-distance);
5
+ bottom: var(--float-distance);
6
+ width: var(--sidebar-width, 280px);
7
+ z-index: var(--z-glass-panel);
8
+ background: var(--glass-base);
9
+ backdrop-filter: var(--glass-backdrop);
10
+ -webkit-backdrop-filter: var(--glass-backdrop);
11
+ border-radius: var(--radius-panel);
12
+ box-shadow: var(--glass-shadow-combined);
13
+ transition: transform var(--transition-slow), opacity var(--transition-slow);
14
+ }
15
+ .ds-sidebar::before {
16
+ content: "";
17
+ position: absolute;
18
+ inset: 0;
19
+ border-radius: inherit;
20
+ padding: var(--space-px);
21
+ background:
22
+ linear-gradient(
23
+ 180deg,
24
+ var(--rim-light-top) 0%,
25
+ var(--rim-light-bottom) 100%);
26
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
27
+ mask-composite: exclude;
28
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
29
+ -webkit-mask-composite: xor;
30
+ pointer-events: none;
31
+ }
32
+ .ds-sidebar--left {
33
+ left: var(--float-distance);
34
+ }
35
+ .ds-sidebar--right {
36
+ right: var(--float-distance);
37
+ }
38
+ .ds-sidebar--collapsed.ds-sidebar--left {
39
+ transform: translateX(calc(-100% - var(--float-distance)));
40
+ }
41
+ .ds-sidebar--collapsed.ds-sidebar--right {
42
+ transform: translateX(calc(100% + var(--float-distance)));
43
+ }
44
+ .ds-sidebar__content {
45
+ display: flex;
46
+ flex-direction: column;
47
+ height: 100%;
48
+ padding: var(--space-4);
49
+ overflow-y: auto;
50
+ overflow-x: hidden;
51
+ }
52
+ .ds-sidebar__content::-webkit-scrollbar {
53
+ width: 6px;
54
+ }
55
+ .ds-sidebar__content::-webkit-scrollbar-track {
56
+ background: transparent;
57
+ }
58
+ .ds-sidebar__content::-webkit-scrollbar-thumb {
59
+ background: var(--surface-alpha-2);
60
+ border-radius: var(--radius-pill);
61
+ }
62
+ .ds-sidebar__content::-webkit-scrollbar-thumb:hover {
63
+ background: var(--surface-alpha-3);
64
+ }
65
+ .ds-sidebar__section {
66
+ margin-bottom: var(--space-4);
67
+ }
68
+ .ds-sidebar__section:last-child {
69
+ margin-bottom: 0;
70
+ }
71
+ .ds-sidebar__section-title {
72
+ font-family: var(--font-family);
73
+ font-size: var(--font-size-xs);
74
+ font-weight: var(--font-weight-semibold);
75
+ color: var(--text-tertiary);
76
+ text-transform: uppercase;
77
+ letter-spacing: var(--letter-spacing-wide);
78
+ margin: 0 0 var(--space-2) var(--space-3);
79
+ }
80
+ .ds-sidebar__item {
81
+ display: flex;
82
+ align-items: center;
83
+ gap: var(--space-3);
84
+ width: 100%;
85
+ padding: var(--space-3) var(--space-3);
86
+ border: none;
87
+ border-radius: var(--radius-button);
88
+ background: transparent;
89
+ color: var(--text-secondary);
90
+ font-family: var(--font-family);
91
+ font-size: var(--font-size-base);
92
+ font-weight: var(--font-weight-medium);
93
+ text-align: left;
94
+ cursor: pointer;
95
+ position: relative;
96
+ transition:
97
+ background var(--transition-glass),
98
+ color var(--transition-glass),
99
+ box-shadow var(--transition-glass);
100
+ }
101
+ .ds-sidebar__item::before {
102
+ content: "";
103
+ position: absolute;
104
+ inset: 0;
105
+ border-radius: inherit;
106
+ padding: var(--space-px);
107
+ background:
108
+ linear-gradient(
109
+ 180deg,
110
+ var(--rim-light-top) 0%,
111
+ var(--rim-light-bottom) 100%);
112
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
113
+ mask-composite: exclude;
114
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
115
+ -webkit-mask-composite: xor;
116
+ pointer-events: none;
117
+ opacity: 0;
118
+ transition: opacity var(--transition-glass);
119
+ }
120
+ .ds-sidebar__item:hover {
121
+ background: var(--glass-base-hover);
122
+ color: var(--text-primary);
123
+ }
124
+ .ds-sidebar__item:hover::before {
125
+ opacity: 1;
126
+ }
127
+ .ds-sidebar__item:focus-visible {
128
+ outline: none;
129
+ box-shadow: var(--focus-ring);
130
+ }
131
+ .ds-sidebar__item--active {
132
+ background: rgba(var(--brand-pink-rgb), 0.15);
133
+ color: var(--text-primary);
134
+ box-shadow: var(--glass-shadow-inner), 0 0 20px rgba(var(--brand-pink-rgb), 0.1);
135
+ }
136
+ .ds-sidebar__item--active::before {
137
+ opacity: 1;
138
+ background:
139
+ linear-gradient(
140
+ 180deg,
141
+ rgba(var(--brand-pink-rgb), 0.3) 0%,
142
+ rgba(var(--brand-pink-rgb), 0.1) 100%);
143
+ }
144
+ .ds-sidebar__item-icon {
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ width: 1.25rem;
149
+ height: 1.25rem;
150
+ flex-shrink: 0;
151
+ }
152
+ .ds-sidebar__item-icon svg {
153
+ width: 100%;
154
+ height: 100%;
155
+ }
156
+ .ds-sidebar__item-label {
157
+ flex: 1;
158
+ white-space: nowrap;
159
+ overflow: hidden;
160
+ text-overflow: ellipsis;
161
+ }
162
+ @media (prefers-contrast: more) {
163
+ .ds-sidebar {
164
+ background: var(--hc-surface);
165
+ border: 1px solid var(--hc-border);
166
+ }
167
+ .ds-sidebar::before {
168
+ display: none;
169
+ }
170
+ .ds-sidebar__item--active {
171
+ background: rgba(var(--brand-pink-rgb), 0.3);
172
+ border: 1px solid rgba(var(--brand-pink-rgb), 0.5);
173
+ }
174
+ }
175
+ @media (prefers-reduced-motion: reduce) {
176
+ .ds-sidebar {
177
+ transition: none;
178
+ }
179
+ }
180
+ @supports not (backdrop-filter: blur(1px)) {
181
+ .ds-sidebar {
182
+ background: var(--fallback-surface);
183
+ }
184
+ }
185
+
186
+ /* src/components/FloatingTabBar/FloatingTabBar.css */
187
+ .ds-floating-tab-bar {
188
+ position: fixed;
189
+ left: 50%;
190
+ transform: translateX(-50%);
191
+ display: flex;
192
+ align-items: center;
193
+ gap: var(--space-1);
194
+ padding: var(--space-2);
195
+ z-index: var(--z-ornament);
196
+ background: var(--glass-base-hover);
197
+ backdrop-filter: var(--glass-backdrop);
198
+ -webkit-backdrop-filter: var(--glass-backdrop);
199
+ border-radius: var(--radius-card);
200
+ box-shadow: var(--glass-shadow-elevated-combined);
201
+ }
202
+ .ds-floating-tab-bar::before {
203
+ content: "";
204
+ position: absolute;
205
+ inset: 0;
206
+ border-radius: inherit;
207
+ padding: var(--space-px);
208
+ background:
209
+ linear-gradient(
210
+ 180deg,
211
+ var(--rim-light-hover-top) 0%,
212
+ var(--rim-light-top) 100%);
213
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
214
+ mask-composite: exclude;
215
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
216
+ -webkit-mask-composite: xor;
217
+ pointer-events: none;
218
+ }
219
+ .ds-floating-tab-bar--top {
220
+ top: var(--float-distance);
221
+ }
222
+ .ds-floating-tab-bar--bottom {
223
+ bottom: var(--float-distance);
224
+ }
225
+ .ds-tab-item {
226
+ position: relative;
227
+ display: flex;
228
+ flex-direction: column;
229
+ align-items: center;
230
+ justify-content: center;
231
+ gap: var(--space-1);
232
+ padding: var(--space-2) var(--space-4);
233
+ min-width: 64px;
234
+ border: none;
235
+ border-radius: var(--radius-button);
236
+ background: transparent;
237
+ color: var(--text-tertiary);
238
+ font-family: var(--font-family);
239
+ font-size: var(--font-size-xs);
240
+ font-weight: var(--font-weight-medium);
241
+ cursor: pointer;
242
+ transition:
243
+ background var(--transition-glass),
244
+ color var(--transition-glass),
245
+ box-shadow var(--transition-glass),
246
+ transform var(--transition-glass);
247
+ }
248
+ .ds-tab-item::before {
249
+ content: "";
250
+ position: absolute;
251
+ inset: 0;
252
+ border-radius: inherit;
253
+ padding: var(--space-px);
254
+ background:
255
+ linear-gradient(
256
+ 180deg,
257
+ var(--rim-light-top) 0%,
258
+ var(--rim-light-bottom) 100%);
259
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
260
+ mask-composite: exclude;
261
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
262
+ -webkit-mask-composite: xor;
263
+ pointer-events: none;
264
+ opacity: 0;
265
+ transition: opacity var(--transition-glass);
266
+ }
267
+ .ds-tab-item:hover {
268
+ background: var(--glass-base);
269
+ color: var(--text-secondary);
270
+ }
271
+ .ds-tab-item:hover::before {
272
+ opacity: 1;
273
+ }
274
+ .ds-tab-item:focus-visible {
275
+ outline: none;
276
+ box-shadow: var(--focus-ring);
277
+ }
278
+ .ds-tab-item--active {
279
+ background: rgba(var(--brand-pink-rgb), 0.2);
280
+ color: var(--text-primary);
281
+ box-shadow: var(--glass-shadow-inner), 0 0 24px rgba(var(--brand-pink-rgb), 0.15);
282
+ }
283
+ .ds-tab-item--active::before {
284
+ opacity: 1;
285
+ background:
286
+ linear-gradient(
287
+ 180deg,
288
+ rgba(var(--brand-pink-rgb), 0.4) 0%,
289
+ rgba(var(--brand-pink-rgb), 0.1) 100%);
290
+ }
291
+ .ds-tab-item--active:hover {
292
+ background: rgba(var(--brand-pink-rgb), 0.25);
293
+ }
294
+ .ds-tab-item__icon {
295
+ display: flex;
296
+ align-items: center;
297
+ justify-content: center;
298
+ width: 1.5rem;
299
+ height: 1.5rem;
300
+ }
301
+ .ds-tab-item__icon svg {
302
+ width: 100%;
303
+ height: 100%;
304
+ }
305
+ .ds-tab-item__label {
306
+ white-space: nowrap;
307
+ }
308
+ .ds-floating-tab-bar--compact .ds-tab-item {
309
+ padding: var(--space-3);
310
+ min-width: auto;
311
+ }
312
+ .ds-floating-tab-bar--compact .ds-tab-item__label {
313
+ display: none;
314
+ }
315
+ @media (prefers-contrast: more) {
316
+ .ds-floating-tab-bar {
317
+ background: var(--hc-surface);
318
+ border: 1px solid var(--hc-border);
319
+ }
320
+ .ds-floating-tab-bar::before {
321
+ display: none;
322
+ }
323
+ .ds-tab-item--active {
324
+ background: rgba(var(--brand-pink-rgb), 0.4);
325
+ border: 1px solid rgba(var(--brand-pink-rgb), 0.6);
326
+ }
327
+ }
328
+ @supports not (backdrop-filter: blur(1px)) {
329
+ .ds-floating-tab-bar {
330
+ background: var(--fallback-surface);
331
+ }
332
+ }
333
+
334
+ /* src/components/Shell/Shell.css */
335
+ .ds-shell {
336
+ position: relative;
337
+ width: 100%;
338
+ min-height: 100%;
339
+ display: flex;
340
+ }
341
+ .ds-shell__content {
342
+ flex: 1;
343
+ width: 100%;
344
+ padding: var(--space-6);
345
+ padding-top: calc(var(--float-distance) + var(--space-4));
346
+ padding-bottom: calc(var(--float-distance) + var(--space-4));
347
+ box-sizing: border-box;
348
+ }
349
+ .ds-shell--left .ds-shell__content {
350
+ padding-left: calc(var(--sidebar-width, 280px) + var(--float-distance) * 2);
351
+ padding-right: var(--float-distance);
352
+ }
353
+ .ds-shell--right .ds-shell__content {
354
+ padding-right: calc(var(--sidebar-width, 280px) + var(--float-distance) * 2);
355
+ padding-left: var(--float-distance);
356
+ }
357
+ .ds-shell--bottom {
358
+ flex-direction: column;
359
+ }
360
+ .ds-shell--bottom .ds-shell__content {
361
+ padding-left: var(--float-distance);
362
+ padding-right: var(--float-distance);
363
+ padding-bottom: calc(80px + var(--float-distance) * 2);
364
+ }
365
+ @media (max-width: 768px) {
366
+ .ds-shell--left .ds-shell__content,
367
+ .ds-shell--right .ds-shell__content {
368
+ padding-left: var(--float-distance);
369
+ padding-right: var(--float-distance);
370
+ }
371
+ .ds-shell__content {
372
+ padding-bottom: calc(var(--float-distance) + env(safe-area-inset-bottom, 0px));
373
+ }
374
+ }
375
+
376
+ /* src/components/DataTable/DataTable.css */
377
+ .ds-data-table-container {
378
+ width: 100%;
379
+ overflow: auto;
380
+ border-radius: var(--radius-card);
381
+ border: 1px solid var(--rim-light-bottom);
382
+ background: var(--glass-base);
383
+ backdrop-filter: var(--glass-backdrop);
384
+ }
385
+ .ds-data-table {
386
+ width: 100%;
387
+ border-collapse: separate;
388
+ border-spacing: 0;
389
+ font-family: var(--font-family);
390
+ font-size: var(--font-size-sm);
391
+ color: var(--text-primary);
392
+ }
393
+ .ds-data-table__head {
394
+ padding: var(--space-3) var(--space-4);
395
+ text-align: left;
396
+ font-weight: var(--font-weight-medium);
397
+ color: var(--text-secondary);
398
+ border-bottom: 1px solid var(--rim-light-bottom);
399
+ background: var(--glass-base-hover);
400
+ white-space: nowrap;
401
+ }
402
+ .ds-data-table__row {
403
+ transition: background var(--transition-fast);
404
+ }
405
+ .ds-data-table__row:hover {
406
+ background: var(--glass-base-hover);
407
+ }
408
+ .ds-data-table__row:last-child .ds-data-table__cell {
409
+ border-bottom: none;
410
+ }
411
+ .ds-data-table__cell {
412
+ padding: var(--space-3) var(--space-4);
413
+ border-bottom: 1px solid var(--rim-light-bottom);
414
+ vertical-align: middle;
415
+ }
416
+
417
+ /* src/components/Button/Button.css */
418
+ .ds-button {
419
+ position: relative;
420
+ display: inline-flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ gap: var(--space-2);
424
+ border: none;
425
+ cursor: pointer;
426
+ font-family: var(--font-family);
427
+ font-weight: var(--font-weight-medium);
428
+ border-radius: var(--radius-button);
429
+ color: var(--text-primary);
430
+ outline: none;
431
+ white-space: nowrap;
432
+ hyphens: none;
433
+ word-break: normal;
434
+ overflow-wrap: normal;
435
+ backdrop-filter: blur(12px) saturate(140%);
436
+ -webkit-backdrop-filter: blur(12px) saturate(140%);
437
+ transition:
438
+ background var(--transition-glass),
439
+ box-shadow var(--transition-glass),
440
+ transform var(--transition-glass);
441
+ }
442
+ .ds-button::before {
443
+ content: "";
444
+ position: absolute;
445
+ inset: 0;
446
+ border-radius: inherit;
447
+ padding: var(--space-px);
448
+ background:
449
+ linear-gradient(
450
+ 180deg,
451
+ var(--rim-light-top) 0%,
452
+ var(--rim-light-bottom) 100%);
453
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
454
+ mask-composite: exclude;
455
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
456
+ -webkit-mask-composite: xor;
457
+ pointer-events: none;
458
+ transition: background var(--transition-glass);
459
+ }
460
+ .ds-button:focus-visible {
461
+ box-shadow: var(--focus-ring);
462
+ }
463
+ .ds-button:disabled {
464
+ opacity: 0.4;
465
+ cursor: not-allowed;
466
+ transform: none !important;
467
+ }
468
+ .ds-button--primary {
469
+ background: var(--btn-primary-bg);
470
+ color: var(--btn-primary-text, #ffffff);
471
+ box-shadow:
472
+ var(--shadow-interactive-rest),
473
+ var(--glass-shadow-inner),
474
+ var(--btn-primary-glow);
475
+ backdrop-filter: none;
476
+ -webkit-backdrop-filter: none;
477
+ }
478
+ .ds-button--primary::before {
479
+ background:
480
+ linear-gradient(
481
+ 180deg,
482
+ var(--glass-highlight-strong) 0%,
483
+ rgba(var(--brand-pink-rgb), 0.2) 100%);
484
+ }
485
+ .ds-button--primary:hover:not(:disabled) {
486
+ background: var(--btn-primary-bg-hover);
487
+ box-shadow:
488
+ var(--shadow-interactive-hover),
489
+ var(--glass-shadow-inner),
490
+ var(--btn-primary-glow-hover);
491
+ transform: translateY(-1px);
492
+ }
493
+ .ds-button--primary:hover:not(:disabled)::before {
494
+ background:
495
+ linear-gradient(
496
+ 180deg,
497
+ var(--glass-highlight-bright) 0%,
498
+ rgba(var(--brand-pink-rgb), 0.25) 100%);
499
+ }
500
+ .ds-button--primary:active:not(:disabled) {
501
+ transform: translateY(0);
502
+ box-shadow:
503
+ var(--shadow-interactive-active),
504
+ var(--glass-shadow-inner),
505
+ var(--btn-primary-glow);
506
+ }
507
+ .ds-button--secondary {
508
+ background: var(--btn-secondary-bg);
509
+ box-shadow: var(--shadow-interactive-rest-subtle), var(--glass-shadow-inner);
510
+ }
511
+ .ds-button--secondary:hover:not(:disabled) {
512
+ background: var(--btn-secondary-bg-hover);
513
+ box-shadow: var(--shadow-interactive-hover-subtle), var(--glass-shadow-inner);
514
+ transform: translateY(-1px);
515
+ }
516
+ .ds-button--secondary:hover:not(:disabled)::before {
517
+ background:
518
+ linear-gradient(
519
+ 180deg,
520
+ var(--rim-light-hover-top) 0%,
521
+ var(--rim-light-hover-bottom) 100%);
522
+ }
523
+ .ds-button--secondary:active:not(:disabled) {
524
+ transform: translateY(0);
525
+ background: var(--glass-base-active);
526
+ }
527
+ .ds-button--outline {
528
+ background: transparent;
529
+ box-shadow: none;
530
+ backdrop-filter: none;
531
+ -webkit-backdrop-filter: none;
532
+ color: var(--text-secondary);
533
+ transition:
534
+ background var(--transition-glass),
535
+ color var(--transition-glass),
536
+ box-shadow var(--transition-glass),
537
+ transform var(--transition-glass);
538
+ }
539
+ .ds-button--outline::before {
540
+ background:
541
+ linear-gradient(
542
+ 180deg,
543
+ var(--outline-rim-top) 0%,
544
+ var(--outline-rim-bottom) 100%);
545
+ }
546
+ .ds-button--outline:hover:not(:disabled) {
547
+ background: rgba(var(--brand-pink-rgb), 0.05);
548
+ color: var(--text-primary);
549
+ backdrop-filter: blur(12px) saturate(140%);
550
+ -webkit-backdrop-filter: blur(12px) saturate(140%);
551
+ box-shadow:
552
+ var(--shadow-interactive-rest-light),
553
+ var(--glass-shadow-inner),
554
+ 0 0 16px rgba(var(--brand-pink-rgb), 0.1);
555
+ transform: translateY(-1px);
556
+ }
557
+ .ds-button--outline:hover:not(:disabled)::before {
558
+ background:
559
+ linear-gradient(
560
+ 180deg,
561
+ rgba(var(--brand-pink-rgb), 0.3) 0%,
562
+ rgba(var(--brand-pink-rgb), 0.1) 100%);
563
+ }
564
+ .ds-button--outline:active:not(:disabled) {
565
+ transform: translateY(0);
566
+ background: rgba(var(--brand-pink-rgb), 0.1);
567
+ }
568
+ .ds-button--ghost {
569
+ background: transparent;
570
+ box-shadow: none;
571
+ backdrop-filter: none;
572
+ -webkit-backdrop-filter: none;
573
+ color: var(--text-secondary);
574
+ }
575
+ .ds-button--ghost::before {
576
+ display: none;
577
+ }
578
+ .ds-button--ghost:hover:not(:disabled) {
579
+ background: var(--interactive-hover-bg);
580
+ color: var(--text-primary);
581
+ }
582
+ .ds-button--ghost:active:not(:disabled) {
583
+ background: var(--interactive-active-bg);
584
+ }
585
+ .ds-button--link {
586
+ background: transparent;
587
+ box-shadow: none;
588
+ backdrop-filter: none;
589
+ -webkit-backdrop-filter: none;
590
+ color: var(--brand-pink);
591
+ text-underline-offset: 4px;
592
+ height: auto;
593
+ padding: 0;
594
+ }
595
+ .ds-button--link::before {
596
+ display: none;
597
+ }
598
+ .ds-button--link:hover:not(:disabled) {
599
+ text-decoration: underline;
600
+ }
601
+ .ds-button--link:active:not(:disabled) {
602
+ opacity: 0.8;
603
+ }
604
+ .ds-button--destructive {
605
+ background: var(--btn-destructive-bg, rgba(var(--status-error-rgb, 239, 68, 68), 0.6));
606
+ color: var(--btn-destructive-text, #ffffff);
607
+ box-shadow:
608
+ var(--shadow-interactive-rest),
609
+ var(--glass-shadow-inner),
610
+ 0 0 20px rgba(var(--status-error-rgb, 239, 68, 68), 0.15);
611
+ backdrop-filter: none;
612
+ -webkit-backdrop-filter: none;
613
+ }
614
+ .ds-button--destructive::before {
615
+ background:
616
+ linear-gradient(
617
+ 180deg,
618
+ var(--glass-highlight-medium) 0%,
619
+ rgba(var(--status-error-rgb, 239, 68, 68), 0.15) 100%);
620
+ }
621
+ .ds-button--destructive:hover:not(:disabled) {
622
+ background: var(--btn-destructive-bg-hover, rgba(var(--status-error-rgb, 239, 68, 68), 0.75));
623
+ box-shadow:
624
+ var(--shadow-interactive-hover),
625
+ var(--glass-shadow-inner),
626
+ 0 0 24px rgba(var(--status-error-rgb, 239, 68, 68), 0.25);
627
+ transform: translateY(-1px);
628
+ }
629
+ .ds-button--destructive:hover:not(:disabled)::before {
630
+ background:
631
+ linear-gradient(
632
+ 180deg,
633
+ var(--glass-highlight-strong) 0%,
634
+ rgba(var(--status-error-rgb, 239, 68, 68), 0.2) 100%);
635
+ }
636
+ .ds-button--destructive:active:not(:disabled) {
637
+ transform: translateY(0);
638
+ background: var(--btn-destructive-bg-active, rgba(var(--status-error-rgb, 239, 68, 68), 0.85));
639
+ }
640
+ .ds-button--sm {
641
+ font-size: var(--font-size-sm);
642
+ padding: var(--space-2) var(--space-4);
643
+ height: 2rem;
644
+ }
645
+ .ds-button--md {
646
+ font-size: var(--font-size-base);
647
+ padding: var(--space-2) var(--space-5);
648
+ height: 2.5rem;
649
+ }
650
+ .ds-button--lg {
651
+ font-size: var(--font-size-lg);
652
+ padding: var(--space-3) var(--space-6);
653
+ height: 3rem;
654
+ }
655
+ .ds-button--icon {
656
+ padding: 0;
657
+ aspect-ratio: 1;
658
+ }
659
+ .ds-button--icon.ds-button--sm {
660
+ width: 2rem;
661
+ }
662
+ .ds-button--icon.ds-button--md {
663
+ width: 2.5rem;
664
+ }
665
+ .ds-button--icon.ds-button--lg {
666
+ width: 3rem;
667
+ }
668
+ @media (prefers-contrast: more) {
669
+ .ds-button {
670
+ border: 1px solid var(--hc-border);
671
+ }
672
+ .ds-button::before {
673
+ display: none;
674
+ }
675
+ .ds-button--primary {
676
+ background: rgba(var(--brand-pink-rgb), 0.8);
677
+ }
678
+ .ds-button--secondary {
679
+ background: var(--hc-surface-subtle);
680
+ }
681
+ .ds-button--ghost {
682
+ border-color: transparent;
683
+ }
684
+ .ds-button--ghost:hover:not(:disabled) {
685
+ border-color: var(--hc-border-subtle);
686
+ }
687
+ .ds-button--link {
688
+ border: none;
689
+ text-decoration: underline;
690
+ }
691
+ .ds-button--destructive {
692
+ background: rgba(var(--status-error-rgb, 239, 68, 68), 0.85);
693
+ }
694
+ }
695
+ @supports not (backdrop-filter: blur(1px)) {
696
+ .ds-button--primary {
697
+ background: rgba(var(--brand-pink-rgb), 0.85);
698
+ }
699
+ .ds-button--secondary {
700
+ background: var(--fallback-surface);
701
+ }
702
+ }
703
+ :root[data-theme=light] .ds-button--primary::before,
704
+ :root[data-theme=light-contrast] .ds-button--primary::before {
705
+ background:
706
+ linear-gradient(
707
+ 180deg,
708
+ var(--glass-highlight-light) 0%,
709
+ rgba(var(--brand-pink-rgb), 0.08) 100%);
710
+ }
711
+ :root[data-theme=light] .ds-button--primary:hover:not(:disabled)::before,
712
+ :root[data-theme=light-contrast] .ds-button--primary:hover:not(:disabled)::before {
713
+ background:
714
+ linear-gradient(
715
+ 180deg,
716
+ var(--glass-highlight-medium) 0%,
717
+ rgba(var(--brand-pink-rgb), 0.1) 100%);
718
+ }
719
+ :root[data-theme=light] .ds-button--destructive::before,
720
+ :root[data-theme=light-contrast] .ds-button--destructive::before {
721
+ background:
722
+ linear-gradient(
723
+ 180deg,
724
+ var(--glass-highlight-light) 0%,
725
+ rgba(var(--status-error-rgb, 239, 68, 68), 0.06) 100%);
726
+ }
727
+ :root[data-theme=light] .ds-button--destructive:hover:not(:disabled)::before,
728
+ :root[data-theme=light-contrast] .ds-button--destructive:hover:not(:disabled)::before {
729
+ background:
730
+ linear-gradient(
731
+ 180deg,
732
+ var(--glass-highlight-light) 0%,
733
+ rgba(var(--status-error-rgb, 239, 68, 68), 0.08) 100%);
734
+ }
735
+ .ds-button--loading {
736
+ position: relative;
737
+ cursor: not-allowed;
738
+ opacity: 0.8;
739
+ }
740
+ .ds-button__spinner {
741
+ position: absolute;
742
+ top: 50%;
743
+ left: 50%;
744
+ transform: translate(-50%, -50%);
745
+ animation: ds-button-spin 1s linear infinite;
746
+ }
747
+ .ds-button__content {
748
+ display: inline-flex;
749
+ align-items: center;
750
+ justify-content: center;
751
+ gap: inherit;
752
+ visibility: visible;
753
+ }
754
+ .ds-button__content--hidden {
755
+ visibility: hidden;
756
+ }
757
+ @keyframes ds-button-spin {
758
+ from {
759
+ transform: translate(-50%, -50%) rotate(0deg);
760
+ }
761
+ to {
762
+ transform: translate(-50%, -50%) rotate(360deg);
763
+ }
764
+ }
765
+
766
+ /* src/components/TextField/TextField.css */
767
+ .ds-textfield {
768
+ display: flex;
769
+ flex-direction: column;
770
+ gap: var(--space-2);
771
+ }
772
+ .ds-textfield__label {
773
+ font-family: var(--font-family);
774
+ font-size: var(--font-size-sm);
775
+ font-weight: var(--font-weight-medium);
776
+ color: var(--text-secondary);
777
+ transition: color var(--transition-base);
778
+ }
779
+ .ds-textfield:focus-within .ds-textfield__label {
780
+ color: var(--text-primary);
781
+ }
782
+ .ds-textfield__input {
783
+ position: relative;
784
+ font-family: var(--font-family);
785
+ font-size: var(--font-size-base);
786
+ padding: var(--space-3) var(--space-4);
787
+ border: none;
788
+ border-radius: var(--radius-button);
789
+ color: var(--text-primary);
790
+ outline: none;
791
+ width: 100%;
792
+ box-sizing: border-box;
793
+ background: var(--glass-base-active);
794
+ backdrop-filter: blur(20px) saturate(140%);
795
+ -webkit-backdrop-filter: blur(20px) saturate(140%);
796
+ box-shadow: var(--shadow-md), var(--shadow-inset-border-subtle);
797
+ transition: background var(--transition-glass), box-shadow var(--transition-glass);
798
+ }
799
+ .ds-textfield__input::before {
800
+ content: "";
801
+ position: absolute;
802
+ inset: 0;
803
+ border-radius: inherit;
804
+ padding: var(--space-px);
805
+ background:
806
+ linear-gradient(
807
+ 180deg,
808
+ var(--rim-light-top) 0%,
809
+ var(--rim-light-bottom) 100%);
810
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
811
+ mask-composite: exclude;
812
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
813
+ -webkit-mask-composite: xor;
814
+ pointer-events: none;
815
+ }
816
+ .ds-textfield__input-wrapper {
817
+ position: relative;
818
+ }
819
+ .ds-textfield__input-wrapper::before {
820
+ content: "";
821
+ position: absolute;
822
+ inset: 0;
823
+ border-radius: var(--radius-button);
824
+ padding: var(--space-px);
825
+ background:
826
+ linear-gradient(
827
+ 180deg,
828
+ var(--rim-light-top) 0%,
829
+ var(--rim-light-bottom) 100%);
830
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
831
+ mask-composite: exclude;
832
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
833
+ -webkit-mask-composite: xor;
834
+ pointer-events: none;
835
+ transition: background var(--transition-glass);
836
+ }
837
+ .ds-textfield__input::placeholder {
838
+ color: var(--text-tertiary);
839
+ }
840
+ .ds-textfield__input:hover:not(:disabled):not(:focus) {
841
+ background: var(--glass-base-hover);
842
+ }
843
+ .ds-textfield__input-wrapper:hover:not(:has(:disabled)):not(:has(:focus))::before {
844
+ background:
845
+ linear-gradient(
846
+ 180deg,
847
+ var(--rim-light-hover-top) 0%,
848
+ var(--rim-light-hover-bottom) 100%);
849
+ }
850
+ .ds-textfield__input:focus {
851
+ background: var(--glass-base-hover);
852
+ box-shadow:
853
+ var(--shadow-lg),
854
+ var(--glass-shadow-inner),
855
+ 0 0 0 2px rgba(var(--brand-pink-rgb), 0.3);
856
+ }
857
+ .ds-textfield__input-wrapper:has(:focus)::before {
858
+ background:
859
+ linear-gradient(
860
+ 180deg,
861
+ rgba(var(--brand-pink-rgb), 0.4) 0%,
862
+ rgba(var(--brand-pink-rgb), 0.1) 100%);
863
+ }
864
+ .ds-textfield__input:disabled {
865
+ opacity: 0.4;
866
+ cursor: not-allowed;
867
+ }
868
+ .ds-textfield__input--adorned {
869
+ padding-right: var(--space-12);
870
+ }
871
+ .ds-textfield__adornment {
872
+ position: absolute;
873
+ right: var(--space-2);
874
+ top: 50%;
875
+ transform: translateY(-50%);
876
+ display: flex;
877
+ align-items: center;
878
+ justify-content: center;
879
+ z-index: 2;
880
+ }
881
+ .ds-textfield__input--error {
882
+ box-shadow:
883
+ var(--shadow-md),
884
+ var(--shadow-inset-border-error),
885
+ 0 0 0 1px rgba(var(--status-error-rgb), 0.5);
886
+ }
887
+ .ds-textfield__input-wrapper:has(.ds-textfield__input--error)::before {
888
+ background:
889
+ linear-gradient(
890
+ 180deg,
891
+ rgba(var(--status-error-rgb), 0.4) 0%,
892
+ rgba(var(--status-error-rgb), 0.1) 100%);
893
+ }
894
+ .ds-textfield__input--error:focus {
895
+ box-shadow:
896
+ var(--shadow-lg),
897
+ var(--glass-shadow-inner),
898
+ 0 0 0 2px rgba(var(--status-error-rgb), 0.4);
899
+ }
900
+ .ds-textfield__helper {
901
+ font-family: var(--font-family);
902
+ font-size: var(--font-size-xs);
903
+ color: var(--text-tertiary);
904
+ }
905
+ .ds-textfield__helper--error {
906
+ color: var(--status-error);
907
+ }
908
+ @media (prefers-contrast: more) {
909
+ .ds-textfield__input {
910
+ background: var(--hc-surface-input);
911
+ border: 1px solid var(--hc-border);
912
+ }
913
+ .ds-textfield__input-wrapper::before {
914
+ display: none;
915
+ }
916
+ .ds-textfield__input:focus {
917
+ border-color: var(--brand-pink);
918
+ }
919
+ .ds-textfield__input--error {
920
+ border-color: var(--status-error);
921
+ }
922
+ }
923
+ @supports not (backdrop-filter: blur(1px)) {
924
+ .ds-textfield__input {
925
+ background: var(--fallback-surface);
926
+ }
927
+ }
928
+
929
+ /* src/components/Checkbox/Checkbox.css */
930
+ .ds-checkbox-wrapper {
931
+ display: flex;
932
+ align-items: center;
933
+ gap: var(--space-3);
934
+ }
935
+ .ds-checkbox {
936
+ all: unset;
937
+ position: relative;
938
+ width: 1.25rem;
939
+ height: 1.25rem;
940
+ border-radius: var(--radius-badge);
941
+ display: flex;
942
+ align-items: center;
943
+ justify-content: center;
944
+ cursor: pointer;
945
+ flex-shrink: 0;
946
+ background: var(--glass-base);
947
+ backdrop-filter: blur(12px) saturate(140%);
948
+ -webkit-backdrop-filter: blur(12px) saturate(140%);
949
+ box-shadow: var(--shadow-sm), var(--shadow-inset-border-error);
950
+ transition:
951
+ background var(--transition-glass),
952
+ box-shadow var(--transition-glass),
953
+ transform var(--transition-glass);
954
+ }
955
+ .ds-checkbox::before {
956
+ content: "";
957
+ position: absolute;
958
+ inset: 0;
959
+ border-radius: inherit;
960
+ padding: var(--space-px);
961
+ background:
962
+ linear-gradient(
963
+ 180deg,
964
+ var(--rim-light-top) 0%,
965
+ var(--rim-light-bottom) 100%);
966
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
967
+ mask-composite: exclude;
968
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
969
+ -webkit-mask-composite: xor;
970
+ pointer-events: none;
971
+ transition: background var(--transition-glass);
972
+ }
973
+ .ds-checkbox:hover:not([disabled]) {
974
+ background: var(--glass-base-hover);
975
+ transform: translateY(-1px);
976
+ box-shadow: var(--shadow-md), var(--glass-shadow-inner);
977
+ }
978
+ .ds-checkbox:hover:not([disabled])::before {
979
+ background:
980
+ linear-gradient(
981
+ 180deg,
982
+ var(--rim-light-hover-top) 0%,
983
+ var(--rim-light-hover-bottom) 100%);
984
+ }
985
+ .ds-checkbox:focus-visible {
986
+ box-shadow: var(--focus-ring);
987
+ }
988
+ .ds-checkbox[data-state=checked] {
989
+ background: var(--btn-primary-bg);
990
+ box-shadow:
991
+ var(--shadow-sm),
992
+ var(--glass-shadow-inner),
993
+ var(--btn-primary-glow);
994
+ }
995
+ .ds-checkbox[data-state=checked]::before {
996
+ background:
997
+ linear-gradient(
998
+ 180deg,
999
+ var(--glass-highlight-strong) 0%,
1000
+ rgba(var(--brand-pink-rgb), 0.2) 100%);
1001
+ }
1002
+ .ds-checkbox[data-state=checked]:hover:not([disabled]) {
1003
+ background: var(--btn-primary-bg-hover);
1004
+ box-shadow:
1005
+ var(--shadow-md),
1006
+ var(--glass-highlight-medium),
1007
+ var(--btn-primary-glow-hover);
1008
+ }
1009
+ .ds-checkbox[disabled] {
1010
+ opacity: 0.4;
1011
+ cursor: not-allowed;
1012
+ transform: none !important;
1013
+ }
1014
+ .ds-checkbox__indicator {
1015
+ display: flex;
1016
+ align-items: center;
1017
+ justify-content: center;
1018
+ width: 100%;
1019
+ height: 100%;
1020
+ color: var(--text-primary);
1021
+ position: relative;
1022
+ z-index: 1;
1023
+ }
1024
+ .ds-checkbox__icon {
1025
+ width: 0.75rem;
1026
+ height: 0.75rem;
1027
+ animation: ds-checkbox-check-in 0.15s ease-out;
1028
+ }
1029
+ @keyframes ds-checkbox-check-in {
1030
+ from {
1031
+ opacity: 0;
1032
+ transform: scale(0.8);
1033
+ }
1034
+ to {
1035
+ opacity: 1;
1036
+ transform: scale(1);
1037
+ }
1038
+ }
1039
+ .ds-checkbox__label {
1040
+ font-family: var(--font-family);
1041
+ font-size: var(--font-size-base);
1042
+ color: var(--text-primary);
1043
+ cursor: pointer;
1044
+ user-select: none;
1045
+ line-height: var(--line-height-normal);
1046
+ }
1047
+ .ds-checkbox[disabled] + .ds-checkbox__label,
1048
+ .ds-checkbox-wrapper:has(.ds-checkbox[disabled]) .ds-checkbox__label {
1049
+ opacity: 0.4;
1050
+ cursor: not-allowed;
1051
+ }
1052
+ @media (prefers-contrast: more) {
1053
+ .ds-checkbox {
1054
+ background: var(--hc-surface-input);
1055
+ border: 1px solid var(--hc-border-strong);
1056
+ }
1057
+ .ds-checkbox::before {
1058
+ display: none;
1059
+ }
1060
+ .ds-checkbox[data-state=checked] {
1061
+ background: rgba(var(--brand-pink-rgb), 0.8);
1062
+ border-color: var(--brand-pink);
1063
+ }
1064
+ }
1065
+ @media (prefers-reduced-motion: reduce) {
1066
+ .ds-checkbox__icon {
1067
+ animation: none;
1068
+ }
1069
+ }
1070
+
1071
+ /* src/components/Login/Login.css */
1072
+ .ds-login {
1073
+ position: relative;
1074
+ display: flex;
1075
+ flex-direction: column;
1076
+ align-items: center;
1077
+ justify-content: center;
1078
+ width: 100%;
1079
+ padding: var(--space-6);
1080
+ }
1081
+ .ds-login__accent {
1082
+ position: absolute;
1083
+ border-radius: 50%;
1084
+ filter: blur(80px);
1085
+ opacity: 0.5;
1086
+ pointer-events: none;
1087
+ animation: ds-login-float 20s ease-in-out infinite;
1088
+ }
1089
+ .ds-login__accent--1 {
1090
+ width: 400px;
1091
+ height: 400px;
1092
+ background:
1093
+ radial-gradient(
1094
+ circle,
1095
+ rgba(var(--accent-rgb), 0.4) 0%,
1096
+ transparent 70%);
1097
+ top: -100px;
1098
+ right: -100px;
1099
+ animation-delay: 0s;
1100
+ }
1101
+ .ds-login__accent--2 {
1102
+ width: 300px;
1103
+ height: 300px;
1104
+ background:
1105
+ radial-gradient(
1106
+ circle,
1107
+ rgba(var(--accent2-rgb), 0.3) 0%,
1108
+ transparent 70%);
1109
+ bottom: -50px;
1110
+ left: -50px;
1111
+ animation-delay: -10s;
1112
+ }
1113
+ @keyframes ds-login-float {
1114
+ 0%, 100% {
1115
+ transform: translate(0, 0) scale(1);
1116
+ }
1117
+ 25% {
1118
+ transform: translate(20px, -30px) scale(1.05);
1119
+ }
1120
+ 50% {
1121
+ transform: translate(-10px, 20px) scale(0.95);
1122
+ }
1123
+ 75% {
1124
+ transform: translate(-30px, -10px) scale(1.02);
1125
+ }
1126
+ }
1127
+ .ds-login__card {
1128
+ position: relative;
1129
+ width: 100%;
1130
+ max-width: 420px;
1131
+ padding: var(--space-8);
1132
+ border-radius: var(--radius-panel);
1133
+ background: var(--glass-base);
1134
+ backdrop-filter: var(--glass-backdrop);
1135
+ -webkit-backdrop-filter: var(--glass-backdrop);
1136
+ box-shadow: var(--glass-shadow-elevated-combined);
1137
+ animation: ds-login-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
1138
+ opacity: 0;
1139
+ transform: translateY(20px);
1140
+ }
1141
+ .ds-login__card::before {
1142
+ content: "";
1143
+ position: absolute;
1144
+ inset: 0;
1145
+ border-radius: inherit;
1146
+ padding: 1px;
1147
+ background:
1148
+ linear-gradient(
1149
+ 180deg,
1150
+ var(--rim-light-hover-top) 0%,
1151
+ var(--rim-light-bottom) 100%);
1152
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1153
+ mask-composite: exclude;
1154
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1155
+ -webkit-mask-composite: xor;
1156
+ pointer-events: none;
1157
+ }
1158
+ @keyframes ds-login-card-enter {
1159
+ to {
1160
+ opacity: 1;
1161
+ transform: translateY(0);
1162
+ }
1163
+ }
1164
+ .ds-login__header {
1165
+ text-align: center;
1166
+ margin-bottom: var(--space-6);
1167
+ }
1168
+ .ds-login__logo {
1169
+ display: flex;
1170
+ justify-content: center;
1171
+ margin-bottom: var(--space-4);
1172
+ animation: ds-login-fade-in 0.5s ease-out 0.1s forwards;
1173
+ opacity: 0;
1174
+ }
1175
+ .ds-login__logo--default {
1176
+ display: flex;
1177
+ }
1178
+ .ds-login__logo-icon {
1179
+ width: 56px;
1180
+ height: 56px;
1181
+ animation: ds-login-logo-pulse 3s ease-in-out infinite;
1182
+ }
1183
+ .ds-login__logo-icon svg {
1184
+ width: 100%;
1185
+ height: 100%;
1186
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
1187
+ }
1188
+ @keyframes ds-login-logo-pulse {
1189
+ 0%, 100% {
1190
+ transform: scale(1);
1191
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
1192
+ }
1193
+ 50% {
1194
+ transform: scale(1.05);
1195
+ filter: drop-shadow(0 6px 20px rgba(var(--accent-rgb), 0.5));
1196
+ }
1197
+ }
1198
+ .ds-login__title {
1199
+ font-family: var(--font-family);
1200
+ font-size: var(--font-size-2xl);
1201
+ font-weight: var(--font-weight-bold);
1202
+ color: var(--text-primary);
1203
+ margin: 0 0 var(--space-2);
1204
+ animation: ds-login-fade-in 0.5s ease-out 0.2s forwards;
1205
+ opacity: 0;
1206
+ }
1207
+ .ds-login__tagline {
1208
+ font-family: var(--font-family);
1209
+ font-size: var(--font-size-2xl);
1210
+ font-weight: var(--font-weight-bold);
1211
+ color: var(--text-primary);
1212
+ margin: 0 0 var(--space-2);
1213
+ line-height: var(--line-height-normal);
1214
+ animation: ds-login-fade-in 0.5s ease-out 0.3s forwards;
1215
+ opacity: 0;
1216
+ }
1217
+ @keyframes ds-login-fade-in {
1218
+ to {
1219
+ opacity: 1;
1220
+ }
1221
+ }
1222
+ .ds-login__error {
1223
+ display: flex;
1224
+ align-items: center;
1225
+ gap: var(--space-2);
1226
+ padding: var(--space-3) var(--space-4);
1227
+ margin-bottom: var(--space-4);
1228
+ border-radius: var(--radius-button);
1229
+ background: rgba(var(--status-error-rgb), 0.1);
1230
+ border: 1px solid rgba(var(--status-error-rgb), 0.3);
1231
+ color: var(--status-error);
1232
+ font-size: var(--font-size-sm);
1233
+ animation: ds-login-error-enter 0.4s ease-out;
1234
+ }
1235
+ @keyframes ds-login-error-enter {
1236
+ 0% {
1237
+ opacity: 0;
1238
+ transform: translateX(-10px);
1239
+ }
1240
+ 50% {
1241
+ transform: translateX(5px);
1242
+ }
1243
+ 100% {
1244
+ opacity: 1;
1245
+ transform: translateX(0);
1246
+ }
1247
+ }
1248
+ .ds-login__social {
1249
+ margin-bottom: var(--space-4);
1250
+ animation: ds-login-fade-in 0.5s ease-out 0.4s forwards;
1251
+ opacity: 0;
1252
+ }
1253
+ .ds-login__social-btn {
1254
+ display: flex;
1255
+ align-items: center;
1256
+ justify-content: center;
1257
+ gap: var(--space-3);
1258
+ width: 100%;
1259
+ padding: var(--space-3) var(--space-4);
1260
+ margin-bottom: var(--space-3);
1261
+ border: none;
1262
+ border-radius: var(--radius-button);
1263
+ background: var(--glass-base);
1264
+ color: var(--text-primary);
1265
+ font-family: var(--font-family);
1266
+ font-size: var(--font-size-base);
1267
+ font-weight: var(--font-weight-medium);
1268
+ cursor: pointer;
1269
+ position: relative;
1270
+ transition:
1271
+ background var(--transition-glass),
1272
+ transform var(--transition-glass),
1273
+ box-shadow var(--transition-glass);
1274
+ }
1275
+ .ds-login__social-btn::before {
1276
+ content: "";
1277
+ position: absolute;
1278
+ inset: 0;
1279
+ border-radius: inherit;
1280
+ padding: 1px;
1281
+ background:
1282
+ linear-gradient(
1283
+ 180deg,
1284
+ var(--rim-light-top) 0%,
1285
+ var(--rim-light-bottom) 100%);
1286
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1287
+ mask-composite: exclude;
1288
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1289
+ -webkit-mask-composite: xor;
1290
+ pointer-events: none;
1291
+ transition: background var(--transition-glass);
1292
+ }
1293
+ .ds-login__social-btn:hover:not(:disabled) {
1294
+ background: var(--glass-base-hover);
1295
+ transform: translateY(-2px);
1296
+ box-shadow: var(--shadow-lg);
1297
+ }
1298
+ .ds-login__social-btn:hover:not(:disabled)::before {
1299
+ background:
1300
+ linear-gradient(
1301
+ 180deg,
1302
+ var(--rim-light-hover-top) 0%,
1303
+ var(--rim-light-hover-bottom) 100%);
1304
+ }
1305
+ .ds-login__social-btn:disabled {
1306
+ opacity: 0.5;
1307
+ cursor: not-allowed;
1308
+ }
1309
+ .ds-login__divider {
1310
+ display: flex;
1311
+ align-items: center;
1312
+ gap: var(--space-4);
1313
+ margin: var(--space-4) 0;
1314
+ color: var(--text-tertiary);
1315
+ font-size: var(--font-size-sm);
1316
+ }
1317
+ .ds-login__divider::before,
1318
+ .ds-login__divider::after {
1319
+ content: "";
1320
+ flex: 1;
1321
+ height: 1px;
1322
+ background:
1323
+ linear-gradient(
1324
+ 90deg,
1325
+ transparent 0%,
1326
+ var(--rim-light-top) 50%,
1327
+ transparent 100%);
1328
+ }
1329
+ .ds-login__form {
1330
+ animation: ds-login-fade-in 0.5s ease-out 0.5s forwards;
1331
+ opacity: 0;
1332
+ }
1333
+ .ds-login__field {
1334
+ margin-bottom: var(--space-4);
1335
+ }
1336
+ .ds-login__password-toggle {
1337
+ position: static;
1338
+ transform: none;
1339
+ padding: var(--space-2);
1340
+ border: none;
1341
+ background: transparent;
1342
+ color: var(--text-tertiary);
1343
+ cursor: pointer;
1344
+ border-radius: var(--radius-badge);
1345
+ display: flex;
1346
+ align-items: center;
1347
+ justify-content: center;
1348
+ transition: color var(--transition-glass), background var(--transition-glass);
1349
+ }
1350
+ .ds-login__password-toggle:hover {
1351
+ color: var(--text-primary);
1352
+ background: var(--glass-base-hover);
1353
+ }
1354
+ .ds-login__options {
1355
+ display: flex;
1356
+ align-items: center;
1357
+ justify-content: space-between;
1358
+ margin-bottom: var(--space-6);
1359
+ flex-wrap: wrap;
1360
+ gap: var(--space-2);
1361
+ }
1362
+ .ds-login__link {
1363
+ padding: 0;
1364
+ border: none;
1365
+ background: transparent;
1366
+ color: var(--text-secondary);
1367
+ font-family: var(--font-family);
1368
+ font-size: var(--font-size-sm);
1369
+ cursor: pointer;
1370
+ transition: color var(--transition-glass);
1371
+ }
1372
+ .ds-login__link:hover:not(:disabled) {
1373
+ color: var(--text-primary);
1374
+ }
1375
+ .ds-login__link--accent {
1376
+ color: rgb(var(--accent-rgb));
1377
+ font-weight: var(--font-weight-medium);
1378
+ }
1379
+ .ds-login__link--accent:hover:not(:disabled) {
1380
+ color: rgb(var(--accent-rgb));
1381
+ text-decoration: underline;
1382
+ }
1383
+ .ds-login__link:disabled {
1384
+ opacity: 0.5;
1385
+ cursor: not-allowed;
1386
+ }
1387
+ .ds-login__submit {
1388
+ width: 100%;
1389
+ }
1390
+ .ds-login__spinner {
1391
+ display: inline-block;
1392
+ width: 20px;
1393
+ height: 20px;
1394
+ border: 2px solid var(--hc-border);
1395
+ border-top-color: var(--hc-control-knob);
1396
+ border-radius: 50%;
1397
+ animation: ds-login-spin 0.8s linear infinite;
1398
+ }
1399
+ @keyframes ds-login-spin {
1400
+ to {
1401
+ transform: rotate(360deg);
1402
+ }
1403
+ }
1404
+ .ds-login__footer {
1405
+ display: flex;
1406
+ align-items: center;
1407
+ justify-content: center;
1408
+ gap: var(--space-2);
1409
+ margin-top: var(--space-6);
1410
+ padding-top: var(--space-6);
1411
+ border-top: 1px solid var(--rim-light-bottom);
1412
+ font-size: var(--font-size-sm);
1413
+ color: var(--text-tertiary);
1414
+ animation: ds-login-fade-in 0.5s ease-out 0.6s forwards;
1415
+ opacity: 0;
1416
+ }
1417
+ @media (max-width: 480px) {
1418
+ .ds-login {
1419
+ padding: var(--space-4);
1420
+ }
1421
+ .ds-login__card {
1422
+ padding: var(--space-6);
1423
+ border-radius: var(--radius-card);
1424
+ }
1425
+ .ds-login__accent--1 {
1426
+ width: 200px;
1427
+ height: 200px;
1428
+ top: -50px;
1429
+ right: -50px;
1430
+ }
1431
+ .ds-login__accent--2 {
1432
+ width: 150px;
1433
+ height: 150px;
1434
+ bottom: -30px;
1435
+ left: -30px;
1436
+ }
1437
+ .ds-login__options {
1438
+ flex-direction: column;
1439
+ align-items: flex-start;
1440
+ gap: var(--space-3);
1441
+ }
1442
+ }
1443
+ @media (prefers-reduced-motion: reduce) {
1444
+ .ds-login__card,
1445
+ .ds-login__logo,
1446
+ .ds-login__title,
1447
+ .ds-login__tagline,
1448
+ .ds-login__social,
1449
+ .ds-login__form,
1450
+ .ds-login__footer,
1451
+ .ds-login__trust {
1452
+ animation: none;
1453
+ opacity: 1;
1454
+ }
1455
+ .ds-login__accent {
1456
+ animation: none;
1457
+ }
1458
+ .ds-login__logo-icon {
1459
+ animation: none;
1460
+ }
1461
+ .ds-login__spinner {
1462
+ animation-duration: 1.5s;
1463
+ }
1464
+ }
1465
+ @media (prefers-contrast: more) {
1466
+ .ds-login__card {
1467
+ border: 1px solid var(--hc-border);
1468
+ }
1469
+ .ds-login__social-btn {
1470
+ border: 1px solid var(--hc-border-subtle);
1471
+ }
1472
+ .ds-login__social-btn::before {
1473
+ display: none;
1474
+ }
1475
+ }
1476
+
1477
+ /* src/components/Signup/Signup.css */
1478
+ .ds-signup {
1479
+ position: relative;
1480
+ display: flex;
1481
+ flex-direction: column;
1482
+ align-items: center;
1483
+ justify-content: center;
1484
+ width: 100%;
1485
+ padding: var(--space-6) var(--space-4);
1486
+ box-sizing: border-box;
1487
+ }
1488
+ .ds-signup__accent {
1489
+ position: absolute;
1490
+ border-radius: 50%;
1491
+ filter: blur(80px);
1492
+ opacity: 0.5;
1493
+ pointer-events: none;
1494
+ animation: ds-signup-float 20s ease-in-out infinite;
1495
+ }
1496
+ .ds-signup__accent--1 {
1497
+ width: 400px;
1498
+ height: 400px;
1499
+ background:
1500
+ radial-gradient(
1501
+ circle,
1502
+ rgba(var(--accent-rgb), 0.4) 0%,
1503
+ transparent 70%);
1504
+ top: -100px;
1505
+ right: -100px;
1506
+ animation-delay: 0s;
1507
+ }
1508
+ .ds-signup__accent--2 {
1509
+ width: 300px;
1510
+ height: 300px;
1511
+ background:
1512
+ radial-gradient(
1513
+ circle,
1514
+ rgba(var(--accent2-rgb), 0.3) 0%,
1515
+ transparent 70%);
1516
+ bottom: -50px;
1517
+ left: -50px;
1518
+ animation-delay: -10s;
1519
+ }
1520
+ @keyframes ds-signup-float {
1521
+ 0%, 100% {
1522
+ transform: translate(0, 0) scale(1);
1523
+ }
1524
+ 25% {
1525
+ transform: translate(20px, -30px) scale(1.05);
1526
+ }
1527
+ 50% {
1528
+ transform: translate(-10px, 20px) scale(0.95);
1529
+ }
1530
+ 75% {
1531
+ transform: translate(-30px, -10px) scale(1.02);
1532
+ }
1533
+ }
1534
+ .ds-signup__card {
1535
+ position: relative;
1536
+ width: 100%;
1537
+ max-width: 420px;
1538
+ padding: var(--space-8);
1539
+ border-radius: var(--radius-panel);
1540
+ background: var(--glass-base);
1541
+ backdrop-filter: var(--glass-backdrop);
1542
+ -webkit-backdrop-filter: var(--glass-backdrop);
1543
+ box-shadow: var(--glass-shadow-elevated-combined);
1544
+ animation: ds-signup-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
1545
+ opacity: 0;
1546
+ transform: translateY(20px);
1547
+ }
1548
+ .ds-signup__card::before {
1549
+ content: "";
1550
+ position: absolute;
1551
+ inset: 0;
1552
+ border-radius: inherit;
1553
+ padding: 1px;
1554
+ background:
1555
+ linear-gradient(
1556
+ 180deg,
1557
+ var(--rim-light-hover-top) 0%,
1558
+ var(--rim-light-bottom) 100%);
1559
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1560
+ mask-composite: exclude;
1561
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1562
+ -webkit-mask-composite: xor;
1563
+ pointer-events: none;
1564
+ }
1565
+ @keyframes ds-signup-card-enter {
1566
+ to {
1567
+ opacity: 1;
1568
+ transform: translateY(0);
1569
+ }
1570
+ }
1571
+ .ds-signup__card--success {
1572
+ text-align: center;
1573
+ }
1574
+ .ds-signup__success-icon {
1575
+ width: 64px;
1576
+ height: 64px;
1577
+ margin: 0 auto var(--space-6);
1578
+ animation: ds-signup-success-icon 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
1579
+ }
1580
+ .ds-signup__success-icon svg {
1581
+ width: 100%;
1582
+ height: 100%;
1583
+ }
1584
+ @keyframes ds-signup-success-icon {
1585
+ 0% {
1586
+ transform: scale(0);
1587
+ opacity: 0;
1588
+ }
1589
+ 50% {
1590
+ transform: scale(1.2);
1591
+ }
1592
+ 100% {
1593
+ transform: scale(1);
1594
+ opacity: 1;
1595
+ }
1596
+ }
1597
+ .ds-signup__success-title {
1598
+ font-family: var(--font-family);
1599
+ font-size: var(--font-size-2xl);
1600
+ font-weight: var(--font-weight-bold);
1601
+ color: var(--text-primary);
1602
+ margin: 0 0 var(--space-2);
1603
+ }
1604
+ .ds-signup__success-message {
1605
+ font-family: var(--font-family);
1606
+ font-size: var(--font-size-base);
1607
+ color: var(--text-secondary);
1608
+ margin: 0 0 var(--space-6);
1609
+ line-height: var(--line-height-normal);
1610
+ }
1611
+ .ds-signup__success-btn {
1612
+ width: 100%;
1613
+ }
1614
+ .ds-signup__header {
1615
+ text-align: center;
1616
+ margin-bottom: var(--space-6);
1617
+ }
1618
+ .ds-signup__logo {
1619
+ display: flex;
1620
+ justify-content: center;
1621
+ margin-bottom: var(--space-4);
1622
+ animation: ds-signup-fade-in 0.5s ease-out 0.1s forwards;
1623
+ opacity: 0;
1624
+ }
1625
+ .ds-signup__logo-icon {
1626
+ width: 56px;
1627
+ height: 56px;
1628
+ animation: ds-signup-logo-pulse 3s ease-in-out infinite;
1629
+ }
1630
+ .ds-signup__logo-icon svg {
1631
+ width: 100%;
1632
+ height: 100%;
1633
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
1634
+ }
1635
+ @keyframes ds-signup-logo-pulse {
1636
+ 0%, 100% {
1637
+ transform: scale(1);
1638
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
1639
+ }
1640
+ 50% {
1641
+ transform: scale(1.05);
1642
+ filter: drop-shadow(0 6px 20px rgba(var(--accent-rgb), 0.5));
1643
+ }
1644
+ }
1645
+ .ds-signup__title {
1646
+ font-family: var(--font-family);
1647
+ font-size: var(--font-size-2xl);
1648
+ font-weight: var(--font-weight-bold);
1649
+ color: var(--text-primary);
1650
+ margin: 0 0 var(--space-2);
1651
+ animation: ds-signup-fade-in 0.5s ease-out 0.2s forwards;
1652
+ opacity: 0;
1653
+ }
1654
+ .ds-signup__tagline {
1655
+ font-family: var(--font-family);
1656
+ font-size: var(--font-size-sm);
1657
+ color: var(--text-secondary);
1658
+ margin: 0;
1659
+ line-height: var(--line-height-normal);
1660
+ animation: ds-signup-fade-in 0.5s ease-out 0.3s forwards;
1661
+ opacity: 0;
1662
+ }
1663
+ @keyframes ds-signup-fade-in {
1664
+ to {
1665
+ opacity: 1;
1666
+ }
1667
+ }
1668
+ .ds-signup__error {
1669
+ display: flex;
1670
+ align-items: center;
1671
+ gap: var(--space-2);
1672
+ padding: var(--space-3) var(--space-4);
1673
+ margin-bottom: var(--space-4);
1674
+ border-radius: var(--radius-button);
1675
+ background: rgba(var(--status-error-rgb), 0.1);
1676
+ border: 1px solid rgba(var(--status-error-rgb), 0.3);
1677
+ color: var(--status-error);
1678
+ font-size: var(--font-size-sm);
1679
+ animation: ds-signup-error-enter 0.4s ease-out;
1680
+ }
1681
+ @keyframes ds-signup-error-enter {
1682
+ 0% {
1683
+ opacity: 0;
1684
+ transform: translateX(-10px);
1685
+ }
1686
+ 50% {
1687
+ transform: translateX(5px);
1688
+ }
1689
+ 100% {
1690
+ opacity: 1;
1691
+ transform: translateX(0);
1692
+ }
1693
+ }
1694
+ .ds-signup__social {
1695
+ margin-bottom: var(--space-4);
1696
+ animation: ds-signup-fade-in 0.5s ease-out 0.4s forwards;
1697
+ opacity: 0;
1698
+ }
1699
+ .ds-signup__social-btn {
1700
+ display: flex;
1701
+ align-items: center;
1702
+ justify-content: center;
1703
+ gap: var(--space-3);
1704
+ width: 100%;
1705
+ padding: var(--space-3) var(--space-4);
1706
+ margin-bottom: var(--space-3);
1707
+ border: none;
1708
+ border-radius: var(--radius-button);
1709
+ background: var(--glass-base);
1710
+ color: var(--text-primary);
1711
+ font-family: var(--font-family);
1712
+ font-size: var(--font-size-base);
1713
+ font-weight: var(--font-weight-medium);
1714
+ cursor: pointer;
1715
+ position: relative;
1716
+ transition:
1717
+ background var(--transition-glass),
1718
+ transform var(--transition-glass),
1719
+ box-shadow var(--transition-glass);
1720
+ }
1721
+ .ds-signup__social-btn::before {
1722
+ content: "";
1723
+ position: absolute;
1724
+ inset: 0;
1725
+ border-radius: inherit;
1726
+ padding: 1px;
1727
+ background:
1728
+ linear-gradient(
1729
+ 180deg,
1730
+ var(--rim-light-top) 0%,
1731
+ var(--rim-light-bottom) 100%);
1732
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1733
+ mask-composite: exclude;
1734
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
1735
+ -webkit-mask-composite: xor;
1736
+ pointer-events: none;
1737
+ transition: background var(--transition-glass);
1738
+ }
1739
+ .ds-signup__social-btn:hover:not(:disabled) {
1740
+ background: var(--glass-base-hover);
1741
+ transform: translateY(-2px);
1742
+ box-shadow: var(--shadow-lg);
1743
+ }
1744
+ .ds-signup__social-btn:disabled {
1745
+ opacity: 0.5;
1746
+ cursor: not-allowed;
1747
+ }
1748
+ .ds-signup__divider {
1749
+ display: flex;
1750
+ align-items: center;
1751
+ gap: var(--space-4);
1752
+ margin: var(--space-4) 0;
1753
+ color: var(--text-tertiary);
1754
+ font-size: var(--font-size-sm);
1755
+ }
1756
+ .ds-signup__divider::before,
1757
+ .ds-signup__divider::after {
1758
+ content: "";
1759
+ flex: 1;
1760
+ height: 1px;
1761
+ background:
1762
+ linear-gradient(
1763
+ 90deg,
1764
+ transparent 0%,
1765
+ var(--rim-light-top) 50%,
1766
+ transparent 100%);
1767
+ }
1768
+ .ds-signup__form {
1769
+ animation: ds-signup-fade-in 0.5s ease-out 0.5s forwards;
1770
+ opacity: 0;
1771
+ }
1772
+ .ds-signup__field {
1773
+ margin-bottom: var(--space-4);
1774
+ }
1775
+ .ds-signup__phone-container {
1776
+ display: flex;
1777
+ align-items: center;
1778
+ position: relative;
1779
+ width: 100%;
1780
+ }
1781
+ .ds-signup__phone-container.ds-textfield__input {
1782
+ display: flex;
1783
+ align-items: center;
1784
+ position: relative;
1785
+ width: 100%;
1786
+ padding: 0;
1787
+ overflow: hidden;
1788
+ }
1789
+ .ds-signup__flag-select-wrapper {
1790
+ position: relative;
1791
+ display: flex;
1792
+ align-items: center;
1793
+ align-self: stretch;
1794
+ }
1795
+ .ds-signup__flag-select-native {
1796
+ position: absolute;
1797
+ inset: 0;
1798
+ width: 100%;
1799
+ height: 100%;
1800
+ opacity: 0;
1801
+ cursor: pointer;
1802
+ z-index: 2;
1803
+ }
1804
+ .ds-signup__flag-display {
1805
+ display: flex;
1806
+ align-items: center;
1807
+ gap: 6px;
1808
+ padding: var(--space-3) var(--space-3) var(--space-3) var(--space-4);
1809
+ height: 100%;
1810
+ background: transparent;
1811
+ color: var(--text-primary);
1812
+ border-right: 1px solid var(--border-subtle);
1813
+ pointer-events: none;
1814
+ }
1815
+ .ds-signup__flag-icon {
1816
+ font-size: 18px;
1817
+ line-height: 1;
1818
+ }
1819
+ .ds-signup__phone-input-native {
1820
+ flex-grow: 1;
1821
+ border: none !important;
1822
+ background: transparent !important;
1823
+ border-radius: 0 !important;
1824
+ box-shadow: none !important;
1825
+ padding: var(--space-3) var(--space-4) var(--space-3) var(--space-3) !important;
1826
+ color: inherit;
1827
+ font-family: inherit;
1828
+ font-size: inherit;
1829
+ outline: none;
1830
+ }
1831
+ .ds-signup__phone-input-native:focus {
1832
+ outline: none;
1833
+ border-color: transparent !important;
1834
+ box-shadow: none !important;
1835
+ }
1836
+ .ds-signup__phone-container:disabled,
1837
+ .ds-signup__phone-input-native:disabled {
1838
+ opacity: 0.5;
1839
+ cursor: not-allowed;
1840
+ }
1841
+ .ds-signup__password-wrapper {
1842
+ position: relative;
1843
+ }
1844
+ .ds-signup__password-wrapper .ds-textfield__input {
1845
+ padding-right: var(--space-12);
1846
+ }
1847
+ .ds-signup__password-toggle {
1848
+ position: absolute;
1849
+ right: var(--space-3);
1850
+ top: 60%;
1851
+ transform: translateY(calc(-50% + 10px));
1852
+ padding: var(--space-2);
1853
+ border: none;
1854
+ background: transparent;
1855
+ color: var(--text-tertiary);
1856
+ cursor: pointer;
1857
+ border-radius: var(--radius-badge);
1858
+ transition: color var(--transition-glass), background var(--transition-glass);
1859
+ }
1860
+ .ds-signup__password-toggle:hover {
1861
+ color: var(--text-primary);
1862
+ background: var(--glass-base-hover);
1863
+ }
1864
+ .ds-signup__strength {
1865
+ display: flex;
1866
+ align-items: center;
1867
+ gap: var(--space-3);
1868
+ margin-top: var(--space-2);
1869
+ }
1870
+ .ds-signup__strength-bar {
1871
+ display: flex;
1872
+ gap: var(--space-1);
1873
+ flex: 1;
1874
+ }
1875
+ .ds-signup__strength-segment {
1876
+ height: 4px;
1877
+ flex: 1;
1878
+ border-radius: 2px;
1879
+ background: var(--glass-base-hover);
1880
+ transition: background-color var(--transition-fast);
1881
+ }
1882
+ .ds-signup__strength-segment--active {
1883
+ background: var(--status-success);
1884
+ }
1885
+ .ds-signup__strength-label {
1886
+ font-family: var(--font-family);
1887
+ font-size: var(--font-size-xs);
1888
+ font-weight: var(--font-weight-medium);
1889
+ white-space: nowrap;
1890
+ transition: color var(--transition-fast);
1891
+ }
1892
+ .ds-signup__terms {
1893
+ display: flex;
1894
+ align-items: flex-start;
1895
+ gap: var(--space-2);
1896
+ margin-bottom: var(--space-6);
1897
+ }
1898
+ .ds-signup__terms-text {
1899
+ font-family: var(--font-family);
1900
+ font-size: var(--font-size-sm);
1901
+ color: var(--text-secondary);
1902
+ line-height: var(--line-height-normal);
1903
+ }
1904
+ .ds-signup__link {
1905
+ padding: 0;
1906
+ border: none;
1907
+ background: transparent;
1908
+ color: rgb(var(--accent-rgb));
1909
+ font-family: var(--font-family);
1910
+ font-size: inherit;
1911
+ font-weight: var(--font-weight-medium);
1912
+ cursor: pointer;
1913
+ transition: color var(--transition-glass);
1914
+ }
1915
+ .ds-signup__link:hover:not(:disabled) {
1916
+ text-decoration: underline;
1917
+ }
1918
+ .ds-signup__link:disabled {
1919
+ opacity: 0.5;
1920
+ cursor: not-allowed;
1921
+ }
1922
+ .ds-signup__link--accent {
1923
+ color: rgb(var(--accent-rgb));
1924
+ }
1925
+ .ds-signup__submit {
1926
+ width: 100%;
1927
+ }
1928
+ .ds-signup__spinner {
1929
+ display: inline-block;
1930
+ width: 20px;
1931
+ height: 20px;
1932
+ border: 2px solid var(--hc-border);
1933
+ border-top-color: var(--hc-control-knob);
1934
+ border-radius: 50%;
1935
+ animation: ds-signup-spin 0.8s linear infinite;
1936
+ }
1937
+ @keyframes ds-signup-spin {
1938
+ to {
1939
+ transform: rotate(360deg);
1940
+ }
1941
+ }
1942
+ .ds-signup__footer {
1943
+ display: flex;
1944
+ align-items: center;
1945
+ justify-content: center;
1946
+ gap: var(--space-2);
1947
+ margin-top: var(--space-6);
1948
+ padding-top: var(--space-6);
1949
+ border-top: 1px solid var(--rim-light-bottom);
1950
+ font-size: var(--font-size-sm);
1951
+ color: var(--text-tertiary);
1952
+ animation: ds-signup-fade-in 0.5s ease-out 0.6s forwards;
1953
+ opacity: 0;
1954
+ }
1955
+ @media (max-width: 480px) {
1956
+ .ds-signup {
1957
+ padding: var(--space-4);
1958
+ }
1959
+ .ds-signup__card {
1960
+ padding: var(--space-6);
1961
+ border-radius: var(--radius-card);
1962
+ }
1963
+ .ds-signup__accent--1 {
1964
+ width: 200px;
1965
+ height: 200px;
1966
+ top: -50px;
1967
+ right: -50px;
1968
+ }
1969
+ .ds-signup__accent--2 {
1970
+ width: 150px;
1971
+ height: 150px;
1972
+ bottom: -30px;
1973
+ left: -30px;
1974
+ }
1975
+ }
1976
+ @media (prefers-reduced-motion: reduce) {
1977
+ .ds-signup__card,
1978
+ .ds-signup__logo,
1979
+ .ds-signup__title,
1980
+ .ds-signup__tagline,
1981
+ .ds-signup__social,
1982
+ .ds-signup__form,
1983
+ .ds-signup__footer,
1984
+ .ds-signup__trust,
1985
+ .ds-signup__success-icon {
1986
+ animation: none;
1987
+ opacity: 1;
1988
+ }
1989
+ .ds-signup__accent {
1990
+ animation: none;
1991
+ }
1992
+ .ds-signup__logo-icon {
1993
+ animation: none;
1994
+ }
1995
+ .ds-signup__spinner {
1996
+ animation-duration: 1.5s;
1997
+ }
1998
+ }
1999
+ @media (prefers-contrast: more) {
2000
+ .ds-signup__card {
2001
+ border: 1px solid var(--hc-border);
2002
+ }
2003
+ .ds-signup__social-btn {
2004
+ border: 1px solid var(--hc-border-subtle);
2005
+ }
2006
+ .ds-signup__social-btn::before {
2007
+ display: none;
2008
+ }
2009
+ }
2010
+
2011
+ /* src/components/ForgotPassword/ForgotPassword.css */
2012
+ .ds-forgot {
2013
+ position: relative;
2014
+ display: flex;
2015
+ flex-direction: column;
2016
+ align-items: center;
2017
+ justify-content: center;
2018
+ padding: var(--space-6);
2019
+ }
2020
+ .ds-forgot__accent {
2021
+ position: absolute;
2022
+ border-radius: 50%;
2023
+ filter: blur(80px);
2024
+ opacity: 0.5;
2025
+ pointer-events: none;
2026
+ animation: ds-forgot-float 20s ease-in-out infinite;
2027
+ }
2028
+ .ds-forgot__accent--1 {
2029
+ width: 400px;
2030
+ height: 400px;
2031
+ background:
2032
+ radial-gradient(
2033
+ circle,
2034
+ rgba(var(--accent-rgb), 0.4) 0%,
2035
+ transparent 70%);
2036
+ top: -100px;
2037
+ right: -100px;
2038
+ animation-delay: 0s;
2039
+ }
2040
+ .ds-forgot__accent--2 {
2041
+ width: 300px;
2042
+ height: 300px;
2043
+ background:
2044
+ radial-gradient(
2045
+ circle,
2046
+ rgba(var(--accent2-rgb), 0.3) 0%,
2047
+ transparent 70%);
2048
+ bottom: -50px;
2049
+ left: -50px;
2050
+ animation-delay: -10s;
2051
+ }
2052
+ @keyframes ds-forgot-float {
2053
+ 0%, 100% {
2054
+ transform: translate(0, 0) scale(1);
2055
+ }
2056
+ 25% {
2057
+ transform: translate(20px, -30px) scale(1.05);
2058
+ }
2059
+ 50% {
2060
+ transform: translate(-10px, 20px) scale(0.95);
2061
+ }
2062
+ 75% {
2063
+ transform: translate(-30px, -10px) scale(1.02);
2064
+ }
2065
+ }
2066
+ .ds-forgot__card {
2067
+ position: relative;
2068
+ width: 100%;
2069
+ max-width: 400px;
2070
+ padding: var(--space-8);
2071
+ border-radius: var(--radius-panel);
2072
+ background: var(--glass-base);
2073
+ backdrop-filter: var(--glass-backdrop);
2074
+ -webkit-backdrop-filter: var(--glass-backdrop);
2075
+ box-shadow: var(--glass-shadow-elevated-combined);
2076
+ animation: ds-forgot-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
2077
+ opacity: 0;
2078
+ transform: translateY(20px);
2079
+ }
2080
+ .ds-forgot__card::before {
2081
+ content: "";
2082
+ position: absolute;
2083
+ inset: 0;
2084
+ border-radius: inherit;
2085
+ padding: 1px;
2086
+ background:
2087
+ linear-gradient(
2088
+ 180deg,
2089
+ var(--rim-light-hover-top) 0%,
2090
+ var(--rim-light-bottom) 100%);
2091
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2092
+ mask-composite: exclude;
2093
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2094
+ -webkit-mask-composite: xor;
2095
+ pointer-events: none;
2096
+ }
2097
+ .ds-forgot__card--centered {
2098
+ text-align: center;
2099
+ }
2100
+ @keyframes ds-forgot-card-enter {
2101
+ to {
2102
+ opacity: 1;
2103
+ transform: translateY(0);
2104
+ }
2105
+ }
2106
+ .ds-forgot__header {
2107
+ text-align: center;
2108
+ margin-bottom: var(--space-6);
2109
+ }
2110
+ .ds-forgot__logo {
2111
+ display: flex;
2112
+ justify-content: center;
2113
+ margin-bottom: var(--space-4);
2114
+ animation: ds-forgot-fade-in 0.5s ease-out 0.1s forwards;
2115
+ opacity: 0;
2116
+ }
2117
+ .ds-forgot__logo-icon {
2118
+ width: 56px;
2119
+ height: 56px;
2120
+ }
2121
+ .ds-forgot__logo-icon svg {
2122
+ width: 100%;
2123
+ height: 100%;
2124
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
2125
+ }
2126
+ .ds-forgot__title {
2127
+ font-family: var(--font-family);
2128
+ font-size: var(--font-size-2xl);
2129
+ font-weight: var(--font-weight-bold);
2130
+ color: var(--text-primary);
2131
+ margin: 0 0 var(--space-2);
2132
+ animation: ds-forgot-fade-in 0.5s ease-out 0.2s forwards;
2133
+ opacity: 0;
2134
+ }
2135
+ .ds-forgot__tagline {
2136
+ font-family: var(--font-family);
2137
+ font-size: var(--font-size-sm);
2138
+ color: var(--text-secondary);
2139
+ margin: 0;
2140
+ line-height: var(--line-height-normal);
2141
+ animation: ds-forgot-fade-in 0.5s ease-out 0.3s forwards;
2142
+ opacity: 0;
2143
+ }
2144
+ .ds-forgot__tagline strong {
2145
+ color: var(--text-primary);
2146
+ }
2147
+ @keyframes ds-forgot-fade-in {
2148
+ to {
2149
+ opacity: 1;
2150
+ }
2151
+ }
2152
+ .ds-forgot__success-icon {
2153
+ width: 64px;
2154
+ height: 64px;
2155
+ margin: 0 auto var(--space-6);
2156
+ animation: ds-forgot-success-icon 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
2157
+ }
2158
+ .ds-forgot__success-icon svg {
2159
+ width: 100%;
2160
+ height: 100%;
2161
+ }
2162
+ @keyframes ds-forgot-success-icon {
2163
+ 0% {
2164
+ transform: scale(0);
2165
+ opacity: 0;
2166
+ }
2167
+ 50% {
2168
+ transform: scale(1.2);
2169
+ }
2170
+ 100% {
2171
+ transform: scale(1);
2172
+ opacity: 1;
2173
+ }
2174
+ }
2175
+ .ds-forgot__error {
2176
+ display: flex;
2177
+ align-items: center;
2178
+ gap: var(--space-2);
2179
+ padding: var(--space-3) var(--space-4);
2180
+ margin-bottom: var(--space-4);
2181
+ border-radius: var(--radius-button);
2182
+ background: rgba(var(--status-error-rgb), 0.1);
2183
+ border: 1px solid rgba(var(--status-error-rgb), 0.3);
2184
+ color: var(--status-error);
2185
+ font-size: var(--font-size-sm);
2186
+ animation: ds-forgot-error-enter 0.4s ease-out;
2187
+ }
2188
+ @keyframes ds-forgot-error-enter {
2189
+ 0% {
2190
+ opacity: 0;
2191
+ transform: translateX(-10px);
2192
+ }
2193
+ 50% {
2194
+ transform: translateX(5px);
2195
+ }
2196
+ 100% {
2197
+ opacity: 1;
2198
+ transform: translateX(0);
2199
+ }
2200
+ }
2201
+ .ds-forgot__form {
2202
+ animation: ds-forgot-fade-in 0.5s ease-out 0.4s forwards;
2203
+ opacity: 0;
2204
+ }
2205
+ .ds-forgot__field {
2206
+ margin-bottom: var(--space-4);
2207
+ }
2208
+ .ds-forgot__password-wrapper {
2209
+ position: relative;
2210
+ }
2211
+ .ds-forgot__password-wrapper .ds-textfield__input {
2212
+ padding-right: var(--space-12);
2213
+ }
2214
+ .ds-forgot__password-toggle {
2215
+ position: absolute;
2216
+ right: var(--space-3);
2217
+ top: 60%;
2218
+ transform: translateY(calc(-50% + 10px));
2219
+ padding: var(--space-2);
2220
+ border: none;
2221
+ background: transparent;
2222
+ color: var(--text-tertiary);
2223
+ cursor: pointer;
2224
+ border-radius: var(--radius-badge);
2225
+ transition: color var(--transition-glass), background var(--transition-glass);
2226
+ }
2227
+ .ds-forgot__password-toggle:hover {
2228
+ color: var(--text-primary);
2229
+ background: var(--glass-base-hover);
2230
+ }
2231
+ .ds-forgot__submit {
2232
+ width: 100%;
2233
+ margin-top: var(--space-2);
2234
+ }
2235
+ .ds-forgot__spinner {
2236
+ display: inline-block;
2237
+ width: 20px;
2238
+ height: 20px;
2239
+ border: 2px solid var(--hc-border);
2240
+ border-top-color: white;
2241
+ border-radius: 50%;
2242
+ animation: ds-forgot-spin 0.8s linear infinite;
2243
+ }
2244
+ @keyframes ds-forgot-spin {
2245
+ to {
2246
+ transform: rotate(360deg);
2247
+ }
2248
+ }
2249
+ .ds-forgot__hint {
2250
+ margin-top: var(--space-6);
2251
+ font-family: var(--font-family);
2252
+ font-size: var(--font-size-sm);
2253
+ color: var(--text-tertiary);
2254
+ }
2255
+ .ds-forgot__link {
2256
+ padding: 0;
2257
+ border: none;
2258
+ background: transparent;
2259
+ color: rgb(var(--accent-rgb));
2260
+ font-family: var(--font-family);
2261
+ font-size: inherit;
2262
+ font-weight: var(--font-weight-medium);
2263
+ cursor: pointer;
2264
+ transition: color var(--transition-glass);
2265
+ margin-left: 3px;
2266
+ }
2267
+ .ds-forgot__link:hover:not(:disabled) {
2268
+ text-decoration: underline;
2269
+ }
2270
+ .ds-forgot__link:disabled {
2271
+ opacity: 0.5;
2272
+ cursor: not-allowed;
2273
+ }
2274
+ .ds-forgot__footer {
2275
+ display: flex;
2276
+ justify-content: center;
2277
+ margin-top: var(--space-6);
2278
+ padding-top: var(--space-6);
2279
+ border-top: 1px solid var(--rim-light-bottom);
2280
+ animation: ds-forgot-fade-in 0.5s ease-out 0.5s forwards;
2281
+ opacity: 0;
2282
+ }
2283
+ .ds-forgot__back {
2284
+ display: flex;
2285
+ align-items: center;
2286
+ gap: var(--space-2);
2287
+ padding: var(--space-2) var(--space-3);
2288
+ border: none;
2289
+ border-radius: var(--radius-button);
2290
+ background: transparent;
2291
+ color: var(--text-secondary);
2292
+ font-family: var(--font-family);
2293
+ font-size: var(--font-size-sm);
2294
+ font-weight: var(--font-weight-medium);
2295
+ cursor: pointer;
2296
+ transition: color var(--transition-glass), background var(--transition-glass);
2297
+ }
2298
+ .ds-forgot__back:hover:not(:disabled) {
2299
+ color: var(--text-primary);
2300
+ background: var(--glass-base-hover);
2301
+ }
2302
+ .ds-forgot__back:disabled {
2303
+ opacity: 0.5;
2304
+ cursor: not-allowed;
2305
+ }
2306
+ @media (max-width: 480px) {
2307
+ .ds-forgot {
2308
+ padding: var(--space-4);
2309
+ }
2310
+ .ds-forgot__card {
2311
+ padding: var(--space-6);
2312
+ border-radius: var(--radius-card);
2313
+ }
2314
+ .ds-forgot__accent--1 {
2315
+ width: 200px;
2316
+ height: 200px;
2317
+ top: -50px;
2318
+ right: -50px;
2319
+ }
2320
+ .ds-forgot__accent--2 {
2321
+ width: 150px;
2322
+ height: 150px;
2323
+ bottom: -30px;
2324
+ left: -30px;
2325
+ }
2326
+ }
2327
+ @media (prefers-reduced-motion: reduce) {
2328
+ .ds-forgot__card,
2329
+ .ds-forgot__logo,
2330
+ .ds-forgot__title,
2331
+ .ds-forgot__tagline,
2332
+ .ds-forgot__form,
2333
+ .ds-forgot__footer,
2334
+ .ds-forgot__success-icon {
2335
+ animation: none;
2336
+ opacity: 1;
2337
+ }
2338
+ .ds-forgot__accent {
2339
+ animation: none;
2340
+ }
2341
+ .ds-forgot__spinner {
2342
+ animation-duration: 1.5s;
2343
+ }
2344
+ }
2345
+ @media (prefers-contrast: more) {
2346
+ .ds-forgot__card {
2347
+ border: 1px solid var(--hc-border);
2348
+ }
2349
+ }
2350
+
2351
+ /* src/components/ChangeEmail/ChangeEmail.css */
2352
+ .ds-change-email {
2353
+ position: relative;
2354
+ display: flex;
2355
+ flex-direction: column;
2356
+ align-items: center;
2357
+ justify-content: center;
2358
+ width: 100%;
2359
+ padding: var(--space-6);
2360
+ box-sizing: border-box;
2361
+ }
2362
+ .void__content .ds-change-email {
2363
+ min-height: auto;
2364
+ flex: 1;
2365
+ }
2366
+ .ds-change-email__accent {
2367
+ position: absolute;
2368
+ border-radius: 50%;
2369
+ filter: blur(80px);
2370
+ opacity: 0.5;
2371
+ pointer-events: none;
2372
+ animation: ds-change-email-float 20s ease-in-out infinite;
2373
+ }
2374
+ .ds-change-email__accent--1 {
2375
+ width: 400px;
2376
+ height: 400px;
2377
+ background:
2378
+ radial-gradient(
2379
+ circle,
2380
+ rgba(var(--accent-rgb), 0.4) 0%,
2381
+ transparent 70%);
2382
+ top: -100px;
2383
+ right: -100px;
2384
+ animation-delay: 0s;
2385
+ }
2386
+ .ds-change-email__accent--2 {
2387
+ width: 300px;
2388
+ height: 300px;
2389
+ background:
2390
+ radial-gradient(
2391
+ circle,
2392
+ rgba(var(--accent2-rgb), 0.3) 0%,
2393
+ transparent 70%);
2394
+ bottom: -50px;
2395
+ left: -50px;
2396
+ animation-delay: -10s;
2397
+ }
2398
+ .ds-change-email__container {
2399
+ position: relative;
2400
+ width: 100%;
2401
+ max-width: 420px;
2402
+ display: flex;
2403
+ flex-direction: column;
2404
+ align-items: center;
2405
+ }
2406
+ @keyframes ds-change-email-float {
2407
+ 0%, 100% {
2408
+ transform: translate(0, 0) scale(1);
2409
+ }
2410
+ 25% {
2411
+ transform: translate(20px, -30px) scale(1.05);
2412
+ }
2413
+ 50% {
2414
+ transform: translate(-10px, 20px) scale(0.95);
2415
+ }
2416
+ 75% {
2417
+ transform: translate(-30px, -10px) scale(1.02);
2418
+ }
2419
+ }
2420
+ .ds-change-email__card {
2421
+ position: relative;
2422
+ width: 100%;
2423
+ max-width: 420px;
2424
+ padding: var(--space-8);
2425
+ border-radius: var(--radius-panel);
2426
+ background: var(--glass-base);
2427
+ backdrop-filter: var(--glass-backdrop);
2428
+ -webkit-backdrop-filter: var(--glass-backdrop);
2429
+ box-shadow: var(--glass-shadow-elevated-combined);
2430
+ animation: ds-change-email-card-enter 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
2431
+ opacity: 0;
2432
+ transform: translateY(20px);
2433
+ }
2434
+ .ds-change-email__card::before {
2435
+ content: "";
2436
+ position: absolute;
2437
+ inset: 0;
2438
+ border-radius: inherit;
2439
+ padding: 1px;
2440
+ background:
2441
+ linear-gradient(
2442
+ 180deg,
2443
+ var(--rim-light-hover-top) 0%,
2444
+ var(--rim-light-bottom) 100%);
2445
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2446
+ mask-composite: exclude;
2447
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2448
+ -webkit-mask-composite: xor;
2449
+ pointer-events: none;
2450
+ }
2451
+ @keyframes ds-change-email-card-enter {
2452
+ to {
2453
+ opacity: 1;
2454
+ transform: translateY(0);
2455
+ }
2456
+ }
2457
+ .ds-change-email__header {
2458
+ text-align: center;
2459
+ margin-bottom: var(--space-6);
2460
+ }
2461
+ .ds-change-email__logo {
2462
+ display: flex;
2463
+ justify-content: center;
2464
+ margin-bottom: var(--space-4);
2465
+ animation: ds-change-email-fade-in 0.5s ease-out 0.1s forwards;
2466
+ opacity: 0;
2467
+ }
2468
+ .ds-change-email__logo--default {
2469
+ }
2470
+ .ds-change-email__logo-icon {
2471
+ width: 56px;
2472
+ height: 56px;
2473
+ animation: ds-change-email-logo-pulse 3s ease-in-out infinite;
2474
+ }
2475
+ .ds-change-email__logo-icon svg {
2476
+ width: 100%;
2477
+ height: 100%;
2478
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
2479
+ }
2480
+ @keyframes ds-change-email-logo-pulse {
2481
+ 0%, 100% {
2482
+ transform: scale(1);
2483
+ filter: drop-shadow(0 4px 12px rgba(var(--accent-rgb), 0.3));
2484
+ }
2485
+ 50% {
2486
+ transform: scale(1.05);
2487
+ filter: drop-shadow(0 6px 20px rgba(var(--accent-rgb), 0.5));
2488
+ }
2489
+ }
2490
+ .ds-change-email__title {
2491
+ font-family: var(--font-family);
2492
+ font-size: var(--font-size-2xl);
2493
+ font-weight: var(--font-weight-bold);
2494
+ color: var(--text-primary);
2495
+ margin: 0 0 var(--space-2);
2496
+ animation: ds-change-email-fade-in 0.5s ease-out 0.2s forwards;
2497
+ opacity: 0;
2498
+ }
2499
+ .ds-change-email__tagline {
2500
+ font-family: var(--font-family);
2501
+ font-size: var(--font-size-sm);
2502
+ color: var(--text-secondary);
2503
+ margin: 0;
2504
+ line-height: var(--line-height-normal);
2505
+ animation: ds-change-email-fade-in 0.5s ease-out 0.3s forwards;
2506
+ opacity: 0;
2507
+ }
2508
+ @keyframes ds-change-email-fade-in {
2509
+ to {
2510
+ opacity: 1;
2511
+ }
2512
+ }
2513
+ .ds-change-email__error {
2514
+ display: flex;
2515
+ align-items: center;
2516
+ gap: var(--space-2);
2517
+ padding: var(--space-3) var(--space-4);
2518
+ margin-bottom: var(--space-4);
2519
+ border-radius: var(--radius-button);
2520
+ background: rgba(var(--status-error-rgb), 0.1);
2521
+ border: 1px solid rgba(var(--status-error-rgb), 0.3);
2522
+ color: var(--status-error);
2523
+ font-size: var(--font-size-sm);
2524
+ animation: ds-change-email-error-enter 0.4s ease-out;
2525
+ }
2526
+ @keyframes ds-change-email-error-enter {
2527
+ 0% {
2528
+ opacity: 0;
2529
+ transform: translateX(-10px);
2530
+ }
2531
+ 50% {
2532
+ transform: translateX(5px);
2533
+ }
2534
+ 100% {
2535
+ opacity: 1;
2536
+ transform: translateX(0);
2537
+ }
2538
+ }
2539
+ .ds-change-email__social {
2540
+ margin-bottom: var(--space-4);
2541
+ animation: ds-change-email-fade-in 0.5s ease-out 0.4s forwards;
2542
+ opacity: 0;
2543
+ }
2544
+ .ds-change-email__social-btn {
2545
+ display: flex;
2546
+ align-items: center;
2547
+ justify-content: center;
2548
+ gap: var(--space-3);
2549
+ width: 100%;
2550
+ padding: var(--space-3) var(--space-4);
2551
+ margin-bottom: var(--space-3);
2552
+ border: none;
2553
+ border-radius: var(--radius-button);
2554
+ background: var(--glass-base);
2555
+ color: var(--text-primary);
2556
+ font-family: var(--font-family);
2557
+ font-size: var(--font-size-base);
2558
+ font-weight: var(--font-weight-medium);
2559
+ cursor: pointer;
2560
+ position: relative;
2561
+ transition:
2562
+ background var(--transition-glass),
2563
+ transform var(--transition-glass),
2564
+ box-shadow var(--transition-glass);
2565
+ }
2566
+ .ds-change-email__social-btn::before {
2567
+ content: "";
2568
+ position: absolute;
2569
+ inset: 0;
2570
+ border-radius: inherit;
2571
+ padding: 1px;
2572
+ background:
2573
+ linear-gradient(
2574
+ 180deg,
2575
+ var(--rim-light-top) 0%,
2576
+ var(--rim-light-bottom) 100%);
2577
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2578
+ mask-composite: exclude;
2579
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2580
+ -webkit-mask-composite: xor;
2581
+ pointer-events: none;
2582
+ transition: background var(--transition-glass);
2583
+ }
2584
+ .ds-change-email__social-btn:hover:not(:disabled) {
2585
+ background: var(--glass-base-hover);
2586
+ transform: translateY(-2px);
2587
+ box-shadow: 0 8px 24px var(--shadow-color-heavy, rgba(0, 0, 0, 0.2));
2588
+ }
2589
+ .ds-change-email__social-btn:hover:not(:disabled)::before {
2590
+ background:
2591
+ linear-gradient(
2592
+ 180deg,
2593
+ var(--rim-light-hover-top) 0%,
2594
+ var(--rim-light-hover-bottom) 100%);
2595
+ }
2596
+ .ds-change-email__social-btn:disabled {
2597
+ opacity: 0.5;
2598
+ cursor: not-allowed;
2599
+ }
2600
+ .ds-change-email__divider {
2601
+ display: flex;
2602
+ align-items: center;
2603
+ gap: var(--space-4);
2604
+ margin: var(--space-4) 0;
2605
+ color: var(--text-tertiary);
2606
+ font-family: var(--font-family);
2607
+ font-size: var(--font-size-sm);
2608
+ }
2609
+ .ds-change-email__divider::before,
2610
+ .ds-change-email__divider::after {
2611
+ content: "";
2612
+ flex: 1;
2613
+ height: 1px;
2614
+ background:
2615
+ linear-gradient(
2616
+ 90deg,
2617
+ transparent 0%,
2618
+ var(--rim-light-top) 50%,
2619
+ transparent 100%);
2620
+ }
2621
+ .ds-change-email__form {
2622
+ animation: ds-change-email-fade-in 0.5s ease-out 0.5s forwards;
2623
+ opacity: 0;
2624
+ }
2625
+ .ds-change-email__field {
2626
+ margin-bottom: var(--space-4);
2627
+ }
2628
+ .ds-change-email__password-toggle {
2629
+ position: static;
2630
+ transform: none;
2631
+ padding: var(--space-2);
2632
+ border: none;
2633
+ background: transparent;
2634
+ color: var(--text-tertiary);
2635
+ cursor: pointer;
2636
+ border-radius: var(--radius-badge);
2637
+ display: flex;
2638
+ align-items: center;
2639
+ justify-content: center;
2640
+ transition: color var(--transition-glass), background var(--transition-glass);
2641
+ }
2642
+ .ds-change-email__password-toggle:hover {
2643
+ color: var(--text-primary);
2644
+ background: var(--glass-base-hover);
2645
+ }
2646
+ .ds-change-email__options {
2647
+ display: flex;
2648
+ align-items: center;
2649
+ justify-content: space-between;
2650
+ margin-bottom: var(--space-6);
2651
+ flex-wrap: wrap;
2652
+ gap: var(--space-2);
2653
+ }
2654
+ .ds-change-email__link {
2655
+ padding: 0;
2656
+ border: none;
2657
+ background: transparent;
2658
+ color: var(--text-secondary);
2659
+ font-family: var(--font-family);
2660
+ font-size: var(--font-size-sm);
2661
+ cursor: pointer;
2662
+ transition: color var(--transition-glass);
2663
+ }
2664
+ .ds-change-email__link:hover:not(:disabled) {
2665
+ color: var(--text-primary);
2666
+ }
2667
+ .ds-change-email__link--accent {
2668
+ color: rgb(var(--accent-rgb));
2669
+ font-weight: var(--font-weight-medium);
2670
+ }
2671
+ .ds-change-email__link--accent:hover:not(:disabled) {
2672
+ color: rgb(var(--accent-rgb));
2673
+ text-decoration: underline;
2674
+ }
2675
+ .ds-change-email__link:disabled {
2676
+ opacity: 0.5;
2677
+ cursor: not-allowed;
2678
+ }
2679
+ .ds-change-email__submit {
2680
+ width: 100%;
2681
+ }
2682
+ .ds-change-email__spinner {
2683
+ display: inline-block;
2684
+ width: 20px;
2685
+ height: 20px;
2686
+ border: 2px solid var(--border-subtle, rgba(255, 255, 255, 0.3));
2687
+ border-top-color: var(--text-primary, white);
2688
+ border-radius: 50%;
2689
+ animation: ds-change-email-spin 0.8s linear infinite;
2690
+ }
2691
+ @keyframes ds-change-email-spin {
2692
+ to {
2693
+ transform: rotate(360deg);
2694
+ }
2695
+ }
2696
+ .ds-change-email__footer {
2697
+ display: flex;
2698
+ align-items: center;
2699
+ justify-content: center;
2700
+ gap: var(--space-2);
2701
+ margin-top: var(--space-6);
2702
+ padding-top: var(--space-6);
2703
+ border-top: 1px solid var(--rim-light-bottom);
2704
+ font-family: var(--font-family);
2705
+ font-size: var(--font-size-sm);
2706
+ color: var(--text-tertiary);
2707
+ animation: ds-change-email-fade-in 0.5s ease-out 0.6s forwards;
2708
+ opacity: 0;
2709
+ }
2710
+ .ds-change-email__trust {
2711
+ padding-top: var(--space-6);
2712
+ padding-bottom: var(--space-2);
2713
+ text-align: center;
2714
+ font-family: var(--font-family);
2715
+ font-size: var(--font-size-xs);
2716
+ color: var(--text-tertiary);
2717
+ animation: ds-change-email-fade-in 0.5s ease-out 0.7s forwards;
2718
+ opacity: 0;
2719
+ }
2720
+ @media (max-width: 480px) {
2721
+ .ds-change-email {
2722
+ padding: var(--space-4);
2723
+ }
2724
+ .ds-change-email__card {
2725
+ padding: var(--space-6);
2726
+ border-radius: var(--radius-card);
2727
+ }
2728
+ .ds-change-email__accent--1 {
2729
+ width: 200px;
2730
+ height: 200px;
2731
+ top: -50px;
2732
+ right: -50px;
2733
+ }
2734
+ .ds-change-email__accent--2 {
2735
+ width: 150px;
2736
+ height: 150px;
2737
+ bottom: -30px;
2738
+ left: -30px;
2739
+ }
2740
+ .ds-change-email__options {
2741
+ flex-direction: column;
2742
+ align-items: flex-start;
2743
+ gap: var(--space-3);
2744
+ }
2745
+ }
2746
+ @media (prefers-reduced-motion: reduce) {
2747
+ .ds-change-email__card,
2748
+ .ds-change-email__logo,
2749
+ .ds-change-email__title,
2750
+ .ds-change-email__tagline,
2751
+ .ds-change-email__social,
2752
+ .ds-change-email__form,
2753
+ .ds-change-email__footer,
2754
+ .ds-change-email__trust {
2755
+ animation: none;
2756
+ opacity: 1;
2757
+ }
2758
+ .ds-change-email__accent {
2759
+ animation: none;
2760
+ }
2761
+ .ds-change-email__logo-icon {
2762
+ animation: none;
2763
+ }
2764
+ .ds-change-email__spinner {
2765
+ animation-duration: 1.5s;
2766
+ }
2767
+ }
2768
+ @media (prefers-contrast: more) {
2769
+ .ds-change-email__card {
2770
+ border: 1px solid var(--hc-border);
2771
+ }
2772
+ .ds-change-email__social-btn {
2773
+ border: 1px solid var(--hc-border-subtle);
2774
+ }
2775
+ .ds-change-email__social-btn::before {
2776
+ display: none;
2777
+ }
2778
+ }
2779
+
2780
+ /* src/components/LeadProfileView/LeadProfileView.css */
2781
+ .ds-lead-profile {
2782
+ display: flex;
2783
+ flex-direction: column;
2784
+ gap: var(--space-8);
2785
+ width: 100%;
2786
+ max-width: 900px;
2787
+ margin: 0 auto;
2788
+ padding: var(--space-6);
2789
+ color: var(--text-primary);
2790
+ font-family: var(--font-family);
2791
+ }
2792
+ .ds-lead-profile__zone {
2793
+ display: flex;
2794
+ flex-direction: column;
2795
+ gap: var(--space-6);
2796
+ animation: ds-zone-enter var(--transition-slow) ease-out;
2797
+ animation-fill-mode: both;
2798
+ }
2799
+ .ds-lead-profile__zone--identity {
2800
+ animation-delay: 0ms;
2801
+ }
2802
+ .ds-lead-profile__zone--intelligence {
2803
+ animation-delay: 100ms;
2804
+ }
2805
+ .ds-lead-profile__zone--deep-dive {
2806
+ animation-delay: 200ms;
2807
+ }
2808
+ @keyframes ds-zone-enter {
2809
+ from {
2810
+ opacity: 0;
2811
+ transform: translateY(16px);
2812
+ }
2813
+ to {
2814
+ opacity: 1;
2815
+ transform: translateY(0);
2816
+ }
2817
+ }
2818
+ .ds-lead-profile__card,
2819
+ .ds-lead-intelligence__card,
2820
+ .ds-deep-dive__card,
2821
+ .ds-mbti,
2822
+ .ds-behavioral {
2823
+ background: var(--glass-base);
2824
+ backdrop-filter: var(--glass-backdrop);
2825
+ border: 1px solid var(--rim-light-bottom);
2826
+ border-top-color: var(--rim-light-top);
2827
+ border-radius: var(--radius-card);
2828
+ padding: var(--space-6);
2829
+ box-shadow: var(--glass-shadow-combined);
2830
+ transition:
2831
+ transform var(--transition-base),
2832
+ box-shadow var(--transition-base),
2833
+ background var(--transition-base);
2834
+ }
2835
+ .ds-lead-profile__card:hover,
2836
+ .ds-lead-intelligence__card:hover,
2837
+ .ds-deep-dive__card:hover {
2838
+ transform: translateY(-2px);
2839
+ background: var(--glass-base-hover);
2840
+ box-shadow: var(--glass-shadow-elevated-combined);
2841
+ }
2842
+ .ds-lead-empty {
2843
+ display: flex;
2844
+ flex-direction: column;
2845
+ align-items: center;
2846
+ justify-content: center;
2847
+ text-align: center;
2848
+ padding: var(--space-16) var(--space-6);
2849
+ min-height: 500px;
2850
+ animation: ds-empty-enter 600ms ease-out;
2851
+ }
2852
+ @keyframes ds-empty-enter {
2853
+ from {
2854
+ opacity: 0;
2855
+ transform: scale(0.95);
2856
+ }
2857
+ to {
2858
+ opacity: 1;
2859
+ transform: scale(1);
2860
+ }
2861
+ }
2862
+ .ds-lead-empty__avatar-container {
2863
+ position: relative;
2864
+ margin-bottom: var(--space-8);
2865
+ }
2866
+ .ds-lead-empty__avatar {
2867
+ width: 120px;
2868
+ height: 120px;
2869
+ border-radius: 50%;
2870
+ background:
2871
+ linear-gradient(
2872
+ 135deg,
2873
+ rgba(var(--accent-rgb), 0.1) 0%,
2874
+ rgba(var(--accent2-rgb), 0.1) 100%);
2875
+ display: flex;
2876
+ align-items: center;
2877
+ justify-content: center;
2878
+ position: relative;
2879
+ overflow: hidden;
2880
+ }
2881
+ .ds-lead-empty__avatar-pulse {
2882
+ position: absolute;
2883
+ inset: -10px;
2884
+ border-radius: 50%;
2885
+ background:
2886
+ radial-gradient(
2887
+ circle,
2888
+ rgba(var(--accent-rgb), 0.2) 0%,
2889
+ transparent 70%);
2890
+ animation: ds-pulse 3s ease-in-out infinite;
2891
+ }
2892
+ @keyframes ds-pulse {
2893
+ 0%, 100% {
2894
+ transform: scale(1);
2895
+ opacity: 0.5;
2896
+ }
2897
+ 50% {
2898
+ transform: scale(1.1);
2899
+ opacity: 0.8;
2900
+ }
2901
+ }
2902
+ .ds-lead-empty__avatar-icon {
2903
+ color: rgba(var(--accent-rgb), 0.6);
2904
+ z-index: 1;
2905
+ }
2906
+ .ds-lead-empty__content {
2907
+ max-width: 400px;
2908
+ margin-bottom: var(--space-8);
2909
+ }
2910
+ .ds-lead-empty__title {
2911
+ font-size: var(--font-size-2xl);
2912
+ font-weight: var(--font-weight-semibold);
2913
+ color: var(--text-primary);
2914
+ margin: 0 0 var(--space-3);
2915
+ letter-spacing: var(--letter-spacing-slightly-tight);
2916
+ }
2917
+ .ds-lead-empty__description {
2918
+ font-size: var(--font-size-base);
2919
+ color: var(--text-secondary);
2920
+ line-height: var(--line-height-relaxed);
2921
+ margin: 0;
2922
+ }
2923
+ .ds-lead-empty__action {
2924
+ margin-bottom: var(--space-8);
2925
+ }
2926
+ .ds-lead-empty__trust {
2927
+ display: flex;
2928
+ gap: var(--space-6);
2929
+ flex-wrap: wrap;
2930
+ justify-content: center;
2931
+ }
2932
+ .ds-lead-empty__trust-item {
2933
+ display: flex;
2934
+ align-items: center;
2935
+ gap: var(--space-2);
2936
+ font-size: var(--font-size-xs);
2937
+ color: var(--text-tertiary);
2938
+ }
2939
+ .ds-lead-empty__trust-dot {
2940
+ width: 6px;
2941
+ height: 6px;
2942
+ border-radius: 50%;
2943
+ background: var(--status-success);
2944
+ opacity: 0.7;
2945
+ }
2946
+ .ds-lead-loading {
2947
+ display: flex;
2948
+ flex-direction: column;
2949
+ align-items: center;
2950
+ padding: var(--space-16) var(--space-6);
2951
+ min-height: 500px;
2952
+ animation: ds-loading-enter 400ms ease-out;
2953
+ }
2954
+ @keyframes ds-loading-enter {
2955
+ from {
2956
+ opacity: 0;
2957
+ }
2958
+ to {
2959
+ opacity: 1;
2960
+ }
2961
+ }
2962
+ .ds-lead-loading__progress {
2963
+ width: 100%;
2964
+ max-width: 400px;
2965
+ margin-bottom: var(--space-10);
2966
+ }
2967
+ .ds-lead-loading__progress-bar {
2968
+ height: 4px;
2969
+ background: var(--surface-alpha-2);
2970
+ border-radius: var(--radius-pill);
2971
+ overflow: hidden;
2972
+ margin-bottom: var(--space-2);
2973
+ }
2974
+ .ds-lead-loading__progress-fill {
2975
+ height: 100%;
2976
+ background:
2977
+ linear-gradient(
2978
+ 90deg,
2979
+ rgb(var(--accent-rgb)),
2980
+ rgb(var(--accent2-rgb)));
2981
+ border-radius: var(--radius-pill);
2982
+ transition: width 500ms ease-out;
2983
+ }
2984
+ .ds-lead-loading__progress-text {
2985
+ font-size: var(--font-size-sm);
2986
+ color: var(--text-secondary);
2987
+ text-align: center;
2988
+ display: block;
2989
+ }
2990
+ .ds-lead-loading__stages {
2991
+ display: flex;
2992
+ flex-direction: column;
2993
+ gap: var(--space-4);
2994
+ width: 100%;
2995
+ max-width: 320px;
2996
+ margin-bottom: var(--space-10);
2997
+ }
2998
+ .ds-lead-loading__stage {
2999
+ display: flex;
3000
+ align-items: center;
3001
+ gap: var(--space-3);
3002
+ padding: var(--space-3) var(--space-4);
3003
+ border-radius: var(--radius-button);
3004
+ background: var(--glass-base-hover);
3005
+ position: relative;
3006
+ animation: ds-stage-enter 400ms ease-out;
3007
+ animation-fill-mode: both;
3008
+ animation-delay: calc(var(--stage-index) * 100ms);
3009
+ }
3010
+ @keyframes ds-stage-enter {
3011
+ from {
3012
+ opacity: 0;
3013
+ transform: translateX(-10px);
3014
+ }
3015
+ to {
3016
+ opacity: 1;
3017
+ transform: translateX(0);
3018
+ }
3019
+ }
3020
+ .ds-lead-loading__stage--pending {
3021
+ opacity: 0.4;
3022
+ }
3023
+ .ds-lead-loading__stage--active {
3024
+ background: rgba(var(--accent-rgb), 0.1);
3025
+ border: 1px solid rgba(var(--accent-rgb), 0.2);
3026
+ }
3027
+ .ds-lead-loading__stage--completed {
3028
+ opacity: 0.6;
3029
+ }
3030
+ .ds-lead-loading__stage--completed .ds-lead-loading__stage-icon {
3031
+ color: var(--status-success);
3032
+ }
3033
+ .ds-lead-loading__stage-icon {
3034
+ width: 24px;
3035
+ height: 24px;
3036
+ display: flex;
3037
+ align-items: center;
3038
+ justify-content: center;
3039
+ color: var(--text-tertiary);
3040
+ }
3041
+ .ds-lead-loading__stage--active .ds-lead-loading__stage-icon {
3042
+ color: rgb(var(--accent-rgb));
3043
+ }
3044
+ .ds-lead-loading__stage-label {
3045
+ flex: 1;
3046
+ font-size: var(--font-size-sm);
3047
+ color: var(--text-secondary);
3048
+ }
3049
+ .ds-lead-loading__stage--active .ds-lead-loading__stage-label {
3050
+ color: var(--text-primary);
3051
+ font-weight: var(--font-weight-medium);
3052
+ }
3053
+ .ds-lead-loading__stage-pulse {
3054
+ width: 8px;
3055
+ height: 8px;
3056
+ border-radius: 50%;
3057
+ background: rgb(var(--accent-rgb));
3058
+ animation: ds-pulse-small 1.5s ease-in-out infinite;
3059
+ }
3060
+ @keyframes ds-pulse-small {
3061
+ 0%, 100% {
3062
+ opacity: 1;
3063
+ transform: scale(1);
3064
+ }
3065
+ 50% {
3066
+ opacity: 0.5;
3067
+ transform: scale(0.8);
3068
+ }
3069
+ }
3070
+ .ds-lead-loading__footer {
3071
+ text-align: center;
3072
+ }
3073
+ .ds-lead-loading__time {
3074
+ font-size: var(--font-size-sm);
3075
+ color: var(--text-secondary);
3076
+ margin: 0 0 var(--space-1);
3077
+ }
3078
+ .ds-lead-loading__message {
3079
+ font-size: var(--font-size-xs);
3080
+ color: var(--text-tertiary);
3081
+ margin: 0;
3082
+ }
3083
+ .ds-lead-identity {
3084
+ display: flex;
3085
+ gap: var(--space-6);
3086
+ align-items: flex-start;
3087
+ background: var(--glass-base);
3088
+ backdrop-filter: var(--glass-backdrop);
3089
+ border: 1px solid var(--rim-light-bottom);
3090
+ border-top-color: var(--rim-light-top);
3091
+ border-radius: var(--radius-card);
3092
+ padding: var(--space-6);
3093
+ box-shadow: var(--glass-shadow-combined);
3094
+ }
3095
+ .ds-lead-identity__avatar-wrapper {
3096
+ position: relative;
3097
+ flex-shrink: 0;
3098
+ }
3099
+ .ds-lead-identity__avatar {
3100
+ width: 100px;
3101
+ height: 100px;
3102
+ border-radius: 50%;
3103
+ object-fit: cover;
3104
+ border: 3px solid var(--rim-light-top);
3105
+ box-shadow: var(--shadow-inset-border-subtle), var(--shadow-interactive-rest);
3106
+ }
3107
+ .ds-lead-identity__verified-badge {
3108
+ position: absolute;
3109
+ bottom: 2px;
3110
+ right: 2px;
3111
+ width: 24px;
3112
+ height: 24px;
3113
+ border-radius: 50%;
3114
+ background: var(--status-success);
3115
+ color: var(--hc-control-knob);
3116
+ display: flex;
3117
+ align-items: center;
3118
+ justify-content: center;
3119
+ border: 2px solid var(--void-base);
3120
+ }
3121
+ .ds-lead-identity__content {
3122
+ flex: 1;
3123
+ min-width: 0;
3124
+ display: flex;
3125
+ flex-direction: column;
3126
+ gap: var(--space-2);
3127
+ }
3128
+ .ds-lead-identity__name-row {
3129
+ display: flex;
3130
+ align-items: center;
3131
+ gap: var(--space-3);
3132
+ flex-wrap: wrap;
3133
+ }
3134
+ .ds-lead-identity__name {
3135
+ font-size: var(--font-size-2xl);
3136
+ font-weight: var(--font-weight-bold);
3137
+ color: var(--text-primary);
3138
+ letter-spacing: var(--letter-spacing-tight);
3139
+ margin: 0;
3140
+ line-height: 1.2;
3141
+ }
3142
+ .ds-lead-identity__badges {
3143
+ display: flex;
3144
+ gap: var(--space-2);
3145
+ }
3146
+ .ds-lead-identity__badge {
3147
+ width: 28px;
3148
+ height: 28px;
3149
+ border-radius: 50%;
3150
+ display: flex;
3151
+ align-items: center;
3152
+ justify-content: center;
3153
+ background: var(--glass-highlight-subtle);
3154
+ color: var(--text-secondary);
3155
+ transition: all var(--transition-fast);
3156
+ text-decoration: none;
3157
+ }
3158
+ .ds-lead-identity__badge:hover {
3159
+ background: var(--glass-highlight-light);
3160
+ color: var(--text-primary);
3161
+ }
3162
+ .ds-lead-identity__badge--linkedin:hover {
3163
+ background: var(--social-linkedin-hover-bg);
3164
+ color: var(--social-linkedin);
3165
+ }
3166
+ .ds-lead-identity__badge--verified {
3167
+ background: rgba(var(--status-success-rgb, 34, 197, 94), 0.15);
3168
+ color: var(--status-success);
3169
+ }
3170
+ .ds-lead-identity__role {
3171
+ display: flex;
3172
+ align-items: center;
3173
+ gap: var(--space-2);
3174
+ flex-wrap: wrap;
3175
+ font-size: var(--font-size-base);
3176
+ }
3177
+ .ds-lead-identity__role-title {
3178
+ color: var(--text-primary);
3179
+ font-weight: var(--font-weight-medium);
3180
+ }
3181
+ .ds-lead-identity__role-separator {
3182
+ color: var(--text-tertiary);
3183
+ }
3184
+ .ds-lead-identity__company {
3185
+ color: var(--text-secondary);
3186
+ display: flex;
3187
+ align-items: center;
3188
+ gap: var(--space-2);
3189
+ }
3190
+ .ds-lead-identity__company-logo {
3191
+ width: 20px;
3192
+ height: 20px;
3193
+ border-radius: 4px;
3194
+ object-fit: contain;
3195
+ }
3196
+ .ds-lead-identity__meta {
3197
+ display: flex;
3198
+ align-items: center;
3199
+ gap: var(--space-4);
3200
+ color: var(--text-tertiary);
3201
+ font-size: var(--font-size-sm);
3202
+ flex-wrap: wrap;
3203
+ }
3204
+ .ds-lead-identity__meta-item {
3205
+ display: flex;
3206
+ align-items: center;
3207
+ gap: var(--space-1);
3208
+ }
3209
+ .ds-lead-identity__actions {
3210
+ display: flex;
3211
+ align-items: center;
3212
+ gap: var(--space-4);
3213
+ margin-top: var(--space-2);
3214
+ flex-wrap: wrap;
3215
+ }
3216
+ .ds-lead-identity__contact {
3217
+ display: inline-flex;
3218
+ align-items: center;
3219
+ gap: var(--space-2);
3220
+ padding: var(--space-2) var(--space-3);
3221
+ border-radius: var(--radius-button);
3222
+ background: var(--surface-alpha-1);
3223
+ font-size: var(--font-size-sm);
3224
+ color: var(--text-secondary);
3225
+ text-decoration: none;
3226
+ transition: all var(--transition-fast);
3227
+ }
3228
+ .ds-lead-identity__contact:hover {
3229
+ background: var(--surface-alpha-2);
3230
+ color: var(--text-primary);
3231
+ }
3232
+ .ds-lead-identity__contact--verified {
3233
+ border: 1px solid rgba(var(--status-success-rgb, 34, 197, 94), 0.3);
3234
+ }
3235
+ .ds-lead-identity__contact--risky {
3236
+ border: 1px solid rgba(var(--status-warning-rgb, 234, 179, 8), 0.3);
3237
+ }
3238
+ .ds-lead-identity__contact-email {
3239
+ max-width: 200px;
3240
+ overflow: hidden;
3241
+ text-overflow: ellipsis;
3242
+ white-space: nowrap;
3243
+ }
3244
+ .ds-lead-identity__contact-status {
3245
+ font-size: var(--font-size-xs);
3246
+ padding: var(--space-0-5) var(--space-2);
3247
+ border-radius: var(--radius-badge);
3248
+ background: rgba(var(--status-success-rgb, 34, 197, 94), 0.15);
3249
+ color: var(--status-success);
3250
+ }
3251
+ .ds-lead-identity__contact--risky .ds-lead-identity__contact-status {
3252
+ background: rgba(var(--status-warning-rgb, 234, 179, 8), 0.15);
3253
+ color: var(--status-warning);
3254
+ }
3255
+ .ds-lead-identity__freshness {
3256
+ display: flex;
3257
+ align-items: center;
3258
+ gap: var(--space-1);
3259
+ font-size: var(--font-size-xs);
3260
+ color: var(--text-tertiary);
3261
+ }
3262
+ .ds-lead-identity__confidence {
3263
+ display: flex;
3264
+ align-items: center;
3265
+ gap: var(--space-3);
3266
+ margin-top: var(--space-2);
3267
+ }
3268
+ .ds-lead-identity__confidence-bar {
3269
+ flex: 1;
3270
+ max-width: 120px;
3271
+ height: 4px;
3272
+ background: var(--surface-alpha-2);
3273
+ border-radius: var(--radius-pill);
3274
+ overflow: hidden;
3275
+ }
3276
+ .ds-lead-identity__confidence-fill {
3277
+ height: 100%;
3278
+ background: var(--status-success);
3279
+ border-radius: var(--radius-pill);
3280
+ transition: width var(--transition-slow);
3281
+ }
3282
+ .ds-lead-identity__confidence-label {
3283
+ font-size: var(--font-size-xs);
3284
+ color: var(--text-tertiary);
3285
+ }
3286
+ .ds-lead-intelligence {
3287
+ display: flex;
3288
+ flex-direction: column;
3289
+ gap: var(--space-4);
3290
+ }
3291
+ .ds-lead-intelligence__grid {
3292
+ display: grid;
3293
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
3294
+ gap: var(--space-4);
3295
+ }
3296
+ .ds-lead-intelligence__card {
3297
+ background: var(--glass-base);
3298
+ backdrop-filter: var(--glass-backdrop);
3299
+ border: 1px solid var(--rim-light-bottom);
3300
+ border-top-color: var(--rim-light-top);
3301
+ border-radius: var(--radius-card);
3302
+ padding: var(--space-5);
3303
+ box-shadow: var(--glass-shadow-combined);
3304
+ }
3305
+ .ds-lead-intelligence__card-header {
3306
+ display: flex;
3307
+ align-items: center;
3308
+ gap: var(--space-2);
3309
+ margin-bottom: var(--space-4);
3310
+ color: var(--text-secondary);
3311
+ }
3312
+ .ds-lead-intelligence__card-title {
3313
+ font-size: var(--font-size-xs);
3314
+ text-transform: uppercase;
3315
+ letter-spacing: var(--letter-spacing-wide);
3316
+ font-weight: var(--font-weight-semibold);
3317
+ }
3318
+ .ds-lead-intelligence__narrative {
3319
+ font-size: var(--font-size-base);
3320
+ line-height: var(--line-height-relaxed);
3321
+ color: var(--text-primary);
3322
+ margin: 0;
3323
+ }
3324
+ .ds-lead-intelligence__mbti-badge {
3325
+ display: inline-flex;
3326
+ align-items: center;
3327
+ gap: var(--space-2);
3328
+ margin-top: var(--space-4);
3329
+ padding: var(--space-2) var(--space-3);
3330
+ background:
3331
+ linear-gradient(
3332
+ 135deg,
3333
+ rgba(var(--accent-rgb), 0.15) 0%,
3334
+ rgba(var(--accent2-rgb), 0.15) 100%);
3335
+ border-radius: var(--radius-button);
3336
+ border: 1px solid rgba(var(--accent-rgb), 0.2);
3337
+ }
3338
+ .ds-lead-intelligence__mbti-type {
3339
+ font-size: var(--font-size-lg);
3340
+ font-weight: var(--font-weight-bold);
3341
+ color: var(--text-primary);
3342
+ letter-spacing: var(--letter-spacing-wide);
3343
+ }
3344
+ .ds-lead-intelligence__mbti-label {
3345
+ font-size: var(--font-size-xs);
3346
+ color: var(--text-tertiary);
3347
+ }
3348
+ .ds-lead-intelligence__tips {
3349
+ display: flex;
3350
+ flex-direction: column;
3351
+ gap: var(--space-3);
3352
+ }
3353
+ .ds-lead-intelligence__tip {
3354
+ display: flex;
3355
+ gap: var(--space-3);
3356
+ padding: var(--space-3);
3357
+ background: var(--glass-base);
3358
+ border-radius: var(--radius-button);
3359
+ border-left: 3px solid transparent;
3360
+ }
3361
+ .ds-lead-intelligence__tip--do {
3362
+ border-left-color: var(--status-success);
3363
+ }
3364
+ .ds-lead-intelligence__tip--dont {
3365
+ border-left-color: var(--status-error);
3366
+ }
3367
+ .ds-lead-intelligence__tip--insight {
3368
+ border-left-color: var(--status-info);
3369
+ }
3370
+ .ds-lead-intelligence__tip-icon {
3371
+ flex-shrink: 0;
3372
+ width: 20px;
3373
+ height: 20px;
3374
+ display: flex;
3375
+ align-items: center;
3376
+ justify-content: center;
3377
+ color: var(--text-tertiary);
3378
+ }
3379
+ .ds-lead-intelligence__tip--do .ds-lead-intelligence__tip-icon {
3380
+ color: var(--status-success);
3381
+ }
3382
+ .ds-lead-intelligence__tip--dont .ds-lead-intelligence__tip-icon {
3383
+ color: var(--status-error);
3384
+ }
3385
+ .ds-lead-intelligence__tip--insight .ds-lead-intelligence__tip-icon {
3386
+ color: var(--status-info);
3387
+ }
3388
+ .ds-lead-intelligence__tip-content {
3389
+ flex: 1;
3390
+ }
3391
+ .ds-lead-intelligence__tip-text {
3392
+ font-size: var(--font-size-sm);
3393
+ color: var(--text-primary);
3394
+ display: block;
3395
+ }
3396
+ .ds-lead-intelligence__tip-detail {
3397
+ font-size: var(--font-size-xs);
3398
+ color: var(--text-tertiary);
3399
+ display: block;
3400
+ margin-top: var(--space-1);
3401
+ }
3402
+ .ds-lead-intelligence__card--locked {
3403
+ position: relative;
3404
+ overflow: hidden;
3405
+ }
3406
+ .ds-lead-intelligence__locked-content {
3407
+ display: flex;
3408
+ flex-direction: column;
3409
+ align-items: center;
3410
+ justify-content: center;
3411
+ padding: var(--space-8) var(--space-4);
3412
+ text-align: center;
3413
+ min-height: 150px;
3414
+ }
3415
+ .ds-lead-intelligence__locked-icon {
3416
+ color: var(--text-tertiary);
3417
+ margin-bottom: var(--space-3);
3418
+ opacity: 0.5;
3419
+ }
3420
+ .ds-lead-intelligence__locked-text {
3421
+ font-size: var(--font-size-sm);
3422
+ color: var(--text-tertiary);
3423
+ margin: 0;
3424
+ }
3425
+ .ds-lead-intelligence__locked-shimmer {
3426
+ position: absolute;
3427
+ inset: 0;
3428
+ background:
3429
+ linear-gradient(
3430
+ 90deg,
3431
+ transparent 0%,
3432
+ var(--glass-base-hover) 50%,
3433
+ transparent 100%);
3434
+ animation: ds-shimmer 2s infinite;
3435
+ }
3436
+ @keyframes ds-shimmer {
3437
+ 0% {
3438
+ transform: translateX(-100%);
3439
+ }
3440
+ 100% {
3441
+ transform: translateX(100%);
3442
+ }
3443
+ }
3444
+ .ds-mbti {
3445
+ background: var(--glass-base);
3446
+ backdrop-filter: var(--glass-backdrop);
3447
+ border: 1px solid var(--rim-light-bottom);
3448
+ border-top-color: var(--rim-light-top);
3449
+ border-radius: var(--radius-card);
3450
+ padding: var(--space-5);
3451
+ box-shadow: var(--glass-shadow-combined);
3452
+ }
3453
+ .ds-mbti__header {
3454
+ display: flex;
3455
+ align-items: center;
3456
+ justify-content: space-between;
3457
+ margin-bottom: var(--space-5);
3458
+ }
3459
+ .ds-mbti__title {
3460
+ font-size: var(--font-size-xs);
3461
+ text-transform: uppercase;
3462
+ letter-spacing: var(--letter-spacing-wide);
3463
+ font-weight: var(--font-weight-semibold);
3464
+ color: var(--text-secondary);
3465
+ margin: 0;
3466
+ }
3467
+ .ds-mbti__type-badge {
3468
+ font-size: var(--font-size-sm);
3469
+ font-weight: var(--font-weight-bold);
3470
+ padding: var(--space-1) var(--space-3);
3471
+ background:
3472
+ linear-gradient(
3473
+ 135deg,
3474
+ rgba(var(--accent-rgb), 0.2) 0%,
3475
+ rgba(var(--accent2-rgb), 0.2) 100%);
3476
+ border-radius: var(--radius-badge);
3477
+ color: var(--text-primary);
3478
+ letter-spacing: var(--letter-spacing-widest);
3479
+ }
3480
+ .ds-mbti__dimensions {
3481
+ display: flex;
3482
+ flex-direction: column;
3483
+ gap: var(--space-5);
3484
+ }
3485
+ .ds-mbti__row {
3486
+ display: grid;
3487
+ grid-template-columns: 100px 1fr 100px auto;
3488
+ gap: var(--space-3);
3489
+ align-items: center;
3490
+ position: relative;
3491
+ padding: var(--space-2);
3492
+ margin: calc(var(--space-2) * -1);
3493
+ border-radius: var(--radius-button);
3494
+ transition: background var(--transition-fast);
3495
+ }
3496
+ .ds-mbti__row--hovered {
3497
+ background: var(--glass-base-hover);
3498
+ }
3499
+ .ds-mbti__label {
3500
+ display: flex;
3501
+ flex-direction: column;
3502
+ gap: var(--space-0-5);
3503
+ }
3504
+ .ds-mbti__label--left {
3505
+ text-align: right;
3506
+ align-items: flex-end;
3507
+ }
3508
+ .ds-mbti__label--right {
3509
+ text-align: left;
3510
+ align-items: flex-start;
3511
+ }
3512
+ .ds-mbti__label-text {
3513
+ font-size: var(--font-size-sm);
3514
+ color: var(--text-tertiary);
3515
+ transition: color var(--transition-fast);
3516
+ }
3517
+ .ds-mbti__label--active .ds-mbti__label-text {
3518
+ color: var(--text-primary);
3519
+ font-weight: var(--font-weight-medium);
3520
+ }
3521
+ .ds-mbti__label-strength {
3522
+ font-size: var(--font-size-xs);
3523
+ color: var(--text-tertiary);
3524
+ opacity: 0.7;
3525
+ }
3526
+ .ds-mbti__track-container {
3527
+ position: relative;
3528
+ display: flex;
3529
+ flex-direction: column;
3530
+ gap: var(--space-1);
3531
+ }
3532
+ .ds-mbti__track {
3533
+ height: 8px;
3534
+ background: var(--glass-highlight-subtle);
3535
+ border-radius: var(--radius-pill);
3536
+ position: relative;
3537
+ overflow: visible;
3538
+ }
3539
+ .ds-mbti__track-center {
3540
+ position: absolute;
3541
+ left: 50%;
3542
+ top: -2px;
3543
+ bottom: -2px;
3544
+ width: 2px;
3545
+ background: var(--glass-highlight-medium);
3546
+ transform: translateX(-50%);
3547
+ }
3548
+ .ds-mbti__track-fill {
3549
+ position: absolute;
3550
+ top: 0;
3551
+ bottom: 0;
3552
+ border-radius: var(--radius-pill);
3553
+ transition: all 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
3554
+ }
3555
+ .ds-mbti__row--purple .ds-mbti__track-fill {
3556
+ background:
3557
+ linear-gradient(
3558
+ 90deg,
3559
+ var(--data-purple),
3560
+ var(--data-purple-light));
3561
+ box-shadow: 0 0 12px var(--data-purple-glow);
3562
+ }
3563
+ .ds-mbti__row--yellow .ds-mbti__track-fill {
3564
+ background:
3565
+ linear-gradient(
3566
+ 90deg,
3567
+ var(--data-yellow),
3568
+ var(--data-yellow-light));
3569
+ box-shadow: 0 0 12px var(--data-yellow-glow);
3570
+ }
3571
+ .ds-mbti__row--pink .ds-mbti__track-fill {
3572
+ background:
3573
+ linear-gradient(
3574
+ 90deg,
3575
+ var(--data-pink),
3576
+ var(--data-pink-light));
3577
+ box-shadow: 0 0 12px var(--data-pink-glow);
3578
+ }
3579
+ .ds-mbti__row--blue .ds-mbti__track-fill {
3580
+ background:
3581
+ linear-gradient(
3582
+ 90deg,
3583
+ var(--data-blue),
3584
+ var(--data-blue-light));
3585
+ box-shadow: 0 0 12px var(--data-blue-glow);
3586
+ }
3587
+ .ds-mbti__thumb {
3588
+ position: absolute;
3589
+ top: 50%;
3590
+ width: 16px;
3591
+ height: 16px;
3592
+ transform: translate(-50%, -50%);
3593
+ z-index: 2;
3594
+ transition: left 800ms cubic-bezier(0.2, 0.8, 0.2, 1);
3595
+ }
3596
+ .ds-mbti__thumb::before {
3597
+ content: "";
3598
+ position: absolute;
3599
+ inset: 0;
3600
+ background: var(--hc-control-knob);
3601
+ border-radius: 50%;
3602
+ box-shadow: var(--shadow-sm), 0 0 0 2px var(--glass-highlight-bright);
3603
+ }
3604
+ .ds-mbti__thumb-glow {
3605
+ position: absolute;
3606
+ inset: -4px;
3607
+ border-radius: 50%;
3608
+ background:
3609
+ radial-gradient(
3610
+ circle,
3611
+ var(--glass-highlight-strong) 0%,
3612
+ transparent 70%);
3613
+ opacity: 0;
3614
+ transition: opacity var(--transition-fast);
3615
+ }
3616
+ .ds-mbti__row:hover .ds-mbti__thumb-glow {
3617
+ opacity: 1;
3618
+ }
3619
+ .ds-mbti__dimension-label {
3620
+ font-size: var(--font-size-xs);
3621
+ color: var(--text-tertiary);
3622
+ text-align: center;
3623
+ }
3624
+ .ds-mbti__info-button {
3625
+ width: 24px;
3626
+ height: 24px;
3627
+ display: flex;
3628
+ align-items: center;
3629
+ justify-content: center;
3630
+ background: none;
3631
+ border: none;
3632
+ color: var(--text-tertiary);
3633
+ cursor: pointer;
3634
+ border-radius: 50%;
3635
+ transition: all var(--transition-fast);
3636
+ opacity: 0;
3637
+ }
3638
+ .ds-mbti__row:hover .ds-mbti__info-button {
3639
+ opacity: 1;
3640
+ }
3641
+ .ds-mbti__info-button:hover {
3642
+ background: var(--surface-alpha-2);
3643
+ color: var(--text-secondary);
3644
+ }
3645
+ .ds-mbti__tooltip {
3646
+ position: absolute;
3647
+ top: calc(100% + var(--space-2));
3648
+ left: 50%;
3649
+ transform: translateX(-50%);
3650
+ width: 320px;
3651
+ padding: var(--space-4);
3652
+ background: var(--glass-base);
3653
+ backdrop-filter: blur(20px);
3654
+ border: 1px solid var(--rim-light-top);
3655
+ border-radius: var(--radius-card);
3656
+ box-shadow: var(--glass-shadow-elevated-combined);
3657
+ z-index: var(--z-tooltip);
3658
+ animation: ds-tooltip-enter 200ms ease-out;
3659
+ }
3660
+ @keyframes ds-tooltip-enter {
3661
+ from {
3662
+ opacity: 0;
3663
+ transform: translateX(-50%) translateY(-4px);
3664
+ }
3665
+ to {
3666
+ opacity: 1;
3667
+ transform: translateX(-50%) translateY(0);
3668
+ }
3669
+ }
3670
+ .ds-mbti__tooltip-description {
3671
+ font-size: var(--font-size-sm);
3672
+ color: var(--text-secondary);
3673
+ margin: 0 0 var(--space-3);
3674
+ }
3675
+ .ds-mbti__tooltip-traits {
3676
+ display: flex;
3677
+ flex-direction: column;
3678
+ gap: var(--space-2);
3679
+ }
3680
+ .ds-mbti__tooltip-trait {
3681
+ font-size: var(--font-size-xs);
3682
+ color: var(--text-tertiary);
3683
+ line-height: var(--line-height-relaxed);
3684
+ }
3685
+ .ds-mbti__tooltip-trait strong {
3686
+ color: var(--text-secondary);
3687
+ }
3688
+ .ds-mbti--locked .ds-mbti__header {
3689
+ opacity: 0.6;
3690
+ }
3691
+ .ds-mbti__locked-badge {
3692
+ display: flex;
3693
+ align-items: center;
3694
+ gap: var(--space-2);
3695
+ font-size: var(--font-size-xs);
3696
+ color: var(--text-tertiary);
3697
+ }
3698
+ .ds-mbti__locked-content {
3699
+ display: flex;
3700
+ flex-direction: column;
3701
+ gap: var(--space-4);
3702
+ }
3703
+ .ds-mbti__row--locked {
3704
+ display: flex;
3705
+ align-items: center;
3706
+ gap: var(--space-3);
3707
+ }
3708
+ .ds-mbti__label--skeleton {
3709
+ width: 80px;
3710
+ height: 14px;
3711
+ background: var(--surface-alpha-1);
3712
+ border-radius: var(--radius-badge);
3713
+ }
3714
+ .ds-mbti__track--skeleton {
3715
+ flex: 1;
3716
+ height: 8px;
3717
+ background: var(--surface-alpha-1);
3718
+ border-radius: var(--radius-pill);
3719
+ position: relative;
3720
+ overflow: hidden;
3721
+ }
3722
+ .ds-mbti__skeleton-shimmer {
3723
+ position: absolute;
3724
+ inset: 0;
3725
+ background:
3726
+ linear-gradient(
3727
+ 90deg,
3728
+ transparent 0%,
3729
+ var(--surface-alpha-1) 50%,
3730
+ transparent 100%);
3731
+ animation: ds-shimmer 2s infinite;
3732
+ }
3733
+ .ds-behavioral {
3734
+ background: var(--glass-base);
3735
+ backdrop-filter: var(--glass-backdrop);
3736
+ border: 1px solid var(--rim-light-bottom);
3737
+ border-top-color: var(--rim-light-top);
3738
+ border-radius: var(--radius-card);
3739
+ padding: var(--space-5);
3740
+ box-shadow: var(--glass-shadow-combined);
3741
+ }
3742
+ .ds-behavioral__header {
3743
+ display: flex;
3744
+ align-items: center;
3745
+ justify-content: space-between;
3746
+ margin-bottom: var(--space-4);
3747
+ }
3748
+ .ds-behavioral__title {
3749
+ font-size: var(--font-size-xs);
3750
+ text-transform: uppercase;
3751
+ letter-spacing: var(--letter-spacing-wide);
3752
+ font-weight: var(--font-weight-semibold);
3753
+ color: var(--text-secondary);
3754
+ margin: 0;
3755
+ }
3756
+ .ds-behavioral__locked-badge {
3757
+ display: flex;
3758
+ align-items: center;
3759
+ gap: var(--space-2);
3760
+ font-size: var(--font-size-xs);
3761
+ color: var(--text-tertiary);
3762
+ }
3763
+ .ds-behavioral__grid {
3764
+ display: grid;
3765
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
3766
+ gap: var(--space-4);
3767
+ }
3768
+ .ds-behavioral__item {
3769
+ display: flex;
3770
+ gap: var(--space-3);
3771
+ padding: var(--space-3);
3772
+ background: var(--glass-base);
3773
+ border-radius: var(--radius-button);
3774
+ }
3775
+ .ds-behavioral__item-icon {
3776
+ width: 36px;
3777
+ height: 36px;
3778
+ display: flex;
3779
+ align-items: center;
3780
+ justify-content: center;
3781
+ background: rgba(var(--accent-rgb), 0.1);
3782
+ border-radius: var(--radius-button);
3783
+ color: rgb(var(--accent-rgb));
3784
+ flex-shrink: 0;
3785
+ }
3786
+ .ds-behavioral__item-content {
3787
+ flex: 1;
3788
+ min-width: 0;
3789
+ }
3790
+ .ds-behavioral__item-label {
3791
+ font-size: var(--font-size-xs);
3792
+ color: var(--text-tertiary);
3793
+ display: block;
3794
+ margin-bottom: var(--space-0-5);
3795
+ }
3796
+ .ds-behavioral__item-value {
3797
+ font-size: var(--font-size-sm);
3798
+ font-weight: var(--font-weight-medium);
3799
+ color: var(--text-primary);
3800
+ display: block;
3801
+ margin-bottom: var(--space-0-5);
3802
+ }
3803
+ .ds-behavioral__item-description {
3804
+ font-size: var(--font-size-xs);
3805
+ color: var(--text-tertiary);
3806
+ display: block;
3807
+ line-height: var(--line-height-normal);
3808
+ }
3809
+ .ds-behavioral__risk-meter {
3810
+ margin-top: var(--space-1);
3811
+ }
3812
+ .ds-behavioral__risk-track {
3813
+ height: 6px;
3814
+ background: var(--surface-alpha-2);
3815
+ border-radius: var(--radius-pill);
3816
+ overflow: hidden;
3817
+ margin-bottom: var(--space-1);
3818
+ }
3819
+ .ds-behavioral__risk-fill {
3820
+ height: 100%;
3821
+ border-radius: var(--radius-pill);
3822
+ transition: width var(--transition-slow);
3823
+ }
3824
+ .ds-behavioral__risk-fill--low {
3825
+ background: var(--status-info);
3826
+ }
3827
+ .ds-behavioral__risk-fill--medium {
3828
+ background: var(--status-warning);
3829
+ }
3830
+ .ds-behavioral__risk-fill--high {
3831
+ background: var(--status-error);
3832
+ }
3833
+ .ds-behavioral__risk-label {
3834
+ font-size: var(--font-size-xs);
3835
+ color: var(--text-tertiary);
3836
+ }
3837
+ .ds-behavioral__item--skeleton {
3838
+ height: 80px;
3839
+ background: var(--glass-base);
3840
+ position: relative;
3841
+ overflow: hidden;
3842
+ }
3843
+ .ds-behavioral__item-shimmer {
3844
+ position: absolute;
3845
+ inset: 0;
3846
+ background:
3847
+ linear-gradient(
3848
+ 90deg,
3849
+ transparent 0%,
3850
+ var(--glass-base-hover) 50%,
3851
+ transparent 100%);
3852
+ animation: ds-shimmer 2s infinite;
3853
+ }
3854
+ .ds-deep-dive {
3855
+ border-top: 1px solid var(--rim-light-bottom);
3856
+ padding-top: var(--space-2);
3857
+ }
3858
+ .ds-deep-dive__trigger {
3859
+ width: 100%;
3860
+ display: flex;
3861
+ align-items: center;
3862
+ justify-content: space-between;
3863
+ padding: var(--space-4) var(--space-2);
3864
+ background: none;
3865
+ border: none;
3866
+ color: var(--text-secondary);
3867
+ font-size: var(--font-size-sm);
3868
+ font-family: var(--font-family);
3869
+ cursor: pointer;
3870
+ border-radius: var(--radius-button);
3871
+ transition: all var(--transition-fast);
3872
+ }
3873
+ .ds-deep-dive__trigger:hover {
3874
+ background: var(--glass-base-hover);
3875
+ color: var(--text-primary);
3876
+ }
3877
+ .ds-deep-dive__trigger-text {
3878
+ font-weight: var(--font-weight-medium);
3879
+ }
3880
+ .ds-deep-dive__trigger-icon {
3881
+ color: var(--text-tertiary);
3882
+ transition: transform var(--transition-base);
3883
+ }
3884
+ .ds-deep-dive--expanded .ds-deep-dive__trigger-icon {
3885
+ transform: rotate(180deg);
3886
+ }
3887
+ .ds-deep-dive__content {
3888
+ padding: var(--space-4) 0;
3889
+ animation: ds-expand-enter 300ms ease-out;
3890
+ }
3891
+ @keyframes ds-expand-enter {
3892
+ from {
3893
+ opacity: 0;
3894
+ transform: translateY(-8px);
3895
+ }
3896
+ to {
3897
+ opacity: 1;
3898
+ transform: translateY(0);
3899
+ }
3900
+ }
3901
+ .ds-deep-dive__grid {
3902
+ display: grid;
3903
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
3904
+ gap: var(--space-4);
3905
+ }
3906
+ .ds-deep-dive__card {
3907
+ background: var(--glass-base);
3908
+ backdrop-filter: var(--glass-backdrop);
3909
+ border: 1px solid var(--rim-light-bottom);
3910
+ border-top-color: var(--rim-light-top);
3911
+ border-radius: var(--radius-card);
3912
+ padding: var(--space-5);
3913
+ box-shadow: var(--glass-shadow-combined);
3914
+ }
3915
+ .ds-deep-dive__card--wide {
3916
+ grid-column: 1 / -1;
3917
+ }
3918
+ .ds-deep-dive__card--insights {
3919
+ display: flex;
3920
+ flex-direction: column;
3921
+ gap: var(--space-5);
3922
+ }
3923
+ .ds-deep-dive__section {
3924
+ display: flex;
3925
+ flex-direction: column;
3926
+ gap: var(--space-3);
3927
+ }
3928
+ .ds-deep-dive__section-header {
3929
+ display: flex;
3930
+ align-items: center;
3931
+ gap: var(--space-2);
3932
+ color: var(--text-secondary);
3933
+ }
3934
+ .ds-deep-dive__section-header--success {
3935
+ color: var(--status-success);
3936
+ }
3937
+ .ds-deep-dive__section-header--warning {
3938
+ color: var(--status-warning);
3939
+ }
3940
+ .ds-deep-dive__section-title {
3941
+ font-size: var(--font-size-xs);
3942
+ text-transform: uppercase;
3943
+ letter-spacing: var(--letter-spacing-wide);
3944
+ font-weight: var(--font-weight-semibold);
3945
+ margin: 0;
3946
+ }
3947
+ .ds-deep-dive__list {
3948
+ list-style: none;
3949
+ padding: 0;
3950
+ margin: 0;
3951
+ display: flex;
3952
+ flex-direction: column;
3953
+ gap: var(--space-2);
3954
+ }
3955
+ .ds-deep-dive__list-item {
3956
+ font-size: var(--font-size-sm);
3957
+ color: var(--text-secondary);
3958
+ padding-left: var(--space-4);
3959
+ position: relative;
3960
+ }
3961
+ .ds-deep-dive__list-item::before {
3962
+ content: "";
3963
+ position: absolute;
3964
+ left: 0;
3965
+ top: 8px;
3966
+ width: 6px;
3967
+ height: 6px;
3968
+ border-radius: 50%;
3969
+ background: var(--text-tertiary);
3970
+ }
3971
+ .ds-deep-dive__section-header--success + .ds-deep-dive__list .ds-deep-dive__list-item::before {
3972
+ background: var(--status-success);
3973
+ }
3974
+ .ds-deep-dive__section-header--warning + .ds-deep-dive__list .ds-deep-dive__list-item::before {
3975
+ background: var(--status-warning);
3976
+ }
3977
+ .ds-deep-dive__timeline {
3978
+ display: flex;
3979
+ flex-direction: column;
3980
+ gap: var(--space-4);
3981
+ }
3982
+ .ds-deep-dive__timeline-item {
3983
+ display: flex;
3984
+ gap: var(--space-3);
3985
+ position: relative;
3986
+ }
3987
+ .ds-deep-dive__timeline-item:not(:last-child)::after {
3988
+ content: "";
3989
+ position: absolute;
3990
+ left: 19px;
3991
+ top: 44px;
3992
+ bottom: -16px;
3993
+ width: 2px;
3994
+ background: var(--surface-alpha-2);
3995
+ }
3996
+ .ds-deep-dive__timeline-item--current::after {
3997
+ background:
3998
+ linear-gradient(
3999
+ 180deg,
4000
+ rgba(var(--accent-rgb), 0.5) 0%,
4001
+ var(--surface-alpha-2) 100%);
4002
+ }
4003
+ .ds-deep-dive__timeline-icon {
4004
+ width: 40px;
4005
+ height: 40px;
4006
+ display: flex;
4007
+ align-items: center;
4008
+ justify-content: center;
4009
+ background: var(--surface-alpha-1);
4010
+ border-radius: var(--radius-button);
4011
+ color: var(--text-tertiary);
4012
+ flex-shrink: 0;
4013
+ }
4014
+ .ds-deep-dive__timeline-item--current .ds-deep-dive__timeline-icon {
4015
+ background: rgba(var(--accent-rgb), 0.15);
4016
+ color: rgb(var(--accent-rgb));
4017
+ }
4018
+ .ds-deep-dive__timeline-logo {
4019
+ width: 40px;
4020
+ height: 40px;
4021
+ border-radius: var(--radius-button);
4022
+ object-fit: contain;
4023
+ background: var(--hc-control-knob);
4024
+ flex-shrink: 0;
4025
+ }
4026
+ .ds-deep-dive__timeline-content {
4027
+ flex: 1;
4028
+ min-width: 0;
4029
+ }
4030
+ .ds-deep-dive__timeline-title {
4031
+ font-size: var(--font-size-sm);
4032
+ font-weight: var(--font-weight-semibold);
4033
+ color: var(--text-primary);
4034
+ margin: 0 0 var(--space-0-5);
4035
+ }
4036
+ .ds-deep-dive__timeline-subtitle {
4037
+ font-size: var(--font-size-sm);
4038
+ color: var(--text-secondary);
4039
+ margin: 0;
4040
+ }
4041
+ .ds-deep-dive__timeline-date {
4042
+ font-size: var(--font-size-xs);
4043
+ color: var(--text-tertiary);
4044
+ display: flex;
4045
+ align-items: center;
4046
+ gap: var(--space-2);
4047
+ margin-top: var(--space-0-5);
4048
+ }
4049
+ .ds-deep-dive__current-badge {
4050
+ display: inline-flex;
4051
+ padding: var(--space-0-5) var(--space-2);
4052
+ background: rgba(var(--accent-rgb), 0.15);
4053
+ color: rgb(var(--accent-rgb));
4054
+ border-radius: var(--radius-badge);
4055
+ font-size: var(--font-size-xs);
4056
+ font-weight: var(--font-weight-medium);
4057
+ }
4058
+ .ds-deep-dive__narrative {
4059
+ font-size: var(--font-size-sm);
4060
+ line-height: var(--line-height-relaxed);
4061
+ color: var(--text-secondary);
4062
+ margin: 0;
4063
+ }
4064
+ .ds-lead-profile__partial-notice {
4065
+ padding: var(--space-4);
4066
+ background: rgba(var(--accent-rgb), 0.05);
4067
+ border: 1px solid rgba(var(--accent-rgb), 0.15);
4068
+ border-radius: var(--radius-card);
4069
+ text-align: center;
4070
+ }
4071
+ .ds-lead-profile__partial-notice-content {
4072
+ display: flex;
4073
+ flex-direction: column;
4074
+ align-items: center;
4075
+ gap: var(--space-3);
4076
+ }
4077
+ .ds-lead-profile__partial-notice-text {
4078
+ font-size: var(--font-size-sm);
4079
+ color: var(--text-secondary);
4080
+ }
4081
+ .ds-lead-profile__partial-notice-progress {
4082
+ width: 200px;
4083
+ height: 4px;
4084
+ background: var(--surface-alpha-2);
4085
+ border-radius: var(--radius-pill);
4086
+ overflow: hidden;
4087
+ }
4088
+ .ds-lead-profile__partial-notice-bar {
4089
+ height: 100%;
4090
+ width: 60%;
4091
+ background:
4092
+ linear-gradient(
4093
+ 90deg,
4094
+ rgb(var(--accent-rgb)),
4095
+ rgb(var(--accent2-rgb)));
4096
+ border-radius: var(--radius-pill);
4097
+ animation: ds-partial-progress 2s ease-in-out infinite;
4098
+ }
4099
+ @keyframes ds-partial-progress {
4100
+ 0%, 100% {
4101
+ transform: translateX(-20%);
4102
+ }
4103
+ 50% {
4104
+ transform: translateX(20%);
4105
+ }
4106
+ }
4107
+ @media (max-width: 640px) {
4108
+ .ds-lead-profile {
4109
+ padding: var(--space-4);
4110
+ gap: var(--space-6);
4111
+ }
4112
+ .ds-lead-identity {
4113
+ flex-direction: column;
4114
+ align-items: center;
4115
+ text-align: center;
4116
+ }
4117
+ .ds-lead-identity__content {
4118
+ align-items: center;
4119
+ }
4120
+ .ds-lead-identity__name-row {
4121
+ justify-content: center;
4122
+ }
4123
+ .ds-lead-identity__meta {
4124
+ justify-content: center;
4125
+ }
4126
+ .ds-lead-identity__actions {
4127
+ justify-content: center;
4128
+ }
4129
+ .ds-lead-intelligence__grid {
4130
+ grid-template-columns: 1fr;
4131
+ }
4132
+ .ds-mbti__row {
4133
+ grid-template-columns: 70px 1fr 70px auto;
4134
+ }
4135
+ .ds-mbti__label-text {
4136
+ font-size: var(--font-size-xs);
4137
+ }
4138
+ .ds-behavioral__grid {
4139
+ grid-template-columns: 1fr;
4140
+ }
4141
+ .ds-deep-dive__grid {
4142
+ grid-template-columns: 1fr;
4143
+ }
4144
+ }
4145
+ /*# sourceMappingURL=index.css.map */