@solvapay/react 1.0.9-preview.1 → 1.0.9
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.
- package/CHANGELOG.md +209 -0
- package/CONTRIBUTING.md +117 -0
- package/README.md +426 -24
- package/dist/adapters/auth.d.cts +13 -0
- package/dist/adapters/auth.d.ts +13 -0
- package/dist/adapters/auth.js +1 -0
- package/dist/chunk-37R5NZGF.js +4824 -0
- package/dist/chunk-HWVJL5X6.js +429 -0
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-R2ZPZ7VM.js +597 -0
- package/dist/chunk-ZAV7CQ4G.js +361 -0
- package/dist/index-WBjulQHf.d.cts +3656 -0
- package/dist/index-onWNU7iT.d.ts +3656 -0
- package/dist/index.cjs +5556 -1143
- package/dist/index.d.cts +618 -708
- package/dist/index.d.ts +618 -708
- package/dist/index.js +597 -1664
- package/dist/mcp/index.cjs +8096 -0
- package/dist/mcp/index.d.cts +1013 -0
- package/dist/mcp/index.d.ts +1013 -0
- package/dist/mcp/index.js +2724 -0
- package/dist/mcp/styles.css +1020 -0
- package/dist/primitives/index.cjs +5316 -0
- package/dist/primitives/index.d.cts +721 -0
- package/dist/primitives/index.d.ts +721 -0
- package/dist/primitives/index.js +232 -0
- package/dist/styles.css +1115 -0
- package/dist/useUsage-BmOYXxgG.d.cts +413 -0
- package/dist/useUsage-nD7zwSbG.d.ts +413 -0
- package/dist/webapi-K5XBCEO6.js +3775 -0
- package/package.json +37 -6
|
@@ -0,0 +1,1020 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default styles for `<McpApp>` and the per-view primitives.
|
|
3
|
+
*
|
|
4
|
+
* Opt-in via `import '@solvapay/react/mcp/styles.css'`. Every selector
|
|
5
|
+
* uses CSS variables with concrete fallbacks, so MCP hosts that publish
|
|
6
|
+
* their own tokens (via `applyHostStyleVariables`) override SolvaPay's
|
|
7
|
+
* defaults automatically.
|
|
8
|
+
*
|
|
9
|
+
* All classes start with `solvapay-mcp-` so they don't collide with the
|
|
10
|
+
* core `@solvapay/react` styles or with integrator-supplied classes.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
*,
|
|
14
|
+
*::before,
|
|
15
|
+
*::after {
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
html,
|
|
20
|
+
body {
|
|
21
|
+
margin: 0;
|
|
22
|
+
padding: 0;
|
|
23
|
+
background: var(--color-background-primary, #ffffff);
|
|
24
|
+
color: var(--color-text-primary, #0f172a);
|
|
25
|
+
font-family: var(
|
|
26
|
+
--font-sans,
|
|
27
|
+
-apple-system,
|
|
28
|
+
BlinkMacSystemFont,
|
|
29
|
+
'Segoe UI',
|
|
30
|
+
Roboto,
|
|
31
|
+
Oxygen,
|
|
32
|
+
Ubuntu,
|
|
33
|
+
sans-serif
|
|
34
|
+
);
|
|
35
|
+
font-size: 14px;
|
|
36
|
+
line-height: 1.5;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#root {
|
|
40
|
+
min-height: 100%;
|
|
41
|
+
padding: 16px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.solvapay-mcp-main {
|
|
45
|
+
display: flex;
|
|
46
|
+
flex-direction: column;
|
|
47
|
+
gap: 16px;
|
|
48
|
+
max-width: 520px;
|
|
49
|
+
margin: 0 auto;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Widen the container at the sidebar breakpoint so the two-column
|
|
53
|
+
* layout has room to breathe. */
|
|
54
|
+
@media (min-width: 900px) {
|
|
55
|
+
.solvapay-mcp-main {
|
|
56
|
+
max-width: 960px;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.solvapay-mcp-header h1 {
|
|
61
|
+
margin: 0;
|
|
62
|
+
font-size: 20px;
|
|
63
|
+
font-weight: 600;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.solvapay-mcp-card {
|
|
67
|
+
display: flex;
|
|
68
|
+
flex-direction: column;
|
|
69
|
+
gap: 16px;
|
|
70
|
+
padding: 20px;
|
|
71
|
+
border-radius: var(--border-radius-lg, 12px);
|
|
72
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
73
|
+
background: var(--color-background-primary, #ffffff);
|
|
74
|
+
box-shadow: var(--shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.05));
|
|
75
|
+
transition: opacity 180ms ease;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/*
|
|
79
|
+
* Vertical stack utility for grouping a heading, copy, and CTA inside
|
|
80
|
+
* a card cell. The card's own `gap: 16px` only applies between its
|
|
81
|
+
* direct children, so a wrapper `<div>` (account-view empty states,
|
|
82
|
+
* etc.) needs its own rhythm — otherwise `.solvapay-mcp-heading` and
|
|
83
|
+
* `.solvapay-mcp-muted` (both `margin: 0`) collapse onto each other
|
|
84
|
+
* with no air between the title, description, and button.
|
|
85
|
+
*/
|
|
86
|
+
.solvapay-mcp-stack {
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-direction: column;
|
|
89
|
+
gap: 12px;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/*
|
|
93
|
+
* Subtle feedback while a background `check_purchase` poll is in flight.
|
|
94
|
+
* The card frame stays mounted — we just dim it so the user sees activity
|
|
95
|
+
* without any layout shift or content swap.
|
|
96
|
+
*/
|
|
97
|
+
.solvapay-mcp-card[data-refreshing='true'] {
|
|
98
|
+
opacity: 0.88;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.solvapay-mcp-heading {
|
|
102
|
+
margin: 0;
|
|
103
|
+
font-size: 16px;
|
|
104
|
+
font-weight: 600;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Step headings inside a card (PlanStep, AmountStep, PaygPaymentStep,
|
|
108
|
+
* RecurringPaymentStep, SuccessStep) sit under the shell's 20px `h1`,
|
|
109
|
+
* so bump them a touch for a readable hierarchy without jumping into
|
|
110
|
+
* the shell title's territory. */
|
|
111
|
+
.solvapay-mcp-card > .solvapay-mcp-heading,
|
|
112
|
+
.solvapay-mcp-card .solvapay-mcp-balance-row > .solvapay-mcp-heading {
|
|
113
|
+
font-size: 18px;
|
|
114
|
+
letter-spacing: -0.01em;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Keep BackLinks from sitting flush against the next heading — the
|
|
118
|
+
* old `McpTopupView` breathed thanks to the card's 16px gap, but the
|
|
119
|
+
* BackLink also has its own 8px bottom margin from the primitive; we
|
|
120
|
+
* tighten it slightly so the step headline anchors the card. */
|
|
121
|
+
.solvapay-mcp-card > .solvapay-mcp-back-link {
|
|
122
|
+
margin-bottom: 4px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.solvapay-mcp-muted {
|
|
126
|
+
margin: 0;
|
|
127
|
+
color: var(--color-text-secondary, #475569);
|
|
128
|
+
font-size: 13px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.solvapay-mcp-notice {
|
|
132
|
+
padding: 12px;
|
|
133
|
+
border-radius: 8px;
|
|
134
|
+
background: var(--color-background-warning, #fffbeb);
|
|
135
|
+
color: var(--color-text-warning, #78350f);
|
|
136
|
+
font-size: 13px;
|
|
137
|
+
display: flex;
|
|
138
|
+
flex-direction: column;
|
|
139
|
+
gap: 4px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.solvapay-mcp-notice p {
|
|
143
|
+
margin: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.solvapay-mcp-error {
|
|
147
|
+
margin: 0;
|
|
148
|
+
padding: 12px;
|
|
149
|
+
border-radius: 8px;
|
|
150
|
+
background: var(--color-background-danger, #fef2f2);
|
|
151
|
+
color: var(--color-text-danger, #991b1b);
|
|
152
|
+
font-size: 13px;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.solvapay-mcp-hosted-link {
|
|
156
|
+
text-decoration: none;
|
|
157
|
+
color: inherit;
|
|
158
|
+
display: block;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.solvapay-mcp-button {
|
|
162
|
+
display: inline-flex;
|
|
163
|
+
align-items: center;
|
|
164
|
+
justify-content: center;
|
|
165
|
+
gap: 8px;
|
|
166
|
+
width: 100%;
|
|
167
|
+
padding: 10px 16px;
|
|
168
|
+
border-radius: var(--border-radius-md, 8px);
|
|
169
|
+
border: none;
|
|
170
|
+
background: var(--color-background-accent, #0f172a);
|
|
171
|
+
color: var(--color-text-on-accent, #ffffff);
|
|
172
|
+
font-size: 14px;
|
|
173
|
+
font-weight: 500;
|
|
174
|
+
text-decoration: none;
|
|
175
|
+
cursor: pointer;
|
|
176
|
+
transition: opacity 120ms ease;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.solvapay-mcp-button:hover:not(:disabled) {
|
|
180
|
+
opacity: 0.9;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.solvapay-mcp-button:disabled {
|
|
184
|
+
cursor: not-allowed;
|
|
185
|
+
opacity: 0.6;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.solvapay-mcp-link-button {
|
|
189
|
+
align-self: flex-start;
|
|
190
|
+
padding: 0;
|
|
191
|
+
background: none;
|
|
192
|
+
border: none;
|
|
193
|
+
color: var(--color-text-secondary, #475569);
|
|
194
|
+
font-size: 13px;
|
|
195
|
+
cursor: pointer;
|
|
196
|
+
text-decoration: underline;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.solvapay-mcp-link-button:hover {
|
|
200
|
+
color: var(--color-text-primary, #0f172a);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.solvapay-mcp-awaiting-header {
|
|
204
|
+
display: flex;
|
|
205
|
+
align-items: center;
|
|
206
|
+
gap: 10px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.solvapay-mcp-awaiting-header h2 {
|
|
210
|
+
margin: 0;
|
|
211
|
+
font-size: 16px;
|
|
212
|
+
font-weight: 600;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.solvapay-mcp-spinner {
|
|
216
|
+
display: inline-block;
|
|
217
|
+
width: 16px;
|
|
218
|
+
height: 16px;
|
|
219
|
+
border: 2px solid var(--color-border-secondary, #e2e8f0);
|
|
220
|
+
border-top-color: var(--color-background-accent, #0f172a);
|
|
221
|
+
border-radius: 50%;
|
|
222
|
+
animation: solvapay-mcp-spin 0.8s linear infinite;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@keyframes solvapay-mcp-spin {
|
|
226
|
+
to {
|
|
227
|
+
transform: rotate(360deg);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/* Account view */
|
|
232
|
+
|
|
233
|
+
.solvapay-mcp-balance-row {
|
|
234
|
+
display: flex;
|
|
235
|
+
align-items: center;
|
|
236
|
+
justify-content: space-between;
|
|
237
|
+
gap: 12px;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Topup view */
|
|
241
|
+
|
|
242
|
+
.solvapay-mcp-amount-picker {
|
|
243
|
+
display: flex;
|
|
244
|
+
flex-direction: column;
|
|
245
|
+
gap: 12px;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.solvapay-mcp-amount-options {
|
|
249
|
+
display: grid;
|
|
250
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
251
|
+
gap: 8px;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.solvapay-mcp-amount-option {
|
|
255
|
+
padding: 10px;
|
|
256
|
+
border-radius: var(--border-radius-md, 8px);
|
|
257
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
258
|
+
background: var(--color-background-primary, #ffffff);
|
|
259
|
+
color: var(--color-text-primary, #0f172a);
|
|
260
|
+
font-size: 13px;
|
|
261
|
+
font-weight: 500;
|
|
262
|
+
cursor: pointer;
|
|
263
|
+
transition:
|
|
264
|
+
background-color 120ms ease,
|
|
265
|
+
border-color 120ms ease;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/* Recommended chip: a subtly heavier border on the default state. No
|
|
269
|
+
* color — stays within the pre-refactor black/white/gray palette. The
|
|
270
|
+
* selected state below still wins and fills the chip with the accent. */
|
|
271
|
+
.solvapay-mcp-amount-option[data-popular]:not([data-state='selected']) {
|
|
272
|
+
border-color: var(--color-text-primary, #0f172a);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.solvapay-mcp-amount-option:hover:not([data-state='selected']):not(:disabled) {
|
|
276
|
+
background: var(--color-background-subtle, #f9fafb);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.solvapay-mcp-amount-option[data-state='selected'] {
|
|
280
|
+
border-color: var(--color-background-accent, #0f172a);
|
|
281
|
+
background: var(--color-background-accent, #0f172a);
|
|
282
|
+
color: var(--color-text-on-accent, #ffffff);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.solvapay-mcp-amount-custom {
|
|
286
|
+
width: 100%;
|
|
287
|
+
padding: 10px 12px;
|
|
288
|
+
border-radius: var(--border-radius-md, 8px);
|
|
289
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
290
|
+
background: var(--color-background-primary, #ffffff);
|
|
291
|
+
color: var(--color-text-primary, #0f172a);
|
|
292
|
+
font-size: 14px;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.solvapay-mcp-topup-form {
|
|
296
|
+
display: flex;
|
|
297
|
+
flex-direction: column;
|
|
298
|
+
gap: 12px;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/* Center the `TopupForm.Loading` / `PaymentForm.Loading` spinner
|
|
302
|
+
* inside MCP checkout surfaces. The primitive-layer styles stay
|
|
303
|
+
* layout-neutral so web integrators can place the spinner wherever
|
|
304
|
+
* they want; the MCP view always wants it centered above the
|
|
305
|
+
* submit button. */
|
|
306
|
+
.solvapay-mcp-topup-form [data-solvapay-topup-form-loading],
|
|
307
|
+
.solvapay-mcp-card [data-solvapay-payment-form-loading] {
|
|
308
|
+
display: flex;
|
|
309
|
+
justify-content: center;
|
|
310
|
+
align-items: center;
|
|
311
|
+
padding: 12px 0;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/* Activation view */
|
|
315
|
+
|
|
316
|
+
.solvapay-mcp-activation-flow {
|
|
317
|
+
display: flex;
|
|
318
|
+
flex-direction: column;
|
|
319
|
+
gap: 12px;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
/* Paywall view (Phase 2.1) */
|
|
323
|
+
|
|
324
|
+
.solvapay-mcp-paywall-plans {
|
|
325
|
+
display: flex;
|
|
326
|
+
flex-direction: column;
|
|
327
|
+
gap: 8px;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.solvapay-mcp-paywall-embedded-checkout {
|
|
331
|
+
display: flex;
|
|
332
|
+
flex-direction: column;
|
|
333
|
+
gap: 12px;
|
|
334
|
+
padding-top: 8px;
|
|
335
|
+
border-top: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/* Usage view (Phase 2.2)
|
|
339
|
+
*
|
|
340
|
+
* The UsageMeter primitive already ships default styles in
|
|
341
|
+
* @solvapay/react/styles.css — the MCP view only adds view-level spacing. */
|
|
342
|
+
|
|
343
|
+
/* Shell chrome — header, tab nav, footer
|
|
344
|
+
*
|
|
345
|
+
* The in-iframe header (logo + brand name + product heading) is kept
|
|
346
|
+
* as the reliable source of merchant identity. MCP hosts advertise
|
|
347
|
+
* tool-level `icons[]` / `Implementation.name` via the `@solvapay/mcp`
|
|
348
|
+
* server, but some host chromes (e.g. Cursor) only paint the active
|
|
349
|
+
* tool name above the iframe and drop the merchant mark, which leaves
|
|
350
|
+
* the widget reading as anonymous. Painting identity inside guarantees
|
|
351
|
+
* it shows everywhere; hosts that do render the icon just get a second
|
|
352
|
+
* mark, which is an acceptable trade-off versus anonymous widgets.
|
|
353
|
+
*/
|
|
354
|
+
|
|
355
|
+
.solvapay-mcp-shell {
|
|
356
|
+
display: flex;
|
|
357
|
+
flex-direction: column;
|
|
358
|
+
gap: 16px;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.solvapay-mcp-shell-header {
|
|
362
|
+
display: flex;
|
|
363
|
+
flex-direction: column;
|
|
364
|
+
gap: 12px;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.solvapay-mcp-shell-brand {
|
|
368
|
+
display: flex;
|
|
369
|
+
align-items: center;
|
|
370
|
+
gap: 10px;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.solvapay-mcp-shell-logo {
|
|
374
|
+
width: 28px;
|
|
375
|
+
height: 28px;
|
|
376
|
+
object-fit: contain;
|
|
377
|
+
border-radius: 6px;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.solvapay-mcp-shell-logo-initials {
|
|
381
|
+
display: inline-flex;
|
|
382
|
+
align-items: center;
|
|
383
|
+
justify-content: center;
|
|
384
|
+
width: 28px;
|
|
385
|
+
height: 28px;
|
|
386
|
+
border-radius: 6px;
|
|
387
|
+
background: var(--color-background-secondary, #f1f5f9);
|
|
388
|
+
color: var(--color-text-primary, #0f172a);
|
|
389
|
+
font-size: 12px;
|
|
390
|
+
font-weight: 600;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.solvapay-mcp-shell-brand-name {
|
|
394
|
+
font-size: 14px;
|
|
395
|
+
color: var(--color-text-primary, #0f172a);
|
|
396
|
+
font-weight: 500;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.solvapay-mcp-shell-title {
|
|
400
|
+
font-size: 20px;
|
|
401
|
+
font-weight: 600;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.solvapay-mcp-shell-tagline {
|
|
405
|
+
margin: -6px 0 0;
|
|
406
|
+
font-size: 14px;
|
|
407
|
+
line-height: 1.5;
|
|
408
|
+
color: var(--color-text-secondary, #475569);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.solvapay-mcp-tablist {
|
|
412
|
+
display: flex;
|
|
413
|
+
gap: 4px;
|
|
414
|
+
border-bottom: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
415
|
+
overflow-x: auto;
|
|
416
|
+
/* Hide scrollbar on WebKit while still allowing overflow for narrow iframes */
|
|
417
|
+
scrollbar-width: thin;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.solvapay-mcp-tab {
|
|
421
|
+
padding: 8px 12px;
|
|
422
|
+
background: transparent;
|
|
423
|
+
border: none;
|
|
424
|
+
border-bottom: 2px solid transparent;
|
|
425
|
+
color: var(--color-text-secondary, #475569);
|
|
426
|
+
font-size: 13px;
|
|
427
|
+
font-weight: 500;
|
|
428
|
+
cursor: pointer;
|
|
429
|
+
white-space: nowrap;
|
|
430
|
+
transition: color 120ms ease, border-color 120ms ease;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
.solvapay-mcp-tab:hover:not([data-active='true']) {
|
|
434
|
+
color: var(--color-text-primary, #0f172a);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.solvapay-mcp-tab[data-active='true'] {
|
|
438
|
+
color: var(--color-text-primary, #0f172a);
|
|
439
|
+
border-bottom-color: var(--color-background-accent, #0f172a);
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
.solvapay-mcp-tab:focus-visible {
|
|
443
|
+
outline: 2px solid var(--color-background-accent, #0f172a);
|
|
444
|
+
outline-offset: -2px;
|
|
445
|
+
border-radius: 6px;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.solvapay-mcp-shell-layout {
|
|
449
|
+
display: grid;
|
|
450
|
+
grid-template-columns: minmax(0, 1fr);
|
|
451
|
+
gap: 16px;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.solvapay-mcp-shell-body {
|
|
455
|
+
display: flex;
|
|
456
|
+
flex-direction: column;
|
|
457
|
+
gap: 16px;
|
|
458
|
+
min-width: 0;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.solvapay-mcp-shell-panel {
|
|
462
|
+
display: flex;
|
|
463
|
+
flex-direction: column;
|
|
464
|
+
gap: 16px;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/* Wide-iframe sidebar: visible at >= 900px. Hosts with narrow iframes
|
|
468
|
+
* (ChatGPT ~400px, compact Claude Desktop) fall through to the
|
|
469
|
+
* single-column layout with Account in the tab strip. */
|
|
470
|
+
|
|
471
|
+
.solvapay-mcp-shell-sidebar {
|
|
472
|
+
display: none;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
@media (min-width: 900px) {
|
|
476
|
+
.solvapay-mcp-shell-layout {
|
|
477
|
+
grid-template-columns: minmax(0, 1fr) 320px;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.solvapay-mcp-shell-sidebar {
|
|
481
|
+
display: flex;
|
|
482
|
+
flex-direction: column;
|
|
483
|
+
gap: 12px;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/* Account tab is hidden at wide viewports — its content lives in
|
|
487
|
+
* the sidebar. Stays in the DOM so the arrow-key nav is stable;
|
|
488
|
+
* CSS just takes it out of flow. */
|
|
489
|
+
.solvapay-mcp-tab[data-hide-wide='true'] {
|
|
490
|
+
display: none;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.solvapay-mcp-shell-footer {
|
|
495
|
+
padding-top: 8px;
|
|
496
|
+
border-top: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
497
|
+
font-size: 12px;
|
|
498
|
+
text-align: center;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.solvapay-mcp-shell-footer-link {
|
|
502
|
+
color: inherit;
|
|
503
|
+
text-decoration: none;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
.solvapay-mcp-shell-footer-link:hover {
|
|
507
|
+
text-decoration: underline;
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
/* Account view — Customer + Seller details cards
|
|
511
|
+
*
|
|
512
|
+
* Kept self-contained so the same markup renders identically inside
|
|
513
|
+
* `<McpAccountView>` and the wide-iframe sidebar in `<McpAppShell>`.
|
|
514
|
+
*/
|
|
515
|
+
|
|
516
|
+
.solvapay-mcp-account {
|
|
517
|
+
display: flex;
|
|
518
|
+
flex-direction: column;
|
|
519
|
+
gap: 16px;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.solvapay-mcp-detail-grid {
|
|
523
|
+
display: flex;
|
|
524
|
+
flex-direction: column;
|
|
525
|
+
gap: 14px;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
.solvapay-mcp-detail-row {
|
|
529
|
+
display: flex;
|
|
530
|
+
flex-direction: column;
|
|
531
|
+
gap: 2px;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
.solvapay-mcp-detail-label {
|
|
535
|
+
font-size: 10px;
|
|
536
|
+
letter-spacing: 0.08em;
|
|
537
|
+
text-transform: uppercase;
|
|
538
|
+
font-weight: 500;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
.solvapay-mcp-detail-value {
|
|
542
|
+
font-size: 14px;
|
|
543
|
+
color: var(--color-text-primary, #0f172a);
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
.solvapay-mcp-detail-value-mono {
|
|
547
|
+
font-family:
|
|
548
|
+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
|
|
549
|
+
monospace;
|
|
550
|
+
font-size: 12px;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
.solvapay-mcp-detail-link {
|
|
554
|
+
color: var(--color-text-primary, #0f172a);
|
|
555
|
+
font-size: 14px;
|
|
556
|
+
text-decoration: none;
|
|
557
|
+
word-break: break-word;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.solvapay-mcp-detail-link:hover {
|
|
561
|
+
text-decoration: underline;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.solvapay-mcp-detail-heading-row {
|
|
565
|
+
display: flex;
|
|
566
|
+
align-items: center;
|
|
567
|
+
justify-content: space-between;
|
|
568
|
+
gap: 12px;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
.solvapay-mcp-detail-balance-head {
|
|
572
|
+
display: flex;
|
|
573
|
+
align-items: baseline;
|
|
574
|
+
justify-content: space-between;
|
|
575
|
+
gap: 8px;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.solvapay-mcp-verified-badge {
|
|
579
|
+
display: inline-flex;
|
|
580
|
+
align-items: center;
|
|
581
|
+
gap: 4px;
|
|
582
|
+
padding: 2px 8px;
|
|
583
|
+
border-radius: 999px;
|
|
584
|
+
background: var(--color-background-success-subtle, #ecfdf5);
|
|
585
|
+
color: var(--color-text-success, #065f46);
|
|
586
|
+
font-size: 11px;
|
|
587
|
+
font-weight: 500;
|
|
588
|
+
line-height: 1.4;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
/* ---- About view ---- */
|
|
592
|
+
|
|
593
|
+
.solvapay-mcp-about {
|
|
594
|
+
display: flex;
|
|
595
|
+
flex-direction: column;
|
|
596
|
+
gap: 16px;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
.solvapay-mcp-about-product {
|
|
600
|
+
display: flex;
|
|
601
|
+
flex-direction: column;
|
|
602
|
+
gap: 8px;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
.solvapay-mcp-about-image {
|
|
606
|
+
display: block;
|
|
607
|
+
max-height: 160px;
|
|
608
|
+
width: auto;
|
|
609
|
+
align-self: flex-start;
|
|
610
|
+
border-radius: 6px;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
.solvapay-mcp-about-description {
|
|
614
|
+
margin: 0;
|
|
615
|
+
white-space: pre-wrap;
|
|
616
|
+
color: var(--color-text-secondary, #475467);
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
.solvapay-mcp-about-ctas {
|
|
620
|
+
display: flex;
|
|
621
|
+
flex-direction: column;
|
|
622
|
+
gap: 12px;
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
.solvapay-mcp-about-cta-grid {
|
|
626
|
+
display: grid;
|
|
627
|
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
628
|
+
gap: 12px;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
.solvapay-mcp-about-cta {
|
|
632
|
+
display: flex;
|
|
633
|
+
flex-direction: column;
|
|
634
|
+
gap: 8px;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.solvapay-mcp-about-commands {
|
|
638
|
+
padding: 12px 16px;
|
|
639
|
+
border-radius: 8px;
|
|
640
|
+
background: var(--color-background-subtle, #f9fafb);
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.solvapay-mcp-about-command-list {
|
|
644
|
+
list-style: none;
|
|
645
|
+
padding: 0;
|
|
646
|
+
margin: 0;
|
|
647
|
+
display: flex;
|
|
648
|
+
flex-direction: column;
|
|
649
|
+
gap: 4px;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.solvapay-mcp-about-command {
|
|
653
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;
|
|
654
|
+
font-size: 13px;
|
|
655
|
+
padding: 1px 6px;
|
|
656
|
+
border-radius: 4px;
|
|
657
|
+
background: var(--color-background-raised, #eef2f6);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.solvapay-mcp-about-activity {
|
|
661
|
+
border: 1px solid var(--color-border-default, #e4e7ec);
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
/* ---- Back-link primitive ---- */
|
|
665
|
+
|
|
666
|
+
.solvapay-mcp-back-link {
|
|
667
|
+
appearance: none;
|
|
668
|
+
background: none;
|
|
669
|
+
border: none;
|
|
670
|
+
/* Horizontal padding gives hover/tap area around the label; the
|
|
671
|
+
* negative margin keeps the visible arrow flush with the card's
|
|
672
|
+
* content edge so it doesn't look inset. */
|
|
673
|
+
padding: 4px 8px;
|
|
674
|
+
margin: 0 -8px 8px -8px;
|
|
675
|
+
display: inline-flex;
|
|
676
|
+
align-items: center;
|
|
677
|
+
gap: 6px;
|
|
678
|
+
color: var(--color-text-secondary, #475467);
|
|
679
|
+
font-size: 13px;
|
|
680
|
+
cursor: pointer;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
.solvapay-mcp-back-link:hover {
|
|
684
|
+
color: var(--color-text-primary, #101828);
|
|
685
|
+
text-decoration: underline;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
.solvapay-mcp-back-link-glyph {
|
|
689
|
+
font-weight: 500;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
/* ---- External-link glyph ---- */
|
|
693
|
+
|
|
694
|
+
.solvapay-mcp-external-glyph {
|
|
695
|
+
display: inline-block;
|
|
696
|
+
opacity: 0.75;
|
|
697
|
+
font-size: 0.9em;
|
|
698
|
+
letter-spacing: 0.02em;
|
|
699
|
+
vertical-align: -0.1em;
|
|
700
|
+
margin-left: 0.35em;
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
/* ---- Plan actions row ---- */
|
|
704
|
+
|
|
705
|
+
.solvapay-mcp-plan-actions {
|
|
706
|
+
display: flex;
|
|
707
|
+
flex-direction: column;
|
|
708
|
+
gap: 8px;
|
|
709
|
+
margin-top: 12px;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
.solvapay-mcp-plan-topup-prompt {
|
|
713
|
+
display: flex;
|
|
714
|
+
flex-direction: column;
|
|
715
|
+
gap: 8px;
|
|
716
|
+
margin-top: 12px;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
/* ---- First-run tour ---- */
|
|
720
|
+
|
|
721
|
+
.solvapay-mcp-tour-overlay {
|
|
722
|
+
position: fixed;
|
|
723
|
+
inset: 0;
|
|
724
|
+
pointer-events: none;
|
|
725
|
+
z-index: 1000;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
.solvapay-mcp-tour-popover {
|
|
729
|
+
position: fixed;
|
|
730
|
+
max-width: 280px;
|
|
731
|
+
pointer-events: auto;
|
|
732
|
+
padding: 12px 16px;
|
|
733
|
+
border-radius: 8px;
|
|
734
|
+
background: var(--color-background-elevated, #ffffff);
|
|
735
|
+
box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12);
|
|
736
|
+
border: 1px solid var(--color-border-default, #e4e7ec);
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
.solvapay-mcp-tour-title {
|
|
740
|
+
margin: 0 0 4px 0;
|
|
741
|
+
font-size: 14px;
|
|
742
|
+
font-weight: 600;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
.solvapay-mcp-tour-body {
|
|
746
|
+
margin: 0 0 12px 0;
|
|
747
|
+
font-size: 13px;
|
|
748
|
+
color: var(--color-text-secondary, #475467);
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
.solvapay-mcp-tour-actions {
|
|
752
|
+
display: flex;
|
|
753
|
+
align-items: center;
|
|
754
|
+
justify-content: space-between;
|
|
755
|
+
gap: 8px;
|
|
756
|
+
font-size: 12px;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
.solvapay-mcp-tour-skip,
|
|
760
|
+
.solvapay-mcp-tour-next {
|
|
761
|
+
appearance: none;
|
|
762
|
+
background: none;
|
|
763
|
+
border: none;
|
|
764
|
+
padding: 4px 8px;
|
|
765
|
+
cursor: pointer;
|
|
766
|
+
border-radius: 4px;
|
|
767
|
+
font-size: 13px;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
.solvapay-mcp-tour-next {
|
|
771
|
+
background: var(--color-background-primary, #0f172a);
|
|
772
|
+
color: var(--color-text-on-primary, #ffffff);
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
.solvapay-mcp-tour-progress {
|
|
776
|
+
color: var(--color-text-tertiary, #667085);
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.solvapay-mcp-tour-replay {
|
|
780
|
+
appearance: none;
|
|
781
|
+
background: none;
|
|
782
|
+
border: 1px solid var(--color-border-default, #e4e7ec);
|
|
783
|
+
border-radius: 999px;
|
|
784
|
+
width: 24px;
|
|
785
|
+
height: 24px;
|
|
786
|
+
cursor: pointer;
|
|
787
|
+
font-size: 13px;
|
|
788
|
+
line-height: 1;
|
|
789
|
+
color: var(--color-text-secondary, #475467);
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
.solvapay-mcp-tour-replay:hover {
|
|
793
|
+
color: var(--color-text-primary, #101828);
|
|
794
|
+
}
|
|
795
|
+
|
|
796
|
+
/* --- McpUpsellStrip / McpNudgeView --- */
|
|
797
|
+
|
|
798
|
+
.solvapay-mcp-upsell-strip {
|
|
799
|
+
display: flex;
|
|
800
|
+
align-items: center;
|
|
801
|
+
justify-content: space-between;
|
|
802
|
+
gap: 12px;
|
|
803
|
+
padding: 10px 14px;
|
|
804
|
+
border-radius: 8px;
|
|
805
|
+
border: 1px solid var(--color-border-primary, #e4e7ec);
|
|
806
|
+
background: var(--color-background-secondary, #f9fafb);
|
|
807
|
+
color: var(--color-text-primary, #101828);
|
|
808
|
+
font-size: 13px;
|
|
809
|
+
line-height: 1.5;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.solvapay-mcp-upsell-strip--low-balance,
|
|
813
|
+
.solvapay-mcp-upsell-strip--approaching-limit {
|
|
814
|
+
border-color: var(--color-border-warning, #fedf89);
|
|
815
|
+
background: var(--color-background-warning-subtle, #fffaeb);
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
.solvapay-mcp-upsell-strip--cycle-ending {
|
|
819
|
+
border-color: var(--color-border-brand, #d6bbfb);
|
|
820
|
+
background: var(--color-background-brand-subtle, #f9f5ff);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
.solvapay-mcp-upsell-strip-message {
|
|
824
|
+
flex: 1 1 auto;
|
|
825
|
+
min-width: 0;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
.solvapay-mcp-upsell-strip-actions {
|
|
829
|
+
display: inline-flex;
|
|
830
|
+
align-items: center;
|
|
831
|
+
gap: 6px;
|
|
832
|
+
flex: 0 0 auto;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
.solvapay-mcp-upsell-strip-cta {
|
|
836
|
+
background: var(--color-background-primary, #ffffff);
|
|
837
|
+
border: 1px solid var(--color-border-primary, #d0d5dd);
|
|
838
|
+
border-radius: 6px;
|
|
839
|
+
padding: 4px 10px;
|
|
840
|
+
font-size: 12px;
|
|
841
|
+
font-weight: 600;
|
|
842
|
+
cursor: pointer;
|
|
843
|
+
color: inherit;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
.solvapay-mcp-upsell-strip-cta:hover {
|
|
847
|
+
background: var(--color-background-primary-hover, #f4ebff);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
.solvapay-mcp-upsell-strip-dismiss {
|
|
851
|
+
background: transparent;
|
|
852
|
+
border: none;
|
|
853
|
+
width: 20px;
|
|
854
|
+
height: 20px;
|
|
855
|
+
font-size: 18px;
|
|
856
|
+
line-height: 1;
|
|
857
|
+
cursor: pointer;
|
|
858
|
+
color: var(--color-text-secondary, #475467);
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
.solvapay-mcp-upsell-strip-dismiss:hover {
|
|
862
|
+
color: var(--color-text-primary, #101828);
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
.solvapay-mcp-nudge-view {
|
|
866
|
+
display: flex;
|
|
867
|
+
flex-direction: column;
|
|
868
|
+
gap: 12px;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
.solvapay-mcp-nudge-data {
|
|
872
|
+
margin: 0;
|
|
873
|
+
padding: 12px;
|
|
874
|
+
border-radius: 6px;
|
|
875
|
+
background: var(--color-background-secondary, #f9fafb);
|
|
876
|
+
color: var(--color-text-primary, #101828);
|
|
877
|
+
font-size: 12px;
|
|
878
|
+
line-height: 1.5;
|
|
879
|
+
overflow-x: auto;
|
|
880
|
+
white-space: pre-wrap;
|
|
881
|
+
word-break: break-word;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
/* --- Checkout view (activation state machine) ---
|
|
885
|
+
*
|
|
886
|
+
* Styles for the two-branch <McpCheckoutView>: PlanStep → AmountStep →
|
|
887
|
+
* PaygPaymentStep / RecurringPaymentStep → SuccessStep. Palette is
|
|
888
|
+
* strictly the same monochrome family as the rest of the MCP shell —
|
|
889
|
+
* white surfaces, secondary-border greys, subtle-bg fills, primary
|
|
890
|
+
* slate ink, secondary slate for muted copy. No warning tints, no
|
|
891
|
+
* success halo — `.solvapay-mcp-error` is the only chromatic note and
|
|
892
|
+
* it stays untouched for a11y semantics. */
|
|
893
|
+
|
|
894
|
+
.solvapay-mcp-checkout-banner {
|
|
895
|
+
display: flex;
|
|
896
|
+
flex-direction: column;
|
|
897
|
+
gap: 4px;
|
|
898
|
+
padding: 12px;
|
|
899
|
+
border-radius: var(--border-radius-md, 8px);
|
|
900
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
901
|
+
background: var(--color-background-subtle, #f9fafb);
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
.solvapay-mcp-checkout-banner-title {
|
|
905
|
+
font-size: 13px;
|
|
906
|
+
font-weight: 600;
|
|
907
|
+
color: var(--color-text-primary, #0f172a);
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
.solvapay-mcp-checkout-banner-message {
|
|
911
|
+
font-size: 13px;
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
.solvapay-mcp-checkout-dismiss {
|
|
915
|
+
align-self: center;
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
.solvapay-mcp-checkout-order-summary {
|
|
919
|
+
display: flex;
|
|
920
|
+
flex-direction: column;
|
|
921
|
+
gap: 6px;
|
|
922
|
+
padding: 12px;
|
|
923
|
+
border-radius: var(--border-radius-md, 8px);
|
|
924
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
925
|
+
background: var(--color-background-subtle, #f9fafb);
|
|
926
|
+
}
|
|
927
|
+
|
|
928
|
+
.solvapay-mcp-checkout-order-summary-row {
|
|
929
|
+
display: flex;
|
|
930
|
+
justify-content: space-between;
|
|
931
|
+
align-items: baseline;
|
|
932
|
+
gap: 12px;
|
|
933
|
+
font-size: 13px;
|
|
934
|
+
font-variant-numeric: tabular-nums;
|
|
935
|
+
color: var(--color-text-primary, #0f172a);
|
|
936
|
+
}
|
|
937
|
+
|
|
938
|
+
.solvapay-mcp-checkout-save-card {
|
|
939
|
+
display: flex;
|
|
940
|
+
align-items: center;
|
|
941
|
+
gap: 8px;
|
|
942
|
+
font-size: 13px;
|
|
943
|
+
color: var(--color-text-secondary, #475569);
|
|
944
|
+
cursor: pointer;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
.solvapay-mcp-checkout-save-card input[type='checkbox'] {
|
|
948
|
+
margin: 0;
|
|
949
|
+
cursor: pointer;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
.solvapay-mcp-checkout-terms {
|
|
953
|
+
margin: 0;
|
|
954
|
+
font-size: 12px;
|
|
955
|
+
line-height: 1.5;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
.solvapay-mcp-checkout-receipt {
|
|
959
|
+
display: flex;
|
|
960
|
+
flex-direction: column;
|
|
961
|
+
gap: 8px;
|
|
962
|
+
margin: 0;
|
|
963
|
+
padding: 12px;
|
|
964
|
+
border-radius: var(--border-radius-md, 8px);
|
|
965
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
966
|
+
background: var(--color-background-subtle, #f9fafb);
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
.solvapay-mcp-checkout-receipt-row {
|
|
970
|
+
display: flex;
|
|
971
|
+
justify-content: space-between;
|
|
972
|
+
align-items: baseline;
|
|
973
|
+
gap: 12px;
|
|
974
|
+
font-size: 13px;
|
|
975
|
+
font-variant-numeric: tabular-nums;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
.solvapay-mcp-checkout-receipt-row dt {
|
|
979
|
+
margin: 0;
|
|
980
|
+
color: var(--color-text-secondary, #475569);
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
.solvapay-mcp-checkout-receipt-row dd {
|
|
984
|
+
margin: 0;
|
|
985
|
+
color: var(--color-text-primary, #0f172a);
|
|
986
|
+
font-weight: 500;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
/* Flat checkmark — no green halo. The glyph alone signals success,
|
|
990
|
+
* consistent with the monochrome card aesthetic. */
|
|
991
|
+
.solvapay-mcp-checkout-success-check {
|
|
992
|
+
align-self: flex-start;
|
|
993
|
+
display: inline-flex;
|
|
994
|
+
align-items: center;
|
|
995
|
+
justify-content: center;
|
|
996
|
+
width: 32px;
|
|
997
|
+
height: 32px;
|
|
998
|
+
border-radius: 50%;
|
|
999
|
+
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
1000
|
+
background: var(--color-background-primary, #ffffff);
|
|
1001
|
+
color: var(--color-text-primary, #0f172a);
|
|
1002
|
+
font-size: 18px;
|
|
1003
|
+
line-height: 1;
|
|
1004
|
+
}
|
|
1005
|
+
|
|
1006
|
+
.solvapay-mcp-checkout-manage-pointer {
|
|
1007
|
+
margin: 0;
|
|
1008
|
+
font-size: 12px;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
.solvapay-mcp-checkout-manage-pointer code {
|
|
1012
|
+
padding: 1px 6px;
|
|
1013
|
+
border-radius: 4px;
|
|
1014
|
+
background: var(--color-background-subtle, #f9fafb);
|
|
1015
|
+
font-family:
|
|
1016
|
+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
|
|
1017
|
+
monospace;
|
|
1018
|
+
font-size: 12px;
|
|
1019
|
+
color: var(--color-text-primary, #0f172a);
|
|
1020
|
+
}
|