relmio 0.2.0 → 0.2.2
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 +49 -9
- package/LICENSE +201 -21
- package/NOTICE +11 -0
- package/README.md +74 -17
- package/docs/npm-publish.md +1 -1
- package/package.json +22 -7
- package/src/ui/app.js +21 -3
- package/src/ui/styles.css +368 -74
package/src/ui/styles.css
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
color-scheme: light;
|
|
3
|
-
--background: #
|
|
3
|
+
--background: #f4f2ec;
|
|
4
4
|
--surface: #ffffff;
|
|
5
|
-
--surface-muted: #
|
|
6
|
-
--text: #
|
|
7
|
-
--text-muted: #
|
|
8
|
-
--border: #
|
|
9
|
-
--border-strong: #
|
|
5
|
+
--surface-muted: #f7f6f1;
|
|
6
|
+
--text: #0d1b18;
|
|
7
|
+
--text-muted: #53655f;
|
|
8
|
+
--border: #dde3df;
|
|
9
|
+
--border-strong: #b9c4bf;
|
|
10
10
|
--accent: #137c74;
|
|
11
|
-
--accent-
|
|
12
|
-
--accent-
|
|
11
|
+
--accent-deep: #0c5f59;
|
|
12
|
+
--accent-bright: #1ba397;
|
|
13
|
+
--accent-soft: #e9f4ef;
|
|
13
14
|
--warning: #8a4b0f;
|
|
14
|
-
--warning-soft: #
|
|
15
|
+
--warning-soft: #fff4e2;
|
|
16
|
+
--warning-border: #e3c491;
|
|
15
17
|
--danger: #a22b2b;
|
|
16
18
|
--danger-soft: #fff0f0;
|
|
17
19
|
--success: #17653f;
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
+
--ease: cubic-bezier(0.22, 1, 0.36, 1);
|
|
21
|
+
--shadow-sm: 0 1px 2px rgb(13 27 24 / 5%);
|
|
22
|
+
--shadow-md:
|
|
23
|
+
0 1px 2px rgb(13 27 24 / 4%),
|
|
24
|
+
0 12px 36px -14px rgb(13 27 24 / 18%);
|
|
25
|
+
--radius-sm: 0.5rem;
|
|
26
|
+
--radius: 0.875rem;
|
|
27
|
+
--radius-lg: 1.25rem;
|
|
20
28
|
}
|
|
21
29
|
|
|
22
30
|
* {
|
|
@@ -29,12 +37,18 @@ html {
|
|
|
29
37
|
sans-serif;
|
|
30
38
|
color: var(--text);
|
|
31
39
|
background: var(--background);
|
|
40
|
+
scroll-behavior: smooth;
|
|
32
41
|
}
|
|
33
42
|
|
|
34
43
|
body {
|
|
35
44
|
min-width: 20rem;
|
|
36
45
|
margin: 0;
|
|
37
46
|
line-height: 1.5;
|
|
47
|
+
-webkit-font-smoothing: antialiased;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
::selection {
|
|
51
|
+
background: rgb(19 124 116 / 22%);
|
|
38
52
|
}
|
|
39
53
|
|
|
40
54
|
button,
|
|
@@ -66,29 +80,39 @@ a:focus-visible {
|
|
|
66
80
|
left: 0.5rem;
|
|
67
81
|
z-index: 10;
|
|
68
82
|
padding: 0.75rem 1rem;
|
|
83
|
+
border-radius: 999px;
|
|
69
84
|
color: #fff;
|
|
70
85
|
background: var(--text);
|
|
71
86
|
transform: translateY(-150%);
|
|
87
|
+
transition: transform 200ms var(--ease);
|
|
72
88
|
}
|
|
73
89
|
|
|
74
90
|
.skip-link:focus {
|
|
75
91
|
transform: translateY(0);
|
|
76
92
|
}
|
|
77
93
|
|
|
94
|
+
/* ---------- Header ---------- */
|
|
95
|
+
|
|
78
96
|
.site-header {
|
|
97
|
+
position: sticky;
|
|
98
|
+
top: 0;
|
|
99
|
+
z-index: 20;
|
|
79
100
|
display: flex;
|
|
80
101
|
align-items: center;
|
|
81
102
|
justify-content: space-between;
|
|
82
|
-
min-height:
|
|
103
|
+
min-height: 4.25rem;
|
|
83
104
|
padding: 0.75rem clamp(1rem, 4vw, 3rem);
|
|
84
|
-
border-bottom: 1px solid
|
|
85
|
-
background: rgb(
|
|
105
|
+
border-bottom: 1px solid rgb(221 227 223 / 75%);
|
|
106
|
+
background: rgb(244 242 236 / 82%);
|
|
107
|
+
backdrop-filter: blur(14px) saturate(1.4);
|
|
108
|
+
-webkit-backdrop-filter: blur(14px) saturate(1.4);
|
|
86
109
|
}
|
|
87
110
|
|
|
88
111
|
.brand {
|
|
89
112
|
display: flex;
|
|
90
113
|
align-items: center;
|
|
91
114
|
gap: 0.625rem;
|
|
115
|
+
font-size: 1.0625rem;
|
|
92
116
|
font-weight: 750;
|
|
93
117
|
letter-spacing: -0.01em;
|
|
94
118
|
}
|
|
@@ -101,19 +125,33 @@ a:focus-visible {
|
|
|
101
125
|
}
|
|
102
126
|
|
|
103
127
|
.local-badge {
|
|
104
|
-
|
|
128
|
+
display: inline-flex;
|
|
129
|
+
align-items: center;
|
|
130
|
+
gap: 0.4375rem;
|
|
131
|
+
padding: 0.4375rem 0.75rem;
|
|
105
132
|
border: 1px solid var(--border);
|
|
106
133
|
border-radius: 999px;
|
|
107
134
|
color: var(--text-muted);
|
|
108
135
|
background: var(--surface);
|
|
136
|
+
box-shadow: var(--shadow-sm);
|
|
109
137
|
font-size: 0.75rem;
|
|
110
138
|
font-weight: 650;
|
|
111
139
|
}
|
|
112
140
|
|
|
141
|
+
.local-badge::before {
|
|
142
|
+
width: 0.4375rem;
|
|
143
|
+
height: 0.4375rem;
|
|
144
|
+
border-radius: 50%;
|
|
145
|
+
background: var(--accent-bright);
|
|
146
|
+
content: "";
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* ---------- Shell & intro ---------- */
|
|
150
|
+
|
|
113
151
|
.shell {
|
|
114
152
|
width: min(100% - 2rem, 54rem);
|
|
115
153
|
margin: 0 auto;
|
|
116
|
-
padding:
|
|
154
|
+
padding: 3.5rem 0 5rem;
|
|
117
155
|
}
|
|
118
156
|
|
|
119
157
|
.intro {
|
|
@@ -140,14 +178,14 @@ p {
|
|
|
140
178
|
h1 {
|
|
141
179
|
max-width: 42rem;
|
|
142
180
|
margin-bottom: 1rem;
|
|
143
|
-
font-size: clamp(
|
|
144
|
-
line-height: 1.
|
|
181
|
+
font-size: clamp(2.1rem, 6.5vw, 3.4rem);
|
|
182
|
+
line-height: 1.04;
|
|
145
183
|
letter-spacing: -0.045em;
|
|
146
184
|
}
|
|
147
185
|
|
|
148
186
|
h2 {
|
|
149
187
|
margin-bottom: 0.5rem;
|
|
150
|
-
font-size: clamp(1.
|
|
188
|
+
font-size: clamp(1.45rem, 4vw, 1.9rem);
|
|
151
189
|
line-height: 1.2;
|
|
152
190
|
letter-spacing: -0.025em;
|
|
153
191
|
}
|
|
@@ -167,16 +205,38 @@ h3 {
|
|
|
167
205
|
font-size: 1.0625rem;
|
|
168
206
|
}
|
|
169
207
|
|
|
208
|
+
/* ---------- Safety notes ---------- */
|
|
209
|
+
|
|
170
210
|
.safety-note {
|
|
211
|
+
position: relative;
|
|
171
212
|
display: grid;
|
|
172
|
-
grid-template-columns:
|
|
173
|
-
gap: 0.
|
|
174
|
-
|
|
175
|
-
|
|
213
|
+
grid-template-columns: 2.25rem 1fr;
|
|
214
|
+
gap: 0.25rem 0.875rem;
|
|
215
|
+
align-items: start;
|
|
216
|
+
margin: 1.25rem 0 0;
|
|
217
|
+
padding: 1rem 1.125rem;
|
|
176
218
|
border: 1px solid #b9d9d2;
|
|
177
|
-
border-
|
|
178
|
-
border-radius: 0.5rem;
|
|
219
|
+
border-radius: var(--radius);
|
|
179
220
|
background: var(--accent-soft);
|
|
221
|
+
box-shadow: var(--shadow-sm);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.safety-note::before {
|
|
225
|
+
display: grid;
|
|
226
|
+
width: 2.25rem;
|
|
227
|
+
height: 2.25rem;
|
|
228
|
+
grid-row: span 2;
|
|
229
|
+
place-items: center;
|
|
230
|
+
border-radius: 0.625rem;
|
|
231
|
+
color: var(--accent-deep);
|
|
232
|
+
background: #d3eae0;
|
|
233
|
+
font-size: 1rem;
|
|
234
|
+
font-weight: 800;
|
|
235
|
+
content: "✓";
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.safety-note strong {
|
|
239
|
+
align-self: center;
|
|
180
240
|
}
|
|
181
241
|
|
|
182
242
|
.safety-note span {
|
|
@@ -184,16 +244,24 @@ h3 {
|
|
|
184
244
|
}
|
|
185
245
|
|
|
186
246
|
.backup-note {
|
|
187
|
-
border-color:
|
|
247
|
+
border-color: var(--warning-border);
|
|
188
248
|
background: var(--warning-soft);
|
|
189
249
|
}
|
|
190
250
|
|
|
251
|
+
.backup-note::before {
|
|
252
|
+
color: var(--warning);
|
|
253
|
+
background: #f6e3c3;
|
|
254
|
+
content: "!";
|
|
255
|
+
}
|
|
256
|
+
|
|
191
257
|
.backup-note span {
|
|
192
258
|
color: var(--warning);
|
|
193
259
|
}
|
|
194
260
|
|
|
261
|
+
/* ---------- Stepper ---------- */
|
|
262
|
+
|
|
195
263
|
.steps {
|
|
196
|
-
margin:
|
|
264
|
+
margin: 2.5rem 0 1.25rem;
|
|
197
265
|
}
|
|
198
266
|
|
|
199
267
|
.steps ol {
|
|
@@ -208,7 +276,7 @@ h3 {
|
|
|
208
276
|
position: relative;
|
|
209
277
|
display: grid;
|
|
210
278
|
justify-items: center;
|
|
211
|
-
gap: 0.
|
|
279
|
+
gap: 0.4375rem;
|
|
212
280
|
color: var(--text-muted);
|
|
213
281
|
font-size: 0.75rem;
|
|
214
282
|
text-align: center;
|
|
@@ -216,13 +284,14 @@ h3 {
|
|
|
216
284
|
|
|
217
285
|
.steps li::before {
|
|
218
286
|
position: absolute;
|
|
219
|
-
top: 0.
|
|
287
|
+
top: 0.9375rem;
|
|
220
288
|
right: 50%;
|
|
221
|
-
z-index:
|
|
289
|
+
z-index: 0;
|
|
222
290
|
width: 100%;
|
|
223
291
|
height: 2px;
|
|
224
292
|
background: var(--border);
|
|
225
293
|
content: "";
|
|
294
|
+
transition: background 400ms var(--ease);
|
|
226
295
|
}
|
|
227
296
|
|
|
228
297
|
.steps li:first-child::before {
|
|
@@ -230,29 +299,52 @@ h3 {
|
|
|
230
299
|
}
|
|
231
300
|
|
|
232
301
|
.steps li span {
|
|
302
|
+
position: relative;
|
|
303
|
+
z-index: 1;
|
|
233
304
|
display: grid;
|
|
234
|
-
width:
|
|
235
|
-
height:
|
|
305
|
+
width: 2rem;
|
|
306
|
+
height: 2rem;
|
|
236
307
|
place-items: center;
|
|
237
308
|
border: 2px solid var(--border-strong);
|
|
238
309
|
border-radius: 50%;
|
|
239
|
-
background: var(--
|
|
310
|
+
background: var(--surface);
|
|
311
|
+
box-shadow: var(--shadow-sm);
|
|
312
|
+
font-size: 0.8125rem;
|
|
240
313
|
font-weight: 800;
|
|
314
|
+
transition:
|
|
315
|
+
border-color 300ms var(--ease),
|
|
316
|
+
background 300ms var(--ease),
|
|
317
|
+
color 300ms var(--ease),
|
|
318
|
+
box-shadow 300ms var(--ease);
|
|
241
319
|
}
|
|
242
320
|
|
|
243
321
|
.steps li em {
|
|
244
322
|
font-style: normal;
|
|
323
|
+
font-weight: 600;
|
|
245
324
|
}
|
|
246
325
|
|
|
247
326
|
.steps li[aria-current="step"] {
|
|
248
327
|
color: var(--text);
|
|
249
328
|
}
|
|
250
329
|
|
|
251
|
-
.steps li[aria-current="step"] span
|
|
252
|
-
.steps li.complete span {
|
|
330
|
+
.steps li[aria-current="step"] span {
|
|
253
331
|
border-color: var(--accent);
|
|
254
332
|
color: #fff;
|
|
255
333
|
background: var(--accent);
|
|
334
|
+
box-shadow: 0 0 0 5px rgb(19 124 116 / 15%);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.steps li.complete span {
|
|
338
|
+
border-color: var(--accent);
|
|
339
|
+
color: transparent;
|
|
340
|
+
background: var(--accent);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.steps li.complete span::after {
|
|
344
|
+
position: absolute;
|
|
345
|
+
color: #fff;
|
|
346
|
+
font-size: 0.8125rem;
|
|
347
|
+
content: "✓";
|
|
256
348
|
}
|
|
257
349
|
|
|
258
350
|
.steps li.complete::before,
|
|
@@ -260,17 +352,34 @@ h3 {
|
|
|
260
352
|
background: var(--accent);
|
|
261
353
|
}
|
|
262
354
|
|
|
355
|
+
/* ---------- Global messages ---------- */
|
|
356
|
+
|
|
263
357
|
.message,
|
|
264
358
|
.error {
|
|
265
|
-
|
|
359
|
+
display: flex;
|
|
360
|
+
align-items: center;
|
|
361
|
+
gap: 0.625rem;
|
|
362
|
+
min-height: 2.875rem;
|
|
266
363
|
margin: 1rem 0;
|
|
267
364
|
padding: 0.75rem 1rem;
|
|
268
|
-
border-radius:
|
|
365
|
+
border-radius: var(--radius-sm);
|
|
366
|
+
font-size: 0.9375rem;
|
|
269
367
|
}
|
|
270
368
|
|
|
271
369
|
.message {
|
|
370
|
+
border: 1px solid var(--border);
|
|
272
371
|
color: var(--text-muted);
|
|
273
|
-
background: var(--surface
|
|
372
|
+
background: var(--surface);
|
|
373
|
+
box-shadow: var(--shadow-sm);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.message::before {
|
|
377
|
+
flex: 0 0 auto;
|
|
378
|
+
width: 0.4375rem;
|
|
379
|
+
height: 0.4375rem;
|
|
380
|
+
border-radius: 50%;
|
|
381
|
+
background: var(--accent-bright);
|
|
382
|
+
content: "";
|
|
274
383
|
}
|
|
275
384
|
|
|
276
385
|
.error {
|
|
@@ -278,14 +387,18 @@ h3 {
|
|
|
278
387
|
color: var(--danger);
|
|
279
388
|
background: var(--danger-soft);
|
|
280
389
|
font-weight: 650;
|
|
390
|
+
animation: shake 320ms var(--ease);
|
|
281
391
|
}
|
|
282
392
|
|
|
393
|
+
/* ---------- Panels ---------- */
|
|
394
|
+
|
|
283
395
|
.panel {
|
|
284
|
-
padding: clamp(1.
|
|
396
|
+
padding: clamp(1.5rem, 4vw, 2.25rem);
|
|
285
397
|
border: 1px solid var(--border);
|
|
286
|
-
border-radius: var(--radius);
|
|
398
|
+
border-radius: var(--radius-lg);
|
|
287
399
|
background: var(--surface);
|
|
288
|
-
box-shadow: var(--shadow);
|
|
400
|
+
box-shadow: var(--shadow-md);
|
|
401
|
+
animation: panel-in 380ms var(--ease);
|
|
289
402
|
}
|
|
290
403
|
|
|
291
404
|
.panel-heading {
|
|
@@ -301,9 +414,9 @@ h3 {
|
|
|
301
414
|
display: flex;
|
|
302
415
|
align-items: flex-start;
|
|
303
416
|
gap: 0.875rem;
|
|
304
|
-
padding: 1rem;
|
|
417
|
+
padding: 1rem 1.125rem;
|
|
305
418
|
border: 1px solid var(--border);
|
|
306
|
-
border-radius:
|
|
419
|
+
border-radius: var(--radius);
|
|
307
420
|
background: var(--surface-muted);
|
|
308
421
|
}
|
|
309
422
|
|
|
@@ -325,13 +438,20 @@ h3 {
|
|
|
325
438
|
margin-top: 0.375rem;
|
|
326
439
|
border: 2px solid var(--border-strong);
|
|
327
440
|
border-radius: 50%;
|
|
441
|
+
transition:
|
|
442
|
+
border-color 300ms var(--ease),
|
|
443
|
+
background 300ms var(--ease),
|
|
444
|
+
box-shadow 300ms var(--ease);
|
|
328
445
|
}
|
|
329
446
|
|
|
330
447
|
.status-dot.ready {
|
|
331
448
|
border-color: var(--success);
|
|
332
449
|
background: var(--success);
|
|
450
|
+
box-shadow: 0 0 0 4px rgb(23 101 63 / 14%);
|
|
333
451
|
}
|
|
334
452
|
|
|
453
|
+
/* ---------- Fields ---------- */
|
|
454
|
+
|
|
335
455
|
.field-grid {
|
|
336
456
|
display: grid;
|
|
337
457
|
grid-template-columns: minmax(0, 2fr) minmax(7rem, 1fr);
|
|
@@ -346,24 +466,56 @@ h3 {
|
|
|
346
466
|
.field {
|
|
347
467
|
display: grid;
|
|
348
468
|
align-content: start;
|
|
349
|
-
gap: 0.
|
|
469
|
+
gap: 0.4375rem;
|
|
350
470
|
font-weight: 700;
|
|
351
471
|
}
|
|
352
472
|
|
|
353
473
|
.field input,
|
|
354
474
|
.field select {
|
|
355
475
|
width: 100%;
|
|
356
|
-
min-height: 2.
|
|
357
|
-
padding: 0.625rem 0.
|
|
476
|
+
min-height: 2.875rem;
|
|
477
|
+
padding: 0.625rem 0.875rem;
|
|
358
478
|
border: 1px solid var(--border-strong);
|
|
359
|
-
border-radius:
|
|
479
|
+
border-radius: var(--radius-sm);
|
|
360
480
|
color: var(--text);
|
|
361
481
|
background: #fff;
|
|
482
|
+
transition:
|
|
483
|
+
border-color 200ms var(--ease),
|
|
484
|
+
box-shadow 200ms var(--ease),
|
|
485
|
+
background 200ms var(--ease);
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
.field select {
|
|
489
|
+
appearance: none;
|
|
490
|
+
padding-right: 2.25rem;
|
|
491
|
+
background-image:
|
|
492
|
+
linear-gradient(45deg, transparent 50%, var(--text-muted) 50%),
|
|
493
|
+
linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);
|
|
494
|
+
background-position:
|
|
495
|
+
calc(100% - 1.125rem) 50%,
|
|
496
|
+
calc(100% - 0.8125rem) 50%;
|
|
497
|
+
background-size:
|
|
498
|
+
0.3125rem 0.3125rem,
|
|
499
|
+
0.3125rem 0.3125rem;
|
|
500
|
+
background-repeat: no-repeat;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
.field input:hover,
|
|
504
|
+
.field select:hover {
|
|
505
|
+
border-color: var(--accent);
|
|
362
506
|
}
|
|
363
507
|
|
|
364
508
|
.field input:focus,
|
|
365
509
|
.field select:focus {
|
|
366
510
|
border-color: var(--accent);
|
|
511
|
+
outline: 0;
|
|
512
|
+
box-shadow: 0 0 0 4px rgb(19 124 116 / 13%);
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.field input:disabled {
|
|
516
|
+
color: var(--text-muted);
|
|
517
|
+
background: var(--surface-muted);
|
|
518
|
+
cursor: not-allowed;
|
|
367
519
|
}
|
|
368
520
|
|
|
369
521
|
.field small {
|
|
@@ -381,21 +533,46 @@ code {
|
|
|
381
533
|
overflow-wrap: anywhere;
|
|
382
534
|
}
|
|
383
535
|
|
|
536
|
+
/* ---------- Buttons ---------- */
|
|
537
|
+
|
|
384
538
|
.actions {
|
|
385
539
|
display: flex;
|
|
386
540
|
flex-wrap: wrap;
|
|
387
541
|
justify-content: flex-end;
|
|
388
542
|
gap: 0.75rem;
|
|
389
|
-
margin-top: 1.
|
|
543
|
+
margin-top: 1.75rem;
|
|
390
544
|
}
|
|
391
545
|
|
|
392
546
|
.button {
|
|
393
|
-
|
|
394
|
-
|
|
547
|
+
position: relative;
|
|
548
|
+
display: inline-flex;
|
|
549
|
+
align-items: center;
|
|
550
|
+
justify-content: center;
|
|
551
|
+
gap: 0.5rem;
|
|
552
|
+
min-height: 2.875rem;
|
|
553
|
+
padding: 0.625rem 1.125rem;
|
|
395
554
|
border: 1px solid transparent;
|
|
396
|
-
border-radius: 0.
|
|
555
|
+
border-radius: 0.625rem;
|
|
397
556
|
font-weight: 750;
|
|
557
|
+
box-shadow: var(--shadow-sm);
|
|
398
558
|
cursor: pointer;
|
|
559
|
+
transition:
|
|
560
|
+
transform 200ms var(--ease),
|
|
561
|
+
box-shadow 200ms var(--ease),
|
|
562
|
+
background 200ms var(--ease),
|
|
563
|
+
color 200ms var(--ease),
|
|
564
|
+
border-color 200ms var(--ease),
|
|
565
|
+
opacity 200ms var(--ease);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
.button:not(:disabled):hover {
|
|
569
|
+
transform: translateY(-1px);
|
|
570
|
+
box-shadow: var(--shadow-md);
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
.button:not(:disabled):active {
|
|
574
|
+
transform: translateY(0) scale(0.98);
|
|
575
|
+
box-shadow: var(--shadow-sm);
|
|
399
576
|
}
|
|
400
577
|
|
|
401
578
|
.button:disabled {
|
|
@@ -403,13 +580,28 @@ code {
|
|
|
403
580
|
opacity: 0.48;
|
|
404
581
|
}
|
|
405
582
|
|
|
583
|
+
.button[aria-busy="true"] {
|
|
584
|
+
cursor: progress;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
.button[aria-busy="true"]::after {
|
|
588
|
+
width: 0.9375rem;
|
|
589
|
+
height: 0.9375rem;
|
|
590
|
+
flex: 0 0 auto;
|
|
591
|
+
border: 2px solid currentcolor;
|
|
592
|
+
border-top-color: transparent;
|
|
593
|
+
border-radius: 50%;
|
|
594
|
+
content: "";
|
|
595
|
+
animation: spin 700ms linear infinite;
|
|
596
|
+
}
|
|
597
|
+
|
|
406
598
|
.button.primary {
|
|
407
599
|
color: #fff;
|
|
408
600
|
background: var(--accent);
|
|
409
601
|
}
|
|
410
602
|
|
|
411
603
|
.button.primary:not(:disabled):hover {
|
|
412
|
-
background: var(--accent-
|
|
604
|
+
background: var(--accent-deep);
|
|
413
605
|
}
|
|
414
606
|
|
|
415
607
|
.button.secondary {
|
|
@@ -420,21 +612,32 @@ code {
|
|
|
420
612
|
|
|
421
613
|
.button.secondary:not(:disabled):hover,
|
|
422
614
|
.button.ghost:not(:disabled):hover {
|
|
423
|
-
|
|
615
|
+
border-color: var(--accent);
|
|
616
|
+
background: var(--accent-soft);
|
|
424
617
|
}
|
|
425
618
|
|
|
426
619
|
.button.ghost {
|
|
427
620
|
margin-right: auto;
|
|
428
621
|
color: var(--text-muted);
|
|
429
622
|
background: transparent;
|
|
623
|
+
box-shadow: none;
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
.button.copied {
|
|
627
|
+
border-color: var(--success);
|
|
628
|
+
color: var(--success);
|
|
629
|
+
background: #e9f5ee;
|
|
430
630
|
}
|
|
431
631
|
|
|
632
|
+
/* ---------- Fingerprint & approvals ---------- */
|
|
633
|
+
|
|
432
634
|
.fingerprint {
|
|
433
635
|
margin-top: 1rem;
|
|
434
|
-
padding:
|
|
435
|
-
border: 1px solid
|
|
436
|
-
border-radius:
|
|
636
|
+
padding: 1.125rem;
|
|
637
|
+
border: 1px solid var(--warning-border);
|
|
638
|
+
border-radius: var(--radius);
|
|
437
639
|
background: var(--warning-soft);
|
|
640
|
+
animation: panel-in 320ms var(--ease);
|
|
438
641
|
}
|
|
439
642
|
|
|
440
643
|
.fingerprint > span {
|
|
@@ -449,6 +652,9 @@ code {
|
|
|
449
652
|
.fingerprint > code {
|
|
450
653
|
display: block;
|
|
451
654
|
margin-bottom: 1rem;
|
|
655
|
+
padding: 0.625rem 0.75rem;
|
|
656
|
+
border: 1px solid var(--warning-border);
|
|
657
|
+
border-radius: var(--radius-sm);
|
|
452
658
|
background: #fff;
|
|
453
659
|
}
|
|
454
660
|
|
|
@@ -465,23 +671,30 @@ code {
|
|
|
465
671
|
width: 1.125rem;
|
|
466
672
|
height: 1.125rem;
|
|
467
673
|
margin: 0.2rem 0 0;
|
|
674
|
+
accent-color: var(--accent);
|
|
675
|
+
cursor: pointer;
|
|
468
676
|
}
|
|
469
677
|
|
|
470
678
|
.version-strip {
|
|
471
679
|
display: flex;
|
|
472
680
|
flex-wrap: wrap;
|
|
473
|
-
gap: 0.
|
|
474
|
-
margin-bottom:
|
|
681
|
+
gap: 0.625rem;
|
|
682
|
+
margin-bottom: 1.25rem;
|
|
475
683
|
}
|
|
476
684
|
|
|
477
685
|
.version-strip span {
|
|
478
|
-
|
|
686
|
+
display: inline-flex;
|
|
687
|
+
align-items: center;
|
|
688
|
+
gap: 0.375rem;
|
|
689
|
+
padding: 0.4375rem 0.75rem;
|
|
479
690
|
border: 1px solid var(--border);
|
|
480
691
|
border-radius: 999px;
|
|
481
692
|
background: var(--surface-muted);
|
|
482
|
-
font-size: 0.
|
|
693
|
+
font-size: 0.8125rem;
|
|
483
694
|
}
|
|
484
695
|
|
|
696
|
+
/* ---------- Review ---------- */
|
|
697
|
+
|
|
485
698
|
.review-grid {
|
|
486
699
|
display: grid;
|
|
487
700
|
grid-template-columns: 1fr 1fr;
|
|
@@ -489,9 +702,20 @@ code {
|
|
|
489
702
|
}
|
|
490
703
|
|
|
491
704
|
.review-grid section {
|
|
492
|
-
padding:
|
|
705
|
+
padding: 1.125rem;
|
|
493
706
|
border: 1px solid var(--border);
|
|
494
|
-
border-radius:
|
|
707
|
+
border-radius: var(--radius);
|
|
708
|
+
background: var(--surface-muted);
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.review-grid section:first-child {
|
|
712
|
+
border-color: #b9d9d2;
|
|
713
|
+
background: var(--accent-soft);
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
.review-grid section:last-child {
|
|
717
|
+
border-color: #e4abab;
|
|
718
|
+
background: var(--danger-soft);
|
|
495
719
|
}
|
|
496
720
|
|
|
497
721
|
.check-list,
|
|
@@ -512,27 +736,31 @@ code {
|
|
|
512
736
|
|
|
513
737
|
.approval {
|
|
514
738
|
margin-top: 1rem;
|
|
515
|
-
padding: 1rem;
|
|
516
|
-
border: 1px solid
|
|
517
|
-
border-radius:
|
|
739
|
+
padding: 1rem 1.125rem;
|
|
740
|
+
border: 1px solid var(--warning-border);
|
|
741
|
+
border-radius: var(--radius);
|
|
518
742
|
background: var(--warning-soft);
|
|
519
743
|
}
|
|
520
744
|
|
|
745
|
+
/* ---------- Success ---------- */
|
|
746
|
+
|
|
521
747
|
.success-panel {
|
|
522
748
|
position: relative;
|
|
523
749
|
}
|
|
524
750
|
|
|
525
751
|
.success-mark {
|
|
526
752
|
display: grid;
|
|
527
|
-
width:
|
|
528
|
-
height:
|
|
529
|
-
margin-bottom:
|
|
753
|
+
width: 3.25rem;
|
|
754
|
+
height: 3.25rem;
|
|
755
|
+
margin-bottom: 1.25rem;
|
|
530
756
|
place-items: center;
|
|
531
757
|
border-radius: 50%;
|
|
532
758
|
color: #fff;
|
|
533
|
-
background: var(--success);
|
|
759
|
+
background: linear-gradient(140deg, #1d8a5f, var(--success));
|
|
760
|
+
box-shadow: 0 0 0 6px rgb(23 101 63 / 14%);
|
|
534
761
|
font-size: 1.5rem;
|
|
535
762
|
font-weight: 900;
|
|
763
|
+
animation: pop-in 480ms var(--ease);
|
|
536
764
|
}
|
|
537
765
|
|
|
538
766
|
.result-list {
|
|
@@ -543,6 +771,7 @@ code {
|
|
|
543
771
|
display: grid;
|
|
544
772
|
grid-template-columns: 9rem 1fr;
|
|
545
773
|
gap: 1rem;
|
|
774
|
+
align-items: center;
|
|
546
775
|
padding: 0.875rem 0;
|
|
547
776
|
border-bottom: 1px solid var(--border);
|
|
548
777
|
}
|
|
@@ -560,20 +789,23 @@ code {
|
|
|
560
789
|
display: flex;
|
|
561
790
|
flex-wrap: wrap;
|
|
562
791
|
align-items: center;
|
|
792
|
+
justify-content: space-between;
|
|
563
793
|
gap: 0.75rem;
|
|
564
794
|
}
|
|
565
795
|
|
|
566
796
|
.copy-value {
|
|
567
|
-
min-height:
|
|
568
|
-
padding: 0.
|
|
797
|
+
min-height: 2.125rem;
|
|
798
|
+
padding: 0.3125rem 0.75rem;
|
|
799
|
+
border-radius: 0.5rem;
|
|
569
800
|
font-size: 0.8125rem;
|
|
570
801
|
}
|
|
571
802
|
|
|
572
803
|
.model-box,
|
|
573
804
|
.final-note {
|
|
574
805
|
margin-top: 1.5rem;
|
|
575
|
-
padding:
|
|
576
|
-
border
|
|
806
|
+
padding: 1.125rem;
|
|
807
|
+
border: 1px solid var(--border);
|
|
808
|
+
border-radius: var(--radius);
|
|
577
809
|
background: var(--surface-muted);
|
|
578
810
|
}
|
|
579
811
|
|
|
@@ -582,6 +814,10 @@ code {
|
|
|
582
814
|
margin-bottom: 0;
|
|
583
815
|
}
|
|
584
816
|
|
|
817
|
+
.model-box p {
|
|
818
|
+
color: var(--text-muted);
|
|
819
|
+
}
|
|
820
|
+
|
|
585
821
|
footer {
|
|
586
822
|
padding: 1.5rem 1rem;
|
|
587
823
|
border-top: 1px solid var(--border);
|
|
@@ -595,6 +831,54 @@ footer p {
|
|
|
595
831
|
margin: 0;
|
|
596
832
|
}
|
|
597
833
|
|
|
834
|
+
/* ---------- Animations ---------- */
|
|
835
|
+
|
|
836
|
+
@keyframes panel-in {
|
|
837
|
+
from {
|
|
838
|
+
opacity: 0;
|
|
839
|
+
transform: translateY(14px);
|
|
840
|
+
}
|
|
841
|
+
to {
|
|
842
|
+
opacity: 1;
|
|
843
|
+
transform: translateY(0);
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
@keyframes pop-in {
|
|
848
|
+
0% {
|
|
849
|
+
opacity: 0;
|
|
850
|
+
transform: scale(0.5);
|
|
851
|
+
}
|
|
852
|
+
70% {
|
|
853
|
+
transform: scale(1.08);
|
|
854
|
+
}
|
|
855
|
+
100% {
|
|
856
|
+
opacity: 1;
|
|
857
|
+
transform: scale(1);
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
@keyframes shake {
|
|
862
|
+
0%,
|
|
863
|
+
100% {
|
|
864
|
+
transform: translateX(0);
|
|
865
|
+
}
|
|
866
|
+
25% {
|
|
867
|
+
transform: translateX(-4px);
|
|
868
|
+
}
|
|
869
|
+
75% {
|
|
870
|
+
transform: translateX(4px);
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
|
|
874
|
+
@keyframes spin {
|
|
875
|
+
to {
|
|
876
|
+
transform: rotate(360deg);
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
/* ---------- Responsive ---------- */
|
|
881
|
+
|
|
598
882
|
@media (max-width: 42rem) {
|
|
599
883
|
.local-badge {
|
|
600
884
|
display: none;
|
|
@@ -611,12 +895,16 @@ footer p {
|
|
|
611
895
|
grid-template-columns: 1fr;
|
|
612
896
|
}
|
|
613
897
|
|
|
898
|
+
.safety-note::before {
|
|
899
|
+
grid-row: auto;
|
|
900
|
+
}
|
|
901
|
+
|
|
614
902
|
.steps li em {
|
|
615
903
|
font-size: 0.6875rem;
|
|
616
904
|
}
|
|
617
905
|
|
|
618
906
|
.panel {
|
|
619
|
-
border-radius:
|
|
907
|
+
border-radius: var(--radius);
|
|
620
908
|
}
|
|
621
909
|
|
|
622
910
|
.actions {
|
|
@@ -636,9 +924,15 @@ footer p {
|
|
|
636
924
|
}
|
|
637
925
|
|
|
638
926
|
@media (prefers-reduced-motion: reduce) {
|
|
927
|
+
html {
|
|
928
|
+
scroll-behavior: auto;
|
|
929
|
+
}
|
|
930
|
+
|
|
639
931
|
*,
|
|
640
932
|
*::before,
|
|
641
933
|
*::after {
|
|
934
|
+
animation-duration: 0.01ms !important;
|
|
935
|
+
animation-iteration-count: 1 !important;
|
|
642
936
|
scroll-behavior: auto !important;
|
|
643
937
|
transition-duration: 0.01ms !important;
|
|
644
938
|
}
|