@solvapay/react 2.1.1 → 2.2.0-preview-e3e546693c002c32f128d83bf6c5fe76ac182a79
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 +23 -2
- package/dist/UsageMeter-BhxNHeRM.d.ts +74 -0
- package/dist/UsageMeter-rga6cyfB.d.cts +74 -0
- package/dist/chunk-FWT62B56.js +316 -0
- package/dist/{chunk-LL6AYSTC.js → chunk-VTGYZIE2.js} +1734 -688
- package/dist/{chunk-HQH6KSXJ.js → chunk-X65JBC2A.js} +419 -810
- package/dist/{index-CBWGkBqF.d.ts → index-BJGjKUtC.d.cts} +46 -39
- package/dist/{index-SylJb9Rh.d.cts → index-PsjS_d7V.d.ts} +46 -39
- package/dist/index.cjs +2284 -1580
- package/dist/index.d.cts +110 -25
- package/dist/index.d.ts +110 -25
- package/dist/index.js +388 -46
- package/dist/mcp/index.cjs +6537 -3396
- package/dist/mcp/index.d.cts +637 -158
- package/dist/mcp/index.d.ts +637 -158
- package/dist/mcp/index.js +3421 -1004
- package/dist/mcp/styles.css +1422 -500
- package/dist/primitives/index.cjs +1635 -1031
- package/dist/primitives/index.d.cts +19 -76
- package/dist/primitives/index.d.ts +19 -76
- package/dist/primitives/index.js +3 -3
- package/dist/styles.css +60 -10
- package/dist/{shared-CUl6mTC1.d.ts → useUsage-CMqxEF9d.d.ts} +387 -53
- package/dist/{shared-D0hmT1qU.d.cts → useUsage-CTgRBvFK.d.cts} +387 -53
- package/package.json +5 -5
- package/dist/chunk-QXNNMNCV.js +0 -579
package/dist/mcp/styles.css
CHANGED
|
@@ -1,15 +1,56 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Default styles for `<McpApp>` and the per-view primitives.
|
|
3
3
|
*
|
|
4
|
-
* Opt-in via `import '@solvapay/react/mcp/styles.css'`.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Opt-in via `import '@solvapay/react/mcp/styles.css'`. Host-owned
|
|
5
|
+
* tokens (`--color-*`, `--font-*`, `--border-radius-*`) are defined
|
|
6
|
+
* once on `:root` with `light-dark()` so hosts that publish nothing
|
|
7
|
+
* still get a WCAG-compliant palette, and hosts that publish tokens
|
|
8
|
+
* win. `html`/`body` stay transparent so the host canvas shows
|
|
9
|
+
* through; the card is a hairline frame, not a filled sheet.
|
|
8
10
|
*
|
|
9
11
|
* All classes start with `solvapay-mcp-` so they don't collide with the
|
|
10
12
|
* core `@solvapay/react` styles or with integrator-supplied classes.
|
|
11
13
|
*/
|
|
12
14
|
|
|
15
|
+
:root {
|
|
16
|
+
color-scheme: light dark;
|
|
17
|
+
|
|
18
|
+
--color-background-primary: light-dark(#FFFFFF, #171717);
|
|
19
|
+
--color-background-secondary: light-dark(#F4F4F4, #262626);
|
|
20
|
+
--color-text-primary: light-dark(#171717, #FAF9F5);
|
|
21
|
+
--color-text-secondary: light-dark(#6B6A67, #A3A29E);
|
|
22
|
+
--color-border-primary: light-dark(#8A8A8A, #7E7E7E);
|
|
23
|
+
--color-border-secondary: light-dark(#D9D9D9, #3A3A3A);
|
|
24
|
+
--color-background-inverse: light-dark(#171717, #FAF9F5);
|
|
25
|
+
--color-text-inverse: light-dark(#FFFFFF, #171717);
|
|
26
|
+
--color-text-warning: light-dark(#78350F, #FBBF24);
|
|
27
|
+
--color-background-warning: light-dark(#FFFBEB, #3D2E00);
|
|
28
|
+
--color-text-danger: var(--solvapay-danger);
|
|
29
|
+
--color-background-danger: light-dark(#FEF2F2, #3F1D1D);
|
|
30
|
+
--color-ring-primary: var(--solvapay-selection);
|
|
31
|
+
|
|
32
|
+
--solvapay-row-hover: light-dark(#FAFAFA, #1F1F1F);
|
|
33
|
+
--solvapay-control-hover: light-dark(#F5F5F5, #2A2A2A);
|
|
34
|
+
--solvapay-selection: light-dark(#4D89A2, #6B9CAE);
|
|
35
|
+
--solvapay-selection-wash: light-dark(#F2F7F9, #1C2B34);
|
|
36
|
+
--solvapay-danger: light-dark(#C4322A, #F97066);
|
|
37
|
+
--solvapay-identifier: light-dark(#65659B, #9B9BE0);
|
|
38
|
+
--solvapay-accent: light-dark(#000000, #E8E8E8);
|
|
39
|
+
--solvapay-accent-text: light-dark(#FFFFFF, #171717);
|
|
40
|
+
|
|
41
|
+
--font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
|
|
42
|
+
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
|
|
43
|
+
'Courier New', monospace;
|
|
44
|
+
|
|
45
|
+
--border-radius-xs: 4px;
|
|
46
|
+
--border-radius-sm: 4px;
|
|
47
|
+
--border-radius-md: 8px;
|
|
48
|
+
--border-radius-lg: 8px;
|
|
49
|
+
--border-radius-xl: 16px;
|
|
50
|
+
--border-radius-full: 9999px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
13
54
|
*,
|
|
14
55
|
*::before,
|
|
15
56
|
*::after {
|
|
@@ -20,18 +61,10 @@ html,
|
|
|
20
61
|
body {
|
|
21
62
|
margin: 0;
|
|
22
63
|
padding: 0;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-apple-system,
|
|
28
|
-
BlinkMacSystemFont,
|
|
29
|
-
'Segoe UI',
|
|
30
|
-
Roboto,
|
|
31
|
-
Oxygen,
|
|
32
|
-
Ubuntu,
|
|
33
|
-
sans-serif
|
|
34
|
-
);
|
|
64
|
+
/* Host canvas shows through. The iframe is a guest, not a sheet. */
|
|
65
|
+
background: transparent;
|
|
66
|
+
color: var(--color-text-primary);
|
|
67
|
+
font-family: var(--font-sans);
|
|
35
68
|
font-size: 14px;
|
|
36
69
|
line-height: 1.5;
|
|
37
70
|
}
|
|
@@ -41,85 +74,85 @@ body {
|
|
|
41
74
|
padding: 16px;
|
|
42
75
|
}
|
|
43
76
|
|
|
44
|
-
/*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* Both the sidebar lift (below) and the per-step content (button,
|
|
51
|
-
* payment form, plan-selector grid) inherit this cap, so the form
|
|
52
|
-
* stays centred in the iframe and `Provided by SolvaPay · Terms ·
|
|
53
|
-
* Privacy` aligns to the card's left/right edges rather than the
|
|
54
|
-
* iframe's.
|
|
55
|
-
*
|
|
56
|
-
* SEP-1865 §"Container Dimensions" delegates the size choice to the
|
|
57
|
-
* View when the host omits `containerDimensions.width`/`maxWidth`
|
|
58
|
-
* (Unbounded mode). Anthropic's PRIMARY use case (Claude Desktop
|
|
59
|
-
* ~400-500px) and OpenAI's inline examples (220-360px) are both
|
|
60
|
-
* narrower than 480, so the cap is a no-op there and content fills,
|
|
61
|
-
* matching Anthropic's "apps fill the container width" guidance.
|
|
62
|
-
* Surfaces that need the full host viewport can still request
|
|
63
|
-
* `displayMode: "fullscreen"`. */
|
|
77
|
+
/* Fill the host container. Anthropic: "Apps always fill the
|
|
78
|
+
* container width — there are no fixed breakpoints." `main` stays
|
|
79
|
+
* `width: 100%` so `@container mcp (min-width: 760px)` sees the
|
|
80
|
+
* host. The visual widget — chrome, loading card, shell — is one
|
|
81
|
+
* centered 760px block (no-op below that width). Fullscreen lifts
|
|
82
|
+
* the cap and becomes a centered 1000px hosted column. */
|
|
64
83
|
.solvapay-mcp-main {
|
|
84
|
+
--solvapay-surface: var(--color-background-primary);
|
|
85
|
+
--solvapay-muted: var(--color-background-secondary);
|
|
86
|
+
--solvapay-muted-foreground: var(--color-text-secondary);
|
|
87
|
+
--solvapay-border: var(--color-border-secondary);
|
|
88
|
+
--solvapay-destructive: var(--solvapay-danger);
|
|
89
|
+
--solvapay-accent-foreground: var(--solvapay-accent-text);
|
|
90
|
+
--solvapay-font: var(--font-sans);
|
|
91
|
+
--solvapay-radius: var(--border-radius-md);
|
|
92
|
+
--solvapay-usage-safe: var(--color-text-primary);
|
|
93
|
+
--solvapay-usage-warning: var(--color-text-warning);
|
|
94
|
+
--solvapay-usage-critical: var(--color-text-warning);
|
|
95
|
+
--solvapay-success: var(--color-background-inverse);
|
|
96
|
+
|
|
97
|
+
/* Shared type scale. Ten levels is a product decision — the host
|
|
98
|
+
* publishes three. Narrow (420) is the default; the 760px query
|
|
99
|
+
* lifts the inline density tokens below. */
|
|
100
|
+
--solvapay-type-display: 600 36px/1.22 var(--font-sans);
|
|
101
|
+
--solvapay-type-heading: 600 24px/1.29 var(--font-sans);
|
|
102
|
+
--solvapay-type-price: 500 40px/1 var(--font-sans);
|
|
103
|
+
--solvapay-type-row: 600 18px/1.3 var(--font-sans);
|
|
104
|
+
--solvapay-type-body: 400 15px/1.5 var(--font-sans);
|
|
105
|
+
--solvapay-type-label: 500 14px/1.4 var(--font-sans);
|
|
106
|
+
--solvapay-type-caption: 400 13px/1.5 var(--font-sans);
|
|
107
|
+
--solvapay-type-eyebrow-step: 500 15px/1.87 var(--font-sans);
|
|
108
|
+
--solvapay-type-eyebrow-rail: 400 12px/1.67 var(--font-sans);
|
|
109
|
+
--solvapay-type-balance: 500 30px/1 var(--font-sans);
|
|
110
|
+
--solvapay-type-title: 600 18px/1.3 var(--font-sans);
|
|
111
|
+
--solvapay-type-plan-row: 600 15px/1.3 var(--font-sans);
|
|
112
|
+
--solvapay-type-total: 500 22px/1.2 var(--font-sans);
|
|
113
|
+
--solvapay-type-rail-hero: 500 32px/1 var(--font-sans);
|
|
114
|
+
--solvapay-card-padding: 20px;
|
|
115
|
+
--solvapay-section-gap: 18px;
|
|
116
|
+
--solvapay-control-height: 44px;
|
|
117
|
+
--solvapay-cta-height: 48px;
|
|
118
|
+
|
|
119
|
+
container-type: inline-size;
|
|
120
|
+
container-name: mcp;
|
|
65
121
|
display: flex;
|
|
66
122
|
flex-direction: column;
|
|
67
123
|
gap: 12px;
|
|
68
|
-
|
|
124
|
+
width: 100%;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.solvapay-mcp-chrome-row,
|
|
128
|
+
.solvapay-mcp-main > .solvapay-mcp-card,
|
|
129
|
+
.solvapay-mcp-shell {
|
|
130
|
+
width: 100%;
|
|
131
|
+
max-inline-size: 760px;
|
|
69
132
|
margin-inline: auto;
|
|
70
133
|
}
|
|
71
134
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
*
|
|
79
|
-
* The lift is gated behind `@media (min-width: 816px)` so it only
|
|
80
|
-
* fires when the iframe is actually wide enough to render the
|
|
81
|
-
* sidebar. Without that gate, on iframes between 480 and 815 the
|
|
82
|
-
* cap would lift to 816 but the iframe would shrink the main to
|
|
83
|
-
* its own width — the body would sit at 480 anchored to the left
|
|
84
|
-
* of a 700px main, and the footer's `space-between` would spread
|
|
85
|
-
* `Provided by SolvaPay · Terms · Privacy` to the iframe edges
|
|
86
|
-
* instead of the body's edges. With the gate, those iframes treat
|
|
87
|
-
* the authed user like the unauthed path: main stays at 480 and
|
|
88
|
-
* the inline `<McpCustomerDetailsCard>` carries the account
|
|
89
|
-
* context that the sidebar would have shown.
|
|
90
|
-
*
|
|
91
|
-
* The `:has()` selector is intentionally view-agnostic — the shell
|
|
92
|
-
* controls when the aside actually mounts via the customer-present
|
|
93
|
-
* gate. Unauthenticated bootstraps never trigger the lift. */
|
|
94
|
-
@media (min-width: 816px) {
|
|
95
|
-
.solvapay-mcp-main:has(.solvapay-mcp-shell-sidebar) {
|
|
96
|
-
max-inline-size: 816px;
|
|
97
|
-
}
|
|
135
|
+
.solvapay-mcp-chrome-row {
|
|
136
|
+
display: flex;
|
|
137
|
+
align-items: center;
|
|
138
|
+
justify-content: space-between;
|
|
139
|
+
gap: 8px;
|
|
140
|
+
min-width: 0;
|
|
98
141
|
}
|
|
99
142
|
|
|
100
|
-
.solvapay-mcp-
|
|
101
|
-
|
|
102
|
-
font-size: 20px;
|
|
103
|
-
font-weight: 600;
|
|
143
|
+
.solvapay-mcp-chrome-row:empty {
|
|
144
|
+
display: none;
|
|
104
145
|
}
|
|
105
146
|
|
|
106
147
|
.solvapay-mcp-card {
|
|
107
148
|
display: flex;
|
|
108
149
|
flex-direction: column;
|
|
109
|
-
gap:
|
|
110
|
-
padding:
|
|
111
|
-
|
|
112
|
-
border:
|
|
113
|
-
|
|
114
|
-
box-shadow: var(--shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.05));
|
|
150
|
+
gap: var(--solvapay-section-gap);
|
|
151
|
+
padding: var(--solvapay-card-padding);
|
|
152
|
+
/* Hairline frame only — no fill, no shadow. Host tokens win. */
|
|
153
|
+
border-radius: var(--border-radius-xl);
|
|
154
|
+
border: 1px solid var(--color-border-primary);
|
|
115
155
|
transition: opacity 180ms ease;
|
|
116
|
-
/* Dampens iframe shrink → grow round-trips when a brief
|
|
117
|
-
* "Loading…" interstitial paints between bootstrap re-fetches
|
|
118
|
-
* during `account` ↔ `checkout` ↔ `topup` view swaps. Kept below
|
|
119
|
-
* the natural height of the simplest real card (PAYG account
|
|
120
|
-
* state) so content drives sizing and we don't trail awkward
|
|
121
|
-
* empty space under short cards. */
|
|
122
|
-
min-height: 160px;
|
|
123
156
|
}
|
|
124
157
|
|
|
125
158
|
/*
|
|
@@ -143,7 +176,7 @@ body {
|
|
|
143
176
|
.solvapay-mcp-app-header-initials {
|
|
144
177
|
width: 20px;
|
|
145
178
|
height: 20px;
|
|
146
|
-
border-radius:
|
|
179
|
+
border-radius: var(--border-radius-sm);
|
|
147
180
|
flex: 0 0 auto;
|
|
148
181
|
}
|
|
149
182
|
|
|
@@ -155,8 +188,8 @@ body {
|
|
|
155
188
|
display: inline-flex;
|
|
156
189
|
align-items: center;
|
|
157
190
|
justify-content: center;
|
|
158
|
-
background: var(--color-background-secondary
|
|
159
|
-
color: var(--color-text-secondary
|
|
191
|
+
background: var(--color-background-secondary);
|
|
192
|
+
color: var(--color-text-secondary);
|
|
160
193
|
font-size: 10px;
|
|
161
194
|
font-weight: 600;
|
|
162
195
|
}
|
|
@@ -164,7 +197,7 @@ body {
|
|
|
164
197
|
.solvapay-mcp-app-header-name {
|
|
165
198
|
font-size: 13px;
|
|
166
199
|
font-weight: 500;
|
|
167
|
-
color: var(--color-text-secondary
|
|
200
|
+
color: var(--color-text-secondary);
|
|
168
201
|
white-space: nowrap;
|
|
169
202
|
overflow: hidden;
|
|
170
203
|
text-overflow: ellipsis;
|
|
@@ -238,10 +271,10 @@ body {
|
|
|
238
271
|
.solvapay-mcp-currency-switch {
|
|
239
272
|
flex: 0 0 auto;
|
|
240
273
|
padding: 4px 8px;
|
|
241
|
-
border: 1px solid var(--color-border
|
|
242
|
-
border-radius:
|
|
243
|
-
background:
|
|
244
|
-
color: var(--color-text
|
|
274
|
+
border: 1px solid var(--color-border-primary);
|
|
275
|
+
border-radius: var(--border-radius-sm);
|
|
276
|
+
background: transparent;
|
|
277
|
+
color: var(--color-text-primary);
|
|
245
278
|
font-size: 13px;
|
|
246
279
|
font-weight: 600;
|
|
247
280
|
cursor: pointer;
|
|
@@ -249,15 +282,15 @@ body {
|
|
|
249
282
|
|
|
250
283
|
.solvapay-mcp-muted {
|
|
251
284
|
margin: 0;
|
|
252
|
-
color: var(--color-text-secondary
|
|
285
|
+
color: var(--color-text-secondary);
|
|
253
286
|
font-size: 13px;
|
|
254
287
|
}
|
|
255
288
|
|
|
256
289
|
.solvapay-mcp-notice {
|
|
257
290
|
padding: 12px;
|
|
258
|
-
border-radius:
|
|
259
|
-
background: var(--color-background-warning
|
|
260
|
-
color: var(--color-text-warning
|
|
291
|
+
border-radius: var(--border-radius-md);
|
|
292
|
+
background: var(--color-background-warning);
|
|
293
|
+
color: var(--color-text-warning);
|
|
261
294
|
font-size: 13px;
|
|
262
295
|
display: flex;
|
|
263
296
|
flex-direction: column;
|
|
@@ -271,9 +304,9 @@ body {
|
|
|
271
304
|
.solvapay-mcp-error {
|
|
272
305
|
margin: 0;
|
|
273
306
|
padding: 12px;
|
|
274
|
-
border-radius:
|
|
275
|
-
background: var(--color-background-danger
|
|
276
|
-
color: var(--color-text-danger
|
|
307
|
+
border-radius: var(--border-radius-md);
|
|
308
|
+
background: var(--color-background-danger);
|
|
309
|
+
color: var(--color-text-danger);
|
|
277
310
|
font-size: 13px;
|
|
278
311
|
}
|
|
279
312
|
|
|
@@ -290,10 +323,10 @@ body {
|
|
|
290
323
|
gap: 8px;
|
|
291
324
|
width: 100%;
|
|
292
325
|
padding: 10px 16px;
|
|
293
|
-
border-radius: var(--border-radius-md
|
|
326
|
+
border-radius: var(--border-radius-md);
|
|
294
327
|
border: none;
|
|
295
|
-
background: var(--color-background-
|
|
296
|
-
color: var(--color-text-
|
|
328
|
+
background: var(--color-background-inverse);
|
|
329
|
+
color: var(--color-text-inverse);
|
|
297
330
|
font-size: 14px;
|
|
298
331
|
font-weight: 500;
|
|
299
332
|
text-decoration: none;
|
|
@@ -315,14 +348,14 @@ body {
|
|
|
315
348
|
padding: 0;
|
|
316
349
|
background: none;
|
|
317
350
|
border: none;
|
|
318
|
-
color: var(--color-text-secondary
|
|
351
|
+
color: var(--color-text-secondary);
|
|
319
352
|
font-size: 13px;
|
|
320
353
|
cursor: pointer;
|
|
321
354
|
text-decoration: underline;
|
|
322
355
|
}
|
|
323
356
|
|
|
324
357
|
.solvapay-mcp-link-button:hover {
|
|
325
|
-
color: var(--color-text-primary
|
|
358
|
+
color: var(--color-text-primary);
|
|
326
359
|
}
|
|
327
360
|
|
|
328
361
|
.solvapay-mcp-awaiting-header {
|
|
@@ -341,8 +374,8 @@ body {
|
|
|
341
374
|
display: inline-block;
|
|
342
375
|
width: 16px;
|
|
343
376
|
height: 16px;
|
|
344
|
-
border: 2px solid var(--color-border-secondary
|
|
345
|
-
border-top-color: var(--color-background-
|
|
377
|
+
border: 2px solid var(--color-border-secondary);
|
|
378
|
+
border-top-color: var(--color-background-inverse);
|
|
346
379
|
border-radius: 50%;
|
|
347
380
|
animation: solvapay-mcp-spin 0.8s linear infinite;
|
|
348
381
|
}
|
|
@@ -355,6 +388,41 @@ body {
|
|
|
355
388
|
|
|
356
389
|
/* Account view */
|
|
357
390
|
|
|
391
|
+
/* `<CurrentPlanCard>` ships its own card frame for standalone web
|
|
392
|
+
* surfaces. Inside the MCP account view the surrounding
|
|
393
|
+
* `.solvapay-mcp-card` already IS the frame, so the default chrome
|
|
394
|
+
* nested a second bordered box and doubled the inset (16px card
|
|
395
|
+
* padding + 16px card padding). Flatten it: the plan facts then align
|
|
396
|
+
* to the same left edge and 16px gutter as the heading, the CTA, and
|
|
397
|
+
* every other MCP surface (checkout, topup, success). */
|
|
398
|
+
.solvapay-mcp-account [data-solvapay-current-plan-card] {
|
|
399
|
+
padding: 0;
|
|
400
|
+
border: 0;
|
|
401
|
+
background: none;
|
|
402
|
+
border-radius: 0;
|
|
403
|
+
gap: 10px;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/* Type scale inside the flattened plan card, descending from the
|
|
407
|
+
* surface title so each rank is legible at a glance:
|
|
408
|
+
* 18 title → 16 plan name → 14 captioned value → 13 muted date
|
|
409
|
+
* → 11 field label. Left at the sheet defaults the plan name and the
|
|
410
|
+
* price both land near 18px and compete with the title. */
|
|
411
|
+
.solvapay-mcp-account [data-solvapay-current-plan-name] {
|
|
412
|
+
font-size: 16px;
|
|
413
|
+
line-height: 1.3;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.solvapay-mcp-account [data-solvapay-current-plan-price],
|
|
417
|
+
.solvapay-mcp-account [data-solvapay-current-plan-balance-line] {
|
|
418
|
+
font-size: 14px;
|
|
419
|
+
font-weight: 600;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
.solvapay-mcp-account [data-solvapay-current-plan-field-label] {
|
|
423
|
+
color: var(--color-text-secondary);
|
|
424
|
+
}
|
|
425
|
+
|
|
358
426
|
.solvapay-mcp-account-credit-stack {
|
|
359
427
|
flex: 1;
|
|
360
428
|
}
|
|
@@ -406,10 +474,10 @@ body {
|
|
|
406
474
|
|
|
407
475
|
.solvapay-mcp-amount-option {
|
|
408
476
|
padding: 6px 14px;
|
|
409
|
-
border-radius:
|
|
410
|
-
border: 1px solid var(--color-border-
|
|
411
|
-
background:
|
|
412
|
-
color: var(--color-text-primary
|
|
477
|
+
border-radius: var(--border-radius-md);
|
|
478
|
+
border: 1px solid var(--color-border-primary);
|
|
479
|
+
background: transparent;
|
|
480
|
+
color: var(--color-text-primary);
|
|
413
481
|
font-size: 13px;
|
|
414
482
|
font-weight: 500;
|
|
415
483
|
cursor: pointer;
|
|
@@ -422,17 +490,17 @@ body {
|
|
|
422
490
|
* color — stays within the pre-refactor black/white/gray palette. The
|
|
423
491
|
* selected state below still wins and fills the chip with the accent. */
|
|
424
492
|
.solvapay-mcp-amount-option[data-popular]:not([data-state='selected']) {
|
|
425
|
-
border-color: var(--color-text-primary
|
|
493
|
+
border-color: var(--color-text-primary);
|
|
426
494
|
}
|
|
427
495
|
|
|
428
496
|
.solvapay-mcp-amount-option:hover:not([data-state='selected']):not(:disabled) {
|
|
429
|
-
background: var(--
|
|
497
|
+
background: var(--solvapay-control-hover);
|
|
430
498
|
}
|
|
431
499
|
|
|
432
500
|
.solvapay-mcp-amount-option[data-state='selected'] {
|
|
433
|
-
border-color: var(--color-background-
|
|
434
|
-
background: var(--color-background-
|
|
435
|
-
color: var(--color-text-
|
|
501
|
+
border-color: var(--color-background-inverse);
|
|
502
|
+
background: var(--color-background-inverse);
|
|
503
|
+
color: var(--color-text-inverse);
|
|
436
504
|
}
|
|
437
505
|
|
|
438
506
|
/* `.solvapay-mcp-amount-custom` now wraps the bordered row — currency
|
|
@@ -445,19 +513,19 @@ body {
|
|
|
445
513
|
gap: 8px;
|
|
446
514
|
width: 100%;
|
|
447
515
|
padding: 10px 12px;
|
|
448
|
-
border-radius: var(--border-radius-md
|
|
449
|
-
border: 1px solid var(--color-border-
|
|
450
|
-
background:
|
|
516
|
+
border-radius: var(--border-radius-md);
|
|
517
|
+
border: 1px solid var(--color-border-primary);
|
|
518
|
+
background: transparent;
|
|
451
519
|
transition: border-color 120ms ease;
|
|
452
520
|
}
|
|
453
521
|
|
|
454
522
|
.solvapay-mcp-amount-custom:focus-within {
|
|
455
|
-
border-color: var(--color-
|
|
456
|
-
box-shadow: 0 0 0 1px var(--color-
|
|
523
|
+
border-color: var(--color-ring-primary);
|
|
524
|
+
box-shadow: 0 0 0 1px var(--color-ring-primary);
|
|
457
525
|
}
|
|
458
526
|
|
|
459
527
|
.solvapay-mcp-amount-currency-symbol {
|
|
460
|
-
color: var(--color-text-secondary
|
|
528
|
+
color: var(--color-text-secondary);
|
|
461
529
|
font-size: 14px;
|
|
462
530
|
font-weight: 500;
|
|
463
531
|
}
|
|
@@ -467,7 +535,7 @@ body {
|
|
|
467
535
|
background: transparent;
|
|
468
536
|
border: none;
|
|
469
537
|
outline: none;
|
|
470
|
-
color: var(--color-text-primary
|
|
538
|
+
color: var(--color-text-primary);
|
|
471
539
|
font-size: 14px;
|
|
472
540
|
min-width: 0;
|
|
473
541
|
padding: 0;
|
|
@@ -476,17 +544,18 @@ body {
|
|
|
476
544
|
.solvapay-mcp-topup-form {
|
|
477
545
|
display: flex;
|
|
478
546
|
flex-direction: column;
|
|
479
|
-
gap:
|
|
547
|
+
gap: 20px;
|
|
480
548
|
}
|
|
481
549
|
|
|
482
550
|
/* Business purchase / VAT — collapsed by default; fields expand inline on toggle. */
|
|
483
551
|
.solvapay-mcp-business-details {
|
|
484
552
|
display: flex;
|
|
485
553
|
flex-direction: column;
|
|
486
|
-
gap:
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
554
|
+
gap: 16px;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
.solvapay-mcp-business-details input[type='checkbox'] {
|
|
558
|
+
accent-color: var(--color-background-inverse);
|
|
490
559
|
}
|
|
491
560
|
|
|
492
561
|
.solvapay-mcp-business-toggle {
|
|
@@ -494,22 +563,27 @@ body {
|
|
|
494
563
|
align-items: center;
|
|
495
564
|
gap: 8px;
|
|
496
565
|
font-size: 13px;
|
|
497
|
-
color: var(--color-text-secondary
|
|
566
|
+
color: var(--color-text-secondary);
|
|
498
567
|
cursor: pointer;
|
|
499
568
|
}
|
|
500
569
|
|
|
501
|
-
.solvapay-mcp-business-details:not(
|
|
502
|
-
:has([data-solvapay-
|
|
503
|
-
)
|
|
504
|
-
|
|
570
|
+
.solvapay-mcp-business-details:not(
|
|
571
|
+
:has([data-solvapay-topup-form-business-details-toggle]:checked)
|
|
572
|
+
):not(:has([data-solvapay-payment-form-business-details-toggle]:checked))
|
|
573
|
+
:is(
|
|
574
|
+
[data-solvapay-topup-form-business-details-name],
|
|
575
|
+
[data-solvapay-topup-form-business-details-tax-id],
|
|
576
|
+
[data-solvapay-payment-form-business-details-name],
|
|
577
|
+
[data-solvapay-payment-form-business-details-tax-id]
|
|
578
|
+
) {
|
|
505
579
|
display: none;
|
|
506
580
|
}
|
|
507
581
|
|
|
508
582
|
.solvapay-mcp-business-field {
|
|
509
583
|
width: 100%;
|
|
510
584
|
padding: 8px 10px;
|
|
511
|
-
border: 1px solid var(--color-border-
|
|
512
|
-
border-radius:
|
|
585
|
+
border: 1px solid var(--color-border-primary);
|
|
586
|
+
border-radius: var(--border-radius-sm);
|
|
513
587
|
font-size: 14px;
|
|
514
588
|
}
|
|
515
589
|
|
|
@@ -517,9 +591,6 @@ body {
|
|
|
517
591
|
display: flex;
|
|
518
592
|
flex-direction: column;
|
|
519
593
|
gap: 6px;
|
|
520
|
-
padding: 10px 12px;
|
|
521
|
-
border: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
522
|
-
border-radius: 8px;
|
|
523
594
|
font-size: 13px;
|
|
524
595
|
}
|
|
525
596
|
|
|
@@ -544,14 +615,14 @@ body {
|
|
|
544
615
|
.solvapay-mcp-tax-summary .solvapay-tax-summary-row--total {
|
|
545
616
|
font-weight: 600;
|
|
546
617
|
padding-top: 6px;
|
|
547
|
-
border-top: 1px solid var(--color-border-secondary
|
|
618
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
548
619
|
}
|
|
549
620
|
|
|
550
621
|
.solvapay-mcp-tax-summary [data-solvapay-topup-form-summary-tax-note],
|
|
551
622
|
.solvapay-mcp-tax-summary [data-solvapay-payment-form-summary-tax-note] {
|
|
552
623
|
margin: 0;
|
|
553
624
|
font-size: 12px;
|
|
554
|
-
color: var(--color-text-secondary
|
|
625
|
+
color: var(--color-text-secondary);
|
|
555
626
|
}
|
|
556
627
|
|
|
557
628
|
/* Pay-with-card step header: amount being purchased is the hero, the
|
|
@@ -560,15 +631,14 @@ body {
|
|
|
560
631
|
* `BalanceBadge` — balance is the right hero on those screens. */
|
|
561
632
|
.solvapay-mcp-topup-amount-hero {
|
|
562
633
|
margin: 0;
|
|
563
|
-
font
|
|
564
|
-
font-weight: 600;
|
|
634
|
+
font: var(--solvapay-type-rail-hero);
|
|
565
635
|
letter-spacing: -0.02em;
|
|
566
636
|
font-variant-numeric: tabular-nums;
|
|
567
637
|
}
|
|
568
638
|
|
|
569
639
|
.solvapay-mcp-topup-balance-context {
|
|
570
640
|
margin: 0;
|
|
571
|
-
color: var(--color-text-secondary
|
|
641
|
+
color: var(--color-text-secondary);
|
|
572
642
|
font-size: 13px;
|
|
573
643
|
}
|
|
574
644
|
|
|
@@ -594,163 +664,146 @@ body {
|
|
|
594
664
|
min-height: 280px;
|
|
595
665
|
}
|
|
596
666
|
|
|
597
|
-
/*
|
|
667
|
+
/* Shell chrome — body, footer
|
|
668
|
+
*
|
|
669
|
+
* Merchant branding lives on `<AppHeader>` in the chrome row.
|
|
670
|
+
* "Paying as {email}" lives inside the payment form, not the shell.
|
|
671
|
+
* There is no sidebar grid.
|
|
672
|
+
*/
|
|
598
673
|
|
|
599
|
-
.solvapay-mcp-
|
|
674
|
+
.solvapay-mcp-shell {
|
|
600
675
|
display: flex;
|
|
601
676
|
flex-direction: column;
|
|
602
|
-
gap:
|
|
677
|
+
gap: 16px;
|
|
603
678
|
}
|
|
604
679
|
|
|
605
|
-
/*
|
|
606
|
-
|
|
607
|
-
.
|
|
680
|
+
/* Body column carrying every step of every surface (account card,
|
|
681
|
+
* checkout step stack, topup form). The reading-measure cap lives
|
|
682
|
+
* on the shell so card and footer stay one block. */
|
|
683
|
+
.solvapay-mcp-shell-body {
|
|
608
684
|
display: flex;
|
|
609
685
|
flex-direction: column;
|
|
610
|
-
gap:
|
|
686
|
+
gap: 16px;
|
|
687
|
+
min-width: 0;
|
|
611
688
|
}
|
|
612
689
|
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
padding-top: 8px;
|
|
618
|
-
border-top: 1px solid var(--color-border-secondary, #e2e8f0);
|
|
690
|
+
/* Dampens iframe shrink → grow round-trips when a brief "Loading…"
|
|
691
|
+
* interstitial paints between surface swaps. */
|
|
692
|
+
.solvapay-mcp-shell-body .solvapay-mcp-card:first-of-type {
|
|
693
|
+
min-height: 160px;
|
|
619
694
|
}
|
|
620
695
|
|
|
621
|
-
/*
|
|
622
|
-
*
|
|
623
|
-
*
|
|
624
|
-
*
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
* only lays out the view router + optional sidebar + footer.
|
|
633
|
-
*/
|
|
634
|
-
|
|
635
|
-
.solvapay-mcp-shell {
|
|
696
|
+
/* Fullscreen is the hosted page, not a stretched widget: one scroll
|
|
697
|
+
* owner on `main`, a centered 1000px column, payment rail 340,
|
|
698
|
+
* management one column. Below 1000px of host width the container
|
|
699
|
+
* query falls back to the inline single-column stack. Host chrome
|
|
700
|
+
* (window close) stays outside the iframe. Host `safeAreaInsets`
|
|
701
|
+
* land as extra padding on `.solvapay-mcp-main` from the
|
|
702
|
+
* display-mode hook — not `env(safe-area-inset-*)`, which cannot
|
|
703
|
+
* see the host composer. */
|
|
704
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] {
|
|
705
|
+
min-block-size: 100%;
|
|
706
|
+
width: 100%;
|
|
636
707
|
display: flex;
|
|
637
708
|
flex-direction: column;
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
* `.solvapay-mcp-main` so dormant fixed-positioned overlays
|
|
643
|
-
* (`.solvapay-mcp-tour-overlay`, `.solvapay-mcp-tour-popover`) that
|
|
644
|
-
* render as siblings of `<McpAppShell>` inside `.solvapay-mcp-main`
|
|
645
|
-
* stay anchored to the iframe viewport — `container-type` makes the
|
|
646
|
-
* element a containing block for `position: fixed` descendants per
|
|
647
|
-
* the CSS containment spec, so we keep that scope tight. */
|
|
709
|
+
align-items: center;
|
|
710
|
+
justify-content: center;
|
|
711
|
+
justify-content: safe center;
|
|
712
|
+
overflow: auto;
|
|
648
713
|
container-type: inline-size;
|
|
714
|
+
container-name: mcp mcp-hosted;
|
|
649
715
|
}
|
|
650
716
|
|
|
651
|
-
.solvapay-mcp-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
overflow-x: auto;
|
|
656
|
-
/* Hide scrollbar on WebKit while still allowing overflow for narrow iframes */
|
|
657
|
-
scrollbar-width: thin;
|
|
717
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] .solvapay-mcp-hosted {
|
|
718
|
+
max-width: 1000px;
|
|
719
|
+
width: 100%;
|
|
720
|
+
margin-inline: auto;
|
|
658
721
|
}
|
|
659
722
|
|
|
660
|
-
.solvapay-mcp-
|
|
661
|
-
|
|
662
|
-
background: transparent;
|
|
663
|
-
border: none;
|
|
664
|
-
border-bottom: 2px solid transparent;
|
|
665
|
-
color: var(--color-text-secondary, #475569);
|
|
666
|
-
font-size: 13px;
|
|
667
|
-
font-weight: 500;
|
|
668
|
-
cursor: pointer;
|
|
669
|
-
white-space: nowrap;
|
|
670
|
-
transition:
|
|
671
|
-
color 120ms ease,
|
|
672
|
-
border-color 120ms ease;
|
|
723
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] .solvapay-mcp-app-header {
|
|
724
|
+
display: none;
|
|
673
725
|
}
|
|
674
726
|
|
|
675
|
-
.solvapay-mcp-
|
|
676
|
-
|
|
727
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] .solvapay-mcp-chrome-row {
|
|
728
|
+
display: none;
|
|
677
729
|
}
|
|
678
730
|
|
|
679
|
-
.solvapay-mcp-
|
|
680
|
-
|
|
681
|
-
border-bottom-color: var(--color-background-accent, #0f172a);
|
|
731
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] > .solvapay-mcp-card {
|
|
732
|
+
max-inline-size: none;
|
|
682
733
|
}
|
|
683
734
|
|
|
684
|
-
.solvapay-mcp-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
border
|
|
735
|
+
.solvapay-mcp-main[data-display-mode='fullscreen']
|
|
736
|
+
.solvapay-mcp-card:has(.solvapay-mcp-hosted-layout) {
|
|
737
|
+
padding: 0;
|
|
738
|
+
border: none;
|
|
688
739
|
}
|
|
689
740
|
|
|
690
|
-
.solvapay-mcp-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
741
|
+
html:has(.solvapay-mcp-main[data-display-mode='fullscreen']),
|
|
742
|
+
html:has(.solvapay-mcp-main[data-display-mode='fullscreen']) body,
|
|
743
|
+
html:has(.solvapay-mcp-main[data-display-mode='fullscreen']) #root {
|
|
744
|
+
width: 100%;
|
|
745
|
+
height: 100%;
|
|
694
746
|
}
|
|
695
747
|
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
748
|
+
html:has(.solvapay-mcp-main[data-display-mode='fullscreen']) #root {
|
|
749
|
+
padding: 0;
|
|
750
|
+
overflow: hidden;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] .solvapay-mcp-shell {
|
|
754
|
+
flex: 0 1 auto;
|
|
755
|
+
min-height: 0;
|
|
756
|
+
width: 100%;
|
|
757
|
+
/* 1000px column + the 72px gutter on each side. */
|
|
758
|
+
max-inline-size: 1144px;
|
|
759
|
+
padding: 56px 72px 40px;
|
|
760
|
+
margin-inline: 0;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
.solvapay-mcp-hosted-layout {
|
|
703
764
|
display: flex;
|
|
704
765
|
flex-direction: column;
|
|
705
766
|
gap: 16px;
|
|
706
767
|
min-width: 0;
|
|
707
768
|
}
|
|
708
769
|
|
|
709
|
-
.solvapay-mcp-
|
|
770
|
+
.solvapay-mcp-summary-rail {
|
|
771
|
+
min-width: 0;
|
|
772
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
773
|
+
padding-bottom: 16px;
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
.solvapay-mcp-hosted-body {
|
|
777
|
+
min-width: 0;
|
|
710
778
|
display: flex;
|
|
711
779
|
flex-direction: column;
|
|
712
|
-
gap:
|
|
780
|
+
gap: var(--solvapay-section-gap);
|
|
713
781
|
}
|
|
714
782
|
|
|
715
|
-
/*
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
* iframe viewport — the matching media-gated `:has()` lift above
|
|
719
|
-
* ensures `.solvapay-mcp-main` only reaches 816 on iframes that can
|
|
720
|
-
* actually host the wide layout. Hosts with narrow iframes (ChatGPT
|
|
721
|
-
* ~400px, compact Claude Desktop) fall through to the single-column
|
|
722
|
-
* layout with the inline detail cards under the active card. */
|
|
723
|
-
|
|
724
|
-
.solvapay-mcp-shell-sidebar {
|
|
725
|
-
display: none;
|
|
783
|
+
/* The gap is the only spacing; drop the primitive's own margin. */
|
|
784
|
+
.solvapay-mcp-hosted-body > .solvapay-mcp-back-link {
|
|
785
|
+
margin-bottom: 0;
|
|
726
786
|
}
|
|
727
787
|
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
* body-first (primary action first for screen readers on the
|
|
733
|
-
* checkout/topup payment surfaces) while visual order is
|
|
734
|
-
* sidebar-left. The outer `.solvapay-mcp-main` is already
|
|
735
|
-
* `margin-inline: auto` capped at 816, so the 320+16+480 = 816px
|
|
736
|
-
* composition lands centred in the iframe without any extra
|
|
737
|
-
* `justify-content` on the grid. */
|
|
738
|
-
.solvapay-mcp-shell-layout {
|
|
739
|
-
grid-template-columns: 320px minmax(0, 480px);
|
|
740
|
-
}
|
|
788
|
+
.solvapay-mcp-hosted[data-mcp-surface='management'] .solvapay-mcp-hosted-layout {
|
|
789
|
+
display: flex;
|
|
790
|
+
flex-direction: column;
|
|
791
|
+
}
|
|
741
792
|
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
793
|
+
@container mcp-hosted (min-width: 1000px) {
|
|
794
|
+
.solvapay-mcp-hosted-layout[data-rail='hosted']:has(> .solvapay-mcp-summary-rail) {
|
|
795
|
+
display: grid;
|
|
796
|
+
grid-template-columns: 340px minmax(0, 1fr);
|
|
797
|
+
gap: 56px;
|
|
798
|
+
align-items: stretch;
|
|
747
799
|
}
|
|
748
800
|
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
801
|
+
.solvapay-mcp-hosted-layout[data-rail='hosted'] > .solvapay-mcp-summary-rail {
|
|
802
|
+
border-bottom: none;
|
|
803
|
+
border-right: 1px solid var(--color-border-secondary);
|
|
804
|
+
padding-bottom: 0;
|
|
805
|
+
padding-right: 56px;
|
|
806
|
+
padding-top: 56px;
|
|
754
807
|
}
|
|
755
808
|
}
|
|
756
809
|
|
|
@@ -780,7 +833,7 @@ body {
|
|
|
780
833
|
* slate-600 so the footer reads cleanly against white without
|
|
781
834
|
* fading into the card border. Matches the rest of the MCP
|
|
782
835
|
* chrome (`AppHeader`, muted body copy). */
|
|
783
|
-
color: var(--color-text-secondary
|
|
836
|
+
color: var(--color-text-secondary);
|
|
784
837
|
}
|
|
785
838
|
|
|
786
839
|
/* Match the visual spacing of the inner `Terms · Privacy` separator.
|
|
@@ -795,105 +848,12 @@ body {
|
|
|
795
848
|
font-weight: 400;
|
|
796
849
|
}
|
|
797
850
|
|
|
798
|
-
/* Account view — Customer + Seller details cards
|
|
799
|
-
*
|
|
800
|
-
* Kept self-contained so the same markup renders identically inside
|
|
801
|
-
* `<McpAccountView>` and the wide-iframe sidebar in `<McpAppShell>`.
|
|
802
|
-
*/
|
|
803
|
-
|
|
804
851
|
.solvapay-mcp-account {
|
|
805
852
|
display: flex;
|
|
806
853
|
flex-direction: column;
|
|
807
854
|
gap: 16px;
|
|
808
855
|
}
|
|
809
856
|
|
|
810
|
-
.solvapay-mcp-detail-grid {
|
|
811
|
-
display: flex;
|
|
812
|
-
flex-direction: column;
|
|
813
|
-
gap: 14px;
|
|
814
|
-
}
|
|
815
|
-
|
|
816
|
-
.solvapay-mcp-detail-row {
|
|
817
|
-
display: flex;
|
|
818
|
-
flex-direction: column;
|
|
819
|
-
gap: 2px;
|
|
820
|
-
}
|
|
821
|
-
|
|
822
|
-
.solvapay-mcp-detail-label {
|
|
823
|
-
font-size: 12px;
|
|
824
|
-
letter-spacing: 0.08em;
|
|
825
|
-
text-transform: uppercase;
|
|
826
|
-
font-weight: 600;
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
.solvapay-mcp-detail-value {
|
|
830
|
-
font-size: 14px;
|
|
831
|
-
color: var(--color-text-primary, #0f172a);
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
.solvapay-mcp-detail-value-mono {
|
|
835
|
-
font-family:
|
|
836
|
-
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
|
|
837
|
-
monospace;
|
|
838
|
-
font-size: 12px;
|
|
839
|
-
}
|
|
840
|
-
|
|
841
|
-
.solvapay-mcp-detail-link {
|
|
842
|
-
color: var(--color-text-primary, #0f172a);
|
|
843
|
-
font-size: 14px;
|
|
844
|
-
text-decoration: none;
|
|
845
|
-
word-break: break-word;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
.solvapay-mcp-detail-link:hover {
|
|
849
|
-
text-decoration: underline;
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
.solvapay-mcp-detail-heading-row {
|
|
853
|
-
display: flex;
|
|
854
|
-
align-items: center;
|
|
855
|
-
justify-content: space-between;
|
|
856
|
-
gap: 12px;
|
|
857
|
-
}
|
|
858
|
-
|
|
859
|
-
.solvapay-mcp-customer-card .solvapay-mcp-detail-grid {
|
|
860
|
-
flex: 1;
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
.solvapay-mcp-detail-balance-row {
|
|
864
|
-
display: flex;
|
|
865
|
-
flex-direction: row;
|
|
866
|
-
align-items: flex-end;
|
|
867
|
-
justify-content: space-between;
|
|
868
|
-
gap: 12px;
|
|
869
|
-
margin-top: auto;
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
.solvapay-mcp-detail-balance-copy {
|
|
873
|
-
display: flex;
|
|
874
|
-
flex-direction: column;
|
|
875
|
-
gap: 2px;
|
|
876
|
-
min-width: 0;
|
|
877
|
-
}
|
|
878
|
-
|
|
879
|
-
.solvapay-mcp-detail-balance-row .solvapay-mcp-link-button {
|
|
880
|
-
align-self: flex-end;
|
|
881
|
-
flex: 0 0 auto;
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
.solvapay-mcp-verified-badge {
|
|
885
|
-
display: inline-flex;
|
|
886
|
-
align-items: center;
|
|
887
|
-
gap: 4px;
|
|
888
|
-
padding: 2px 8px;
|
|
889
|
-
border-radius: 999px;
|
|
890
|
-
background: var(--color-background-success-subtle, #ecfdf5);
|
|
891
|
-
color: var(--color-text-success, #065f46);
|
|
892
|
-
font-size: 11px;
|
|
893
|
-
font-weight: 500;
|
|
894
|
-
line-height: 1.4;
|
|
895
|
-
}
|
|
896
|
-
|
|
897
857
|
/* ---- Back-link primitive ---- */
|
|
898
858
|
|
|
899
859
|
.solvapay-mcp-back-link {
|
|
@@ -908,14 +868,14 @@ body {
|
|
|
908
868
|
display: inline-flex;
|
|
909
869
|
align-items: center;
|
|
910
870
|
gap: 6px;
|
|
911
|
-
color: var(--color-text-secondary
|
|
871
|
+
color: var(--color-text-secondary);
|
|
912
872
|
font-size: 13px;
|
|
913
873
|
cursor: pointer;
|
|
914
874
|
transition: color 120ms ease;
|
|
915
875
|
}
|
|
916
876
|
|
|
917
877
|
.solvapay-mcp-back-link:hover {
|
|
918
|
-
color: var(--color-text-primary
|
|
878
|
+
color: var(--color-text-primary);
|
|
919
879
|
}
|
|
920
880
|
|
|
921
881
|
/* Underline only the label on hover — applying `text-decoration` to
|
|
@@ -937,108 +897,56 @@ body {
|
|
|
937
897
|
transform: translateX(-2px);
|
|
938
898
|
}
|
|
939
899
|
|
|
940
|
-
/*
|
|
941
|
-
|
|
942
|
-
.solvapay-mcp-
|
|
943
|
-
display: inline-block;
|
|
944
|
-
opacity: 0.75;
|
|
945
|
-
font-size: 0.9em;
|
|
946
|
-
letter-spacing: 0.02em;
|
|
947
|
-
vertical-align: -0.1em;
|
|
948
|
-
margin-left: 0.35em;
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
/* ---- Plan actions row ---- */
|
|
952
|
-
|
|
953
|
-
.solvapay-mcp-plan-actions {
|
|
954
|
-
display: flex;
|
|
955
|
-
flex-direction: column;
|
|
956
|
-
gap: 8px;
|
|
957
|
-
margin-top: 12px;
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
.solvapay-mcp-plan-topup-prompt {
|
|
900
|
+
/* Payment-form identity: inline shares a row with the back-link;
|
|
901
|
+
* fullscreen stacks a muted label over the email. */
|
|
902
|
+
.solvapay-mcp-form-identity-row {
|
|
961
903
|
display: flex;
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
}
|
|
966
|
-
|
|
967
|
-
/* ---- First-run tour ---- */
|
|
968
|
-
|
|
969
|
-
.solvapay-mcp-tour-overlay {
|
|
970
|
-
position: fixed;
|
|
971
|
-
inset: 0;
|
|
972
|
-
pointer-events: none;
|
|
973
|
-
z-index: 1000;
|
|
974
|
-
}
|
|
975
|
-
|
|
976
|
-
.solvapay-mcp-tour-popover {
|
|
977
|
-
position: fixed;
|
|
978
|
-
max-width: 280px;
|
|
979
|
-
pointer-events: auto;
|
|
980
|
-
padding: 12px 16px;
|
|
981
|
-
border-radius: 8px;
|
|
982
|
-
background: var(--color-background-elevated, #ffffff);
|
|
983
|
-
box-shadow: 0 8px 24px rgba(16, 24, 40, 0.12);
|
|
984
|
-
border: 1px solid var(--color-border-default, #e4e7ec);
|
|
985
|
-
}
|
|
986
|
-
|
|
987
|
-
.solvapay-mcp-tour-title {
|
|
988
|
-
margin: 0 0 4px 0;
|
|
989
|
-
font-size: 14px;
|
|
990
|
-
font-weight: 600;
|
|
904
|
+
align-items: center;
|
|
905
|
+
justify-content: space-between;
|
|
906
|
+
gap: 16px;
|
|
991
907
|
}
|
|
992
908
|
|
|
993
|
-
.solvapay-mcp-
|
|
994
|
-
margin: 0
|
|
995
|
-
font-size: 13px;
|
|
996
|
-
color: var(--color-text-secondary, #475467);
|
|
909
|
+
.solvapay-mcp-form-identity-row .solvapay-mcp-back-link {
|
|
910
|
+
margin-block-end: 0;
|
|
997
911
|
}
|
|
998
912
|
|
|
999
|
-
.solvapay-mcp-
|
|
1000
|
-
display: flex;
|
|
1001
|
-
align-items: center;
|
|
1002
|
-
justify-content: space-between;
|
|
1003
|
-
gap: 8px;
|
|
913
|
+
.solvapay-mcp-paying-as {
|
|
1004
914
|
font-size: 12px;
|
|
915
|
+
line-height: 1.4;
|
|
916
|
+
color: var(--color-text-secondary);
|
|
1005
917
|
}
|
|
1006
918
|
|
|
1007
|
-
.solvapay-mcp-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
padding:
|
|
1013
|
-
|
|
1014
|
-
border-radius: 4px;
|
|
1015
|
-
font-size: 13px;
|
|
919
|
+
.solvapay-mcp-paying-as[data-variant='stacked'] {
|
|
920
|
+
display: flex;
|
|
921
|
+
flex-direction: column;
|
|
922
|
+
gap: 2px;
|
|
923
|
+
margin-top: 16px;
|
|
924
|
+
padding-bottom: 20px;
|
|
925
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
1016
926
|
}
|
|
1017
927
|
|
|
1018
|
-
.solvapay-mcp-
|
|
1019
|
-
|
|
1020
|
-
|
|
928
|
+
.solvapay-mcp-paying-as[data-variant='stacked'] .solvapay-mcp-paying-as-label {
|
|
929
|
+
font-size: 12px;
|
|
930
|
+
line-height: 1.4;
|
|
931
|
+
color: var(--color-text-secondary);
|
|
1021
932
|
}
|
|
1022
933
|
|
|
1023
|
-
.solvapay-mcp-
|
|
1024
|
-
|
|
934
|
+
.solvapay-mcp-paying-as[data-variant='stacked'] .solvapay-mcp-paying-as-email {
|
|
935
|
+
font-size: 16px;
|
|
936
|
+
font-weight: 500;
|
|
937
|
+
line-height: 1.4;
|
|
938
|
+
color: var(--color-text-primary);
|
|
1025
939
|
}
|
|
1026
940
|
|
|
1027
|
-
|
|
1028
|
-
appearance: none;
|
|
1029
|
-
background: none;
|
|
1030
|
-
border: 1px solid var(--color-border-default, #e4e7ec);
|
|
1031
|
-
border-radius: 999px;
|
|
1032
|
-
width: 24px;
|
|
1033
|
-
height: 24px;
|
|
1034
|
-
cursor: pointer;
|
|
1035
|
-
font-size: 13px;
|
|
1036
|
-
line-height: 1;
|
|
1037
|
-
color: var(--color-text-secondary, #475467);
|
|
1038
|
-
}
|
|
941
|
+
/* ---- External-link glyph ---- */
|
|
1039
942
|
|
|
1040
|
-
.solvapay-mcp-
|
|
1041
|
-
|
|
943
|
+
.solvapay-mcp-external-glyph {
|
|
944
|
+
display: inline-block;
|
|
945
|
+
opacity: 0.75;
|
|
946
|
+
font-size: 0.9em;
|
|
947
|
+
letter-spacing: 0.02em;
|
|
948
|
+
vertical-align: -0.1em;
|
|
949
|
+
margin-left: 0.35em;
|
|
1042
950
|
}
|
|
1043
951
|
|
|
1044
952
|
/* McpUpsellStrip / McpNudgeView styles were removed along with the
|
|
@@ -1049,26 +957,24 @@ body {
|
|
|
1049
957
|
*
|
|
1050
958
|
* Styles for the two-branch <McpCheckoutView>: PlanStep → AmountStep →
|
|
1051
959
|
* PaygPaymentStep / RecurringPaymentStep → SuccessStep. Palette is
|
|
1052
|
-
*
|
|
1053
|
-
*
|
|
1054
|
-
*
|
|
1055
|
-
* success halo — `.solvapay-mcp-error` is the only chromatic note and
|
|
1056
|
-
* it stays untouched for a11y semantics. */
|
|
960
|
+
* the shared hosted vocabulary — host tokens on `--color-*`, branding
|
|
961
|
+
* extras on `--solvapay-*`. Inner surfaces stay transparent with a
|
|
962
|
+
* hairline; `.solvapay-mcp-error` is the only reserved chromatic note. */
|
|
1057
963
|
|
|
1058
964
|
.solvapay-mcp-checkout-banner {
|
|
1059
965
|
display: flex;
|
|
1060
966
|
flex-direction: column;
|
|
1061
967
|
gap: 4px;
|
|
1062
968
|
padding: 12px;
|
|
1063
|
-
border-radius: var(--border-radius-md
|
|
1064
|
-
border: 1px solid var(--color-border-secondary
|
|
1065
|
-
background: var(--color-background-
|
|
969
|
+
border-radius: var(--border-radius-md);
|
|
970
|
+
border: 1px solid var(--color-border-secondary);
|
|
971
|
+
background: var(--color-background-secondary);
|
|
1066
972
|
}
|
|
1067
973
|
|
|
1068
974
|
.solvapay-mcp-checkout-banner-title {
|
|
1069
975
|
font-size: 13px;
|
|
1070
976
|
font-weight: 600;
|
|
1071
|
-
color: var(--color-text-primary
|
|
977
|
+
color: var(--color-text-primary);
|
|
1072
978
|
}
|
|
1073
979
|
|
|
1074
980
|
.solvapay-mcp-checkout-banner-message {
|
|
@@ -1101,69 +1007,34 @@ body {
|
|
|
1101
1007
|
flex-direction: column;
|
|
1102
1008
|
gap: 6px;
|
|
1103
1009
|
padding: 12px;
|
|
1104
|
-
border-radius: var(--border-radius-md
|
|
1105
|
-
border: 1px solid var(--color-border-
|
|
1106
|
-
background:
|
|
1010
|
+
border-radius: var(--border-radius-md);
|
|
1011
|
+
border: 1px solid var(--color-border-primary);
|
|
1012
|
+
background: transparent;
|
|
1107
1013
|
}
|
|
1108
1014
|
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
align-items: baseline;
|
|
1113
|
-
gap: 12px;
|
|
1114
|
-
font-size: 13px;
|
|
1115
|
-
font-variant-numeric: tabular-nums;
|
|
1116
|
-
color: var(--color-text-primary, #0f172a);
|
|
1117
|
-
}
|
|
1118
|
-
|
|
1119
|
-
.solvapay-mcp-checkout-save-card {
|
|
1120
|
-
display: flex;
|
|
1121
|
-
align-items: center;
|
|
1122
|
-
gap: 8px;
|
|
1123
|
-
font-size: 13px;
|
|
1124
|
-
color: var(--color-text-secondary, #475569);
|
|
1125
|
-
cursor: pointer;
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
.solvapay-mcp-checkout-save-card input[type='checkbox'] {
|
|
1129
|
-
margin: 0;
|
|
1130
|
-
cursor: pointer;
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
|
-
.solvapay-mcp-checkout-terms {
|
|
1134
|
-
margin: 0;
|
|
1135
|
-
font-size: 12px;
|
|
1136
|
-
line-height: 1.5;
|
|
1137
|
-
}
|
|
1138
|
-
|
|
1139
|
-
.solvapay-mcp-checkout-receipt {
|
|
1015
|
+
/* Order-summary rows share `.solvapay-mcp-line-item`. */
|
|
1016
|
+
|
|
1017
|
+
.solvapay-mcp-checkout-receipt {
|
|
1140
1018
|
display: flex;
|
|
1141
1019
|
flex-direction: column;
|
|
1142
1020
|
gap: 8px;
|
|
1143
1021
|
margin: 0;
|
|
1144
1022
|
padding: 12px;
|
|
1145
|
-
border-radius: var(--border-radius-md
|
|
1146
|
-
border: 1px solid var(--color-border-
|
|
1147
|
-
background:
|
|
1023
|
+
border-radius: var(--border-radius-md);
|
|
1024
|
+
border: 1px solid var(--color-border-primary);
|
|
1025
|
+
background: transparent;
|
|
1148
1026
|
}
|
|
1149
1027
|
|
|
1150
|
-
|
|
1151
|
-
display: flex;
|
|
1152
|
-
justify-content: space-between;
|
|
1153
|
-
align-items: baseline;
|
|
1154
|
-
gap: 12px;
|
|
1155
|
-
font-size: 13px;
|
|
1156
|
-
font-variant-numeric: tabular-nums;
|
|
1157
|
-
}
|
|
1028
|
+
/* Receipt rows share `.solvapay-mcp-line-item`. */
|
|
1158
1029
|
|
|
1159
1030
|
.solvapay-mcp-checkout-receipt-row dt {
|
|
1160
1031
|
margin: 0;
|
|
1161
|
-
color: var(--color-text-secondary
|
|
1032
|
+
color: var(--color-text-secondary);
|
|
1162
1033
|
}
|
|
1163
1034
|
|
|
1164
1035
|
.solvapay-mcp-checkout-receipt-row dd {
|
|
1165
1036
|
margin: 0;
|
|
1166
|
-
color: var(--color-text-primary
|
|
1037
|
+
color: var(--color-text-primary);
|
|
1167
1038
|
font-weight: 500;
|
|
1168
1039
|
}
|
|
1169
1040
|
|
|
@@ -1177,9 +1048,9 @@ body {
|
|
|
1177
1048
|
width: 32px;
|
|
1178
1049
|
height: 32px;
|
|
1179
1050
|
border-radius: 50%;
|
|
1180
|
-
border: 1px solid var(--color-border-secondary
|
|
1181
|
-
background:
|
|
1182
|
-
color: var(--color-text-primary
|
|
1051
|
+
border: 1px solid var(--color-border-secondary);
|
|
1052
|
+
background: transparent;
|
|
1053
|
+
color: var(--color-text-primary);
|
|
1183
1054
|
font-size: 18px;
|
|
1184
1055
|
line-height: 1;
|
|
1185
1056
|
}
|
|
@@ -1191,11 +1062,1062 @@ body {
|
|
|
1191
1062
|
|
|
1192
1063
|
.solvapay-mcp-checkout-manage-pointer code {
|
|
1193
1064
|
padding: 1px 6px;
|
|
1194
|
-
border-radius:
|
|
1195
|
-
background: var(--color-background-
|
|
1196
|
-
font-family:
|
|
1197
|
-
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
|
|
1198
|
-
monospace;
|
|
1065
|
+
border-radius: var(--border-radius-sm);
|
|
1066
|
+
background: var(--color-background-secondary);
|
|
1067
|
+
font-family: var(--font-mono);
|
|
1199
1068
|
font-size: 12px;
|
|
1200
|
-
color: var(--color-text-primary
|
|
1069
|
+
color: var(--color-text-primary);
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
/* ---- v2 primitive vocabulary ----
|
|
1073
|
+
*
|
|
1074
|
+
* Plain CSS translation of the hosted primitives. Inner surfaces stay
|
|
1075
|
+
* transparent + hairline; selected / raised fills use inverse or
|
|
1076
|
+
* `--color-background-secondary`, never `--color-background-primary`.
|
|
1077
|
+
* Focus uses the spec `--color-ring-primary` token. */
|
|
1078
|
+
|
|
1079
|
+
.solvapay-mcp-section {
|
|
1080
|
+
display: flex;
|
|
1081
|
+
flex-direction: column;
|
|
1082
|
+
gap: 16px;
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
.solvapay-mcp-section-title {
|
|
1086
|
+
margin: 0;
|
|
1087
|
+
font: var(--solvapay-type-heading);
|
|
1088
|
+
letter-spacing: -0.5px;
|
|
1089
|
+
color: var(--color-text-primary);
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
.solvapay-mcp-eyebrow {
|
|
1093
|
+
margin: 0;
|
|
1094
|
+
text-transform: uppercase;
|
|
1095
|
+
color: var(--color-text-secondary);
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
.solvapay-mcp-eyebrow[data-variant='step'] {
|
|
1099
|
+
font: var(--solvapay-type-eyebrow-step);
|
|
1100
|
+
letter-spacing: 2px;
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
.solvapay-mcp-eyebrow[data-variant='rail'] {
|
|
1104
|
+
font: var(--solvapay-type-eyebrow-rail);
|
|
1105
|
+
letter-spacing: 1px;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
1108
|
+
.solvapay-mcp-line-item,
|
|
1109
|
+
.solvapay-mcp-checkout-order-summary-row,
|
|
1110
|
+
.solvapay-mcp-checkout-receipt-row {
|
|
1111
|
+
display: flex;
|
|
1112
|
+
justify-content: space-between;
|
|
1113
|
+
align-items: baseline;
|
|
1114
|
+
gap: 12px;
|
|
1115
|
+
font: var(--solvapay-type-body);
|
|
1116
|
+
font-variant-numeric: tabular-nums;
|
|
1117
|
+
color: var(--color-text-primary);
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
.solvapay-mcp-line-item[data-muted='true'],
|
|
1121
|
+
.solvapay-mcp-line-item[data-muted='true'] .solvapay-mcp-line-item-value {
|
|
1122
|
+
color: var(--color-text-secondary);
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
.solvapay-mcp-line-item-value {
|
|
1126
|
+
font-family: var(--font-mono);
|
|
1127
|
+
font-variant-numeric: tabular-nums;
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1130
|
+
.solvapay-mcp-amount-ladder {
|
|
1131
|
+
display: flex;
|
|
1132
|
+
flex-direction: column;
|
|
1133
|
+
gap: 8px;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
.solvapay-mcp-preset-grid {
|
|
1137
|
+
display: grid;
|
|
1138
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
1139
|
+
gap: 12px;
|
|
1140
|
+
}
|
|
1141
|
+
|
|
1142
|
+
.solvapay-mcp-preset-tile {
|
|
1143
|
+
display: flex;
|
|
1144
|
+
flex-direction: column;
|
|
1145
|
+
align-items: center;
|
|
1146
|
+
justify-content: center;
|
|
1147
|
+
gap: 2px;
|
|
1148
|
+
min-height: 60px;
|
|
1149
|
+
padding: 8px 4px;
|
|
1150
|
+
border: 1px solid var(--color-border-primary);
|
|
1151
|
+
border-radius: var(--border-radius-md);
|
|
1152
|
+
background: transparent;
|
|
1153
|
+
color: var(--color-text-primary);
|
|
1154
|
+
cursor: pointer;
|
|
1155
|
+
}
|
|
1156
|
+
|
|
1157
|
+
.solvapay-mcp-preset-tile:hover:not([data-state='selected']):not(:disabled) {
|
|
1158
|
+
background: var(--solvapay-control-hover);
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1161
|
+
.solvapay-mcp-preset-tile[data-state='selected'] {
|
|
1162
|
+
border-color: var(--color-background-inverse);
|
|
1163
|
+
background: var(--color-background-inverse);
|
|
1164
|
+
color: var(--color-text-inverse);
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
.solvapay-mcp-preset-tile:focus-visible,
|
|
1168
|
+
.solvapay-mcp-plan-row:focus-visible,
|
|
1169
|
+
.solvapay-mcp-toggle:focus-visible {
|
|
1170
|
+
outline: none;
|
|
1171
|
+
border-color: var(--color-ring-primary);
|
|
1172
|
+
box-shadow: 0 0 0 1px var(--color-ring-primary);
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
.solvapay-mcp-preset-tile-amount {
|
|
1176
|
+
font: 500 17px/1.2 var(--font-sans);
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
.solvapay-mcp-preset-tile-credits {
|
|
1180
|
+
font: var(--solvapay-type-caption);
|
|
1181
|
+
color: var(--color-text-secondary);
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
.solvapay-mcp-preset-tile[data-state='selected'] .solvapay-mcp-preset-tile-credits {
|
|
1185
|
+
color: var(--color-text-inverse);
|
|
1186
|
+
opacity: 0.75;
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] .solvapay-mcp-preset-tile {
|
|
1190
|
+
position: relative;
|
|
1191
|
+
padding: 16px;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.solvapay-mcp-main[data-display-mode='fullscreen']
|
|
1195
|
+
.solvapay-mcp-preset-tile[data-state='selected']::after {
|
|
1196
|
+
content: '✓';
|
|
1197
|
+
position: absolute;
|
|
1198
|
+
top: 12px;
|
|
1199
|
+
right: 12px;
|
|
1200
|
+
display: grid;
|
|
1201
|
+
place-items: center;
|
|
1202
|
+
width: 18px;
|
|
1203
|
+
height: 18px;
|
|
1204
|
+
border-radius: var(--border-radius-full);
|
|
1205
|
+
background: var(--color-text-inverse);
|
|
1206
|
+
color: var(--color-background-inverse);
|
|
1207
|
+
font: 600 11px/1 var(--font-sans);
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] [data-solvapay-amount-picker-confirm],
|
|
1211
|
+
.solvapay-mcp-main[data-display-mode='fullscreen'] .solvapay-mcp-button {
|
|
1212
|
+
min-height: 56px;
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
.solvapay-mcp-plan-list {
|
|
1216
|
+
display: flex;
|
|
1217
|
+
flex-direction: column;
|
|
1218
|
+
gap: 10px;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
.solvapay-mcp-plan-action-list {
|
|
1222
|
+
gap: 0;
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
.solvapay-mcp-plan-action-row {
|
|
1226
|
+
display: flex;
|
|
1227
|
+
flex-direction: row;
|
|
1228
|
+
align-items: center;
|
|
1229
|
+
justify-content: space-between;
|
|
1230
|
+
gap: 24px;
|
|
1231
|
+
width: 100%;
|
|
1232
|
+
padding: 14px 0;
|
|
1233
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1234
|
+
background: transparent;
|
|
1235
|
+
color: var(--color-text-primary);
|
|
1236
|
+
text-align: left;
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
.solvapay-mcp-plan-action-row:first-child {
|
|
1240
|
+
padding-top: 0;
|
|
1241
|
+
border-top: none;
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
.solvapay-mcp-plan-action-row-body {
|
|
1245
|
+
display: flex;
|
|
1246
|
+
flex-direction: column;
|
|
1247
|
+
gap: 3px;
|
|
1248
|
+
flex: 1 1 auto;
|
|
1249
|
+
min-width: 0;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
.solvapay-mcp-plan-action-row-title {
|
|
1253
|
+
font: var(--solvapay-type-plan-row);
|
|
1254
|
+
letter-spacing: -0.3px;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
.solvapay-mcp-plan-action-row-description {
|
|
1258
|
+
font: var(--solvapay-type-body);
|
|
1259
|
+
color: var(--color-text-secondary);
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
.solvapay-mcp-plan-action-row button {
|
|
1263
|
+
flex: 0 0 auto;
|
|
1264
|
+
display: inline-flex;
|
|
1265
|
+
align-items: center;
|
|
1266
|
+
justify-content: center;
|
|
1267
|
+
gap: 6px;
|
|
1268
|
+
height: 40px;
|
|
1269
|
+
padding: 0 18px;
|
|
1270
|
+
border-radius: var(--border-radius-md);
|
|
1271
|
+
font: var(--solvapay-type-label);
|
|
1272
|
+
font-weight: 500;
|
|
1273
|
+
cursor: pointer;
|
|
1274
|
+
}
|
|
1275
|
+
|
|
1276
|
+
.solvapay-mcp-plan-action-row button:disabled {
|
|
1277
|
+
cursor: not-allowed;
|
|
1278
|
+
opacity: 0.6;
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
.solvapay-mcp-plan-action-row button[data-emphasis='secondary'] {
|
|
1282
|
+
border: 1px solid var(--color-border-primary);
|
|
1283
|
+
background: transparent;
|
|
1284
|
+
color: var(--color-text-primary);
|
|
1285
|
+
}
|
|
1286
|
+
|
|
1287
|
+
.solvapay-mcp-plan-action-row button[data-emphasis='secondary']:hover:not(:disabled) {
|
|
1288
|
+
background: var(--color-background-secondary);
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
.solvapay-mcp-plan-action-row button[data-emphasis='primary'] {
|
|
1292
|
+
border: 1px solid var(--color-background-inverse);
|
|
1293
|
+
background: var(--color-background-inverse);
|
|
1294
|
+
color: var(--color-text-inverse);
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
.solvapay-mcp-plan-action-row button[data-emphasis='primary']:hover:not(:disabled) {
|
|
1298
|
+
opacity: 0.9;
|
|
1299
|
+
}
|
|
1300
|
+
|
|
1301
|
+
.solvapay-mcp-used-up {
|
|
1302
|
+
display: flex;
|
|
1303
|
+
flex-direction: column;
|
|
1304
|
+
gap: 6px;
|
|
1305
|
+
padding: 20px 0;
|
|
1306
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1307
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
.solvapay-mcp-used-up-title {
|
|
1311
|
+
margin: 0;
|
|
1312
|
+
font: var(--solvapay-type-title);
|
|
1313
|
+
letter-spacing: -0.5px;
|
|
1314
|
+
color: var(--color-text-primary);
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
.solvapay-mcp-used-up p {
|
|
1318
|
+
margin: 0;
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
.solvapay-mcp-topup-total {
|
|
1322
|
+
font: var(--solvapay-type-total);
|
|
1323
|
+
letter-spacing: -0.6px;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.solvapay-mcp-plan-row {
|
|
1327
|
+
display: flex;
|
|
1328
|
+
flex-direction: row;
|
|
1329
|
+
align-items: center;
|
|
1330
|
+
justify-content: space-between;
|
|
1331
|
+
gap: 24px;
|
|
1332
|
+
width: 100%;
|
|
1333
|
+
padding: 16px 20px;
|
|
1334
|
+
border: 1px solid var(--color-border-secondary);
|
|
1335
|
+
border-radius: var(--border-radius-md);
|
|
1336
|
+
background: transparent;
|
|
1337
|
+
color: var(--color-text-primary);
|
|
1338
|
+
text-align: left;
|
|
1339
|
+
box-shadow: none;
|
|
1340
|
+
cursor: pointer;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
.solvapay-mcp-plan-row[data-state='selected'] {
|
|
1344
|
+
border-color: var(--color-background-inverse);
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
.solvapay-mcp-plan-row-body {
|
|
1348
|
+
display: flex;
|
|
1349
|
+
flex-direction: column;
|
|
1350
|
+
gap: 3px;
|
|
1351
|
+
flex: 1 1 auto;
|
|
1352
|
+
min-width: 0;
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1355
|
+
.solvapay-mcp-plan-row-name {
|
|
1356
|
+
display: inline-flex;
|
|
1357
|
+
align-items: center;
|
|
1358
|
+
gap: 10px;
|
|
1359
|
+
font: var(--solvapay-type-plan-row);
|
|
1360
|
+
letter-spacing: -0.3px;
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
.solvapay-mcp-plan-row-description {
|
|
1364
|
+
font: var(--solvapay-type-body);
|
|
1365
|
+
color: var(--color-text-secondary);
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
.solvapay-mcp-plan-row-meta {
|
|
1369
|
+
display: flex;
|
|
1370
|
+
align-items: center;
|
|
1371
|
+
gap: 14px;
|
|
1372
|
+
flex: 0 0 auto;
|
|
1373
|
+
}
|
|
1374
|
+
|
|
1375
|
+
.solvapay-mcp-plan-row-price {
|
|
1376
|
+
font: var(--solvapay-type-label);
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
.solvapay-mcp-plan-row-check {
|
|
1380
|
+
display: grid;
|
|
1381
|
+
place-items: center;
|
|
1382
|
+
width: 20px;
|
|
1383
|
+
height: 20px;
|
|
1384
|
+
flex: 0 0 20px;
|
|
1385
|
+
border-radius: var(--border-radius-full);
|
|
1386
|
+
border: 1px solid var(--color-border-primary);
|
|
1387
|
+
background: transparent;
|
|
1388
|
+
color: transparent;
|
|
1389
|
+
font: 600 11px/1 var(--font-sans);
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
.solvapay-mcp-plan-row[data-state='selected'] .solvapay-mcp-plan-row-check {
|
|
1393
|
+
border-color: var(--color-background-inverse);
|
|
1394
|
+
background: var(--color-background-inverse);
|
|
1395
|
+
color: var(--color-text-inverse);
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
.solvapay-mcp-status-dot {
|
|
1399
|
+
display: inline-flex;
|
|
1400
|
+
align-items: center;
|
|
1401
|
+
gap: 6px;
|
|
1402
|
+
font: var(--solvapay-type-caption);
|
|
1403
|
+
color: var(--color-text-secondary);
|
|
1404
|
+
}
|
|
1405
|
+
|
|
1406
|
+
.solvapay-mcp-status-dot::before {
|
|
1407
|
+
content: '';
|
|
1408
|
+
width: 6px;
|
|
1409
|
+
height: 6px;
|
|
1410
|
+
border-radius: var(--border-radius-full);
|
|
1411
|
+
background: var(--color-text-primary);
|
|
1412
|
+
flex: 0 0 auto;
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
.solvapay-mcp-status-dot[data-empty]::before {
|
|
1416
|
+
background: transparent;
|
|
1417
|
+
border: 1px solid var(--color-border-primary);
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
.solvapay-mcp-pill {
|
|
1421
|
+
display: inline-flex;
|
|
1422
|
+
align-items: center;
|
|
1423
|
+
padding: 2px 8px;
|
|
1424
|
+
border: 1px solid var(--color-border-secondary);
|
|
1425
|
+
border-radius: var(--border-radius-full);
|
|
1426
|
+
font: var(--solvapay-type-caption);
|
|
1427
|
+
color: var(--color-text-primary);
|
|
1428
|
+
}
|
|
1429
|
+
|
|
1430
|
+
.solvapay-mcp-status-pill {
|
|
1431
|
+
display: inline-flex;
|
|
1432
|
+
align-items: center;
|
|
1433
|
+
padding: 2px 8px;
|
|
1434
|
+
border: 1px solid var(--color-border-secondary);
|
|
1435
|
+
border-radius: var(--border-radius-full);
|
|
1436
|
+
background: transparent;
|
|
1437
|
+
font: 500 11px/1.4 var(--font-sans);
|
|
1438
|
+
color: var(--color-text-primary);
|
|
1439
|
+
white-space: nowrap;
|
|
1440
|
+
}
|
|
1441
|
+
|
|
1442
|
+
.solvapay-mcp-status-pill[data-tone='accent'] {
|
|
1443
|
+
border-color: color-mix(in srgb, var(--color-text-warning) 35%, var(--color-border-secondary));
|
|
1444
|
+
background: var(--color-background-warning);
|
|
1445
|
+
color: var(--color-text-warning);
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
.solvapay-mcp-fact-band {
|
|
1449
|
+
display: flex;
|
|
1450
|
+
flex-direction: column;
|
|
1451
|
+
gap: 10px;
|
|
1452
|
+
margin: 0;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
.solvapay-mcp-fact-band-item {
|
|
1456
|
+
display: flex;
|
|
1457
|
+
justify-content: space-between;
|
|
1458
|
+
align-items: baseline;
|
|
1459
|
+
gap: 12px;
|
|
1460
|
+
margin: 0;
|
|
1461
|
+
}
|
|
1462
|
+
|
|
1463
|
+
.solvapay-mcp-fact-band-label {
|
|
1464
|
+
margin: 0;
|
|
1465
|
+
font: var(--solvapay-type-body);
|
|
1466
|
+
font-weight: 400;
|
|
1467
|
+
color: var(--color-text-secondary);
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
.solvapay-mcp-fact-band-body {
|
|
1471
|
+
display: flex;
|
|
1472
|
+
flex-direction: column;
|
|
1473
|
+
align-items: flex-end;
|
|
1474
|
+
gap: 0;
|
|
1475
|
+
margin: 0;
|
|
1476
|
+
font: 500 14px/1.5 var(--font-sans);
|
|
1477
|
+
color: var(--color-text-primary);
|
|
1478
|
+
text-align: right;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
.solvapay-mcp-fact-band-caption {
|
|
1482
|
+
display: none;
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
.solvapay-mcp-fact-band-item:has(.solvapay-mcp-fact-band-compact) .solvapay-mcp-fact-band-value {
|
|
1486
|
+
display: none;
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
.solvapay-mcp-allowance-body {
|
|
1490
|
+
display: flex;
|
|
1491
|
+
flex-direction: column;
|
|
1492
|
+
gap: 16px;
|
|
1493
|
+
padding-top: 14px;
|
|
1494
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
.solvapay-mcp-usage-meter {
|
|
1498
|
+
display: flex;
|
|
1499
|
+
flex-direction: column;
|
|
1500
|
+
gap: 8px;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
.solvapay-mcp-usage-meter-caption {
|
|
1504
|
+
margin: 0;
|
|
1505
|
+
font: var(--solvapay-type-caption);
|
|
1506
|
+
color: var(--color-text-secondary);
|
|
1507
|
+
}
|
|
1508
|
+
|
|
1509
|
+
.solvapay-mcp-fact-band-value [data-unknown] {
|
|
1510
|
+
color: var(--color-text-secondary);
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
.solvapay-mcp-usage-meter [data-solvapay-usage-meter-bar] {
|
|
1514
|
+
height: 6px;
|
|
1515
|
+
background: var(--color-border-secondary);
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
.solvapay-mcp-field {
|
|
1519
|
+
display: flex;
|
|
1520
|
+
flex-direction: column;
|
|
1521
|
+
gap: 8px;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.solvapay-mcp-field-label {
|
|
1525
|
+
font: var(--solvapay-type-label);
|
|
1526
|
+
color: var(--color-text-primary);
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
.solvapay-mcp-field-control {
|
|
1530
|
+
display: flex;
|
|
1531
|
+
align-items: center;
|
|
1532
|
+
gap: 8px;
|
|
1533
|
+
min-height: var(--solvapay-control-height);
|
|
1534
|
+
padding: 0 14px;
|
|
1535
|
+
border: 1px solid var(--color-border-primary);
|
|
1536
|
+
border-radius: var(--border-radius-md);
|
|
1537
|
+
background: transparent;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1540
|
+
.solvapay-mcp-field-control:focus-within {
|
|
1541
|
+
border-color: var(--color-ring-primary);
|
|
1542
|
+
box-shadow: 0 0 0 1px var(--color-ring-primary);
|
|
1543
|
+
}
|
|
1544
|
+
|
|
1545
|
+
.solvapay-mcp-field-affix {
|
|
1546
|
+
color: var(--color-text-secondary);
|
|
1547
|
+
font: var(--solvapay-type-body);
|
|
1548
|
+
}
|
|
1549
|
+
|
|
1550
|
+
.solvapay-mcp-field-input {
|
|
1551
|
+
flex: 1;
|
|
1552
|
+
min-width: 0;
|
|
1553
|
+
padding: 0;
|
|
1554
|
+
border: none;
|
|
1555
|
+
outline: none;
|
|
1556
|
+
background: transparent;
|
|
1557
|
+
color: var(--color-text-primary);
|
|
1558
|
+
font: 400 15px/1 var(--font-mono);
|
|
1559
|
+
}
|
|
1560
|
+
|
|
1561
|
+
.solvapay-mcp-toggle {
|
|
1562
|
+
appearance: none;
|
|
1563
|
+
position: relative;
|
|
1564
|
+
display: inline-flex;
|
|
1565
|
+
align-items: center;
|
|
1566
|
+
width: 44px;
|
|
1567
|
+
height: 26px;
|
|
1568
|
+
padding: 3px;
|
|
1569
|
+
border: none;
|
|
1570
|
+
border-radius: var(--border-radius-full);
|
|
1571
|
+
background: var(--color-background-secondary);
|
|
1572
|
+
cursor: pointer;
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
.solvapay-mcp-toggle[data-state='on'] {
|
|
1576
|
+
background: var(--color-background-inverse);
|
|
1577
|
+
justify-content: flex-end;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1580
|
+
.solvapay-mcp-toggle-knob {
|
|
1581
|
+
width: 20px;
|
|
1582
|
+
height: 20px;
|
|
1583
|
+
border-radius: var(--border-radius-full);
|
|
1584
|
+
background: var(--color-text-primary);
|
|
1585
|
+
box-shadow: 0 1px 2px rgb(0 0 0 / 0.2);
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
.solvapay-mcp-toggle[data-state='on'] .solvapay-mcp-toggle-knob {
|
|
1589
|
+
background: var(--color-text-inverse);
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1592
|
+
.solvapay-mcp-ledger-row {
|
|
1593
|
+
display: grid;
|
|
1594
|
+
grid-template-columns: 1.6fr 0.9fr 0.8fr 0.9fr;
|
|
1595
|
+
gap: 12px;
|
|
1596
|
+
align-items: baseline;
|
|
1597
|
+
padding: 12px 0;
|
|
1598
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
1599
|
+
font: var(--solvapay-type-body);
|
|
1600
|
+
color: var(--color-text-primary);
|
|
1601
|
+
}
|
|
1602
|
+
|
|
1603
|
+
.solvapay-mcp-ledger-row:last-child {
|
|
1604
|
+
border-bottom: none;
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
.solvapay-mcp-ledger-row [data-align='right'] {
|
|
1608
|
+
text-align: right;
|
|
1609
|
+
font-family: var(--font-mono);
|
|
1610
|
+
font-variant-numeric: tabular-nums;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
.solvapay-mcp-history {
|
|
1614
|
+
display: flex;
|
|
1615
|
+
flex-direction: column;
|
|
1616
|
+
gap: 14px;
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
.solvapay-mcp-history-head {
|
|
1620
|
+
display: flex;
|
|
1621
|
+
align-items: baseline;
|
|
1622
|
+
justify-content: space-between;
|
|
1623
|
+
gap: 16px;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
.solvapay-mcp-history-link {
|
|
1627
|
+
background: none;
|
|
1628
|
+
padding: 0;
|
|
1629
|
+
border-radius: 0;
|
|
1630
|
+
border: none;
|
|
1631
|
+
font: 500 13px/1 var(--font-sans);
|
|
1632
|
+
color: var(--color-text-primary);
|
|
1633
|
+
text-decoration: underline;
|
|
1634
|
+
text-underline-offset: 3px;
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
.solvapay-mcp-history-link[data-state='ready']:hover {
|
|
1638
|
+
background: none;
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
.solvapay-mcp-history-table {
|
|
1642
|
+
width: 100%;
|
|
1643
|
+
border-collapse: collapse;
|
|
1644
|
+
text-align: left;
|
|
1645
|
+
}
|
|
1646
|
+
|
|
1647
|
+
.solvapay-mcp-history-table[data-kind='credits'] {
|
|
1648
|
+
table-layout: fixed;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.solvapay-mcp-history-table[data-kind='credits'] th:nth-child(1),
|
|
1652
|
+
.solvapay-mcp-history-table[data-kind='credits'] td:nth-child(1) {
|
|
1653
|
+
width: 43%;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
.solvapay-mcp-history-table[data-kind='credits'] th:nth-child(2),
|
|
1657
|
+
.solvapay-mcp-history-table[data-kind='credits'] td:nth-child(2) {
|
|
1658
|
+
width: 23%;
|
|
1659
|
+
}
|
|
1660
|
+
|
|
1661
|
+
.solvapay-mcp-history-table th {
|
|
1662
|
+
padding: 0 16px 12px 0;
|
|
1663
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
1664
|
+
font: 400 12px/1.67 var(--font-sans);
|
|
1665
|
+
letter-spacing: 1px;
|
|
1666
|
+
text-transform: uppercase;
|
|
1667
|
+
color: var(--color-text-secondary);
|
|
1668
|
+
font-weight: 400;
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
.solvapay-mcp-history-table th:last-child,
|
|
1672
|
+
.solvapay-mcp-history-table td:last-child,
|
|
1673
|
+
.solvapay-mcp-history-table [data-align='right'] {
|
|
1674
|
+
text-align: right;
|
|
1675
|
+
padding-right: 0;
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
.solvapay-mcp-history-table td {
|
|
1679
|
+
padding: 14px 16px 14px 0;
|
|
1680
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
1681
|
+
font: 400 14px/1.4 var(--font-sans);
|
|
1682
|
+
color: var(--color-text-secondary);
|
|
1683
|
+
vertical-align: middle;
|
|
1684
|
+
}
|
|
1685
|
+
|
|
1686
|
+
.solvapay-mcp-history-table td:first-child,
|
|
1687
|
+
.solvapay-mcp-history-table td[data-align='right']:nth-last-child(2) {
|
|
1688
|
+
font: 500 15px/1.4 var(--font-sans);
|
|
1689
|
+
color: var(--color-text-primary);
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
.solvapay-mcp-history-table td[data-align='right']:last-child {
|
|
1693
|
+
font-family: var(--font-mono);
|
|
1694
|
+
font-weight: 400;
|
|
1695
|
+
font-variant-numeric: tabular-nums;
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1698
|
+
.solvapay-mcp-history-title,
|
|
1699
|
+
.solvapay-mcp-history-subtitle {
|
|
1700
|
+
display: block;
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
.solvapay-mcp-history-title {
|
|
1704
|
+
font: 500 15px/1.4 var(--font-sans);
|
|
1705
|
+
color: var(--color-text-primary);
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
.solvapay-mcp-history-subtitle {
|
|
1709
|
+
margin-top: 2px;
|
|
1710
|
+
font: 400 13px/1.5 var(--font-mono);
|
|
1711
|
+
color: var(--color-text-secondary);
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
.solvapay-mcp-account-footer {
|
|
1715
|
+
display: flex;
|
|
1716
|
+
align-items: flex-start;
|
|
1717
|
+
justify-content: space-between;
|
|
1718
|
+
gap: 32px;
|
|
1719
|
+
padding-top: 24px;
|
|
1720
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
.solvapay-mcp-account-footer-merchant,
|
|
1724
|
+
.solvapay-mcp-account-footer-buyer {
|
|
1725
|
+
display: flex;
|
|
1726
|
+
flex-direction: column;
|
|
1727
|
+
gap: 4px;
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
.solvapay-mcp-account-footer-buyer {
|
|
1731
|
+
text-align: right;
|
|
1732
|
+
align-items: flex-end;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
.solvapay-mcp-attribution {
|
|
1736
|
+
display: flex;
|
|
1737
|
+
align-items: center;
|
|
1738
|
+
gap: 14px;
|
|
1739
|
+
font: 400 12px/1.5 var(--font-sans);
|
|
1740
|
+
color: var(--color-text-secondary);
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
.solvapay-mcp-credit-plan-header {
|
|
1744
|
+
display: flex;
|
|
1745
|
+
align-items: flex-start;
|
|
1746
|
+
justify-content: space-between;
|
|
1747
|
+
gap: 20px;
|
|
1748
|
+
}
|
|
1749
|
+
|
|
1750
|
+
.solvapay-mcp-credit-plan-identity {
|
|
1751
|
+
display: flex;
|
|
1752
|
+
flex-direction: column;
|
|
1753
|
+
gap: 3px;
|
|
1754
|
+
min-width: 0;
|
|
1755
|
+
}
|
|
1756
|
+
|
|
1757
|
+
.solvapay-mcp-auto-recharge-copy {
|
|
1758
|
+
display: flex;
|
|
1759
|
+
flex-direction: column;
|
|
1760
|
+
gap: 2px;
|
|
1761
|
+
min-width: 0;
|
|
1762
|
+
}
|
|
1763
|
+
|
|
1764
|
+
.solvapay-mcp-auto-recharge-copy p {
|
|
1765
|
+
margin: 0;
|
|
1766
|
+
}
|
|
1767
|
+
|
|
1768
|
+
.solvapay-mcp-balance-strip {
|
|
1769
|
+
display: flex;
|
|
1770
|
+
flex-direction: column;
|
|
1771
|
+
gap: 4px;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
.solvapay-mcp-balance-hero {
|
|
1775
|
+
margin: 0;
|
|
1776
|
+
font: var(--solvapay-type-balance);
|
|
1777
|
+
letter-spacing: -1.2px;
|
|
1778
|
+
color: var(--color-text-primary);
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1781
|
+
.solvapay-mcp-product-row {
|
|
1782
|
+
display: flex;
|
|
1783
|
+
align-items: center;
|
|
1784
|
+
justify-content: space-between;
|
|
1785
|
+
gap: 24px;
|
|
1786
|
+
padding: 12px 0;
|
|
1787
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
.solvapay-mcp-product-row:first-of-type {
|
|
1791
|
+
border-top: none;
|
|
1792
|
+
padding-top: 0;
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1795
|
+
.solvapay-mcp-product-row-body {
|
|
1796
|
+
display: flex;
|
|
1797
|
+
flex-direction: column;
|
|
1798
|
+
gap: 3px;
|
|
1799
|
+
min-width: 0;
|
|
1800
|
+
}
|
|
1801
|
+
|
|
1802
|
+
.solvapay-mcp-split-row {
|
|
1803
|
+
display: flex;
|
|
1804
|
+
flex-direction: column;
|
|
1805
|
+
gap: 12px;
|
|
1806
|
+
}
|
|
1807
|
+
|
|
1808
|
+
@container mcp (min-width: 760px) {
|
|
1809
|
+
.solvapay-mcp-card,
|
|
1810
|
+
.solvapay-mcp-hosted {
|
|
1811
|
+
--solvapay-type-balance: 500 36px/1 var(--font-sans);
|
|
1812
|
+
--solvapay-type-title: 600 20px/1.3 var(--font-sans);
|
|
1813
|
+
--solvapay-type-plan-row: 600 17px/1.3 var(--font-sans);
|
|
1814
|
+
--solvapay-card-padding: 24px;
|
|
1815
|
+
--solvapay-section-gap: 20px;
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
.solvapay-mcp-split-row {
|
|
1819
|
+
flex-direction: row;
|
|
1820
|
+
align-items: center;
|
|
1821
|
+
justify-content: space-between;
|
|
1822
|
+
gap: 32px;
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1825
|
+
.solvapay-mcp-allowance-body {
|
|
1826
|
+
padding-top: 0;
|
|
1827
|
+
border-top: none;
|
|
1828
|
+
gap: 20px;
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1831
|
+
.solvapay-mcp-fact-band {
|
|
1832
|
+
display: grid;
|
|
1833
|
+
grid-template-columns: repeat(auto-fit, 196px);
|
|
1834
|
+
gap: 18px;
|
|
1835
|
+
padding: 20px 0;
|
|
1836
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1837
|
+
border-bottom: 1px solid var(--color-border-secondary);
|
|
1838
|
+
}
|
|
1839
|
+
|
|
1840
|
+
.solvapay-mcp-fact-band-item {
|
|
1841
|
+
flex-direction: column;
|
|
1842
|
+
justify-content: flex-start;
|
|
1843
|
+
align-items: stretch;
|
|
1844
|
+
gap: 4px;
|
|
1845
|
+
padding-right: 18px;
|
|
1846
|
+
border-right: 1px solid var(--color-border-secondary);
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
.solvapay-mcp-fact-band-item:last-child {
|
|
1850
|
+
padding-right: 0;
|
|
1851
|
+
border-right: none;
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
.solvapay-mcp-fact-band-label {
|
|
1855
|
+
font: var(--solvapay-type-eyebrow-rail);
|
|
1856
|
+
letter-spacing: 1px;
|
|
1857
|
+
text-transform: uppercase;
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
.solvapay-mcp-fact-band-body {
|
|
1861
|
+
align-items: flex-start;
|
|
1862
|
+
gap: 4px;
|
|
1863
|
+
font: 500 20px/1.3 var(--font-sans);
|
|
1864
|
+
letter-spacing: -0.4px;
|
|
1865
|
+
text-align: left;
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
.solvapay-mcp-fact-band-compact {
|
|
1869
|
+
display: none;
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
.solvapay-mcp-fact-band-item:has(.solvapay-mcp-fact-band-compact) .solvapay-mcp-fact-band-value {
|
|
1873
|
+
display: inline;
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
.solvapay-mcp-fact-band-caption {
|
|
1877
|
+
display: block;
|
|
1878
|
+
font: var(--solvapay-type-caption);
|
|
1879
|
+
letter-spacing: 0;
|
|
1880
|
+
color: var(--color-text-secondary);
|
|
1881
|
+
}
|
|
1882
|
+
|
|
1883
|
+
.solvapay-mcp-plan-row {
|
|
1884
|
+
padding: 16px 20px;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
.solvapay-mcp-hosted-layout[data-rail='inline']:has(> .solvapay-mcp-summary-rail) {
|
|
1888
|
+
display: grid;
|
|
1889
|
+
grid-template-columns: 260px minmax(0, 1fr);
|
|
1890
|
+
gap: 32px;
|
|
1891
|
+
align-items: stretch;
|
|
1892
|
+
}
|
|
1893
|
+
|
|
1894
|
+
.solvapay-mcp-hosted-layout[data-rail='inline'] > .solvapay-mcp-summary-rail {
|
|
1895
|
+
border-bottom: none;
|
|
1896
|
+
border-right: 1px solid var(--color-border-secondary);
|
|
1897
|
+
padding-bottom: 0;
|
|
1898
|
+
padding-right: 32px;
|
|
1899
|
+
}
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
.solvapay-mcp-skeleton {
|
|
1903
|
+
display: flex;
|
|
1904
|
+
flex-direction: column;
|
|
1905
|
+
gap: 16px;
|
|
1906
|
+
}
|
|
1907
|
+
|
|
1908
|
+
.solvapay-mcp-skeleton-identity {
|
|
1909
|
+
display: flex;
|
|
1910
|
+
flex-direction: column;
|
|
1911
|
+
gap: 8px;
|
|
1912
|
+
}
|
|
1913
|
+
|
|
1914
|
+
.solvapay-mcp-skeleton-row {
|
|
1915
|
+
display: flex;
|
|
1916
|
+
align-items: center;
|
|
1917
|
+
justify-content: space-between;
|
|
1918
|
+
gap: 12px;
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
.solvapay-mcp-skeleton-line {
|
|
1922
|
+
display: block;
|
|
1923
|
+
border-radius: 4px;
|
|
1924
|
+
background: var(--color-background-secondary);
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
.solvapay-mcp-skeleton-name {
|
|
1928
|
+
width: 120px;
|
|
1929
|
+
height: 18px;
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
.solvapay-mcp-skeleton-status {
|
|
1933
|
+
width: 64px;
|
|
1934
|
+
height: 14px;
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
.solvapay-mcp-skeleton-desc {
|
|
1938
|
+
width: 100%;
|
|
1939
|
+
height: 13px;
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
.solvapay-mcp-skeleton-desc-short {
|
|
1943
|
+
width: 60%;
|
|
1944
|
+
height: 13px;
|
|
1945
|
+
}
|
|
1946
|
+
|
|
1947
|
+
.solvapay-mcp-skeleton-facts {
|
|
1948
|
+
display: flex;
|
|
1949
|
+
flex-direction: column;
|
|
1950
|
+
gap: 10px;
|
|
1951
|
+
padding-top: 14px;
|
|
1952
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1955
|
+
.solvapay-mcp-skeleton-label {
|
|
1956
|
+
width: 80px;
|
|
1957
|
+
height: 14px;
|
|
1958
|
+
}
|
|
1959
|
+
|
|
1960
|
+
.solvapay-mcp-skeleton-value {
|
|
1961
|
+
width: 110px;
|
|
1962
|
+
height: 14px;
|
|
1963
|
+
}
|
|
1964
|
+
|
|
1965
|
+
.solvapay-mcp-skeleton-label-sm {
|
|
1966
|
+
width: 64px;
|
|
1967
|
+
height: 14px;
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
.solvapay-mcp-skeleton-value-sm {
|
|
1971
|
+
width: 96px;
|
|
1972
|
+
height: 14px;
|
|
1973
|
+
}
|
|
1974
|
+
|
|
1975
|
+
.solvapay-mcp-skeleton-meter {
|
|
1976
|
+
width: 100%;
|
|
1977
|
+
height: 6px;
|
|
1978
|
+
}
|
|
1979
|
+
|
|
1980
|
+
.solvapay-mcp-skeleton-cta {
|
|
1981
|
+
width: 100%;
|
|
1982
|
+
height: 44px;
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1985
|
+
.solvapay-mcp-button[data-variant='secondary'] {
|
|
1986
|
+
background: transparent;
|
|
1987
|
+
color: var(--color-text-primary);
|
|
1988
|
+
border: 1px solid var(--color-border-primary);
|
|
1989
|
+
}
|
|
1990
|
+
|
|
1991
|
+
.solvapay-mcp-button[data-variant='secondary']:hover:not(:disabled) {
|
|
1992
|
+
background: var(--color-background-secondary);
|
|
1993
|
+
opacity: 1;
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
.solvapay-mcp-claim-body,
|
|
1997
|
+
.solvapay-mcp-cancelled-body {
|
|
1998
|
+
display: flex;
|
|
1999
|
+
flex-direction: column;
|
|
2000
|
+
gap: 5px;
|
|
2001
|
+
padding-top: 14px;
|
|
2002
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
2003
|
+
}
|
|
2004
|
+
|
|
2005
|
+
.solvapay-mcp-claim-title,
|
|
2006
|
+
.solvapay-mcp-cancelled-title {
|
|
2007
|
+
margin: 0;
|
|
2008
|
+
font: 500 16px/1.4 var(--font-sans);
|
|
2009
|
+
color: var(--color-text-primary);
|
|
2010
|
+
}
|
|
2011
|
+
|
|
2012
|
+
.solvapay-mcp-overage-meter {
|
|
2013
|
+
display: flex;
|
|
2014
|
+
flex-direction: column;
|
|
2015
|
+
gap: 10px;
|
|
2016
|
+
padding-top: 14px;
|
|
2017
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
.solvapay-mcp-overage-copy {
|
|
2021
|
+
margin: 0;
|
|
2022
|
+
font: 400 13px/1.5 var(--font-sans);
|
|
2023
|
+
color: var(--color-text-primary);
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
.solvapay-mcp-auto-recharge-fields {
|
|
2027
|
+
display: flex;
|
|
2028
|
+
flex-direction: column;
|
|
2029
|
+
gap: 12px;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
.solvapay-mcp-auto-recharge-fields-explainer,
|
|
2033
|
+
.solvapay-mcp-auto-recharge-fields-error {
|
|
2034
|
+
margin: 0;
|
|
2035
|
+
font: var(--solvapay-type-caption);
|
|
2036
|
+
color: var(--color-text-secondary);
|
|
2037
|
+
}
|
|
2038
|
+
|
|
2039
|
+
.solvapay-mcp-auto-recharge-fields-error {
|
|
2040
|
+
color: var(--color-text-danger);
|
|
2041
|
+
}
|
|
2042
|
+
|
|
2043
|
+
.solvapay-mcp-auto-recharge-inline {
|
|
2044
|
+
display: flex;
|
|
2045
|
+
flex-direction: column;
|
|
2046
|
+
gap: 14px;
|
|
2047
|
+
padding-top: 16px;
|
|
2048
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
.solvapay-mcp-auto-recharge-inline p {
|
|
2052
|
+
margin: 0;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
.solvapay-mcp-auto-recharge-view {
|
|
2056
|
+
display: flex;
|
|
2057
|
+
flex-direction: column;
|
|
2058
|
+
gap: var(--solvapay-section-gap);
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
.solvapay-mcp-auto-recharge-heading {
|
|
2062
|
+
display: flex;
|
|
2063
|
+
align-items: center;
|
|
2064
|
+
gap: 8px;
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
.solvapay-mcp-auto-recharge-summary {
|
|
2068
|
+
margin: 0;
|
|
2069
|
+
font: var(--solvapay-type-body);
|
|
2070
|
+
color: var(--color-text-primary);
|
|
2071
|
+
}
|
|
2072
|
+
|
|
2073
|
+
.solvapay-mcp-auto-recharge-footer {
|
|
2074
|
+
display: flex;
|
|
2075
|
+
flex-direction: column;
|
|
2076
|
+
gap: 16px;
|
|
2077
|
+
padding-top: 16px;
|
|
2078
|
+
border-top: 1px solid var(--color-border-secondary);
|
|
2079
|
+
}
|
|
2080
|
+
|
|
2081
|
+
.solvapay-mcp-auto-recharge-actions {
|
|
2082
|
+
display: flex;
|
|
2083
|
+
align-items: center;
|
|
2084
|
+
gap: 10px;
|
|
2085
|
+
flex: none;
|
|
2086
|
+
}
|
|
2087
|
+
|
|
2088
|
+
.solvapay-mcp-auto-recharge-actions .solvapay-mcp-button {
|
|
2089
|
+
width: auto;
|
|
2090
|
+
min-height: var(--solvapay-control-height);
|
|
2091
|
+
padding-inline: 18px;
|
|
2092
|
+
}
|
|
2093
|
+
|
|
2094
|
+
.solvapay-mcp-auto-recharge-actions-stack {
|
|
2095
|
+
display: flex;
|
|
2096
|
+
flex-direction: column;
|
|
2097
|
+
gap: 8px;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
.solvapay-mcp-auto-recharge-turn-off {
|
|
2101
|
+
align-self: center;
|
|
2102
|
+
padding-top: 6px;
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
@container mcp (min-width: 760px) {
|
|
2106
|
+
.solvapay-mcp-auto-recharge-fields {
|
|
2107
|
+
display: grid;
|
|
2108
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2109
|
+
gap: 12px;
|
|
2110
|
+
}
|
|
2111
|
+
|
|
2112
|
+
.solvapay-mcp-auto-recharge-fields-explainer,
|
|
2113
|
+
.solvapay-mcp-auto-recharge-fields-error {
|
|
2114
|
+
grid-column: 1 / -1;
|
|
2115
|
+
}
|
|
2116
|
+
|
|
2117
|
+
.solvapay-mcp-auto-recharge-footer {
|
|
2118
|
+
flex-direction: row;
|
|
2119
|
+
align-items: center;
|
|
2120
|
+
justify-content: space-between;
|
|
2121
|
+
gap: 16px;
|
|
2122
|
+
}
|
|
1201
2123
|
}
|