@memtensor/memos-cloud-openclaw-plugin 0.1.14 → 0.1.15

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.
@@ -1,920 +1,920 @@
1
- :root {
2
- --bg: #f4efe4;
3
- --bg2: #fbf8f1;
4
- --card: rgba(255, 252, 245, 0.86);
5
- --line: rgba(37, 43, 52, 0.12);
6
- --text: #202734;
7
- --muted: #64748b;
8
- --strong: #101828;
9
- --accent: #0f766e;
10
- --accent2: #0b5b56;
11
- --warn: #b54708;
12
- --danger: #b42318;
13
- --shadow: 0 24px 64px rgba(15, 23, 42, 0.08);
14
- --shell-max-width: 1360px;
15
- --floating-nav-width: 132px;
16
- --floating-nav-collapsed-width: 52px;
17
- --floating-nav-gap: 12px;
18
- --page-padding: 28px;
19
- }
20
-
21
- * {
22
- box-sizing: border-box;
23
- }
24
-
25
- html,
26
- body {
27
- margin: 0;
28
- min-height: 100%;
29
- color: var(--text);
30
- background:
31
- radial-gradient(circle at top left, rgba(15, 118, 110, 0.18), transparent 28%),
32
- radial-gradient(circle at top right, rgba(234, 179, 8, 0.12), transparent 24%),
33
- linear-gradient(180deg, var(--bg), var(--bg2));
34
- font-family: "Segoe UI Variable", "Aptos", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
35
- }
36
-
37
- body {
38
- padding: var(--page-padding);
39
- }
40
-
41
- button,
42
- input,
43
- select,
44
- textarea {
45
- font: inherit;
46
- }
47
-
48
- .shell {
49
- display: grid;
50
- grid-template-columns: minmax(0, 1fr) var(--floating-nav-width);
51
- column-gap: var(--floating-nav-gap);
52
- align-items: start;
53
- max-width: var(--shell-max-width);
54
- margin: 0 auto;
55
- }
56
-
57
- body.nav-collapsed .shell {
58
- grid-template-columns: minmax(0, 1fr) var(--floating-nav-collapsed-width);
59
- }
60
-
61
- .hero,
62
- .layout {
63
- grid-column: 1;
64
- }
65
-
66
- .hero,
67
- .card {
68
- border: 1px solid var(--line);
69
- background: var(--card);
70
- box-shadow: var(--shadow);
71
- }
72
-
73
- .hero {
74
- margin-bottom: 22px;
75
- padding: 22px;
76
- border-radius: 28px;
77
- backdrop-filter: blur(16px);
78
- }
79
-
80
- .hero-grid,
81
- .layout {
82
- gap: 18px;
83
- }
84
-
85
- .hero-grid {
86
- display: grid;
87
- grid-template-columns: 1.4fr 1fr;
88
- }
89
-
90
- .hero-top {
91
- display: flex;
92
- align-items: center;
93
- justify-content: space-between;
94
- gap: 16px;
95
- flex-wrap: wrap;
96
- }
97
-
98
- .layout {
99
- display: grid;
100
- grid-template-columns: minmax(0, 1fr);
101
- gap: 18px;
102
- }
103
-
104
- .eyebrow,
105
- .pill,
106
- .inline-btn {
107
- display: inline-flex;
108
- align-items: center;
109
- gap: 8px;
110
- border-radius: 999px;
111
- }
112
-
113
- .eyebrow {
114
- padding: 8px 12px;
115
- background: rgba(16, 24, 40, 0.05);
116
- color: var(--strong);
117
- font-size: 13px;
118
- font-weight: 700;
119
- }
120
-
121
- .eyebrow-icon {
122
- width: 16px;
123
- height: 16px;
124
- flex: 0 0 16px;
125
- }
126
-
127
- .hero-title-row {
128
- display: flex;
129
- align-items: center;
130
- gap: 14px;
131
- margin-top: 14px;
132
- }
133
-
134
- .hero-logo {
135
- width: clamp(42px, 5vw, 56px);
136
- height: clamp(42px, 5vw, 56px);
137
- flex: 0 0 auto;
138
- border-radius: 16px;
139
- }
140
-
141
- .lang-switch {
142
- display: inline-flex;
143
- align-items: center;
144
- gap: 10px;
145
- min-height: 36px;
146
- }
147
-
148
- .lang-label {
149
- color: #5b6677;
150
- font-size: 11px;
151
- font-weight: 700;
152
- letter-spacing: 0.08em;
153
- text-transform: uppercase;
154
- }
155
-
156
- .lang-dropdown {
157
- position: relative;
158
- }
159
-
160
- .lang-select {
161
- appearance: none;
162
- display: inline-flex;
163
- align-items: center;
164
- justify-content: space-between;
165
- min-height: 32px;
166
- min-width: 124px;
167
- padding: 0 38px 0 14px;
168
- border: 1px solid rgba(15, 23, 42, 0.08);
169
- border-radius: 999px;
170
- background:
171
- linear-gradient(180deg, rgba(249, 250, 251, 0.96), rgba(241, 245, 249, 0.92));
172
- background-image:
173
- linear-gradient(45deg, transparent 50%, #667085 50%),
174
- linear-gradient(135deg, #667085 50%, transparent 50%),
175
- linear-gradient(180deg, rgba(249, 250, 251, 0.96), rgba(241, 245, 249, 0.92));
176
- background-position:
177
- calc(100% - 18px) 13px,
178
- calc(100% - 12px) 13px,
179
- 0 0;
180
- background-size: 6px 6px, 6px 6px, 100% 100%;
181
- background-repeat: no-repeat;
182
- box-shadow:
183
- inset 0 1px 0 rgba(255, 255, 255, 0.7),
184
- 0 1px 2px rgba(15, 23, 42, 0.04);
185
- color: var(--strong);
186
- font-size: 13px;
187
- font-weight: 700;
188
- cursor: pointer;
189
- transition:
190
- background 160ms ease,
191
- color 160ms ease,
192
- border-color 160ms ease,
193
- box-shadow 160ms ease,
194
- transform 160ms ease;
195
- }
196
-
197
- .lang-select-text {
198
- white-space: nowrap;
199
- }
200
-
201
- .lang-select:hover {
202
- border-color: rgba(15, 118, 110, 0.18);
203
- box-shadow:
204
- inset 0 1px 0 rgba(255, 255, 255, 0.74),
205
- 0 6px 16px rgba(15, 23, 42, 0.08);
206
- transform: translateY(-1px);
207
- }
208
-
209
- .lang-select:focus {
210
- outline: none;
211
- border-color: rgba(15, 118, 110, 0.34);
212
- box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
213
- }
214
-
215
- .lang-dropdown.open .lang-select {
216
- border-color: rgba(15, 118, 110, 0.28);
217
- box-shadow:
218
- 0 0 0 4px rgba(15, 118, 110, 0.08),
219
- 0 12px 28px rgba(15, 23, 42, 0.12);
220
- }
221
-
222
- .lang-menu {
223
- position: absolute;
224
- top: calc(100% + 10px);
225
- right: 0;
226
- z-index: 30;
227
- display: grid;
228
- gap: 6px;
229
- min-width: 148px;
230
- padding: 8px;
231
- border: 1px solid rgba(15, 23, 42, 0.08);
232
- border-radius: 18px;
233
- background: #f8fafc;
234
- box-shadow:
235
- 0 18px 40px rgba(15, 23, 42, 0.12),
236
- inset 0 1px 0 rgba(255, 255, 255, 0.7);
237
- opacity: 0;
238
- pointer-events: none;
239
- transform: translateY(-6px) scale(0.98);
240
- transform-origin: top right;
241
- transition: opacity 140ms ease, transform 140ms ease;
242
- }
243
-
244
- .lang-dropdown.open .lang-menu {
245
- opacity: 1;
246
- pointer-events: auto;
247
- transform: translateY(0) scale(1);
248
- }
249
-
250
- .lang-option {
251
- appearance: none;
252
- display: flex;
253
- align-items: center;
254
- width: 100%;
255
- min-height: 40px;
256
- padding: 0 12px;
257
- border: 0;
258
- border-radius: 12px;
259
- background: transparent;
260
- color: var(--strong);
261
- text-align: left;
262
- font-size: 13px;
263
- font-weight: 700;
264
- cursor: pointer;
265
- transition: background 140ms ease, color 140ms ease, transform 140ms ease;
266
- }
267
-
268
- .lang-option:hover {
269
- background: rgba(15, 23, 42, 0.06);
270
- transform: translateX(1px);
271
- }
272
-
273
- .lang-option:focus {
274
- outline: none;
275
- background: rgba(15, 118, 110, 0.1);
276
- }
277
-
278
- .lang-option.active {
279
- background: rgba(15, 118, 110, 0.12);
280
- color: var(--accent2);
281
- }
282
-
283
- h1 {
284
- margin: 0;
285
- font-size: clamp(34px, 5vw, 52px);
286
- line-height: 1;
287
- letter-spacing: -0.04em;
288
- }
289
-
290
- .subtitle,
291
- .muted,
292
- .field-desc,
293
- .card-head p,
294
- .panel p,
295
- .helper {
296
- color: var(--muted);
297
- line-height: 1.6;
298
- }
299
-
300
- .subtitle {
301
- font-size: 15px;
302
- }
303
-
304
- .status-row,
305
- .meta-row,
306
- .button-row,
307
- .inline-actions {
308
- display: flex;
309
- flex-wrap: wrap;
310
- gap: 10px;
311
- }
312
-
313
- .status-row,
314
- .meta-row {
315
- margin-top: 16px;
316
- }
317
-
318
- .pill {
319
- min-height: 38px;
320
- padding: 8px 14px;
321
- border: 1px solid rgba(15, 23, 42, 0.08);
322
- background: rgba(255, 255, 255, 0.74);
323
- font-size: 13px;
324
- }
325
-
326
- .pill strong {
327
- color: var(--strong);
328
- }
329
-
330
- .pill.ok {
331
- background: rgba(15, 118, 110, 0.1);
332
- color: var(--accent2);
333
- }
334
-
335
- .pill.warn {
336
- background: rgba(181, 71, 8, 0.1);
337
- color: var(--warn);
338
- }
339
-
340
- .hero-actions {
341
- display: grid;
342
- gap: 12px;
343
- }
344
-
345
- .panel {
346
- padding: 18px;
347
- border: 1px solid var(--line);
348
- border-radius: 22px;
349
- background: rgba(255, 255, 255, 0.72);
350
- }
351
-
352
- .panel h2,
353
- .card-head h3 {
354
- margin: 0;
355
- }
356
-
357
- .path-box {
358
- padding: 14px 16px;
359
- border-radius: 18px;
360
- background: rgba(15, 23, 42, 0.04);
361
- border: 1px dashed rgba(15, 23, 42, 0.12);
362
- font-family: "Cascadia Code", "Consolas", monospace;
363
- font-size: 12px;
364
- line-height: 1.7;
365
- word-break: break-all;
366
- }
367
-
368
- .path-box-row {
369
- display: grid;
370
- grid-template-columns: minmax(0, 1fr) auto;
371
- gap: 10px;
372
- align-items: stretch;
373
- margin-top: 14px;
374
- margin-bottom: 18px;
375
- }
376
-
377
- .icon-button {
378
- appearance: none;
379
- width: 48px;
380
- min-height: 48px;
381
- border: 1px solid rgba(15, 23, 42, 0.1);
382
- border-radius: 16px;
383
- background: rgba(255, 255, 255, 0.78);
384
- color: var(--muted);
385
- cursor: pointer;
386
- transition: transform 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
387
- }
388
-
389
- .icon-button:hover {
390
- transform: translateY(-1px);
391
- color: var(--strong);
392
- }
393
-
394
- .icon-button:focus {
395
- outline: none;
396
- border-color: rgba(15, 118, 110, 0.34);
397
- box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
398
- }
399
-
400
- .btn {
401
- appearance: none;
402
- min-height: 48px;
403
- padding: 0 18px;
404
- border: 0;
405
- border-radius: 16px;
406
- cursor: pointer;
407
- transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
408
- }
409
-
410
- .btn:hover {
411
- transform: translateY(-1px);
412
- }
413
-
414
- .btn:disabled {
415
- opacity: 0.58;
416
- cursor: not-allowed;
417
- transform: none;
418
- }
419
-
420
- .btn-primary {
421
- background: linear-gradient(135deg, var(--accent), var(--accent2));
422
- color: white;
423
- box-shadow: 0 14px 30px rgba(15, 118, 110, 0.24);
424
- }
425
-
426
- .btn-secondary {
427
- background: rgba(15, 23, 42, 0.06);
428
- color: var(--strong);
429
- }
430
-
431
- .btn-ghost {
432
- background: transparent;
433
- color: var(--muted);
434
- border: 1px solid rgba(15, 23, 42, 0.1);
435
- }
436
-
437
- .banner {
438
- display: none;
439
- margin: 18px 0 0;
440
- padding: 14px 16px;
441
- border-radius: 18px;
442
- border: 1px solid transparent;
443
- line-height: 1.55;
444
- font-size: 14px;
445
- }
446
-
447
- .banner.show {
448
- display: block;
449
- }
450
-
451
- .banner.info {
452
- background: rgba(15, 118, 110, 0.08);
453
- border-color: rgba(15, 118, 110, 0.18);
454
- }
455
-
456
- .banner.warn {
457
- background: rgba(181, 71, 8, 0.1);
458
- border-color: rgba(181, 71, 8, 0.18);
459
- color: var(--warn);
460
- }
461
-
462
- .banner.error {
463
- background: rgba(180, 35, 24, 0.1);
464
- border-color: rgba(180, 35, 24, 0.18);
465
- color: var(--danger);
466
- }
467
-
468
- .card {
469
- padding: 22px;
470
- border-radius: 22px;
471
- width: 100%;
472
- margin: 0 0 18px;
473
- }
474
-
475
- .card-head {
476
- display: flex;
477
- justify-content: space-between;
478
- gap: 16px;
479
- margin-bottom: 18px;
480
- }
481
-
482
- .card-anchor {
483
- scroll-margin-top: 28px;
484
- }
485
-
486
- .stack {
487
- display: grid;
488
- grid-template-columns: repeat(2, minmax(0, 1fr));
489
- gap: 16px;
490
- align-items: stretch;
491
- }
492
-
493
- .layout .card:last-child {
494
- margin-bottom: 0;
495
- }
496
-
497
- .field {
498
- display: flex;
499
- flex-direction: column;
500
- width: 100%;
501
- margin: 0;
502
- padding: 14px;
503
- border-radius: 18px;
504
- background: rgba(255, 255, 255, 0.75);
505
- border: 1px solid rgba(15, 23, 42, 0.08);
506
- min-height: 180px;
507
- min-width: 0;
508
- break-inside: auto;
509
- }
510
-
511
- .field-head,
512
- .field-tools {
513
- display: flex;
514
- justify-content: space-between;
515
- gap: 16px;
516
- align-items: center;
517
- }
518
-
519
- .field-head {
520
- margin-bottom: 8px;
521
- }
522
-
523
- .field-tools {
524
- margin-top: auto;
525
- padding-top: 6px;
526
- }
527
-
528
- .field-title {
529
- font-weight: 700;
530
- color: var(--strong);
531
- }
532
-
533
- .field-state {
534
- font-size: 12px;
535
- color: var(--muted);
536
- }
537
-
538
- .field-desc {
539
- margin: 0 0 8px;
540
- font-size: 13px;
541
- }
542
-
543
- .control,
544
- .text-area,
545
- .select {
546
- width: 100%;
547
- border: 1px solid rgba(15, 23, 42, 0.1);
548
- background: rgba(248, 250, 252, 0.88);
549
- color: var(--strong);
550
- outline: none;
551
- border-radius: 16px;
552
- padding: 12px 14px;
553
- transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
554
- }
555
-
556
- .control:focus,
557
- .text-area:focus,
558
- .select:focus {
559
- border-color: rgba(15, 118, 110, 0.4);
560
- box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
561
- background: white;
562
- }
563
-
564
- .text-area {
565
- min-height: 112px;
566
- resize: vertical;
567
- line-height: 1.6;
568
- flex: 1;
569
- }
570
-
571
- .json-font {
572
- font-family: "Cascadia Code", "Consolas", monospace;
573
- font-size: 12px;
574
- }
575
-
576
- .segmented {
577
- display: inline-flex;
578
- width: 100%;
579
- margin-bottom: 8px;
580
- padding: 5px;
581
- gap: 6px;
582
- border-radius: 18px;
583
- background: rgba(15, 23, 42, 0.05);
584
- }
585
-
586
- .segmented button {
587
- flex: 1;
588
- min-height: 38px;
589
- border-radius: 14px;
590
- border: 0;
591
- background: transparent;
592
- color: var(--muted);
593
- cursor: pointer;
594
- }
595
-
596
- .segmented button.active {
597
- background: white;
598
- color: var(--strong);
599
- box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
600
- }
601
-
602
- .inline-btn {
603
- appearance: none;
604
- min-height: 32px;
605
- padding: 0 12px;
606
- border: 0;
607
- background: rgba(15, 23, 42, 0.05);
608
- color: var(--muted);
609
- cursor: pointer;
610
- }
611
-
612
- .error {
613
- color: var(--danger);
614
- font-size: 12px;
615
- line-height: 1.55;
616
- }
617
-
618
- .helper {
619
- font-size: 12px;
620
- line-height: 1.45;
621
- }
622
-
623
- .overlay {
624
- position: fixed;
625
- inset: 0;
626
- display: none;
627
- align-items: center;
628
- justify-content: center;
629
- padding: 24px;
630
- background: rgba(15, 23, 42, 0.28);
631
- backdrop-filter: blur(6px);
632
- z-index: 20;
633
- }
634
-
635
- .overlay.show {
636
- display: flex;
637
- }
638
-
639
- .overlay-card {
640
- width: min(520px, 100%);
641
- padding: 24px;
642
- border-radius: 24px;
643
- background: rgba(255, 255, 255, 0.96);
644
- box-shadow: 0 28px 80px rgba(15, 23, 42, 0.18);
645
- }
646
-
647
- .overlay-card h4 {
648
- margin: 0 0 10px;
649
- font-size: 22px;
650
- }
651
-
652
- .overlay-card p {
653
- margin: 0;
654
- color: var(--muted);
655
- line-height: 1.7;
656
- }
657
-
658
- .overlay-actions {
659
- margin-top: 18px;
660
- display: flex;
661
- justify-content: center;
662
- }
663
-
664
- .overlay-refresh-button {
665
- width: 52px;
666
- min-height: 52px;
667
- border-radius: 18px;
668
- }
669
-
670
- .floating-tools {
671
- grid-column: 2;
672
- grid-row: 1 / span 2;
673
- position: sticky;
674
- top: var(--page-padding);
675
- z-index: 12;
676
- width: var(--floating-nav-width);
677
- opacity: 1;
678
- pointer-events: auto;
679
- transition: transform 180ms ease;
680
- }
681
-
682
- .floating-nav-card,
683
- .back-top-button {
684
- border: 1px solid rgba(15, 23, 42, 0.1);
685
- background: rgba(255, 252, 245, 0.88);
686
- box-shadow: 0 22px 44px rgba(15, 23, 42, 0.12);
687
- backdrop-filter: blur(16px);
688
- }
689
-
690
- .floating-nav-card {
691
- padding: 10px;
692
- border-radius: 24px;
693
- overflow: hidden;
694
- transition: padding 160ms ease, border-radius 160ms ease, box-shadow 160ms ease;
695
- }
696
-
697
- .floating-nav-head {
698
- margin-bottom: 10px;
699
- padding: 0 4px;
700
- color: var(--muted);
701
- font-size: 12px;
702
- font-weight: 700;
703
- display: flex;
704
- align-items: center;
705
- justify-content: space-between;
706
- gap: 8px;
707
- }
708
-
709
- .floating-nav {
710
- display: grid;
711
- gap: 8px;
712
- transition: opacity 140ms ease, transform 140ms ease;
713
- }
714
-
715
- .floating-toggle {
716
- appearance: none;
717
- display: inline-flex;
718
- align-items: center;
719
- justify-content: center;
720
- width: 28px;
721
- min-width: 28px;
722
- height: 28px;
723
- padding: 0;
724
- border: 0;
725
- border-radius: 999px;
726
- background: rgba(15, 23, 42, 0.06);
727
- color: var(--muted);
728
- cursor: pointer;
729
- transition: transform 160ms ease, background 160ms ease, color 160ms ease;
730
- }
731
-
732
- .floating-toggle:hover {
733
- background: rgba(15, 118, 110, 0.12);
734
- color: var(--accent2);
735
- transform: translateY(-1px);
736
- }
737
-
738
- .floating-toggle:focus {
739
- outline: none;
740
- box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
741
- }
742
-
743
- .floating-toggle-icon {
744
- font-size: 14px;
745
- line-height: 1;
746
- transition: transform 160ms ease;
747
- }
748
-
749
- body.nav-collapsed .floating-tools {
750
- width: var(--floating-nav-collapsed-width);
751
- }
752
-
753
- body.nav-collapsed .floating-nav-card {
754
- padding: 8px;
755
- border-radius: 20px;
756
- }
757
-
758
- body.nav-collapsed .floating-nav-head {
759
- margin-bottom: 0;
760
- padding: 0;
761
- justify-content: center;
762
- }
763
-
764
- body.nav-collapsed .floating-nav-head > span {
765
- display: none;
766
- }
767
-
768
- body.nav-collapsed .floating-toggle {
769
- width: 36px;
770
- min-width: 36px;
771
- height: 36px;
772
- }
773
-
774
- body.nav-collapsed .floating-toggle-icon {
775
- transform: scaleX(-1);
776
- }
777
-
778
- body.nav-collapsed .floating-nav {
779
- opacity: 0;
780
- transform: translateY(-6px);
781
- pointer-events: none;
782
- height: 0;
783
- overflow: hidden;
784
- gap: 0;
785
- }
786
-
787
- .floating-link,
788
- .back-top-button {
789
- appearance: none;
790
- width: 100%;
791
- min-height: 42px;
792
- border-radius: 16px;
793
- border: 0;
794
- cursor: pointer;
795
- transition: transform 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
796
- }
797
-
798
- .floating-link {
799
- padding: 11px 12px;
800
- background: rgba(15, 23, 42, 0.05);
801
- color: var(--muted);
802
- font-size: 12px;
803
- font-weight: 700;
804
- line-height: 1;
805
- white-space: nowrap;
806
- overflow: hidden;
807
- text-overflow: ellipsis;
808
- }
809
-
810
- .floating-link:hover,
811
- .back-top-button:hover {
812
- transform: translateY(-1px);
813
- }
814
-
815
- .floating-link.active {
816
- background: linear-gradient(135deg, rgba(15, 118, 110, 0.16), rgba(11, 91, 86, 0.08));
817
- color: var(--accent2);
818
- box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.16);
819
- }
820
-
821
- .back-top-button {
822
- position: fixed;
823
- left: auto;
824
- right: max(var(--page-padding), calc((100vw - var(--shell-max-width)) / 2 + (var(--floating-nav-width) - 56px) / 2));
825
- bottom: 22px;
826
- z-index: 13;
827
- width: 56px;
828
- min-height: 56px;
829
- padding: 0;
830
- border-radius: 999px;
831
- color: var(--strong);
832
- font-weight: 700;
833
- font-size: 24px;
834
- opacity: 0;
835
- pointer-events: none;
836
- transition: opacity 180ms ease, transform 180ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
837
- }
838
-
839
- .back-top-button.is-visible {
840
- opacity: 1;
841
- pointer-events: auto;
842
- }
843
-
844
- .back-top-button span {
845
- transform: translateY(-1px);
846
- }
847
-
848
- @media (max-width: 1100px) {
849
- .hero-grid {
850
- grid-template-columns: 1fr;
851
- }
852
-
853
- .layout {
854
- grid-template-columns: minmax(0, 1fr);
855
- }
856
-
857
- .stack {
858
- grid-template-columns: 1fr;
859
- }
860
- }
861
-
862
- @media (max-width: 720px) {
863
- body {
864
- padding: 16px;
865
- }
866
-
867
- .hero {
868
- padding: 18px;
869
- }
870
-
871
- .card,
872
- .panel {
873
- padding: 18px;
874
- }
875
-
876
- .field {
877
- padding: 14px;
878
- }
879
-
880
- .shell {
881
- display: block;
882
- max-width: var(--shell-max-width);
883
- }
884
-
885
- .floating-tools {
886
- grid-column: auto;
887
- grid-row: auto;
888
- position: fixed;
889
- top: 16px;
890
- left: auto;
891
- right: 16px;
892
- width: var(--floating-nav-collapsed-width);
893
- }
894
-
895
- body:not(.nav-collapsed) .floating-tools {
896
- width: 144px;
897
- }
898
-
899
- .floating-nav-card {
900
- padding: 12px;
901
- }
902
-
903
- .floating-nav {
904
- grid-template-columns: 1fr;
905
- }
906
-
907
- .back-top-button {
908
- left: auto;
909
- right: 16px;
910
- bottom: 16px;
911
- }
912
-
913
- .stack {
914
- grid-template-columns: 1fr;
915
- }
916
-
917
- .path-box-row {
918
- grid-template-columns: minmax(0, 1fr) 48px;
919
- }
920
- }
1
+ :root {
2
+ --bg: #f4efe4;
3
+ --bg2: #fbf8f1;
4
+ --card: rgba(255, 252, 245, 0.86);
5
+ --line: rgba(37, 43, 52, 0.12);
6
+ --text: #202734;
7
+ --muted: #64748b;
8
+ --strong: #101828;
9
+ --accent: #0f766e;
10
+ --accent2: #0b5b56;
11
+ --warn: #b54708;
12
+ --danger: #b42318;
13
+ --shadow: 0 24px 64px rgba(15, 23, 42, 0.08);
14
+ --shell-max-width: 1360px;
15
+ --floating-nav-width: 132px;
16
+ --floating-nav-collapsed-width: 52px;
17
+ --floating-nav-gap: 12px;
18
+ --page-padding: 28px;
19
+ }
20
+
21
+ * {
22
+ box-sizing: border-box;
23
+ }
24
+
25
+ html,
26
+ body {
27
+ margin: 0;
28
+ min-height: 100%;
29
+ color: var(--text);
30
+ background:
31
+ radial-gradient(circle at top left, rgba(15, 118, 110, 0.18), transparent 28%),
32
+ radial-gradient(circle at top right, rgba(234, 179, 8, 0.12), transparent 24%),
33
+ linear-gradient(180deg, var(--bg), var(--bg2));
34
+ font-family: "Segoe UI Variable", "Aptos", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
35
+ }
36
+
37
+ body {
38
+ padding: var(--page-padding);
39
+ }
40
+
41
+ button,
42
+ input,
43
+ select,
44
+ textarea {
45
+ font: inherit;
46
+ }
47
+
48
+ .shell {
49
+ display: grid;
50
+ grid-template-columns: minmax(0, 1fr) var(--floating-nav-width);
51
+ column-gap: var(--floating-nav-gap);
52
+ align-items: start;
53
+ max-width: var(--shell-max-width);
54
+ margin: 0 auto;
55
+ }
56
+
57
+ body.nav-collapsed .shell {
58
+ grid-template-columns: minmax(0, 1fr) var(--floating-nav-collapsed-width);
59
+ }
60
+
61
+ .hero,
62
+ .layout {
63
+ grid-column: 1;
64
+ }
65
+
66
+ .hero,
67
+ .card {
68
+ border: 1px solid var(--line);
69
+ background: var(--card);
70
+ box-shadow: var(--shadow);
71
+ }
72
+
73
+ .hero {
74
+ margin-bottom: 22px;
75
+ padding: 22px;
76
+ border-radius: 28px;
77
+ backdrop-filter: blur(16px);
78
+ }
79
+
80
+ .hero-grid,
81
+ .layout {
82
+ gap: 18px;
83
+ }
84
+
85
+ .hero-grid {
86
+ display: grid;
87
+ grid-template-columns: 1.4fr 1fr;
88
+ }
89
+
90
+ .hero-top {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ gap: 16px;
95
+ flex-wrap: wrap;
96
+ }
97
+
98
+ .layout {
99
+ display: grid;
100
+ grid-template-columns: minmax(0, 1fr);
101
+ gap: 18px;
102
+ }
103
+
104
+ .eyebrow,
105
+ .pill,
106
+ .inline-btn {
107
+ display: inline-flex;
108
+ align-items: center;
109
+ gap: 8px;
110
+ border-radius: 999px;
111
+ }
112
+
113
+ .eyebrow {
114
+ padding: 8px 12px;
115
+ background: rgba(16, 24, 40, 0.05);
116
+ color: var(--strong);
117
+ font-size: 13px;
118
+ font-weight: 700;
119
+ }
120
+
121
+ .eyebrow-icon {
122
+ width: 16px;
123
+ height: 16px;
124
+ flex: 0 0 16px;
125
+ }
126
+
127
+ .hero-title-row {
128
+ display: flex;
129
+ align-items: center;
130
+ gap: 14px;
131
+ margin-top: 14px;
132
+ }
133
+
134
+ .hero-logo {
135
+ width: clamp(42px, 5vw, 56px);
136
+ height: clamp(42px, 5vw, 56px);
137
+ flex: 0 0 auto;
138
+ border-radius: 16px;
139
+ }
140
+
141
+ .lang-switch {
142
+ display: inline-flex;
143
+ align-items: center;
144
+ gap: 10px;
145
+ min-height: 36px;
146
+ }
147
+
148
+ .lang-label {
149
+ color: #5b6677;
150
+ font-size: 11px;
151
+ font-weight: 700;
152
+ letter-spacing: 0.08em;
153
+ text-transform: uppercase;
154
+ }
155
+
156
+ .lang-dropdown {
157
+ position: relative;
158
+ }
159
+
160
+ .lang-select {
161
+ appearance: none;
162
+ display: inline-flex;
163
+ align-items: center;
164
+ justify-content: space-between;
165
+ min-height: 32px;
166
+ min-width: 124px;
167
+ padding: 0 38px 0 14px;
168
+ border: 1px solid rgba(15, 23, 42, 0.08);
169
+ border-radius: 999px;
170
+ background:
171
+ linear-gradient(180deg, rgba(249, 250, 251, 0.96), rgba(241, 245, 249, 0.92));
172
+ background-image:
173
+ linear-gradient(45deg, transparent 50%, #667085 50%),
174
+ linear-gradient(135deg, #667085 50%, transparent 50%),
175
+ linear-gradient(180deg, rgba(249, 250, 251, 0.96), rgba(241, 245, 249, 0.92));
176
+ background-position:
177
+ calc(100% - 18px) 13px,
178
+ calc(100% - 12px) 13px,
179
+ 0 0;
180
+ background-size: 6px 6px, 6px 6px, 100% 100%;
181
+ background-repeat: no-repeat;
182
+ box-shadow:
183
+ inset 0 1px 0 rgba(255, 255, 255, 0.7),
184
+ 0 1px 2px rgba(15, 23, 42, 0.04);
185
+ color: var(--strong);
186
+ font-size: 13px;
187
+ font-weight: 700;
188
+ cursor: pointer;
189
+ transition:
190
+ background 160ms ease,
191
+ color 160ms ease,
192
+ border-color 160ms ease,
193
+ box-shadow 160ms ease,
194
+ transform 160ms ease;
195
+ }
196
+
197
+ .lang-select-text {
198
+ white-space: nowrap;
199
+ }
200
+
201
+ .lang-select:hover {
202
+ border-color: rgba(15, 118, 110, 0.18);
203
+ box-shadow:
204
+ inset 0 1px 0 rgba(255, 255, 255, 0.74),
205
+ 0 6px 16px rgba(15, 23, 42, 0.08);
206
+ transform: translateY(-1px);
207
+ }
208
+
209
+ .lang-select:focus {
210
+ outline: none;
211
+ border-color: rgba(15, 118, 110, 0.34);
212
+ box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
213
+ }
214
+
215
+ .lang-dropdown.open .lang-select {
216
+ border-color: rgba(15, 118, 110, 0.28);
217
+ box-shadow:
218
+ 0 0 0 4px rgba(15, 118, 110, 0.08),
219
+ 0 12px 28px rgba(15, 23, 42, 0.12);
220
+ }
221
+
222
+ .lang-menu {
223
+ position: absolute;
224
+ top: calc(100% + 10px);
225
+ right: 0;
226
+ z-index: 30;
227
+ display: grid;
228
+ gap: 6px;
229
+ min-width: 148px;
230
+ padding: 8px;
231
+ border: 1px solid rgba(15, 23, 42, 0.08);
232
+ border-radius: 18px;
233
+ background: #f8fafc;
234
+ box-shadow:
235
+ 0 18px 40px rgba(15, 23, 42, 0.12),
236
+ inset 0 1px 0 rgba(255, 255, 255, 0.7);
237
+ opacity: 0;
238
+ pointer-events: none;
239
+ transform: translateY(-6px) scale(0.98);
240
+ transform-origin: top right;
241
+ transition: opacity 140ms ease, transform 140ms ease;
242
+ }
243
+
244
+ .lang-dropdown.open .lang-menu {
245
+ opacity: 1;
246
+ pointer-events: auto;
247
+ transform: translateY(0) scale(1);
248
+ }
249
+
250
+ .lang-option {
251
+ appearance: none;
252
+ display: flex;
253
+ align-items: center;
254
+ width: 100%;
255
+ min-height: 40px;
256
+ padding: 0 12px;
257
+ border: 0;
258
+ border-radius: 12px;
259
+ background: transparent;
260
+ color: var(--strong);
261
+ text-align: left;
262
+ font-size: 13px;
263
+ font-weight: 700;
264
+ cursor: pointer;
265
+ transition: background 140ms ease, color 140ms ease, transform 140ms ease;
266
+ }
267
+
268
+ .lang-option:hover {
269
+ background: rgba(15, 23, 42, 0.06);
270
+ transform: translateX(1px);
271
+ }
272
+
273
+ .lang-option:focus {
274
+ outline: none;
275
+ background: rgba(15, 118, 110, 0.1);
276
+ }
277
+
278
+ .lang-option.active {
279
+ background: rgba(15, 118, 110, 0.12);
280
+ color: var(--accent2);
281
+ }
282
+
283
+ h1 {
284
+ margin: 0;
285
+ font-size: clamp(34px, 5vw, 52px);
286
+ line-height: 1;
287
+ letter-spacing: -0.04em;
288
+ }
289
+
290
+ .subtitle,
291
+ .muted,
292
+ .field-desc,
293
+ .card-head p,
294
+ .panel p,
295
+ .helper {
296
+ color: var(--muted);
297
+ line-height: 1.6;
298
+ }
299
+
300
+ .subtitle {
301
+ font-size: 15px;
302
+ }
303
+
304
+ .status-row,
305
+ .meta-row,
306
+ .button-row,
307
+ .inline-actions {
308
+ display: flex;
309
+ flex-wrap: wrap;
310
+ gap: 10px;
311
+ }
312
+
313
+ .status-row,
314
+ .meta-row {
315
+ margin-top: 16px;
316
+ }
317
+
318
+ .pill {
319
+ min-height: 38px;
320
+ padding: 8px 14px;
321
+ border: 1px solid rgba(15, 23, 42, 0.08);
322
+ background: rgba(255, 255, 255, 0.74);
323
+ font-size: 13px;
324
+ }
325
+
326
+ .pill strong {
327
+ color: var(--strong);
328
+ }
329
+
330
+ .pill.ok {
331
+ background: rgba(15, 118, 110, 0.1);
332
+ color: var(--accent2);
333
+ }
334
+
335
+ .pill.warn {
336
+ background: rgba(181, 71, 8, 0.1);
337
+ color: var(--warn);
338
+ }
339
+
340
+ .hero-actions {
341
+ display: grid;
342
+ gap: 12px;
343
+ }
344
+
345
+ .panel {
346
+ padding: 18px;
347
+ border: 1px solid var(--line);
348
+ border-radius: 22px;
349
+ background: rgba(255, 255, 255, 0.72);
350
+ }
351
+
352
+ .panel h2,
353
+ .card-head h3 {
354
+ margin: 0;
355
+ }
356
+
357
+ .path-box {
358
+ padding: 14px 16px;
359
+ border-radius: 18px;
360
+ background: rgba(15, 23, 42, 0.04);
361
+ border: 1px dashed rgba(15, 23, 42, 0.12);
362
+ font-family: "Cascadia Code", "Consolas", monospace;
363
+ font-size: 12px;
364
+ line-height: 1.7;
365
+ word-break: break-all;
366
+ }
367
+
368
+ .path-box-row {
369
+ display: grid;
370
+ grid-template-columns: minmax(0, 1fr) auto;
371
+ gap: 10px;
372
+ align-items: stretch;
373
+ margin-top: 14px;
374
+ margin-bottom: 18px;
375
+ }
376
+
377
+ .icon-button {
378
+ appearance: none;
379
+ width: 48px;
380
+ min-height: 48px;
381
+ border: 1px solid rgba(15, 23, 42, 0.1);
382
+ border-radius: 16px;
383
+ background: rgba(255, 255, 255, 0.78);
384
+ color: var(--muted);
385
+ cursor: pointer;
386
+ transition: transform 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
387
+ }
388
+
389
+ .icon-button:hover {
390
+ transform: translateY(-1px);
391
+ color: var(--strong);
392
+ }
393
+
394
+ .icon-button:focus {
395
+ outline: none;
396
+ border-color: rgba(15, 118, 110, 0.34);
397
+ box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
398
+ }
399
+
400
+ .btn {
401
+ appearance: none;
402
+ min-height: 48px;
403
+ padding: 0 18px;
404
+ border: 0;
405
+ border-radius: 16px;
406
+ cursor: pointer;
407
+ transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
408
+ }
409
+
410
+ .btn:hover {
411
+ transform: translateY(-1px);
412
+ }
413
+
414
+ .btn:disabled {
415
+ opacity: 0.58;
416
+ cursor: not-allowed;
417
+ transform: none;
418
+ }
419
+
420
+ .btn-primary {
421
+ background: linear-gradient(135deg, var(--accent), var(--accent2));
422
+ color: white;
423
+ box-shadow: 0 14px 30px rgba(15, 118, 110, 0.24);
424
+ }
425
+
426
+ .btn-secondary {
427
+ background: rgba(15, 23, 42, 0.06);
428
+ color: var(--strong);
429
+ }
430
+
431
+ .btn-ghost {
432
+ background: transparent;
433
+ color: var(--muted);
434
+ border: 1px solid rgba(15, 23, 42, 0.1);
435
+ }
436
+
437
+ .banner {
438
+ display: none;
439
+ margin: 18px 0 0;
440
+ padding: 14px 16px;
441
+ border-radius: 18px;
442
+ border: 1px solid transparent;
443
+ line-height: 1.55;
444
+ font-size: 14px;
445
+ }
446
+
447
+ .banner.show {
448
+ display: block;
449
+ }
450
+
451
+ .banner.info {
452
+ background: rgba(15, 118, 110, 0.08);
453
+ border-color: rgba(15, 118, 110, 0.18);
454
+ }
455
+
456
+ .banner.warn {
457
+ background: rgba(181, 71, 8, 0.1);
458
+ border-color: rgba(181, 71, 8, 0.18);
459
+ color: var(--warn);
460
+ }
461
+
462
+ .banner.error {
463
+ background: rgba(180, 35, 24, 0.1);
464
+ border-color: rgba(180, 35, 24, 0.18);
465
+ color: var(--danger);
466
+ }
467
+
468
+ .card {
469
+ padding: 22px;
470
+ border-radius: 22px;
471
+ width: 100%;
472
+ margin: 0 0 18px;
473
+ }
474
+
475
+ .card-head {
476
+ display: flex;
477
+ justify-content: space-between;
478
+ gap: 16px;
479
+ margin-bottom: 18px;
480
+ }
481
+
482
+ .card-anchor {
483
+ scroll-margin-top: 28px;
484
+ }
485
+
486
+ .stack {
487
+ display: grid;
488
+ grid-template-columns: repeat(2, minmax(0, 1fr));
489
+ gap: 16px;
490
+ align-items: stretch;
491
+ }
492
+
493
+ .layout .card:last-child {
494
+ margin-bottom: 0;
495
+ }
496
+
497
+ .field {
498
+ display: flex;
499
+ flex-direction: column;
500
+ width: 100%;
501
+ margin: 0;
502
+ padding: 14px;
503
+ border-radius: 18px;
504
+ background: rgba(255, 255, 255, 0.75);
505
+ border: 1px solid rgba(15, 23, 42, 0.08);
506
+ min-height: 180px;
507
+ min-width: 0;
508
+ break-inside: auto;
509
+ }
510
+
511
+ .field-head,
512
+ .field-tools {
513
+ display: flex;
514
+ justify-content: space-between;
515
+ gap: 16px;
516
+ align-items: center;
517
+ }
518
+
519
+ .field-head {
520
+ margin-bottom: 8px;
521
+ }
522
+
523
+ .field-tools {
524
+ margin-top: auto;
525
+ padding-top: 6px;
526
+ }
527
+
528
+ .field-title {
529
+ font-weight: 700;
530
+ color: var(--strong);
531
+ }
532
+
533
+ .field-state {
534
+ font-size: 12px;
535
+ color: var(--muted);
536
+ }
537
+
538
+ .field-desc {
539
+ margin: 0 0 8px;
540
+ font-size: 13px;
541
+ }
542
+
543
+ .control,
544
+ .text-area,
545
+ .select {
546
+ width: 100%;
547
+ border: 1px solid rgba(15, 23, 42, 0.1);
548
+ background: rgba(248, 250, 252, 0.88);
549
+ color: var(--strong);
550
+ outline: none;
551
+ border-radius: 16px;
552
+ padding: 12px 14px;
553
+ transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
554
+ }
555
+
556
+ .control:focus,
557
+ .text-area:focus,
558
+ .select:focus {
559
+ border-color: rgba(15, 118, 110, 0.4);
560
+ box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
561
+ background: white;
562
+ }
563
+
564
+ .text-area {
565
+ min-height: 112px;
566
+ resize: vertical;
567
+ line-height: 1.6;
568
+ flex: 1;
569
+ }
570
+
571
+ .json-font {
572
+ font-family: "Cascadia Code", "Consolas", monospace;
573
+ font-size: 12px;
574
+ }
575
+
576
+ .segmented {
577
+ display: inline-flex;
578
+ width: 100%;
579
+ margin-bottom: 8px;
580
+ padding: 5px;
581
+ gap: 6px;
582
+ border-radius: 18px;
583
+ background: rgba(15, 23, 42, 0.05);
584
+ }
585
+
586
+ .segmented button {
587
+ flex: 1;
588
+ min-height: 38px;
589
+ border-radius: 14px;
590
+ border: 0;
591
+ background: transparent;
592
+ color: var(--muted);
593
+ cursor: pointer;
594
+ }
595
+
596
+ .segmented button.active {
597
+ background: white;
598
+ color: var(--strong);
599
+ box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
600
+ }
601
+
602
+ .inline-btn {
603
+ appearance: none;
604
+ min-height: 32px;
605
+ padding: 0 12px;
606
+ border: 0;
607
+ background: rgba(15, 23, 42, 0.05);
608
+ color: var(--muted);
609
+ cursor: pointer;
610
+ }
611
+
612
+ .error {
613
+ color: var(--danger);
614
+ font-size: 12px;
615
+ line-height: 1.55;
616
+ }
617
+
618
+ .helper {
619
+ font-size: 12px;
620
+ line-height: 1.45;
621
+ }
622
+
623
+ .overlay {
624
+ position: fixed;
625
+ inset: 0;
626
+ display: none;
627
+ align-items: center;
628
+ justify-content: center;
629
+ padding: 24px;
630
+ background: rgba(15, 23, 42, 0.28);
631
+ backdrop-filter: blur(6px);
632
+ z-index: 20;
633
+ }
634
+
635
+ .overlay.show {
636
+ display: flex;
637
+ }
638
+
639
+ .overlay-card {
640
+ width: min(520px, 100%);
641
+ padding: 24px;
642
+ border-radius: 24px;
643
+ background: rgba(255, 255, 255, 0.96);
644
+ box-shadow: 0 28px 80px rgba(15, 23, 42, 0.18);
645
+ }
646
+
647
+ .overlay-card h4 {
648
+ margin: 0 0 10px;
649
+ font-size: 22px;
650
+ }
651
+
652
+ .overlay-card p {
653
+ margin: 0;
654
+ color: var(--muted);
655
+ line-height: 1.7;
656
+ }
657
+
658
+ .overlay-actions {
659
+ margin-top: 18px;
660
+ display: flex;
661
+ justify-content: center;
662
+ }
663
+
664
+ .overlay-refresh-button {
665
+ width: 52px;
666
+ min-height: 52px;
667
+ border-radius: 18px;
668
+ }
669
+
670
+ .floating-tools {
671
+ grid-column: 2;
672
+ grid-row: 1 / span 2;
673
+ position: sticky;
674
+ top: var(--page-padding);
675
+ z-index: 12;
676
+ width: var(--floating-nav-width);
677
+ opacity: 1;
678
+ pointer-events: auto;
679
+ transition: transform 180ms ease;
680
+ }
681
+
682
+ .floating-nav-card,
683
+ .back-top-button {
684
+ border: 1px solid rgba(15, 23, 42, 0.1);
685
+ background: rgba(255, 252, 245, 0.88);
686
+ box-shadow: 0 22px 44px rgba(15, 23, 42, 0.12);
687
+ backdrop-filter: blur(16px);
688
+ }
689
+
690
+ .floating-nav-card {
691
+ padding: 10px;
692
+ border-radius: 24px;
693
+ overflow: hidden;
694
+ transition: padding 160ms ease, border-radius 160ms ease, box-shadow 160ms ease;
695
+ }
696
+
697
+ .floating-nav-head {
698
+ margin-bottom: 10px;
699
+ padding: 0 4px;
700
+ color: var(--muted);
701
+ font-size: 12px;
702
+ font-weight: 700;
703
+ display: flex;
704
+ align-items: center;
705
+ justify-content: space-between;
706
+ gap: 8px;
707
+ }
708
+
709
+ .floating-nav {
710
+ display: grid;
711
+ gap: 8px;
712
+ transition: opacity 140ms ease, transform 140ms ease;
713
+ }
714
+
715
+ .floating-toggle {
716
+ appearance: none;
717
+ display: inline-flex;
718
+ align-items: center;
719
+ justify-content: center;
720
+ width: 28px;
721
+ min-width: 28px;
722
+ height: 28px;
723
+ padding: 0;
724
+ border: 0;
725
+ border-radius: 999px;
726
+ background: rgba(15, 23, 42, 0.06);
727
+ color: var(--muted);
728
+ cursor: pointer;
729
+ transition: transform 160ms ease, background 160ms ease, color 160ms ease;
730
+ }
731
+
732
+ .floating-toggle:hover {
733
+ background: rgba(15, 118, 110, 0.12);
734
+ color: var(--accent2);
735
+ transform: translateY(-1px);
736
+ }
737
+
738
+ .floating-toggle:focus {
739
+ outline: none;
740
+ box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
741
+ }
742
+
743
+ .floating-toggle-icon {
744
+ font-size: 14px;
745
+ line-height: 1;
746
+ transition: transform 160ms ease;
747
+ }
748
+
749
+ body.nav-collapsed .floating-tools {
750
+ width: var(--floating-nav-collapsed-width);
751
+ }
752
+
753
+ body.nav-collapsed .floating-nav-card {
754
+ padding: 8px;
755
+ border-radius: 20px;
756
+ }
757
+
758
+ body.nav-collapsed .floating-nav-head {
759
+ margin-bottom: 0;
760
+ padding: 0;
761
+ justify-content: center;
762
+ }
763
+
764
+ body.nav-collapsed .floating-nav-head > span {
765
+ display: none;
766
+ }
767
+
768
+ body.nav-collapsed .floating-toggle {
769
+ width: 36px;
770
+ min-width: 36px;
771
+ height: 36px;
772
+ }
773
+
774
+ body.nav-collapsed .floating-toggle-icon {
775
+ transform: scaleX(-1);
776
+ }
777
+
778
+ body.nav-collapsed .floating-nav {
779
+ opacity: 0;
780
+ transform: translateY(-6px);
781
+ pointer-events: none;
782
+ height: 0;
783
+ overflow: hidden;
784
+ gap: 0;
785
+ }
786
+
787
+ .floating-link,
788
+ .back-top-button {
789
+ appearance: none;
790
+ width: 100%;
791
+ min-height: 42px;
792
+ border-radius: 16px;
793
+ border: 0;
794
+ cursor: pointer;
795
+ transition: transform 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
796
+ }
797
+
798
+ .floating-link {
799
+ padding: 11px 12px;
800
+ background: rgba(15, 23, 42, 0.05);
801
+ color: var(--muted);
802
+ font-size: 12px;
803
+ font-weight: 700;
804
+ line-height: 1;
805
+ white-space: nowrap;
806
+ overflow: hidden;
807
+ text-overflow: ellipsis;
808
+ }
809
+
810
+ .floating-link:hover,
811
+ .back-top-button:hover {
812
+ transform: translateY(-1px);
813
+ }
814
+
815
+ .floating-link.active {
816
+ background: linear-gradient(135deg, rgba(15, 118, 110, 0.16), rgba(11, 91, 86, 0.08));
817
+ color: var(--accent2);
818
+ box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.16);
819
+ }
820
+
821
+ .back-top-button {
822
+ position: fixed;
823
+ left: auto;
824
+ right: max(var(--page-padding), calc((100vw - var(--shell-max-width)) / 2 + (var(--floating-nav-width) - 56px) / 2));
825
+ bottom: 22px;
826
+ z-index: 13;
827
+ width: 56px;
828
+ min-height: 56px;
829
+ padding: 0;
830
+ border-radius: 999px;
831
+ color: var(--strong);
832
+ font-weight: 700;
833
+ font-size: 24px;
834
+ opacity: 0;
835
+ pointer-events: none;
836
+ transition: opacity 180ms ease, transform 180ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
837
+ }
838
+
839
+ .back-top-button.is-visible {
840
+ opacity: 1;
841
+ pointer-events: auto;
842
+ }
843
+
844
+ .back-top-button span {
845
+ transform: translateY(-1px);
846
+ }
847
+
848
+ @media (max-width: 1100px) {
849
+ .hero-grid {
850
+ grid-template-columns: 1fr;
851
+ }
852
+
853
+ .layout {
854
+ grid-template-columns: minmax(0, 1fr);
855
+ }
856
+
857
+ .stack {
858
+ grid-template-columns: 1fr;
859
+ }
860
+ }
861
+
862
+ @media (max-width: 720px) {
863
+ body {
864
+ padding: 16px;
865
+ }
866
+
867
+ .hero {
868
+ padding: 18px;
869
+ }
870
+
871
+ .card,
872
+ .panel {
873
+ padding: 18px;
874
+ }
875
+
876
+ .field {
877
+ padding: 14px;
878
+ }
879
+
880
+ .shell {
881
+ display: block;
882
+ max-width: var(--shell-max-width);
883
+ }
884
+
885
+ .floating-tools {
886
+ grid-column: auto;
887
+ grid-row: auto;
888
+ position: fixed;
889
+ top: 16px;
890
+ left: auto;
891
+ right: 16px;
892
+ width: var(--floating-nav-collapsed-width);
893
+ }
894
+
895
+ body:not(.nav-collapsed) .floating-tools {
896
+ width: 144px;
897
+ }
898
+
899
+ .floating-nav-card {
900
+ padding: 12px;
901
+ }
902
+
903
+ .floating-nav {
904
+ grid-template-columns: 1fr;
905
+ }
906
+
907
+ .back-top-button {
908
+ left: auto;
909
+ right: 16px;
910
+ bottom: 16px;
911
+ }
912
+
913
+ .stack {
914
+ grid-template-columns: 1fr;
915
+ }
916
+
917
+ .path-box-row {
918
+ grid-template-columns: minmax(0, 1fr) 48px;
919
+ }
920
+ }