@taskon/widget-react 0.0.1-beta.1 → 0.0.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +55 -16
  2. package/dist/CommunityTaskList.css +432 -628
  3. package/dist/EligibilityInfo.css +944 -431
  4. package/dist/PageBuilder.css +0 -2
  5. package/dist/Quest.css +460 -506
  6. package/dist/TaskOnProvider.css +15 -15
  7. package/dist/UserCenterWidget.css +0 -174
  8. package/dist/UserCenterWidget2.css +1119 -341
  9. package/dist/chunks/{CommunityTaskList-DoPGZsw1.js → CommunityTaskList-C9mPl_31.js} +923 -829
  10. package/dist/chunks/{EligibilityInfo-C7GZ2G5u.js → EligibilityInfo-DGBffKN8.js} +1137 -449
  11. package/dist/chunks/{LeaderboardWidget-CmYfDeHV.js → LeaderboardWidget-DPOQVXkT.js} +15 -10
  12. package/dist/chunks/{PageBuilder-Tmhf2GTS.js → PageBuilder-WCZvxL2j.js} +5 -5
  13. package/dist/chunks/{Quest-DKFZ-pPU.js → Quest-DjGH_8bx.js} +464 -314
  14. package/dist/chunks/{TaskOnProvider-BD6Vp2x8.js → TaskOnProvider-iannERG1.js} +2 -207
  15. package/dist/chunks/{ThemeProvider-wnSXrNQb.js → ThemeProvider-DNJqI2lD.js} +246 -54
  16. package/dist/chunks/UserCenterWidget-B0O-f_xl.js +8344 -0
  17. package/dist/chunks/{UserCenterWidget-BVw_IEEd.js → UserCenterWidget-CAhgp46j.js} +214 -1011
  18. package/dist/chunks/{WidgetShell-D_5OjvNZ.js → dynamic-import-helper-B2j_dZ4V.js} +607 -40
  19. package/dist/chunks/useToast-CaRkylKe.js +304 -0
  20. package/dist/chunks/{usercenter-ja-uu-XfVF9.js → usercenter-ja-B2465c1O.js} +4 -10
  21. package/dist/chunks/{usercenter-ko-DYgUOVzd.js → usercenter-ko-xAEYxqLg.js} +4 -10
  22. package/dist/community-task.d.ts +34 -3
  23. package/dist/community-task.js +1 -1
  24. package/dist/core.d.ts +40 -3
  25. package/dist/core.js +9 -10
  26. package/dist/dynamic-import-helper.css +186 -0
  27. package/dist/index.d.ts +207 -10
  28. package/dist/index.js +21 -19
  29. package/dist/leaderboard.d.ts +8 -1
  30. package/dist/leaderboard.js +2 -2
  31. package/dist/page-builder.js +1 -1
  32. package/dist/quest.d.ts +8 -2
  33. package/dist/quest.js +1 -1
  34. package/dist/user-center.d.ts +20 -136
  35. package/dist/user-center.js +19 -236
  36. package/package.json +7 -2
  37. package/dist/TipPopover.css +0 -210
  38. package/dist/WidgetShell.css +0 -182
  39. package/dist/chunks/TipPopover-BrW8jo71.js +0 -2926
  40. package/dist/chunks/UserCenterWidget-BE329iS7.js +0 -3546
  41. package/dist/chunks/dynamic-import-helper-DxEFwm31.js +0 -537
  42. package/dist/chunks/useToast-B-wyO5zL.js +0 -93
  43. package/dist/chunks/useWidgetLocale-JDelxtt8.js +0 -74
package/dist/Quest.css CHANGED
@@ -123,7 +123,7 @@
123
123
  margin: 0;
124
124
  font-size: 20px;
125
125
  font-weight: 600;
126
- color: var(--taskon-text-primary, #fff);
126
+ color: var(--taskon-color-text);
127
127
  }
128
128
 
129
129
  /* 描述文本 */
@@ -131,23 +131,23 @@
131
131
  margin: 0;
132
132
  font-size: 14px;
133
133
  line-height: 1.5;
134
- color: var(--taskon-text-secondary, #a0a0a0);
134
+ color: var(--taskon-color-text-secondary);
135
135
  text-align: center;
136
136
  }
137
137
 
138
138
  .taskon-eligs-dialog-desc--success {
139
- color: var(--taskon-success, #52c41a);
139
+ color: var(--taskon-color-success);
140
140
  }
141
141
 
142
142
  .taskon-eligs-dialog-highlight {
143
- color: var(--taskon-primary, #6366f1);
143
+ color: var(--taskon-color-primary);
144
144
  font-weight: 500;
145
145
  }
146
146
 
147
147
  /* 资格条件区域 */
148
148
  .taskon-eligs-dialog-eligs {
149
149
  width: 100%;
150
- border: 1px solid var(--taskon-border, #333);
150
+ border: 1px solid var(--taskon-color-border);
151
151
  border-radius: 10px;
152
152
  overflow: hidden;
153
153
  }
@@ -162,14 +162,14 @@
162
162
  background: transparent;
163
163
  border: none;
164
164
  cursor: pointer;
165
- color: var(--taskon-text-primary, #fff);
165
+ color: var(--taskon-color-text);
166
166
  font-size: 14px;
167
167
  text-align: left;
168
168
  transition: background 0.2s;
169
169
  }
170
170
 
171
171
  .taskon-eligs-dialog-eligs-header:hover {
172
- background: var(--taskon-bg-hover, rgba(255, 255, 255, 0.05));
172
+ background: var(--taskon-color-bg-surface-strong);
173
173
  }
174
174
 
175
175
  .taskon-eligs-dialog-eligs-icon {
@@ -184,7 +184,7 @@
184
184
  .taskon-eligs-dialog-arrow {
185
185
  width: 6px;
186
186
  height: 10px;
187
- color: var(--taskon-text-secondary, #a0a0a0);
187
+ color: var(--taskon-color-text-secondary);
188
188
  transition: transform 0.3s;
189
189
  transform: rotate(90deg);
190
190
  }
@@ -204,8 +204,8 @@
204
204
  padding: 0 24px;
205
205
  border: none;
206
206
  border-radius: 8px;
207
- background: var(--taskon-primary, #6366f1);
208
- color: #fff;
207
+ background: var(--taskon-color-primary);
208
+ color: var(--taskon-color-text-on-primary);
209
209
  font-size: 16px;
210
210
  font-weight: 500;
211
211
  cursor: pointer;
@@ -222,7 +222,7 @@
222
222
  }
223
223
 
224
224
  .taskon-eligs-dialog-button--loading {
225
- background: var(--taskon-bg-secondary, #2a2a2a);
225
+ background: var(--taskon-color-bg-surface);
226
226
  }
227
227
 
228
228
  .taskon-eligs-dialog-loading {
@@ -259,14 +259,14 @@
259
259
  .taskon-eligs-bind-eligs-section {
260
260
  margin-bottom: 20px;
261
261
  padding-bottom: 20px;
262
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
262
+ border-bottom: 1px solid var(--taskon-color-border);
263
263
  }
264
264
 
265
265
  .taskon-eligs-bind-section-title {
266
266
  margin: 0 0 12px;
267
267
  font-size: 16px;
268
268
  font-weight: 600;
269
- color: #fff;
269
+ color: var(--taskon-color-text);
270
270
  }
271
271
 
272
272
  /* 提示文本 */
@@ -274,7 +274,7 @@
274
274
  margin: 0 0 20px;
275
275
  font-size: 14px;
276
276
  line-height: 1.5;
277
- color: rgba(255, 255, 255, 0.6);
277
+ color: var(--taskon-color-text-tertiary);
278
278
  }
279
279
 
280
280
  /* 绑定区域 */
@@ -286,7 +286,7 @@
286
286
  margin: 0 0 12px;
287
287
  font-size: 14px;
288
288
  font-weight: 500;
289
- color: rgba(255, 255, 255, 0.8);
289
+ color: var(--taskon-color-text-secondary);
290
290
  }
291
291
 
292
292
  /* 绑定列表 */
@@ -302,20 +302,20 @@
302
302
  align-items: center;
303
303
  justify-content: space-between;
304
304
  padding: 12px 16px;
305
- background: rgba(255, 255, 255, 0.05);
305
+ background: var(--taskon-color-bg-surface-strong);
306
306
  border-radius: 8px;
307
- border: 1px solid rgba(255, 255, 255, 0.1);
307
+ border: 1px solid var(--taskon-color-border);
308
308
  }
309
309
 
310
310
  .taskon-eligs-bind-item--bound {
311
- background: rgba(74, 222, 128, 0.1);
312
- border-color: rgba(74, 222, 128, 0.3);
311
+ background: var(--taskon-color-success-bg);
312
+ border-color: var(--taskon-color-success);
313
313
  }
314
314
 
315
315
  .taskon-eligs-bind-item-label {
316
316
  font-size: 14px;
317
317
  font-weight: 500;
318
- color: #fff;
318
+ color: var(--taskon-color-text);
319
319
  }
320
320
 
321
321
  /* 绑定按钮 */
@@ -326,8 +326,12 @@
326
326
  padding: 6px 16px;
327
327
  font-size: 13px;
328
328
  font-weight: 500;
329
- color: #000;
330
- background: linear-gradient(90deg, #00d1ff 0%, #00ff94 100%);
329
+ color: var(--taskon-color-text-on-primary);
330
+ background: linear-gradient(
331
+ 90deg,
332
+ var(--taskon-color-link) 0%,
333
+ var(--taskon-color-secondary) 100%
334
+ );
331
335
  border: none;
332
336
  border-radius: 6px;
333
337
  cursor: pointer;
@@ -366,27 +370,7 @@
366
370
  gap: 4px;
367
371
  font-size: 13px;
368
372
  font-weight: 500;
369
- color: #4ade80;
370
- }
371
-
372
- /* 跳过按钮 */
373
- .taskon-eligs-bind-skip-btn {
374
- display: block;
375
- width: 100%;
376
- padding: 12px 24px;
377
- margin-top: 20px;
378
- font-size: 14px;
379
- font-weight: 500;
380
- color: #000;
381
- background: linear-gradient(90deg, #00d1ff 0%, #00ff94 100%);
382
- border: none;
383
- border-radius: 8px;
384
- cursor: pointer;
385
- transition: opacity 0.2s;
386
- }
387
-
388
- .taskon-eligs-bind-skip-btn:hover {
389
- opacity: 0.9;
373
+ color: var(--taskon-color-success);
390
374
  }
391
375
  /**
392
376
  * ShareDropdown - 分享下拉菜单样式
@@ -403,7 +387,7 @@
403
387
  height: 40px;
404
388
  padding: 0;
405
389
  margin-left: auto;
406
- background: var(--taskon-quest-color-darkest, #1a1a1a);
390
+ background: var(--taskon-color-bg-surface);
407
391
  border: none;
408
392
  border-radius: 6px;
409
393
  cursor: pointer;
@@ -412,20 +396,20 @@
412
396
  }
413
397
 
414
398
  .taskon-quest-share-trigger:hover {
415
- background: var(--taskon-quest-color-darker, #2a2a2a);
399
+ background: var(--taskon-color-bg-surface-strong);
416
400
  }
417
401
 
418
402
  .taskon-quest-share-trigger svg {
419
- color: var(--taskon-quest-text-lightest, #fff);
403
+ color: var(--taskon-color-text);
420
404
  }
421
405
 
422
406
  /* 下拉菜单 */
423
407
  .taskon-quest-share-menu {
424
408
  width: 230px;
425
- background: var(--taskon-quest-share-bg, #222);
409
+ background: var(--taskon-color-bg-surface);
426
410
  border-radius: 10px;
427
411
  overflow: hidden;
428
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
412
+ box-shadow: 0 4px 16px var(--taskon-color-bg-mask);
429
413
  z-index: 100;
430
414
  text-align: left;
431
415
  }
@@ -438,7 +422,7 @@
438
422
  padding: 12px;
439
423
  font-size: 14px;
440
424
  font-weight: 500;
441
- color: #fff;
425
+ color: var(--taskon-color-text);
442
426
  background: transparent;
443
427
  border: none;
444
428
  cursor: pointer;
@@ -446,7 +430,7 @@
446
430
  }
447
431
 
448
432
  .taskon-quest-share-menu-item:hover {
449
- background: var(--taskon-quest-menu-hover-bg, rgba(255, 255, 255, 0.08));
433
+ background: var(--taskon-color-bg-surface-strong);
450
434
  }
451
435
 
452
436
  .taskon-quest-share-menu-item svg {
@@ -456,6 +440,18 @@
456
440
  flex-shrink: 0;
457
441
  }
458
442
 
443
+ .taskon-quest-share-menu-item--twitter svg {
444
+ color: var(--taskon-color-link);
445
+ }
446
+
447
+ .taskon-quest-share-menu-item--copy svg {
448
+ color: var(--taskon-color-secondary);
449
+ }
450
+
451
+ .taskon-quest-share-menu-item--qr svg {
452
+ color: var(--taskon-color-warning);
453
+ }
454
+
459
455
  /* ============================================================================
460
456
  二维码弹窗样式 - 与原版 ShareQrCodeDialog.vue 一致
461
457
  ============================================================================ */
@@ -490,9 +486,13 @@
490
486
 
491
487
  /* 海报顶部 - 绿色渐变区域 */
492
488
  .taskon-quest-qr-poster-header {
493
- background: linear-gradient(89.87deg, #e2ff97 0.13%, #cffd55 99.92%);
489
+ background: linear-gradient(
490
+ 89.87deg,
491
+ var(--taskon-color-primary-bg) 0.13%,
492
+ var(--taskon-color-primary) 99.92%
493
+ );
494
494
  padding: 30px;
495
- color: #000;
495
+ color: var(--taskon-color-text-on-primary);
496
496
  }
497
497
 
498
498
  /* 社区信息 */
@@ -506,7 +506,7 @@
506
506
  height: 30px;
507
507
  border-radius: 50%;
508
508
  margin-right: 6px;
509
- border: 2px solid #000;
509
+ border: 2px solid var(--taskon-color-text-on-primary);
510
510
  object-fit: cover;
511
511
  }
512
512
 
@@ -543,7 +543,7 @@
543
543
  /* 海报底部 - 黑色区域 */
544
544
  .taskon-quest-qr-poster-footer {
545
545
  padding: 30px;
546
- background: #000;
546
+ background: var(--taskon-color-bg-canvas);
547
547
  display: flex;
548
548
  justify-content: space-between;
549
549
  align-items: flex-start;
@@ -558,7 +558,7 @@
558
558
  .taskon-quest-qr-reward-title {
559
559
  display: flex;
560
560
  align-items: center;
561
- color: #fff;
561
+ color: var(--taskon-color-text);
562
562
  font-weight: 500;
563
563
  }
564
564
 
@@ -574,7 +574,7 @@
574
574
  margin-bottom: 6px;
575
575
  font-size: 14px;
576
576
  font-weight: 500;
577
- color: #fff;
577
+ color: var(--taskon-color-text);
578
578
  }
579
579
 
580
580
  .taskon-quest-qr-time svg {
@@ -621,14 +621,14 @@
621
621
  display: inline-flex;
622
622
  align-items: center;
623
623
  white-space: nowrap;
624
- color: #fff;
624
+ color: var(--taskon-color-text);
625
625
  font-size: 16px;
626
626
  font-weight: 400;
627
627
  }
628
628
 
629
629
  /* 奖励标签 - 高亮绿色 */
630
630
  .taskon-quest-qr-reward-label {
631
- color: #cbff01;
631
+ color: var(--taskon-color-primary);
632
632
  }
633
633
 
634
634
  /* 链图标 */
@@ -642,7 +642,7 @@
642
642
  /* 奖励间的 & 符号 */
643
643
  .taskon-quest-qr-reward-and {
644
644
  margin-left: 6px;
645
- color: #fff;
645
+ color: var(--taskon-color-text);
646
646
  }
647
647
  /**
648
648
  * ParticipantsInfo 组件样式
@@ -665,7 +665,7 @@
665
665
  .taskon-quest-participants-info {
666
666
  display: flex;
667
667
  flex-direction: column;
668
- gap: var(--taskon-quest-spacing-l, 20px);
668
+ gap: var(--taskon-spacing-lg);
669
669
  align-items: stretch;
670
670
  width: 100%;
671
671
  }
@@ -676,7 +676,7 @@
676
676
 
677
677
  .taskon-quest-participants-info-header {
678
678
  display: flex;
679
- gap: var(--taskon-quest-spacing-xs, 8px);
679
+ gap: var(--taskon-spacing-sm);
680
680
  align-items: center;
681
681
  padding: 0;
682
682
  margin: 0;
@@ -688,13 +688,13 @@
688
688
 
689
689
  .taskon-quest-participants-info-header:hover .taskon-quest-participants-info-title,
690
690
  .taskon-quest-participants-info-header:hover .taskon-quest-participants-info-icon {
691
- color: var(--taskon-quest-text-lightest, #ffffff);
691
+ color: var(--taskon-color-text);
692
692
  }
693
693
 
694
694
  .taskon-quest-participants-info-header:focus-visible {
695
- outline: 2px solid var(--taskon-quest-primary, #cbff01);
695
+ outline: 2px solid var(--taskon-color-primary);
696
696
  outline-offset: 2px;
697
- border-radius: 4px;
697
+ border-radius: var(--taskon-border-radius-sm);
698
698
  }
699
699
 
700
700
  .taskon-quest-participants-info-title {
@@ -702,7 +702,7 @@
702
702
  font-size: 24px;
703
703
  font-weight: 600;
704
704
  line-height: 32px;
705
- color: var(--taskon-quest-text-lightest, #ffffff);
705
+ color: var(--taskon-color-text);
706
706
  }
707
707
 
708
708
  .taskon-quest-participants-info-icon {
@@ -711,7 +711,7 @@
711
711
  justify-content: center;
712
712
  width: 12px;
713
713
  height: 12px;
714
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.8));
714
+ color: var(--taskon-color-text-secondary);
715
715
  flex-shrink: 0;
716
716
  transition: color 0.2s;
717
717
  }
@@ -746,17 +746,17 @@
746
746
  }
747
747
 
748
748
  .taskon-quest-participants-info-row--clickable:focus-visible {
749
- outline: 2px solid var(--taskon-quest-primary, #cbff01);
749
+ outline: 2px solid var(--taskon-color-primary);
750
750
  outline-offset: 2px;
751
- border-radius: 4px;
751
+ border-radius: var(--taskon-border-radius-sm);
752
752
  }
753
753
 
754
754
  .taskon-quest-participants-info-label {
755
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.8));
755
+ color: var(--taskon-color-text-secondary);
756
756
  }
757
757
 
758
758
  .taskon-quest-participants-info-value {
759
- color: var(--taskon-quest-text-lightest, #ffffff);
759
+ color: var(--taskon-color-text);
760
760
  text-align: right;
761
761
  }
762
762
 
@@ -764,11 +764,11 @@
764
764
  .taskon-quest-participants-info-value--clickable {
765
765
  display: flex;
766
766
  align-items: center;
767
- gap: 4px;
767
+ gap: var(--taskon-spacing-xs);
768
768
  }
769
769
 
770
770
  .taskon-quest-participants-info-arrow {
771
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.8));
771
+ color: var(--taskon-color-text-secondary);
772
772
  flex-shrink: 0;
773
773
  transition: transform 0.2s;
774
774
  }
@@ -787,37 +787,37 @@
787
787
  }
788
788
 
789
789
  .taskon-quest-participants-dialog-title {
790
- margin: 0 0 20px 0;
790
+ margin: 0 0 var(--taskon-spacing-lg) 0;
791
791
  font-size: 22px;
792
792
  font-weight: 600;
793
793
  line-height: 28px;
794
- color: var(--taskon-quest-text-lightest, #ffffff);
794
+ color: var(--taskon-color-text);
795
795
  }
796
796
 
797
797
  .taskon-quest-participants-dialog-section {
798
- margin-bottom: 20px;
798
+ margin-bottom: var(--taskon-spacing-lg);
799
799
  }
800
800
 
801
801
  .taskon-quest-participants-dialog-subtitle {
802
802
  font-size: 16px;
803
803
  font-weight: 600;
804
804
  line-height: 24px;
805
- color: var(--taskon-quest-text-lightest, #ffffff);
805
+ color: var(--taskon-color-text);
806
806
  }
807
807
 
808
808
  .taskon-quest-participants-dialog-desc {
809
- margin-top: 4px;
809
+ margin-top: var(--taskon-spacing-xs);
810
810
  font-size: 14px;
811
811
  font-weight: 500;
812
812
  line-height: 20px;
813
- color: rgba(255, 255, 255, 0.6);
813
+ color: var(--taskon-color-text-tertiary);
814
814
  }
815
815
 
816
816
  /* Flow Chart */
817
817
  .taskon-quest-participants-dialog-chart {
818
818
  display: flex;
819
819
  align-items: flex-start;
820
- margin-bottom: 30px;
820
+ margin-bottom: var(--taskon-spacing-lg);
821
821
  }
822
822
 
823
823
  .taskon-quest-participants-dialog-arrow-wrap {
@@ -829,49 +829,50 @@
829
829
  .taskon-quest-participants-dialog-arrow {
830
830
  width: 36px;
831
831
  height: auto;
832
+ color: var(--taskon-color-secondary);
832
833
  }
833
834
 
834
835
  .taskon-quest-participants-dialog-cards {
835
836
  flex: 1;
836
- margin-left: 20px;
837
+ margin-left: var(--taskon-spacing-lg);
837
838
  display: flex;
838
839
  flex-direction: column;
839
- gap: 4px;
840
+ gap: var(--taskon-spacing-xs);
840
841
  }
841
842
 
842
843
  .taskon-quest-participants-dialog-card {
843
- padding: 8px 20px;
844
- border-radius: 6px;
844
+ padding: var(--taskon-spacing-sm) var(--taskon-spacing-lg);
845
+ border-radius: var(--taskon-border-radius);
845
846
  }
846
847
 
847
848
  .taskon-quest-participants-dialog-card--level1 {
848
- background: rgba(0, 255, 163, 0.2);
849
+ background: var(--taskon-color-secondary-bg);
849
850
  }
850
851
 
851
852
  .taskon-quest-participants-dialog-card--level2 {
852
- background: rgba(0, 255, 163, 0.3);
853
+ background: var(--taskon-color-secondary-bg);
853
854
  }
854
855
 
855
856
  .taskon-quest-participants-dialog-card--level3 {
856
- background: rgba(0, 255, 163, 0.4);
857
+ background: var(--taskon-color-secondary-bg);
857
858
  }
858
859
 
859
860
  .taskon-quest-participants-dialog-card--level4 {
860
- background: rgba(0, 255, 163, 0.5);
861
+ background: var(--taskon-color-secondary-bg);
861
862
  }
862
863
 
863
864
  .taskon-quest-participants-dialog-card-title {
864
865
  font-size: 14px;
865
866
  font-weight: 600;
866
867
  line-height: 20px;
867
- color: var(--taskon-quest-text-lightest, #ffffff);
868
+ color: var(--taskon-color-text);
868
869
  }
869
870
 
870
871
  .taskon-quest-participants-dialog-card-desc {
871
872
  font-size: 12px;
872
873
  font-weight: 500;
873
874
  line-height: 16px;
874
- color: rgba(255, 255, 255, 0.6);
875
+ color: var(--taskon-color-text-tertiary);
875
876
  }
876
877
 
877
878
  /* Confirm Button */
@@ -910,7 +911,7 @@
910
911
  font-size: 22px;
911
912
  font-weight: 600;
912
913
  line-height: 28px;
913
- color: var(--taskon-quest-text-lightest, #ffffff);
914
+ color: var(--taskon-color-text);
914
915
  }
915
916
 
916
917
  /* ============================================================================
@@ -937,7 +938,7 @@
937
938
 
938
939
  .taskon-quest-winner-error p {
939
940
  margin: 0;
940
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.8));
941
+ color: var(--taskon-color-text-secondary);
941
942
  }
942
943
 
943
944
  /* ============================================================================
@@ -965,7 +966,7 @@
965
966
  position: sticky;
966
967
  top: 0;
967
968
  z-index: 1;
968
- background: var(--taskon-quest-bg, #1d2123);
969
+ background: var(--taskon-color-bg-surface);
969
970
  }
970
971
 
971
972
  .taskon-quest-winner-table th {
@@ -974,8 +975,8 @@
974
975
  font-size: 14px;
975
976
  font-weight: 500;
976
977
  line-height: 20px;
977
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.6));
978
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
978
+ color: var(--taskon-color-text-secondary);
979
+ border-bottom: 1px solid var(--taskon-color-border);
979
980
  }
980
981
 
981
982
  .taskon-quest-winner-table th:last-child {
@@ -987,13 +988,13 @@
987
988
  font-size: 14px;
988
989
  font-weight: 500;
989
990
  line-height: 20px;
990
- color: var(--taskon-quest-text-lightest, #ffffff);
991
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
991
+ color: var(--taskon-color-text);
992
+ border-bottom: 1px solid var(--taskon-color-border-secondary);
992
993
  vertical-align: middle;
993
994
  }
994
995
 
995
996
  .taskon-quest-winner-table tr:hover td {
996
- background: rgba(255, 255, 255, 0.02);
997
+ background: var(--taskon-color-bg-surface-strong);
997
998
  }
998
999
 
999
1000
  /* ============================================================================
@@ -1003,7 +1004,7 @@
1003
1004
  .taskon-quest-winner-position {
1004
1005
  width: 80px;
1005
1006
  font-weight: 600;
1006
- color: var(--taskon-quest-primary, #cbff01);
1007
+ color: var(--taskon-color-primary);
1007
1008
  }
1008
1009
 
1009
1010
  /* ============================================================================
@@ -1020,7 +1021,7 @@
1020
1021
  overflow: hidden;
1021
1022
  text-overflow: ellipsis;
1022
1023
  white-space: nowrap;
1023
- color: var(--taskon-quest-text-lightest, #ffffff);
1024
+ color: var(--taskon-color-text);
1024
1025
  }
1025
1026
 
1026
1027
  /* ============================================================================
@@ -1035,7 +1036,7 @@
1035
1036
  display: inline-flex;
1036
1037
  flex-wrap: wrap;
1037
1038
  justify-content: flex-end;
1038
- gap: 8px;
1039
+ gap: var(--taskon-spacing-sm);
1039
1040
  max-width: 300px;
1040
1041
  }
1041
1042
 
@@ -1046,7 +1047,7 @@
1046
1047
  .taskon-quest-winner-empty {
1047
1048
  padding: 40px 20px !important;
1048
1049
  text-align: center !important;
1049
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.6)) !important;
1050
+ color: var(--taskon-color-text-tertiary) !important;
1050
1051
  }
1051
1052
 
1052
1053
  /* ============================================================================
@@ -1057,16 +1058,16 @@
1057
1058
  display: flex;
1058
1059
  align-items: center;
1059
1060
  justify-content: center;
1060
- gap: 8px;
1061
+ gap: var(--taskon-spacing-sm);
1061
1062
  padding: 20px;
1062
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.6));
1063
+ color: var(--taskon-color-text-tertiary);
1063
1064
  }
1064
1065
 
1065
1066
  .taskon-quest-winner-loading-spinner {
1066
1067
  width: 16px;
1067
1068
  height: 16px;
1068
- border: 2px solid rgba(255, 255, 255, 0.2);
1069
- border-top-color: var(--taskon-quest-primary, #cbff01);
1069
+ border: 2px solid var(--taskon-color-border);
1070
+ border-top-color: var(--taskon-color-primary);
1070
1071
  border-radius: 50%;
1071
1072
  animation: taskon-quest-winner-spin 0.8s linear infinite;
1072
1073
  }
@@ -1084,10 +1085,10 @@
1084
1085
  .taskon-quest-winner-reward-label {
1085
1086
  display: inline-flex;
1086
1087
  align-items: center;
1087
- gap: 4px;
1088
- padding: 4px 8px;
1089
- background: rgba(255, 255, 255, 0.1);
1090
- border-radius: 4px;
1088
+ gap: var(--taskon-spacing-xs);
1089
+ padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
1090
+ background: var(--taskon-color-bg-surface-strong);
1091
+ border-radius: var(--taskon-border-radius-sm);
1091
1092
  font-size: 12px;
1092
1093
  font-weight: 500;
1093
1094
  line-height: 16px;
@@ -1095,11 +1096,11 @@
1095
1096
  }
1096
1097
 
1097
1098
  .taskon-quest-winner-reward-label-type {
1098
- color: var(--taskon-quest-text-lighter, rgba(255, 255, 255, 0.6));
1099
+ color: var(--taskon-color-text-secondary);
1099
1100
  }
1100
1101
 
1101
1102
  .taskon-quest-winner-reward-label-value {
1102
- color: var(--taskon-quest-primary, #cbff01);
1103
+ color: var(--taskon-color-primary);
1103
1104
  }
1104
1105
  /**
1105
1106
  * QuestRewards 样式
@@ -1118,7 +1119,7 @@
1118
1119
  .taskon-quest-rewards {
1119
1120
  overflow: hidden;
1120
1121
  border-radius: 10px;
1121
- background: var(--taskon-bg-card, rgba(255, 255, 255, 0.04));
1122
+ background: var(--taskon-color-bg-surface-subtle);
1122
1123
  }
1123
1124
 
1124
1125
  .taskon-quest-rewards-container {
@@ -1141,7 +1142,7 @@
1141
1142
  width: 50px;
1142
1143
  height: 50px;
1143
1144
  border-radius: 50%;
1144
- border: 2px solid #f688ff;
1145
+ border: 2px solid var(--taskon-color-primary-hover);
1145
1146
  object-fit: cover;
1146
1147
  margin-right: 16px;
1147
1148
  }
@@ -1151,7 +1152,7 @@
1151
1152
  overflow: hidden;
1152
1153
  white-space: nowrap;
1153
1154
  text-overflow: ellipsis;
1154
- color: var(--taskon-text-primary, #fff);
1155
+ color: var(--taskon-color-text);
1155
1156
  font-size: 22px;
1156
1157
  font-weight: 500;
1157
1158
  line-height: 28px;
@@ -1164,8 +1165,8 @@
1164
1165
  .taskon-quest-rewards-ranking-point {
1165
1166
  padding: 16px;
1166
1167
  border-radius: 10px;
1167
- border: 1px solid var(--taskon-border-color, rgba(255, 255, 255, 0.06));
1168
- background: var(--taskon-bg-card, rgba(255, 255, 255, 0.04));
1168
+ border: 1px solid var(--taskon-color-border-secondary);
1169
+ background: var(--taskon-color-bg-surface-subtle);
1169
1170
  }
1170
1171
 
1171
1172
  .taskon-quest-rewards-ranking-point-row {
@@ -1180,7 +1181,7 @@
1180
1181
  .taskon-quest-rewards-ranking-point-label {
1181
1182
  display: flex;
1182
1183
  align-items: center;
1183
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1184
+ color: var(--taskon-color-text-tertiary);
1184
1185
  font-size: 16px;
1185
1186
  font-weight: 500;
1186
1187
  line-height: 20px;
@@ -1197,7 +1198,7 @@
1197
1198
  }
1198
1199
 
1199
1200
  .taskon-quest-rewards-ranking-point-number {
1200
- color: var(--taskon-primary, #cbff01);
1201
+ color: var(--taskon-color-primary);
1201
1202
  font-size: 22px;
1202
1203
  font-weight: 700;
1203
1204
  line-height: 28px;
@@ -1207,7 +1208,7 @@
1207
1208
  position: absolute;
1208
1209
  top: 100%;
1209
1210
  right: 0;
1210
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1211
+ color: var(--taskon-color-text-tertiary);
1211
1212
  font-size: 13px;
1212
1213
  font-weight: 500;
1213
1214
  line-height: 16px;
@@ -1216,7 +1217,7 @@
1216
1217
 
1217
1218
  .taskon-quest-rewards-ranking-point-amount {
1218
1219
  margin-left: auto;
1219
- color: var(--taskon-secondary, #00ffa3);
1220
+ color: var(--taskon-color-secondary);
1220
1221
  font-size: 22px;
1221
1222
  font-weight: 700;
1222
1223
  line-height: 28px;
@@ -1228,11 +1229,11 @@
1228
1229
  width: 50%;
1229
1230
  font-size: 12px;
1230
1231
  line-height: 16px;
1231
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1232
+ color: var(--taskon-color-text-tertiary);
1232
1233
  }
1233
1234
 
1234
1235
  .taskon-quest-rewards-ranking-point-tip-highlight {
1235
- color: var(--taskon-primary, #cbff01);
1236
+ color: var(--taskon-color-primary);
1236
1237
  }
1237
1238
 
1238
1239
  /* ============================================================================
@@ -1256,7 +1257,7 @@
1256
1257
  font-size: 16px;
1257
1258
  line-height: 20px;
1258
1259
  font-weight: 500;
1259
- color: var(--taskon-text-primary, #fff);
1260
+ color: var(--taskon-color-text);
1260
1261
  }
1261
1262
 
1262
1263
  .taskon-quest-rewards-group-cards {
@@ -1270,7 +1271,7 @@
1270
1271
 
1271
1272
  .taskon-quest-rewards-card {
1272
1273
  margin-top: 12px;
1273
- background: var(--taskon-bg-card, rgba(255, 255, 255, 0.04));
1274
+ background: var(--taskon-color-bg-surface-subtle);
1274
1275
  border-radius: 8px;
1275
1276
  overflow: hidden;
1276
1277
  }
@@ -1280,7 +1281,7 @@
1280
1281
  }
1281
1282
 
1282
1283
  .taskon-quest-rewards-card--active {
1283
- border: 1px solid #cbff01;
1284
+ border: 1px solid var(--taskon-color-primary);
1284
1285
  }
1285
1286
 
1286
1287
  /* Tier 表头(仅 PointRanking 模式) */
@@ -1290,30 +1291,34 @@
1290
1291
  justify-content: space-between;
1291
1292
  gap: 8px;
1292
1293
  padding: 8px 16px;
1293
- background: var(--taskon-bg-darkest, rgba(0, 0, 0, 0.4));
1294
+ background: var(--taskon-color-bg-inset);
1294
1295
  font-size: 16px;
1295
1296
  line-height: 20px;
1296
1297
  }
1297
1298
 
1298
1299
  .taskon-quest-rewards-card-tier--active {
1299
- background: linear-gradient(90deg, rgba(203, 255, 1, 0.9) 0%, rgba(0, 255, 163, 0.9) 100%);
1300
+ background: linear-gradient(
1301
+ 90deg,
1302
+ var(--taskon-color-primary) 0%,
1303
+ var(--taskon-color-secondary) 100%
1304
+ );
1300
1305
  }
1301
1306
 
1302
1307
  .taskon-quest-rewards-card-tier-label {
1303
1308
  font-weight: 500;
1304
- color: var(--taskon-text-primary, #fff);
1309
+ color: var(--taskon-color-text);
1305
1310
  }
1306
1311
 
1307
1312
  .taskon-quest-rewards-card-tier--active .taskon-quest-rewards-card-tier-label {
1308
- color: var(--taskon-text-inverse, #000);
1313
+ color: var(--taskon-color-text-on-primary);
1309
1314
  }
1310
1315
 
1311
1316
  .taskon-quest-rewards-card-tier-range {
1312
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1317
+ color: var(--taskon-color-text-tertiary);
1313
1318
  }
1314
1319
 
1315
1320
  .taskon-quest-rewards-card-tier--active .taskon-quest-rewards-card-tier-range {
1316
- color: var(--taskon-text-inverse-secondary, rgba(0, 0, 0, 0.6));
1321
+ color: var(--taskon-color-text-on-primary);
1317
1322
  }
1318
1323
 
1319
1324
  /* 卡片主体 */
@@ -1342,7 +1347,7 @@
1342
1347
  }
1343
1348
 
1344
1349
  .taskon-quest-rewards-whitelist-desc-icon {
1345
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1350
+ color: var(--taskon-color-text-tertiary);
1346
1351
  transition: transform 0.3s ease;
1347
1352
  flex-shrink: 0;
1348
1353
  }
@@ -1355,7 +1360,7 @@
1355
1360
  margin-top: 8px;
1356
1361
  font-size: 14px;
1357
1362
  line-height: 20px;
1358
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1363
+ color: var(--taskon-color-text-secondary);
1359
1364
  }
1360
1365
 
1361
1366
  /* ============================================================================
@@ -1373,7 +1378,7 @@
1373
1378
  font-size: 18px;
1374
1379
  line-height: 24px;
1375
1380
  font-weight: 500;
1376
- color: var(--taskon-text-primary, #fff);
1381
+ color: var(--taskon-color-text);
1377
1382
  flex-shrink: 0;
1378
1383
  }
1379
1384
 
@@ -1383,7 +1388,7 @@
1383
1388
  gap: 8px;
1384
1389
  font-size: 14px;
1385
1390
  line-height: 16px;
1386
- color: var(--taskon-text-primary, #fff);
1391
+ color: var(--taskon-color-text);
1387
1392
  }
1388
1393
 
1389
1394
  /* ============================================================================
@@ -1398,19 +1403,19 @@
1398
1403
  /* Chain Icon Tooltip */
1399
1404
  .taskon-quest-rewards-chain-tooltip {
1400
1405
  padding: 6px 10px;
1401
- background: var(--taskon-bg-popover, #1a1a1a);
1402
- border: 1px solid var(--taskon-border-color, rgba(255, 255, 255, 0.1));
1406
+ background: var(--taskon-color-bg-floating);
1407
+ border: 1px solid var(--taskon-color-border);
1403
1408
  border-radius: 6px;
1404
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1409
+ box-shadow: 0 4px 12px var(--taskon-color-bg-mask);
1405
1410
  font-size: 12px;
1406
1411
  line-height: 16px;
1407
- color: var(--taskon-text-primary, #fff);
1412
+ color: var(--taskon-color-text);
1408
1413
  z-index: 1000;
1409
1414
  white-space: nowrap;
1410
1415
  }
1411
1416
 
1412
1417
  .taskon-quest-rewards-chain-tooltip-arrow {
1413
- fill: var(--taskon-bg-popover, #1a1a1a);
1418
+ fill: var(--taskon-color-bg-floating);
1414
1419
  }
1415
1420
 
1416
1421
  /* ============================================================================
@@ -1435,7 +1440,11 @@
1435
1440
  }
1436
1441
 
1437
1442
  .taskon-quest-rewards-token-blindbox span:last-child {
1438
- background: linear-gradient(90deg, #cbff01 0%, #00ffa3 100%);
1443
+ background: linear-gradient(
1444
+ 90deg,
1445
+ var(--taskon-color-primary) 0%,
1446
+ var(--taskon-color-secondary) 100%
1447
+ );
1439
1448
  -webkit-background-clip: text;
1440
1449
  background-clip: text;
1441
1450
  -webkit-text-fill-color: transparent;
@@ -1451,22 +1460,22 @@
1451
1460
  .taskon-quest-rewards-token-amount {
1452
1461
  font-size: 22px;
1453
1462
  line-height: 28px;
1454
- color: var(--taskon-primary, #cbff01);
1463
+ color: var(--taskon-color-primary);
1455
1464
  }
1456
1465
 
1457
1466
  .taskon-quest-rewards-token-name {
1458
1467
  font-size: 22px;
1459
1468
  line-height: 28px;
1460
- color: var(--taskon-primary, #cbff01);
1469
+ color: var(--taskon-color-primary);
1461
1470
  }
1462
1471
 
1463
1472
  .taskon-quest-rewards-token-usdt-tag {
1464
1473
  font-size: 12px;
1465
1474
  line-height: 14px;
1466
1475
  padding: 2px 6px;
1467
- background: var(--taskon-bg-secondary, rgba(255, 255, 255, 0.1));
1476
+ background: var(--taskon-color-secondary-bg);
1468
1477
  border-radius: 4px;
1469
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1478
+ color: var(--taskon-color-text-secondary);
1470
1479
  }
1471
1480
 
1472
1481
  .taskon-quest-rewards-token-per {
@@ -1479,14 +1488,14 @@
1479
1488
  .taskon-quest-rewards-token-per-label {
1480
1489
  font-size: 14px;
1481
1490
  line-height: 16px;
1482
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1491
+ color: var(--taskon-color-text-tertiary);
1483
1492
  }
1484
1493
 
1485
1494
  .taskon-quest-rewards-token-per-value {
1486
1495
  margin-left: auto;
1487
1496
  font-size: 14px;
1488
1497
  line-height: 16px;
1489
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1498
+ color: var(--taskon-color-text-secondary);
1490
1499
  }
1491
1500
 
1492
1501
  /* BRC20 标签 */
@@ -1495,8 +1504,8 @@
1495
1504
  font-size: 12px;
1496
1505
  line-height: 14px;
1497
1506
  font-weight: 500;
1498
- color: #f97316;
1499
- background: rgba(249, 115, 22, 0.15);
1507
+ color: var(--taskon-color-warning);
1508
+ background: var(--taskon-color-warning-bg);
1500
1509
  border-radius: 4px;
1501
1510
  }
1502
1511
 
@@ -1521,7 +1530,7 @@
1521
1530
  font-size: 22px;
1522
1531
  line-height: 28px;
1523
1532
  font-weight: 600;
1524
- color: var(--taskon-text-primary, #fff);
1533
+ color: var(--taskon-color-text);
1525
1534
  overflow: hidden;
1526
1535
  text-overflow: ellipsis;
1527
1536
  white-space: nowrap;
@@ -1531,7 +1540,7 @@
1531
1540
  .taskon-quest-rewards-minted-nft-quantity {
1532
1541
  font-size: 14px;
1533
1542
  line-height: 16px;
1534
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1543
+ color: var(--taskon-color-text-secondary);
1535
1544
  }
1536
1545
 
1537
1546
  /* ============================================================================
@@ -1540,10 +1549,10 @@
1540
1549
 
1541
1550
  .taskon-quest-rewards-popover-content {
1542
1551
  padding: 12px 16px;
1543
- background: var(--taskon-bg-popover, #1a1a1a);
1544
- border: 1px solid var(--taskon-border-color, rgba(255, 255, 255, 0.1));
1552
+ background: var(--taskon-color-bg-floating);
1553
+ border: 1px solid var(--taskon-color-border);
1545
1554
  border-radius: 8px;
1546
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1555
+ box-shadow: 0 4px 12px var(--taskon-color-bg-mask);
1547
1556
  max-width: 300px;
1548
1557
  z-index: 1000;
1549
1558
  }
@@ -1551,7 +1560,7 @@
1551
1560
  .taskon-quest-rewards-popover-name {
1552
1561
  font-size: 14px;
1553
1562
  line-height: 18px;
1554
- color: var(--taskon-text-primary, #fff);
1563
+ color: var(--taskon-color-text);
1555
1564
  word-break: break-all;
1556
1565
  }
1557
1566
 
@@ -1563,7 +1572,7 @@
1563
1572
  font-size: 14px;
1564
1573
  line-height: 18px;
1565
1574
  font-weight: 500;
1566
- color: var(--taskon-text-primary, #fff);
1575
+ color: var(--taskon-color-text);
1567
1576
  }
1568
1577
 
1569
1578
  .taskon-quest-rewards-popover-address-row {
@@ -1584,7 +1593,7 @@
1584
1593
  flex: 1;
1585
1594
  font-size: 12px;
1586
1595
  line-height: 16px;
1587
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1596
+ color: var(--taskon-color-text-tertiary);
1588
1597
  word-break: break-all;
1589
1598
  }
1590
1599
 
@@ -1592,16 +1601,16 @@
1592
1601
  flex-shrink: 0;
1593
1602
  display: flex;
1594
1603
  align-items: center;
1595
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1604
+ color: var(--taskon-color-text-tertiary);
1596
1605
  transition: color 0.2s;
1597
1606
  }
1598
1607
 
1599
1608
  .taskon-quest-rewards-popover-address-row:hover .taskon-quest-rewards-popover-address-copy {
1600
- color: var(--taskon-primary, #cbff01);
1609
+ color: var(--taskon-color-primary);
1601
1610
  }
1602
1611
 
1603
1612
  .taskon-quest-rewards-popover-arrow {
1604
- fill: var(--taskon-bg-popover, #1a1a1a);
1613
+ fill: var(--taskon-color-bg-floating);
1605
1614
  }
1606
1615
 
1607
1616
  /* ============================================================================
@@ -1626,14 +1635,14 @@
1626
1635
  font-size: 22px;
1627
1636
  line-height: 28px;
1628
1637
  font-weight: 600;
1629
- color: var(--taskon-primary, #cbff01);
1638
+ color: var(--taskon-color-primary);
1630
1639
  }
1631
1640
 
1632
1641
  .taskon-quest-rewards-points-name,
1633
1642
  .taskon-quest-rewards-exp-label {
1634
1643
  font-size: 22px;
1635
1644
  line-height: 28px;
1636
- color: var(--taskon-text-primary, #fff);
1645
+ color: var(--taskon-color-text);
1637
1646
  }
1638
1647
 
1639
1648
  /* ============================================================================
@@ -1649,7 +1658,7 @@
1649
1658
  .taskon-quest-rewards-discord-role-name {
1650
1659
  font-size: 22px;
1651
1660
  line-height: 28px;
1652
- color: var(--taskon-link, #5865f2);
1661
+ color: var(--taskon-color-link);
1653
1662
  cursor: pointer;
1654
1663
  }
1655
1664
 
@@ -1660,7 +1669,7 @@
1660
1669
  .taskon-quest-rewards-discord-role-warning {
1661
1670
  font-size: 12px;
1662
1671
  line-height: 14px;
1663
- color: var(--taskon-warning, #ffc107);
1672
+ color: var(--taskon-color-warning);
1664
1673
  }
1665
1674
 
1666
1675
  /* ============================================================================
@@ -1670,7 +1679,7 @@
1670
1679
  .taskon-quest-rewards-winner-open {
1671
1680
  font-size: 22px;
1672
1681
  line-height: 28px;
1673
- color: var(--taskon-secondary, #00ffa3);
1682
+ color: var(--taskon-color-secondary);
1674
1683
  }
1675
1684
 
1676
1685
  .taskon-quest-rewards-winner-fcfs {
@@ -1688,33 +1697,33 @@
1688
1697
  }
1689
1698
 
1690
1699
  .taskon-quest-rewards-winner-available {
1691
- color: var(--taskon-secondary, #00ffa3);
1700
+ color: var(--taskon-color-secondary);
1692
1701
  }
1693
1702
 
1694
1703
  .taskon-quest-rewards-winner-separator {
1695
- color: var(--taskon-text-primary, #fff);
1704
+ color: var(--taskon-color-text);
1696
1705
  }
1697
1706
 
1698
1707
  .taskon-quest-rewards-winner-total {
1699
- color: var(--taskon-text-primary, #fff);
1708
+ color: var(--taskon-color-text);
1700
1709
  }
1701
1710
 
1702
1711
  .taskon-quest-rewards-winner-label {
1703
1712
  font-size: 14px;
1704
1713
  line-height: 16px;
1705
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1714
+ color: var(--taskon-color-text-secondary);
1706
1715
  }
1707
1716
 
1708
1717
  .taskon-quest-rewards-winner-count {
1709
1718
  font-size: 22px;
1710
1719
  line-height: 28px;
1711
- color: var(--taskon-secondary, #00ffa3);
1720
+ color: var(--taskon-color-secondary);
1712
1721
  }
1713
1722
 
1714
1723
  .taskon-quest-rewards-winner-ranking {
1715
1724
  font-size: 22px;
1716
1725
  line-height: 28px;
1717
- color: var(--taskon-secondary, #00ffa3);
1726
+ color: var(--taskon-color-secondary);
1718
1727
  }
1719
1728
 
1720
1729
  /* ============================================================================
@@ -1731,7 +1740,7 @@
1731
1740
  .taskon-quest-rewards-gas-label {
1732
1741
  font-size: 14px;
1733
1742
  line-height: 16px;
1734
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1743
+ color: var(--taskon-color-text-tertiary);
1735
1744
  white-space: nowrap;
1736
1745
  }
1737
1746
 
@@ -1739,7 +1748,7 @@
1739
1748
  flex: 1;
1740
1749
  position: relative;
1741
1750
  height: 8px;
1742
- background: rgba(255, 255, 255, 0.2);
1751
+ background: var(--taskon-color-bg-surface-strong);
1743
1752
  border-radius: 2px;
1744
1753
  overflow: hidden;
1745
1754
  }
@@ -1753,7 +1762,11 @@
1753
1762
  display: flex;
1754
1763
  align-items: center;
1755
1764
  gap: 6px;
1756
- background: linear-gradient(90deg, #00ffa3 -229.89%, #cbff01 100%);
1765
+ background: linear-gradient(
1766
+ 90deg,
1767
+ var(--taskon-color-secondary) -229.89%,
1768
+ var(--taskon-color-primary) 100%
1769
+ );
1757
1770
  border-radius: 2px;
1758
1771
  overflow: hidden;
1759
1772
  }
@@ -1764,7 +1777,7 @@
1764
1777
  flex-shrink: 0;
1765
1778
  height: 200%;
1766
1779
  transform: rotate(45deg);
1767
- background: rgba(0, 0, 0, 0.1);
1780
+ background: var(--taskon-color-bg-canvas);
1768
1781
  }
1769
1782
 
1770
1783
  /* ============================================================================
@@ -1774,7 +1787,7 @@
1774
1787
  .taskon-quest-rewards-preview {
1775
1788
  width: 100%;
1776
1789
  padding: 26px;
1777
- border: 1px solid var(--taskon-border-color, rgba(255, 255, 255, 0.1));
1790
+ border: 1px solid var(--taskon-color-border);
1778
1791
  border-radius: 8px;
1779
1792
  box-sizing: border-box;
1780
1793
  }
@@ -1795,7 +1808,7 @@
1795
1808
  padding: 16px;
1796
1809
  background: transparent;
1797
1810
  border-radius: 8px;
1798
- border: 1px solid rgba(0, 255, 163, 0.4);
1811
+ border: 1px solid var(--taskon-color-secondary-bg);
1799
1812
  overflow: hidden;
1800
1813
  }
1801
1814
 
@@ -1810,7 +1823,7 @@
1810
1823
  font-size: 14px;
1811
1824
  line-height: 16px;
1812
1825
  font-weight: 500;
1813
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1826
+ color: var(--taskon-color-text-secondary);
1814
1827
  }
1815
1828
 
1816
1829
  .taskon-quest-rewards-estimated-value {
@@ -1824,17 +1837,17 @@
1824
1837
  }
1825
1838
 
1826
1839
  .taskon-quest-rewards-estimated-amount {
1827
- color: var(--taskon-primary, #cbff01);
1840
+ color: var(--taskon-color-primary);
1828
1841
  }
1829
1842
 
1830
1843
  .taskon-quest-rewards-estimated-symbol {
1831
- color: var(--taskon-text-primary, #fff);
1844
+ color: var(--taskon-color-text);
1832
1845
  }
1833
1846
 
1834
1847
  .taskon-quest-rewards-estimated-formula {
1835
1848
  font-size: 12px;
1836
1849
  line-height: 14px;
1837
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1850
+ color: var(--taskon-color-text-tertiary);
1838
1851
  margin-top: 4px;
1839
1852
  }
1840
1853
 
@@ -1842,14 +1855,14 @@
1842
1855
  font-size: 14px;
1843
1856
  line-height: 16px;
1844
1857
  font-weight: 500;
1845
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1858
+ color: var(--taskon-color-text-secondary);
1846
1859
  }
1847
1860
 
1848
1861
  .taskon-quest-rewards-estimated-points {
1849
1862
  font-size: 18px;
1850
1863
  line-height: 24px;
1851
1864
  font-weight: 700;
1852
- color: var(--taskon-text-primary, #fff);
1865
+ color: var(--taskon-color-text);
1853
1866
  }
1854
1867
 
1855
1868
  .taskon-quest-rewards-estimated-total {
@@ -1859,7 +1872,7 @@
1859
1872
  gap: 8px;
1860
1873
  font-size: 14px;
1861
1874
  line-height: 16px;
1862
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1875
+ color: var(--taskon-color-text-secondary);
1863
1876
  }
1864
1877
 
1865
1878
  /* 未完成遮罩层 */
@@ -1870,7 +1883,7 @@
1870
1883
  flex-direction: column;
1871
1884
  align-items: center;
1872
1885
  justify-content: center;
1873
- background: rgba(48, 48, 48, 0.4);
1886
+ background: var(--taskon-color-bg-mask);
1874
1887
  border-radius: 8px;
1875
1888
  backdrop-filter: blur(4px);
1876
1889
  padding: 16px;
@@ -1886,7 +1899,7 @@
1886
1899
  font-size: 14px;
1887
1900
  line-height: 16px;
1888
1901
  font-weight: 500;
1889
- color: var(--taskon-secondary, #00ffa3);
1902
+ color: var(--taskon-color-secondary);
1890
1903
  text-align: center;
1891
1904
  }
1892
1905
 
@@ -1894,7 +1907,7 @@
1894
1907
  margin-top: 4px;
1895
1908
  font-size: 12px;
1896
1909
  line-height: 14px;
1897
- color: var(--taskon-text-primary, #fff);
1910
+ color: var(--taskon-color-text);
1898
1911
  text-align: center;
1899
1912
  }
1900
1913
 
@@ -1910,7 +1923,7 @@
1910
1923
  font-size: 16px;
1911
1924
  line-height: 20px;
1912
1925
  font-weight: 500;
1913
- color: var(--taskon-text-primary, #fff);
1926
+ color: var(--taskon-color-text);
1914
1927
  }
1915
1928
 
1916
1929
  .taskon-quest-rewards-bonus-card {
@@ -1920,18 +1933,18 @@
1920
1933
  flex-direction: column;
1921
1934
  gap: 24px;
1922
1935
  border-radius: 10px;
1923
- background: var(--taskon-bg-card, rgba(255, 255, 255, 0.04));
1936
+ background: var(--taskon-color-bg-surface-subtle);
1924
1937
  }
1925
1938
 
1926
1939
  /* 覆盖 BaseRow 的 label 样式,匹配 Vue 版本 */
1927
1940
  .taskon-quest-rewards-bonus-card .taskon-quest-rewards-row-label {
1928
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
1941
+ color: var(--taskon-color-text-secondary);
1929
1942
  font-size: 16px;
1930
1943
  line-height: 20px;
1931
1944
  }
1932
1945
 
1933
1946
  .taskon-quest-rewards-bonus-desc {
1934
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
1947
+ color: var(--taskon-color-text-tertiary);
1935
1948
  font-size: 14px;
1936
1949
  line-height: 18px;
1937
1950
  text-align: right;
@@ -1940,7 +1953,7 @@
1940
1953
  .taskon-quest-rewards-bonus-value {
1941
1954
  display: flex;
1942
1955
  align-items: flex-end;
1943
- color: var(--taskon-text-primary, #fff);
1956
+ color: var(--taskon-color-text);
1944
1957
  text-align: right;
1945
1958
  font-size: 16px;
1946
1959
  font-weight: 600;
@@ -2125,7 +2138,7 @@
2125
2138
  background: none;
2126
2139
  border: none;
2127
2140
  cursor: pointer;
2128
- color: var(--taskon-link, #58afff);
2141
+ color: var(--taskon-color-link);
2129
2142
  font-size: 14px;
2130
2143
  line-height: 18px;
2131
2144
  transition: opacity 0.2s ease;
@@ -2149,14 +2162,6 @@
2149
2162
  margin-left: 4px;
2150
2163
  }
2151
2164
 
2152
- /* ============================================================================
2153
- Leaderboard 弹窗样式
2154
- ============================================================================ */
2155
-
2156
- .taskon-quest-leaderboard-modal {
2157
- background: var(--taskon-bg-card, #1a1a1a);
2158
- }
2159
-
2160
2165
  .taskon-quest-leaderboard-content {
2161
2166
  display: flex;
2162
2167
  flex-direction: column;
@@ -2167,13 +2172,13 @@
2167
2172
  margin: 0;
2168
2173
  font-size: 24px;
2169
2174
  font-weight: 600;
2170
- color: var(--taskon-text-primary, #fff);
2175
+ color: var(--taskon-color-text);
2171
2176
  }
2172
2177
 
2173
2178
  .taskon-quest-leaderboard-subtitle {
2174
2179
  margin: 0;
2175
2180
  font-size: 14px;
2176
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
2181
+ color: var(--taskon-color-text-secondary);
2177
2182
  }
2178
2183
 
2179
2184
  .taskon-quest-leaderboard-error {
@@ -2183,33 +2188,104 @@
2183
2188
  gap: 12px;
2184
2189
  padding: 24px;
2185
2190
  text-align: center;
2186
- color: var(--taskon-text-secondary, rgba(255, 255, 255, 0.7));
2191
+ color: var(--taskon-color-text-secondary);
2187
2192
  }
2188
2193
 
2189
2194
  .taskon-quest-leaderboard-table {
2190
2195
  margin-top: 8px;
2191
2196
  }
2192
2197
 
2198
+ /* ============================================================================
2199
+ Leaderboard 弹窗内 Table 主题(仅作用于该弹窗)
2200
+ 统一使用最新 --taskon-color-* token
2201
+ ============================================================================ */
2202
+
2203
+ .taskon-quest-leaderboard-table .taskon-table__header {
2204
+ color: var(--taskon-color-text-disabled);
2205
+ background-color: var(--taskon-color-bg-surface-subtle);
2206
+ }
2207
+
2208
+ .taskon-quest-leaderboard-table .taskon-table__cell {
2209
+ color: var(--taskon-color-text);
2210
+ }
2211
+
2212
+ .taskon-quest-leaderboard-table .taskon-table--bordered .taskon-table__row td {
2213
+ border-top: 1px solid var(--taskon-color-border-secondary);
2214
+ border-bottom: 1px solid var(--taskon-color-border-secondary);
2215
+ }
2216
+
2217
+ .taskon-quest-leaderboard-table .taskon-table__row:hover {
2218
+ background-color: var(--taskon-color-bg-surface-subtle);
2219
+ }
2220
+
2221
+ .taskon-quest-leaderboard-table .taskon-table--striped .taskon-table__row:nth-child(even) {
2222
+ background-color: var(--taskon-color-bg-surface-subtle);
2223
+ }
2224
+
2225
+ .taskon-quest-leaderboard-table .taskon-table__loading,
2226
+ .taskon-quest-leaderboard-table .taskon-table__empty,
2227
+ .taskon-quest-leaderboard-table .taskon-table__empty-desc {
2228
+ color: var(--taskon-color-text-disabled);
2229
+ }
2230
+
2231
+ .taskon-quest-leaderboard-table .taskon-table__empty-title {
2232
+ color: var(--taskon-color-text);
2233
+ }
2234
+
2235
+ .taskon-quest-leaderboard-table .taskon-table__loading-spinner {
2236
+ border-color: var(--taskon-color-text-disabled);
2237
+ border-top-color: var(--taskon-color-primary);
2238
+ }
2239
+
2240
+ .taskon-quest-leaderboard-table .taskon-table__loading-overlay {
2241
+ background-color: var(--taskon-color-bg-mask);
2242
+ }
2243
+
2193
2244
  .taskon-quest-leaderboard-pagination {
2194
2245
  display: flex;
2195
2246
  justify-content: center;
2196
2247
  margin-top: 16px;
2197
2248
  }
2198
2249
 
2250
+ /* ============================================================================
2251
+ Leaderboard 弹窗内 Pagination 主题(仅作用于该弹窗)
2252
+ 统一使用最新 --taskon-color-* token
2253
+ ============================================================================ */
2254
+
2255
+ .taskon-quest-leaderboard-pagination .taskon-pagination-range,
2256
+ .taskon-quest-leaderboard-pagination .taskon-pagination-info-separator,
2257
+ .taskon-quest-leaderboard-pagination .taskon-pagination-info-total {
2258
+ color: var(--taskon-color-text-disabled);
2259
+ }
2260
+
2261
+ .taskon-quest-leaderboard-pagination .taskon-pagination-info-current {
2262
+ color: var(--taskon-color-text);
2263
+ }
2264
+
2265
+ .taskon-quest-leaderboard-pagination .taskon-pagination-btn {
2266
+ border-color: var(--taskon-color-border) !important;
2267
+ color: var(--taskon-color-text) !important;
2268
+ }
2269
+
2270
+ .taskon-quest-leaderboard-pagination .taskon-pagination-btn:hover:not(:disabled) {
2271
+ background-color: var(--taskon-color-bg-surface-subtle) !important;
2272
+ border-color: var(--taskon-color-border-secondary) !important;
2273
+ }
2274
+
2199
2275
  /* 排名徽章 */
2200
2276
  .taskon-quest-leaderboard-rank {
2201
2277
  display: inline-flex;
2202
2278
  align-items: center;
2203
2279
  font-size: 14px;
2204
2280
  font-weight: 500;
2205
- color: var(--taskon-text-primary, #fff);
2281
+ color: var(--taskon-color-text);
2206
2282
  }
2207
2283
 
2208
2284
  /* Unranked / N/A 状态 */
2209
2285
  .taskon-quest-leaderboard-rank--unranked {
2210
2286
  font-size: 14px;
2211
2287
  font-weight: 500;
2212
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
2288
+ color: var(--taskon-color-text-tertiary);
2213
2289
  }
2214
2290
 
2215
2291
  /* 表头带提示框的容器 */
@@ -2223,7 +2299,7 @@
2223
2299
  .taskon-quest-leaderboard-tier {
2224
2300
  font-size: 14px;
2225
2301
  font-weight: 500;
2226
- color: var(--taskon-text-primary, #fff);
2302
+ color: var(--taskon-color-text);
2227
2303
  }
2228
2304
 
2229
2305
  /* 用户单元格 */
@@ -2240,14 +2316,14 @@
2240
2316
  padding: 2px 8px;
2241
2317
  font-size: 12px;
2242
2318
  font-weight: 600;
2243
- color: var(--taskon-bg-body, #111);
2244
- background: var(--taskon-secondary, #00ffa3);
2319
+ color: var(--taskon-color-text-on-primary);
2320
+ background: var(--taskon-color-secondary);
2245
2321
  border-radius: 4px;
2246
2322
  }
2247
2323
 
2248
2324
  .taskon-quest-leaderboard-user-name {
2249
2325
  font-size: 14px;
2250
- color: var(--taskon-text-primary, #fff);
2326
+ color: var(--taskon-color-text);
2251
2327
  overflow: hidden;
2252
2328
  text-overflow: ellipsis;
2253
2329
  white-space: nowrap;
@@ -2257,7 +2333,7 @@
2257
2333
  .taskon-quest-leaderboard-points {
2258
2334
  font-size: 14px;
2259
2335
  font-weight: 500;
2260
- color: var(--taskon-text-primary, #fff);
2336
+ color: var(--taskon-color-text);
2261
2337
  }
2262
2338
 
2263
2339
  /* 奖励 */
@@ -2271,47 +2347,24 @@
2271
2347
  .taskon-quest-leaderboard-reward-type {
2272
2348
  font-size: 14px;
2273
2349
  font-weight: 600;
2274
- color: var(--taskon-text-primary, #fff);
2350
+ color: var(--taskon-color-text);
2275
2351
  }
2276
2352
 
2277
2353
  .taskon-quest-leaderboard-reward {
2278
2354
  font-size: 14px;
2279
2355
  font-weight: 600;
2280
- color: var(--taskon-primary, #cbff01);
2356
+ color: var(--taskon-color-primary);
2281
2357
  }
2282
2358
 
2283
2359
  .taskon-quest-leaderboard-not-qualified {
2284
2360
  font-size: 14px;
2285
2361
  font-weight: 600;
2286
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
2362
+ color: var(--taskon-color-text-tertiary);
2287
2363
  }
2288
2364
 
2289
2365
  .taskon-quest-leaderboard-no-reward {
2290
2366
  font-size: 14px;
2291
- color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.5));
2292
- }
2293
- /**
2294
- * RewardModuleDialog styles
2295
- * Scope UserCenter module styles inside Quest popup
2296
- */
2297
-
2298
- .taskon-quest-reward-dialog .taskon-user-center {
2299
- padding: 32px 0 0 0;
2300
- background: transparent;
2301
- border-radius: 0;
2302
- gap: 24px;
2303
- }
2304
-
2305
- .taskon-quest-reward-dialog .taskon-my-rewards {
2306
- gap: 24px;
2307
- }
2308
-
2309
- .taskon-quest-reward-dialog .taskon-my-rewards__section {
2310
- gap: 16px;
2311
- }
2312
-
2313
- .taskon-quest-reward-dialog .taskon-points-list {
2314
- background: transparent;
2367
+ color: var(--taskon-color-text-tertiary);
2315
2368
  }
2316
2369
  /**
2317
2370
  * OperateFooter styles
@@ -2366,32 +2419,14 @@
2366
2419
  }
2367
2420
 
2368
2421
  .taskon-quest-footer-badge--winner {
2369
- color: #cbff01;
2370
- background: linear-gradient(
2371
- 90deg,
2372
- rgba(203, 255, 1, 0.1) 0%,
2373
- rgba(203, 255, 1, 0.1) 100%
2374
- ),
2375
- linear-gradient(
2376
- 90deg,
2377
- rgba(255, 255, 255, 0.1) 0%,
2378
- rgba(255, 255, 255, 0.1) 100%
2379
- );
2422
+ color: var(--taskon-color-primary);
2423
+ background: var(--taskon-color-primary-bg);
2380
2424
  }
2381
2425
 
2382
2426
  .taskon-quest-footer-badge--qualifier,
2383
2427
  .taskon-quest-footer-badge--submitter {
2384
- color: #1affab;
2385
- background: linear-gradient(
2386
- 90deg,
2387
- rgba(26, 255, 171, 0.1) 0%,
2388
- rgba(26, 255, 171, 0.1) 100%
2389
- ),
2390
- linear-gradient(
2391
- 90deg,
2392
- rgba(255, 255, 255, 0.1) 0%,
2393
- rgba(255, 255, 255, 0.1) 100%
2394
- );
2428
+ color: var(--taskon-color-secondary);
2429
+ background: var(--taskon-color-secondary-bg);
2395
2430
  }
2396
2431
 
2397
2432
  /* Dark content card */
@@ -2401,12 +2436,7 @@
2401
2436
  align-items: center;
2402
2437
  padding: 12px;
2403
2438
  border-radius: 8px;
2404
- background: linear-gradient(
2405
- 90deg,
2406
- rgba(255, 255, 255, 0.1) 0%,
2407
- rgba(255, 255, 255, 0.1) 100%
2408
- ),
2409
- linear-gradient(90deg, #0d0d0d 0%, #0d0d0d 100%);
2439
+ background: var(--taskon-color-bg-surface-strong);
2410
2440
  }
2411
2441
 
2412
2442
  @media (max-width: 750px) {
@@ -2423,7 +2453,7 @@
2423
2453
  font-size: 16px;
2424
2454
  font-weight: 600;
2425
2455
  line-height: 24px;
2426
- color: #fff;
2456
+ color: var(--taskon-color-text);
2427
2457
  }
2428
2458
 
2429
2459
  /* ============================================================================
@@ -2445,7 +2475,7 @@
2445
2475
  font-size: 20px;
2446
2476
  font-weight: 600;
2447
2477
  line-height: 28px;
2448
- color: #fff;
2478
+ color: var(--taskon-color-text);
2449
2479
  }
2450
2480
 
2451
2481
  @media (max-width: 750px) {
@@ -2460,7 +2490,7 @@
2460
2490
  font-size: 14px;
2461
2491
  font-weight: 500;
2462
2492
  line-height: 18px;
2463
- color: rgba(255, 255, 255, 0.6);
2493
+ color: var(--taskon-color-text-tertiary);
2464
2494
  }
2465
2495
 
2466
2496
  @media (max-width: 750px) {
@@ -2485,8 +2515,8 @@
2485
2515
  padding: 12px 24px;
2486
2516
  font-size: 16px;
2487
2517
  font-weight: 600;
2488
- color: #000;
2489
- background-color: #cbff01;
2518
+ color: var(--taskon-color-text-on-primary);
2519
+ background-color: var(--taskon-color-primary);
2490
2520
  border: none;
2491
2521
  border-radius: 8px;
2492
2522
  cursor: pointer;
@@ -2494,7 +2524,7 @@
2494
2524
  }
2495
2525
 
2496
2526
  .taskon-quest-footer-connect-btn:hover {
2497
- background-color: #b8e600;
2527
+ background-color: var(--taskon-color-primary-active);
2498
2528
  }
2499
2529
 
2500
2530
  /* ============================================================================
@@ -2506,8 +2536,8 @@
2506
2536
  padding: 12px 24px;
2507
2537
  font-size: 16px;
2508
2538
  font-weight: 600;
2509
- color: #000;
2510
- background-color: #cbff01;
2539
+ color: var(--taskon-color-text-on-primary);
2540
+ background-color: var(--taskon-color-primary);
2511
2541
  border: none;
2512
2542
  border-radius: 8px;
2513
2543
  cursor: pointer;
@@ -2515,7 +2545,7 @@
2515
2545
  }
2516
2546
 
2517
2547
  .taskon-quest-footer-complete-btn:hover:not(:disabled) {
2518
- background-color: #b8e600;
2548
+ background-color: var(--taskon-color-primary-active);
2519
2549
  }
2520
2550
 
2521
2551
  .taskon-quest-footer-complete-btn:disabled {
@@ -2545,8 +2575,8 @@
2545
2575
  .taskon-quest-footer-complete-btn-spinner {
2546
2576
  width: 16px;
2547
2577
  height: 16px;
2548
- border: 2px solid rgba(0, 0, 0, 0.2);
2549
- border-top-color: #000;
2578
+ border: 2px solid var(--taskon-color-border-secondary);
2579
+ border-top-color: var(--taskon-color-text-on-primary);
2550
2580
  border-radius: 50%;
2551
2581
  animation: taskon-spin 0.8s linear infinite;
2552
2582
  }
@@ -2572,7 +2602,7 @@
2572
2602
  .taskon-quest-footer-earned-hint {
2573
2603
  font-size: 14px;
2574
2604
  font-weight: 500;
2575
- color: rgba(0, 0, 0, 0.6);
2605
+ color: var(--taskon-color-text-tertiary);
2576
2606
  }
2577
2607
 
2578
2608
  @media (max-width: 750px) {
@@ -2613,13 +2643,8 @@
2613
2643
  gap: 0;
2614
2644
  padding: 8px;
2615
2645
  border-radius: 8px;
2616
- border: 1px solid rgba(255, 255, 255, 0.04);
2617
- background: linear-gradient(
2618
- 90deg,
2619
- rgba(255, 255, 255, 0.04) 0%,
2620
- rgba(255, 255, 255, 0.04) 100%
2621
- ),
2622
- linear-gradient(90deg, #0d0d0d 0%, #0d0d0d 100%);
2646
+ border: 1px solid var(--taskon-color-border-secondary);
2647
+ background: var(--taskon-color-bg-surface-strong);
2623
2648
  }
2624
2649
 
2625
2650
  .taskon-quest-footer-earned-single-row {
@@ -2645,14 +2670,14 @@
2645
2670
  font-size: 18px;
2646
2671
  font-weight: 600;
2647
2672
  line-height: 24px;
2648
- color: #fff;
2673
+ color: var(--taskon-color-text);
2649
2674
  }
2650
2675
 
2651
2676
  .taskon-quest-footer-earned-single-name {
2652
2677
  font-size: 12px;
2653
2678
  font-weight: 500;
2654
2679
  line-height: normal;
2655
- color: rgba(255, 255, 255, 0.4);
2680
+ color: var(--taskon-color-text-disabled);
2656
2681
  text-transform: capitalize;
2657
2682
  }
2658
2683
 
@@ -2667,7 +2692,7 @@
2667
2692
  font-size: 16px;
2668
2693
  font-weight: 600;
2669
2694
  line-height: 24px;
2670
- color: #fff;
2695
+ color: var(--taskon-color-text);
2671
2696
  }
2672
2697
 
2673
2698
  /* Redirect mode row (same layout as multi) */
@@ -2681,7 +2706,7 @@
2681
2706
  font-size: 16px;
2682
2707
  font-weight: 600;
2683
2708
  line-height: 24px;
2684
- color: #fff;
2709
+ color: var(--taskon-color-text);
2685
2710
  flex: 1;
2686
2711
  }
2687
2712
 
@@ -2701,7 +2726,7 @@
2701
2726
  gap: 4px;
2702
2727
  overflow: hidden;
2703
2728
  border-radius: 4px;
2704
- background-color: #000;
2729
+ background-color: var(--taskon-color-bg-inset);
2705
2730
  padding: 4px 8px;
2706
2731
  }
2707
2732
 
@@ -2724,7 +2749,7 @@
2724
2749
  justify-content: center;
2725
2750
  flex: 1;
2726
2751
  border-radius: 4px;
2727
- background-color: #000;
2752
+ background-color: var(--taskon-color-bg-inset);
2728
2753
  padding: 4px 8px;
2729
2754
  }
2730
2755
 
@@ -2766,15 +2791,15 @@
2766
2791
  }
2767
2792
 
2768
2793
  .taskon-quest-footer-reward-amount {
2769
- color: #cbff01;
2794
+ color: var(--taskon-color-primary);
2770
2795
  }
2771
2796
 
2772
2797
  .taskon-quest-footer-reward-type {
2773
- color: #fff;
2798
+ color: var(--taskon-color-text);
2774
2799
  }
2775
2800
 
2776
2801
  .taskon-quest-footer-reward-name {
2777
- color: #cbff01;
2802
+ color: var(--taskon-color-primary);
2778
2803
  }
2779
2804
 
2780
2805
  /* ============================================================================
@@ -2786,13 +2811,13 @@
2786
2811
  align-items: center;
2787
2812
  gap: 4px;
2788
2813
  font-size: 14px;
2789
- color: rgba(255, 255, 255, 0.6);
2814
+ color: var(--taskon-color-text-tertiary);
2790
2815
  cursor: pointer;
2791
2816
  transition: color 0.2s ease;
2792
2817
  }
2793
2818
 
2794
2819
  .taskon-quest-footer-action-btn:not(.taskon-quest-footer-action-btn--disabled):hover {
2795
- color: rgba(255, 255, 255, 0.8);
2820
+ color: var(--taskon-color-text-secondary);
2796
2821
  }
2797
2822
 
2798
2823
  .taskon-quest-footer-action-btn--disabled {
@@ -2807,8 +2832,8 @@
2807
2832
  padding: 4px 12px;
2808
2833
  font-size: 14px;
2809
2834
  font-weight: 600;
2810
- color: #000;
2811
- background-color: #cbff01;
2835
+ color: var(--taskon-color-text-on-primary);
2836
+ background-color: var(--taskon-color-primary);
2812
2837
  border: none;
2813
2838
  border-radius: 4px;
2814
2839
  cursor: pointer;
@@ -2816,7 +2841,7 @@
2816
2841
  }
2817
2842
 
2818
2843
  .taskon-quest-footer-claim-btn:hover:not(:disabled) {
2819
- background-color: #b8e600;
2844
+ background-color: var(--taskon-color-primary-active);
2820
2845
  }
2821
2846
 
2822
2847
  .taskon-quest-footer-claim-btn:disabled {
@@ -2831,8 +2856,8 @@
2831
2856
  .taskon-quest-footer-claim-btn-spinner {
2832
2857
  width: 14px;
2833
2858
  height: 14px;
2834
- border: 2px solid rgba(0, 0, 0, 0.2);
2835
- border-top-color: #000;
2859
+ border: 2px solid var(--taskon-color-border-secondary);
2860
+ border-top-color: var(--taskon-color-text-on-primary);
2836
2861
  border-radius: 50%;
2837
2862
  animation: taskon-spin 0.8s linear infinite;
2838
2863
  }
@@ -2844,7 +2869,7 @@
2844
2869
  .taskon-quest-footer-earned-more-text {
2845
2870
  font-size: 14px;
2846
2871
  font-weight: 600;
2847
- color: #fff;
2872
+ color: var(--taskon-color-text);
2848
2873
  }
2849
2874
 
2850
2875
  /* ============================================================================
@@ -2874,8 +2899,8 @@
2874
2899
  padding: 2px 6px;
2875
2900
  font-size: 12px;
2876
2901
  font-weight: 500;
2877
- color: #000;
2878
- background-color: rgba(203, 255, 1, 0.8);
2902
+ color: var(--taskon-color-text-on-primary);
2903
+ background-color: var(--taskon-color-primary);
2879
2904
  border-radius: 2px;
2880
2905
  }
2881
2906
 
@@ -2899,7 +2924,7 @@
2899
2924
  width: 1px;
2900
2925
  height: 10px;
2901
2926
  opacity: 0.1;
2902
- background: #d9d9d9;
2927
+ background: var(--taskon-color-border-secondary);
2903
2928
  }
2904
2929
 
2905
2930
  @media (max-width: 750px) {
@@ -2921,11 +2946,11 @@
2921
2946
  }
2922
2947
 
2923
2948
  .taskon-quest-footer-reward-tx-label {
2924
- color: rgba(255, 255, 255, 0.6);
2949
+ color: var(--taskon-color-text-tertiary);
2925
2950
  }
2926
2951
 
2927
2952
  .taskon-quest-footer-reward-tx-link {
2928
- color: #fff;
2953
+ color: var(--taskon-color-text);
2929
2954
  text-decoration: none;
2930
2955
  }
2931
2956
 
@@ -2940,7 +2965,7 @@
2940
2965
  .taskon-quest-footer-reward-dropping {
2941
2966
  margin-top: 4px;
2942
2967
  font-size: 14px;
2943
- color: rgba(255, 255, 255, 0.6);
2968
+ color: var(--taskon-color-text-tertiary);
2944
2969
  }
2945
2970
 
2946
2971
  /* ============================================================================
@@ -2966,7 +2991,7 @@
2966
2991
  ============================================================================ */
2967
2992
 
2968
2993
  .taskon-quest-footer-detail-dialog {
2969
- background-color: #1a1a1a;
2994
+ background-color: var(--taskon-color-bg-surface);
2970
2995
  }
2971
2996
 
2972
2997
  .taskon-quest-footer-detail-panel {
@@ -2976,7 +3001,7 @@
2976
3001
  .taskon-quest-footer-detail-title {
2977
3002
  font-size: 22px;
2978
3003
  font-weight: 600;
2979
- color: #fff;
3004
+ color: var(--taskon-color-text);
2980
3005
  margin: 0 0 20px 0;
2981
3006
  }
2982
3007
 
@@ -3020,7 +3045,7 @@
3020
3045
  .taskon-quest-footer-selection-label {
3021
3046
  font-size: 16px;
3022
3047
  font-weight: 500;
3023
- color: rgba(255, 255, 255, 0.8);
3048
+ color: var(--taskon-color-text-secondary);
3024
3049
  }
3025
3050
 
3026
3051
  .taskon-quest-footer-selection-rewards {
@@ -3049,7 +3074,7 @@
3049
3074
  gap: 6px;
3050
3075
  font-size: 14px;
3051
3076
  line-height: 18px;
3052
- color: rgba(255, 255, 255, 0.6);
3077
+ color: var(--taskon-color-text-tertiary);
3053
3078
  }
3054
3079
 
3055
3080
  .taskon-quest-footer-selection-failed-icon {
@@ -3065,7 +3090,7 @@
3065
3090
  font-size: 14px;
3066
3091
  font-weight: 500;
3067
3092
  line-height: 16px;
3068
- color: #fff;
3093
+ color: var(--taskon-color-text);
3069
3094
  }
3070
3095
 
3071
3096
  .taskon-quest-footer-selection-wait-icon {
@@ -3081,7 +3106,7 @@
3081
3106
  margin-top: 24px;
3082
3107
  padding-top: 24px;
3083
3108
  display: flex;
3084
- border-top: 1px solid rgba(255, 255, 255, 0.06);
3109
+ border-top: 1px solid var(--taskon-color-border-secondary);
3085
3110
  }
3086
3111
 
3087
3112
  @media (max-width: 750px) {
@@ -3095,7 +3120,7 @@
3095
3120
  .taskon-quest-footer-detail-bonus-label {
3096
3121
  font-size: 16px;
3097
3122
  font-weight: 500;
3098
- color: rgba(255, 255, 255, 0.8);
3123
+ color: var(--taskon-color-text-secondary);
3099
3124
  }
3100
3125
 
3101
3126
  .taskon-quest-footer-detail-bonus-right {
@@ -3107,7 +3132,7 @@
3107
3132
  font-size: 14px;
3108
3133
  font-weight: 600;
3109
3134
  text-align: right;
3110
- color: #fff;
3135
+ color: var(--taskon-color-text);
3111
3136
  }
3112
3137
 
3113
3138
  .taskon-quest-footer-detail-bonus-item + .taskon-quest-footer-detail-bonus-item {
@@ -3153,6 +3178,7 @@ a.taskon-quest-footer-action-btn {
3153
3178
  .taskon-task-validation-dialog-icon {
3154
3179
  width: 48px;
3155
3180
  height: 48px;
3181
+ color: var(--taskon-color-warning);
3156
3182
  }
3157
3183
 
3158
3184
  .taskon-task-validation-dialog-message {
@@ -3160,7 +3186,7 @@ a.taskon-quest-footer-action-btn {
3160
3186
  margin-bottom: 16px;
3161
3187
  font-size: 16px;
3162
3188
  line-height: 1.5;
3163
- color: rgba(255, 255, 255, 0.9);
3189
+ color: var(--taskon-color-text);
3164
3190
  }
3165
3191
 
3166
3192
  .taskon-task-validation-dialog-progress {
@@ -3168,7 +3194,7 @@ a.taskon-quest-footer-action-btn {
3168
3194
  margin-bottom: 16px;
3169
3195
  font-size: 14px;
3170
3196
  line-height: 1.5;
3171
- color: rgba(255, 255, 255, 0.6);
3197
+ color: var(--taskon-color-text-tertiary);
3172
3198
  }
3173
3199
 
3174
3200
  .taskon-task-validation-dialog-btn {
@@ -3177,8 +3203,8 @@ a.taskon-quest-footer-action-btn {
3177
3203
  padding: 12px 24px;
3178
3204
  border: none;
3179
3205
  border-radius: 8px;
3180
- background: #cbff01;
3181
- color: #000;
3206
+ background: var(--taskon-color-primary);
3207
+ color: var(--taskon-color-text-on-primary);
3182
3208
  font-size: 16px;
3183
3209
  font-weight: 600;
3184
3210
  cursor: pointer;
@@ -3206,7 +3232,7 @@ a.taskon-quest-footer-action-btn {
3206
3232
  margin-bottom: 20px;
3207
3233
  font-size: 14px;
3208
3234
  line-height: 1.6;
3209
- color: rgba(255, 255, 255, 0.7);
3235
+ color: var(--taskon-color-text-tertiary);
3210
3236
  }
3211
3237
 
3212
3238
  .taskon-reward-bind-list {
@@ -3220,20 +3246,20 @@ a.taskon-quest-footer-action-btn {
3220
3246
  align-items: center;
3221
3247
  justify-content: space-between;
3222
3248
  padding: 12px 16px;
3223
- background: rgba(255, 255, 255, 0.05);
3249
+ background: var(--taskon-color-bg-surface-strong);
3224
3250
  border-radius: 8px;
3225
- border: 1px solid rgba(255, 255, 255, 0.1);
3251
+ border: 1px solid var(--taskon-color-border);
3226
3252
  }
3227
3253
 
3228
3254
  .taskon-reward-bind-item--bound {
3229
- border-color: rgba(26, 255, 171, 0.3);
3230
- background: rgba(26, 255, 171, 0.05);
3255
+ border-color: var(--taskon-color-secondary);
3256
+ background: var(--taskon-color-secondary-bg);
3231
3257
  }
3232
3258
 
3233
3259
  .taskon-reward-bind-item-label {
3234
3260
  font-size: 14px;
3235
3261
  font-weight: 500;
3236
- color: rgba(255, 255, 255, 0.9);
3262
+ color: var(--taskon-color-text);
3237
3263
  }
3238
3264
 
3239
3265
  .taskon-reward-bind-item-status {
@@ -3241,7 +3267,7 @@ a.taskon-quest-footer-action-btn {
3241
3267
  align-items: center;
3242
3268
  gap: 6px;
3243
3269
  font-size: 13px;
3244
- color: #1affab;
3270
+ color: var(--taskon-color-secondary);
3245
3271
  }
3246
3272
 
3247
3273
  .taskon-reward-bind-item-btn {
@@ -3251,8 +3277,8 @@ a.taskon-quest-footer-action-btn {
3251
3277
  padding: 8px 16px;
3252
3278
  border: none;
3253
3279
  border-radius: 6px;
3254
- background: #cbff01;
3255
- color: #000;
3280
+ background: var(--taskon-color-primary);
3281
+ color: var(--taskon-color-text-on-primary);
3256
3282
  font-size: 13px;
3257
3283
  font-weight: 600;
3258
3284
  cursor: pointer;
@@ -3287,10 +3313,10 @@ a.taskon-quest-footer-action-btn {
3287
3313
  width: 100%;
3288
3314
  margin-top: 20px;
3289
3315
  padding: 14px 24px;
3290
- border: 1px solid rgba(255, 255, 255, 0.2);
3316
+ border: 1px solid var(--taskon-color-border);
3291
3317
  border-radius: 8px;
3292
3318
  background: transparent;
3293
- color: rgba(255, 255, 255, 0.9);
3319
+ color: var(--taskon-color-text);
3294
3320
  font-size: 14px;
3295
3321
  font-weight: 500;
3296
3322
  cursor: pointer;
@@ -3298,8 +3324,8 @@ a.taskon-quest-footer-action-btn {
3298
3324
  }
3299
3325
 
3300
3326
  .taskon-reward-bind-skip-btn:hover {
3301
- background: rgba(255, 255, 255, 0.05);
3302
- border-color: rgba(255, 255, 255, 0.3);
3327
+ background: var(--taskon-color-bg-surface-strong);
3328
+ border-color: var(--taskon-color-border-secondary);
3303
3329
  }
3304
3330
  /**
3305
3331
  * DiscordBindDialog Styles
@@ -3328,7 +3354,7 @@ a.taskon-quest-footer-action-btn {
3328
3354
  margin-bottom: 24px;
3329
3355
  font-size: 14px;
3330
3356
  line-height: 1.6;
3331
- color: rgba(255, 255, 255, 0.7);
3357
+ color: var(--taskon-color-text-tertiary);
3332
3358
  }
3333
3359
 
3334
3360
  .taskon-discord-bind-dialog-buttons {
@@ -3350,8 +3376,8 @@ a.taskon-quest-footer-action-btn {
3350
3376
 
3351
3377
  .taskon-discord-bind-dialog-btn--primary {
3352
3378
  border: none;
3353
- background: #cbff01;
3354
- color: #000;
3379
+ background: var(--taskon-color-primary);
3380
+ color: var(--taskon-color-text-on-primary);
3355
3381
  }
3356
3382
 
3357
3383
  .taskon-discord-bind-dialog-btn--primary:hover {
@@ -3359,21 +3385,21 @@ a.taskon-quest-footer-action-btn {
3359
3385
  }
3360
3386
 
3361
3387
  .taskon-discord-bind-dialog-btn--secondary {
3362
- border: 1px solid rgba(255, 255, 255, 0.2);
3388
+ border: 1px solid var(--taskon-color-border);
3363
3389
  background: transparent;
3364
- color: rgba(255, 255, 255, 0.9);
3390
+ color: var(--taskon-color-text);
3365
3391
  }
3366
3392
 
3367
3393
  .taskon-discord-bind-dialog-btn--secondary:hover {
3368
- background: rgba(255, 255, 255, 0.05);
3369
- border-color: rgba(255, 255, 255, 0.3);
3394
+ background: var(--taskon-color-bg-surface-strong);
3395
+ border-color: var(--taskon-color-border-secondary);
3370
3396
  }
3371
3397
  /**
3372
3398
  * WinnersRow 组件样式
3373
3399
  * 与 QuestRewards 卡片样式保持一致
3374
3400
  */
3375
3401
 
3376
- /* WinnersRow 容器 - 纯色背景,与 reward 卡片一致 */
3402
+ /* WinnersRow 容器 - 使用主题背景层级 */
3377
3403
  .taskon-quest-winners-row {
3378
3404
  display: flex;
3379
3405
  align-items: center;
@@ -3382,12 +3408,12 @@ a.taskon-quest-footer-action-btn {
3382
3408
  border-radius: 10px;
3383
3409
  border: none;
3384
3410
  cursor: pointer;
3385
- background: rgba(255, 255, 255, 0.04);
3411
+ background: var(--taskon-color-bg-surface-subtle);
3386
3412
  transition: background-color 0.2s ease;
3387
3413
  }
3388
3414
 
3389
3415
  .taskon-quest-winners-row:hover {
3390
- background: rgba(255, 255, 255, 0.08);
3416
+ background: var(--taskon-color-bg-surface-strong);
3391
3417
  }
3392
3418
 
3393
3419
  /* Winners 标签 */
@@ -3395,7 +3421,7 @@ a.taskon-quest-footer-action-btn {
3395
3421
  font-size: 18px;
3396
3422
  font-weight: 500;
3397
3423
  line-height: 23px;
3398
- color: #ffffff;
3424
+ color: var(--taskon-color-text);
3399
3425
  }
3400
3426
 
3401
3427
  /* 数量 */
@@ -3406,14 +3432,14 @@ a.taskon-quest-footer-action-btn {
3406
3432
  font-weight: 600;
3407
3433
  line-height: 23px;
3408
3434
  text-align: left;
3409
- color: #00ffa3;
3435
+ color: var(--taskon-color-secondary);
3410
3436
  }
3411
3437
 
3412
3438
  /* 右箭头图标 */
3413
3439
  .taskon-quest-winners-row-arrow {
3414
3440
  width: 16px;
3415
3441
  height: 16px;
3416
- color: rgba(255, 255, 255, 0.6);
3442
+ color: var(--taskon-color-text-secondary);
3417
3443
  flex-shrink: 0;
3418
3444
  }
3419
3445
  /**
@@ -3431,7 +3457,7 @@ a.taskon-quest-footer-action-btn {
3431
3457
  ========================================================================== */
3432
3458
  .taskon-winners {
3433
3459
  border-radius: 10px;
3434
- background: var(--taskon-bg-card, rgba(255, 255, 255, 0.04));
3460
+ background: var(--taskon-color-bg-surface-subtle);
3435
3461
  overflow: hidden;
3436
3462
  }
3437
3463
 
@@ -3444,16 +3470,16 @@ a.taskon-quest-footer-action-btn {
3444
3470
  justify-content: center;
3445
3471
  gap: 8px;
3446
3472
  padding: 16px;
3447
- background: rgba(255, 255, 255, 0.05);
3473
+ background: var(--taskon-color-bg-surface-strong);
3448
3474
  font-size: 16px;
3449
3475
  font-weight: 500;
3450
- color: rgba(255, 255, 255, 0.7);
3476
+ color: var(--taskon-color-text-secondary);
3451
3477
  text-decoration: none;
3452
3478
  transition: color 0.2s ease;
3453
3479
  }
3454
3480
 
3455
3481
  .taskon-winners-alert:hover {
3456
- color: rgba(255, 255, 255, 0.9);
3482
+ color: var(--taskon-color-text);
3457
3483
  }
3458
3484
 
3459
3485
  .taskon-winners-alert-icon {
@@ -3468,7 +3494,7 @@ a.taskon-quest-footer-action-btn {
3468
3494
 
3469
3495
  .taskon-winners-alert-community {
3470
3496
  font-weight: 600;
3471
- color: rgba(255, 255, 255, 0.9);
3497
+ color: var(--taskon-color-text);
3472
3498
  }
3473
3499
 
3474
3500
  .taskon-winners-alert-link-icon {
@@ -3487,18 +3513,18 @@ a.taskon-quest-footer-action-btn {
3487
3513
  .taskon-winners-pow-info {
3488
3514
  font-size: 12px;
3489
3515
  line-height: 1.5;
3490
- color: rgba(255, 212, 101, 0.6);
3516
+ color: var(--taskon-color-warning);
3491
3517
  margin-bottom: 16px;
3492
3518
  }
3493
3519
 
3494
3520
  .taskon-winners-pow-info-community {
3495
3521
  font-weight: 500;
3496
- color: #ffd465;
3522
+ color: var(--taskon-color-warning);
3497
3523
  }
3498
3524
 
3499
3525
  .taskon-winners-pow-info-only {
3500
3526
  font-weight: 500;
3501
- color: #ffd465;
3527
+ color: var(--taskon-color-warning);
3502
3528
  }
3503
3529
 
3504
3530
  /* ==========================================================================
@@ -3507,7 +3533,7 @@ a.taskon-quest-footer-action-btn {
3507
3533
  .taskon-winners-card {
3508
3534
  padding: 16px;
3509
3535
  border-radius: 8px;
3510
- background: var(--taskon-bg-card, rgba(255, 255, 255, 0.04));
3536
+ background: var(--taskon-color-bg-surface-subtle);
3511
3537
  display: flex;
3512
3538
  flex-direction: column;
3513
3539
  gap: 16px;
@@ -3522,17 +3548,17 @@ a.taskon-quest-footer-action-btn {
3522
3548
 
3523
3549
  .taskon-winners-card-label {
3524
3550
  font-weight: 500;
3525
- color: rgba(255, 255, 255, 0.7);
3551
+ color: var(--taskon-color-text-secondary);
3526
3552
  }
3527
3553
 
3528
3554
  .taskon-winners-card-value {
3529
3555
  font-weight: 500;
3530
- color: #9aff73;
3556
+ color: var(--taskon-color-success);
3531
3557
  }
3532
3558
 
3533
3559
  .taskon-winners-card-value--primary {
3534
3560
  font-weight: 600;
3535
- color: var(--taskon-primary, #cbff01);
3561
+ color: var(--taskon-color-primary);
3536
3562
  }
3537
3563
 
3538
3564
  /* ==========================================================================
@@ -3550,41 +3576,6 @@ a.taskon-quest-footer-action-btn {
3550
3576
  * @design 参考 Figma 设计稿
3551
3577
  */
3552
3578
 
3553
- /* ============================================================================
3554
- CSS 变量定义
3555
- ============================================================================ */
3556
-
3557
- .taskon-quest {
3558
- /* 颜色系统 */
3559
- --taskon-quest-bg-body: #111111;
3560
- --taskon-quest-text-lightest: #ffffff;
3561
- --taskon-quest-text-lighter: rgba(255, 255, 255, 0.8);
3562
- --taskon-quest-text-light: rgba(255, 255, 255, 0.6);
3563
- --taskon-quest-text-dark: rgba(255, 255, 255, 0.4);
3564
- --taskon-quest-text-darkest: rgba(255, 255, 255, 0.1);
3565
- --taskon-quest-text-invisible: rgba(255, 255, 255, 0.04);
3566
- --taskon-quest-primary: #cbff01;
3567
- --taskon-quest-secondary: #1affab;
3568
- --taskon-quest-link: #58afff;
3569
- --taskon-quest-button-primary-color: #000000;
3570
-
3571
- /* 间距系统 */
3572
- --taskon-quest-spacing-xxs: 4px;
3573
- --taskon-quest-spacing-xs: 8px;
3574
- --taskon-quest-spacing-s: 12px;
3575
- --taskon-quest-spacing-m: 16px;
3576
- --taskon-quest-spacing-l: 20px;
3577
- --taskon-quest-spacing-xl: 24px;
3578
- --taskon-quest-spacing-xxl: 32px;
3579
- --taskon-quest-spacing-3xl: 40px;
3580
-
3581
- /* 圆角系统 */
3582
- --taskon-quest-radius-s: 4px;
3583
- --taskon-quest-radius-m: 6px;
3584
- --taskon-quest-radius-l: 8px;
3585
- --taskon-quest-radius-xl: 12px;
3586
- }
3587
-
3588
3579
  /* ============================================================================
3589
3580
  Quest Widget 根容器
3590
3581
  ============================================================================ */
@@ -3592,8 +3583,7 @@ a.taskon-quest-footer-action-btn {
3592
3583
  .taskon-quest {
3593
3584
  font-size: 16px;
3594
3585
  line-height: 1.5;
3595
- color: var(--taskon-quest-text-lightest);
3596
- background-color: var(--taskon-quest-bg-body);
3586
+ color: var(--taskon-color-text);
3597
3587
  }
3598
3588
 
3599
3589
  /* ============================================================================
@@ -3607,14 +3597,14 @@ a.taskon-quest-footer-action-btn {
3607
3597
  justify-content: center;
3608
3598
  padding: 48px 24px;
3609
3599
  gap: 12px;
3610
- color: var(--taskon-quest-text-light);
3600
+ color: var(--taskon-color-text-tertiary);
3611
3601
  }
3612
3602
 
3613
3603
  .taskon-quest-loading-spinner {
3614
3604
  width: 32px;
3615
3605
  height: 32px;
3616
- border: 3px solid var(--taskon-quest-text-darkest);
3617
- border-top-color: var(--taskon-quest-primary);
3606
+ border: 3px solid var(--taskon-color-border);
3607
+ border-top-color: var(--taskon-color-primary);
3618
3608
  border-radius: 50%;
3619
3609
  animation: taskon-quest-spin 1s linear infinite;
3620
3610
  }
@@ -3644,7 +3634,7 @@ a.taskon-quest-footer-action-btn {
3644
3634
  }
3645
3635
 
3646
3636
  .taskon-quest-error-message {
3647
- color: #ef4444;
3637
+ color: var(--taskon-color-error);
3648
3638
  font-size: 14px;
3649
3639
  }
3650
3640
 
@@ -3652,10 +3642,10 @@ a.taskon-quest-footer-action-btn {
3652
3642
  margin-top: 8px;
3653
3643
  padding: 8px 16px;
3654
3644
  font-size: 14px;
3655
- color: var(--taskon-quest-text-lightest);
3656
- background-color: var(--taskon-quest-primary);
3645
+ color: var(--taskon-color-text);
3646
+ background-color: var(--taskon-color-primary);
3657
3647
  border: none;
3658
- border-radius: var(--taskon-quest-radius-m);
3648
+ border-radius: var(--taskon-border-radius);
3659
3649
  cursor: pointer;
3660
3650
  transition: background-color 0.2s;
3661
3651
  }
@@ -3673,7 +3663,7 @@ a.taskon-quest-footer-action-btn {
3673
3663
  align-items: center;
3674
3664
  justify-content: center;
3675
3665
  padding: 48px 24px;
3676
- color: var(--taskon-quest-text-light);
3666
+ color: var(--taskon-color-text-tertiary);
3677
3667
  font-size: 14px;
3678
3668
  }
3679
3669
 
@@ -3683,7 +3673,7 @@ a.taskon-quest-footer-action-btn {
3683
3673
 
3684
3674
  .taskon-quest-layout {
3685
3675
  display: flex;
3686
- gap: var(--taskon-quest-spacing-3xl);
3676
+ gap: var(--taskon-spacing-xl);
3687
3677
  align-items: flex-start;
3688
3678
  }
3689
3679
 
@@ -3693,19 +3683,14 @@ a.taskon-quest-footer-action-btn {
3693
3683
  min-width: 0;
3694
3684
  display: flex;
3695
3685
  flex-direction: column;
3696
- gap: var(--taskon-quest-spacing-xl);
3686
+ gap: var(--taskon-spacing-lg);
3697
3687
  }
3698
3688
 
3699
3689
  /* 中间分割线 */
3700
3690
  .taskon-quest-divider {
3701
3691
  width: 1px;
3702
3692
  align-self: stretch;
3703
- background: linear-gradient(
3704
- to bottom,
3705
- var(--taskon-quest-text-invisible),
3706
- var(--taskon-quest-text-darkest),
3707
- var(--taskon-quest-text-invisible)
3708
- );
3693
+ background: var(--taskon-color-border-secondary);
3709
3694
  flex-shrink: 0;
3710
3695
  }
3711
3696
 
@@ -3715,7 +3700,7 @@ a.taskon-quest-footer-action-btn {
3715
3700
  min-width: 0;
3716
3701
  display: flex;
3717
3702
  flex-direction: column;
3718
- gap: var(--taskon-quest-spacing-xxl);
3703
+ gap: var(--taskon-spacing-xl);
3719
3704
  }
3720
3705
 
3721
3706
  /* ============================================================================
@@ -3725,14 +3710,14 @@ a.taskon-quest-footer-action-btn {
3725
3710
  .taskon-quest-header {
3726
3711
  display: flex;
3727
3712
  flex-direction: column;
3728
- gap: var(--taskon-quest-spacing-l);
3713
+ gap: var(--taskon-spacing-lg);
3729
3714
  }
3730
3715
 
3731
3716
  /* 标题 + 倒计时区域 */
3732
3717
  .taskon-quest-header-title-section {
3733
3718
  display: flex;
3734
3719
  flex-direction: column;
3735
- gap: var(--taskon-quest-spacing-xs);
3720
+ gap: var(--taskon-spacing-sm);
3736
3721
  }
3737
3722
 
3738
3723
  .taskon-quest-title {
@@ -3740,21 +3725,21 @@ a.taskon-quest-footer-action-btn {
3740
3725
  font-size: 28px;
3741
3726
  font-weight: 600;
3742
3727
  line-height: 38px;
3743
- color: var(--taskon-quest-text-lightest);
3728
+ color: var(--taskon-color-text);
3744
3729
  }
3745
3730
 
3746
3731
  /* 倒计时 + 时间范围 */
3747
3732
  .taskon-quest-header-meta {
3748
3733
  display: flex;
3749
3734
  align-items: center;
3750
- gap: var(--taskon-quest-spacing-s);
3751
- padding: var(--taskon-quest-spacing-xxs) 0;
3752
- border-radius: var(--taskon-quest-radius-s);
3735
+ gap: var(--taskon-spacing-md);
3736
+ padding: var(--taskon-spacing-xs) 0;
3737
+ border-radius: var(--taskon-border-radius-sm);
3753
3738
  }
3754
3739
 
3755
3740
  .taskon-quest-countdown {
3756
3741
  display: flex;
3757
- gap: var(--taskon-quest-spacing-xs);
3742
+ gap: var(--taskon-spacing-sm);
3758
3743
  align-items: center;
3759
3744
  }
3760
3745
 
@@ -3762,14 +3747,14 @@ a.taskon-quest-footer-action-btn {
3762
3747
  display: flex;
3763
3748
  align-items: center;
3764
3749
  justify-content: center;
3765
- color: var(--taskon-quest-text-lightest);
3750
+ color: var(--taskon-color-text);
3766
3751
  }
3767
3752
 
3768
3753
  .taskon-quest-countdown-label {
3769
3754
  font-size: 16px;
3770
3755
  font-weight: 400;
3771
3756
  line-height: 24px;
3772
- color: var(--taskon-quest-text-lighter);
3757
+ color: var(--taskon-color-text-secondary);
3773
3758
  }
3774
3759
 
3775
3760
  /* 已结束状态的标签样式 */
@@ -3782,20 +3767,20 @@ a.taskon-quest-footer-action-btn {
3782
3767
  font-size: 16px;
3783
3768
  font-weight: 600;
3784
3769
  line-height: 24px;
3785
- color: var(--taskon-quest-primary);
3770
+ color: var(--taskon-color-primary);
3786
3771
  }
3787
3772
 
3788
3773
  .taskon-quest-countdown-divider {
3789
3774
  width: 1px;
3790
3775
  height: 20px;
3791
- background-color: var(--taskon-quest-text-darkest);
3776
+ background-color: var(--taskon-color-border-secondary);
3792
3777
  }
3793
3778
 
3794
3779
  .taskon-quest-time-range {
3795
3780
  font-size: 16px;
3796
3781
  font-weight: 400;
3797
3782
  line-height: 24px;
3798
- color: var(--taskon-quest-text-lighter);
3783
+ color: var(--taskon-color-text-secondary);
3799
3784
  }
3800
3785
 
3801
3786
  /* Banner 图片 */
@@ -3826,7 +3811,7 @@ a.taskon-quest-footer-action-btn {
3826
3811
  position: relative;
3827
3812
  display: flex;
3828
3813
  flex-direction: column;
3829
- gap: var(--taskon-quest-spacing-m);
3814
+ gap: var(--taskon-spacing-md);
3830
3815
  }
3831
3816
 
3832
3817
  .taskon-quest-desc-text {
@@ -3834,7 +3819,7 @@ a.taskon-quest-footer-action-btn {
3834
3819
  font-size: 16px;
3835
3820
  font-weight: 400;
3836
3821
  line-height: 24px;
3837
- color: var(--taskon-quest-text-lighter);
3822
+ color: var(--taskon-color-text-secondary);
3838
3823
  max-height: 120px;
3839
3824
  overflow: hidden;
3840
3825
  position: relative;
@@ -3855,15 +3840,15 @@ a.taskon-quest-footer-action-btn {
3855
3840
  height: 49px;
3856
3841
  background: linear-gradient(
3857
3842
  0.83deg,
3858
- var(--taskon-quest-bg-body) 10.557%,
3859
- rgba(17, 17, 17, 0) 93.799%
3843
+ var(--taskon-color-bg-canvas) 10.557%,
3844
+ transparent 93.799%
3860
3845
  );
3861
3846
  pointer-events: none;
3862
3847
  }
3863
3848
 
3864
3849
  /* 富文本样式重置 */
3865
3850
  .taskon-quest-desc-text p {
3866
- margin: 0 0 var(--taskon-quest-spacing-xs) 0;
3851
+ margin: 0 0 var(--taskon-spacing-sm) 0;
3867
3852
  }
3868
3853
 
3869
3854
  .taskon-quest-desc-text p:last-child {
@@ -3871,38 +3856,38 @@ a.taskon-quest-footer-action-btn {
3871
3856
  }
3872
3857
 
3873
3858
  .taskon-quest-desc-text a {
3874
- color: var(--taskon-quest-link);
3859
+ color: var(--taskon-color-link);
3875
3860
  text-decoration: underline;
3876
3861
  }
3877
3862
 
3878
3863
  .taskon-quest-desc-text ul,
3879
3864
  .taskon-quest-desc-text ol {
3880
- margin: var(--taskon-quest-spacing-xs) 0;
3881
- padding-left: var(--taskon-quest-spacing-xl);
3865
+ margin: var(--taskon-spacing-sm) 0;
3866
+ padding-left: var(--taskon-spacing-lg);
3882
3867
  }
3883
3868
 
3884
3869
  .taskon-quest-desc-text li {
3885
- margin: var(--taskon-quest-spacing-xxs) 0;
3870
+ margin: var(--taskon-spacing-xs) 0;
3886
3871
  }
3887
3872
 
3888
3873
  /* 图片样式:限制最大宽度,防止溢出 */
3889
3874
  .taskon-quest-desc-text img {
3890
3875
  max-width: 100%;
3891
3876
  height: auto;
3892
- border-radius: var(--taskon-quest-radius-m);
3877
+ border-radius: var(--taskon-border-radius);
3893
3878
  }
3894
3879
 
3895
3880
  /* iframe 样式:限制最大宽度 */
3896
3881
  .taskon-quest-desc-text iframe {
3897
3882
  max-width: 100%;
3898
- border-radius: var(--taskon-quest-radius-m);
3883
+ border-radius: var(--taskon-border-radius);
3899
3884
  }
3900
3885
 
3901
3886
  .taskon-quest-desc-more {
3902
3887
  font-size: 16px;
3903
3888
  font-weight: 600;
3904
3889
  line-height: 24px;
3905
- color: var(--taskon-quest-text-lightest);
3890
+ color: var(--taskon-color-text);
3906
3891
  text-decoration: underline;
3907
3892
  text-decoration-skip-ink: none;
3908
3893
  text-underline-position: from-font;
@@ -3920,12 +3905,7 @@ a.taskon-quest-footer-action-btn {
3920
3905
  /* 分割线 */
3921
3906
  .taskon-quest-content-divider {
3922
3907
  height: 1px;
3923
- background: linear-gradient(
3924
- to right,
3925
- var(--taskon-quest-text-invisible),
3926
- var(--taskon-quest-text-darkest),
3927
- var(--taskon-quest-text-invisible)
3928
- );
3908
+ background: var(--taskon-color-border-secondary);
3929
3909
  }
3930
3910
 
3931
3911
  /* ============================================================================
@@ -3935,13 +3915,13 @@ a.taskon-quest-footer-action-btn {
3935
3915
  .taskon-quest-tasks {
3936
3916
  display: flex;
3937
3917
  flex-direction: column;
3938
- gap: var(--taskon-quest-spacing-m);
3918
+ gap: var(--taskon-spacing-md);
3939
3919
  }
3940
3920
 
3941
3921
  /* Quest 标题 */
3942
3922
  .taskon-quest-tasks-header {
3943
3923
  display: flex;
3944
- gap: var(--taskon-quest-spacing-m);
3924
+ gap: var(--taskon-spacing-md);
3945
3925
  align-items: center;
3946
3926
  }
3947
3927
 
@@ -3950,37 +3930,32 @@ a.taskon-quest-footer-action-btn {
3950
3930
  font-size: 24px;
3951
3931
  font-weight: 600;
3952
3932
  line-height: 32px;
3953
- color: var(--taskon-quest-text-lightest);
3933
+ color: var(--taskon-color-text);
3954
3934
  }
3955
3935
 
3956
3936
  /* 任务列表 */
3957
3937
  .taskon-quest-tasks-list {
3958
3938
  display: flex;
3959
3939
  flex-direction: column;
3960
- gap: var(--taskon-quest-spacing-m);
3940
+ gap: var(--taskon-spacing-md);
3961
3941
  }
3962
3942
 
3963
3943
  .taskon-quest-task-placeholder {
3964
3944
  display: flex;
3965
3945
  justify-content: space-between;
3966
3946
  align-items: center;
3967
- padding: var(--taskon-quest-spacing-m);
3947
+ padding: var(--taskon-spacing-md);
3968
3948
  height: 66px;
3969
- background: linear-gradient(
3970
- 90deg,
3971
- rgba(255, 255, 255, 0.1) 0%,
3972
- rgba(255, 255, 255, 0.1) 100%
3973
- ),
3974
- linear-gradient(90deg, #0d0d0d 0%, #0d0d0d 100%);
3975
- border: 1px solid var(--taskon-quest-text-invisible);
3976
- border-radius: var(--taskon-quest-radius-l);
3949
+ background: var(--taskon-color-bg-surface-strong);
3950
+ border: 1px solid var(--taskon-color-border-secondary);
3951
+ border-radius: var(--taskon-border-radius);
3977
3952
  font-size: 18px;
3978
3953
  font-weight: 600;
3979
- color: var(--taskon-quest-text-lightest);
3954
+ color: var(--taskon-color-text);
3980
3955
  }
3981
3956
 
3982
3957
  .taskon-quest-task-template {
3983
- color: var(--taskon-quest-text-dark);
3958
+ color: var(--taskon-color-text-disabled);
3984
3959
  font-size: 14px;
3985
3960
  font-weight: 500;
3986
3961
  }
@@ -3988,21 +3963,21 @@ a.taskon-quest-footer-action-btn {
3988
3963
  /* Complete 按钮 */
3989
3964
  .taskon-quest-complete-btn {
3990
3965
  width: 100%;
3991
- margin-top: var(--taskon-quest-spacing-xl);
3992
- padding: var(--taskon-quest-spacing-m) var(--taskon-quest-spacing-3xl);
3966
+ margin-top: var(--taskon-spacing-lg);
3967
+ padding: var(--taskon-spacing-md) var(--taskon-spacing-xl);
3993
3968
  font-size: 18px;
3994
3969
  font-weight: 600;
3995
3970
  line-height: 24px;
3996
- color: var(--taskon-quest-button-primary-color);
3997
- background-color: var(--taskon-quest-primary);
3971
+ color: var(--taskon-color-text-on-primary);
3972
+ background-color: var(--taskon-color-primary);
3998
3973
  border: none;
3999
- border-radius: var(--taskon-quest-radius-l);
3974
+ border-radius: var(--taskon-border-radius);
4000
3975
  cursor: pointer;
4001
3976
  transition: opacity 0.2s;
4002
3977
  display: flex;
4003
3978
  align-items: center;
4004
3979
  justify-content: center;
4005
- gap: var(--taskon-quest-spacing-xs);
3980
+ gap: var(--taskon-spacing-sm);
4006
3981
  }
4007
3982
 
4008
3983
  .taskon-quest-complete-btn:hover:not(:disabled) {
@@ -4021,8 +3996,8 @@ a.taskon-quest-footer-action-btn {
4021
3996
  .taskon-quest-winners-section {
4022
3997
  display: flex;
4023
3998
  flex-direction: column;
4024
- gap: var(--taskon-quest-spacing-m);
4025
- margin-bottom: var(--taskon-quest-spacing-xl);
3999
+ gap: var(--taskon-spacing-md);
4000
+ margin-bottom: var(--taskon-spacing-lg);
4026
4001
  }
4027
4002
 
4028
4003
  .taskon-quest-winners-section-title {
@@ -4030,7 +4005,7 @@ a.taskon-quest-footer-action-btn {
4030
4005
  font-size: 24px;
4031
4006
  font-weight: 600;
4032
4007
  line-height: 32px;
4033
- color: var(--taskon-quest-text-lightest);
4008
+ color: var(--taskon-color-text);
4034
4009
  }
4035
4010
 
4036
4011
  /* ============================================================================
@@ -4040,7 +4015,7 @@ a.taskon-quest-footer-action-btn {
4040
4015
  .taskon-quest-rewards-section {
4041
4016
  display: flex;
4042
4017
  flex-direction: column;
4043
- gap: var(--taskon-quest-spacing-l);
4018
+ gap: var(--taskon-spacing-lg);
4044
4019
  }
4045
4020
 
4046
4021
  .taskon-quest-rewards-section-title {
@@ -4048,22 +4023,7 @@ a.taskon-quest-footer-action-btn {
4048
4023
  font-size: 24px;
4049
4024
  font-weight: 600;
4050
4025
  line-height: 32px;
4051
- color: var(--taskon-quest-text-lightest);
4052
- }
4053
-
4054
- /* QuestRewards 组件 CSS 变量映射 */
4055
- .taskon-quest-rewards-section {
4056
- --taskon-text-primary: var(--taskon-quest-text-lightest);
4057
- --taskon-text-secondary: var(--taskon-quest-text-lighter);
4058
- --taskon-text-tertiary: var(--taskon-quest-text-light);
4059
- --taskon-bg-card: var(--taskon-quest-text-invisible);
4060
- --taskon-bg-secondary: rgba(255, 255, 255, 0.03);
4061
- --taskon-bg-tertiary: var(--taskon-quest-text-darkest);
4062
- --taskon-border-color: var(--taskon-quest-text-darkest);
4063
- --taskon-primary: var(--taskon-quest-primary);
4064
- --taskon-success: var(--taskon-quest-secondary);
4065
- --taskon-link: var(--taskon-quest-link);
4066
- --taskon-warning: #ffc107;
4026
+ color: var(--taskon-color-text);
4067
4027
  }
4068
4028
 
4069
4029
  /* ============================================================================
@@ -4073,7 +4033,7 @@ a.taskon-quest-footer-action-btn {
4073
4033
  .taskon-quest-rewards {
4074
4034
  display: flex;
4075
4035
  flex-direction: column;
4076
- gap: var(--taskon-quest-spacing-l);
4036
+ gap: var(--taskon-spacing-lg);
4077
4037
  }
4078
4038
 
4079
4039
  .taskon-quest-rewards-title {
@@ -4081,24 +4041,24 @@ a.taskon-quest-footer-action-btn {
4081
4041
  font-size: 24px;
4082
4042
  font-weight: 600;
4083
4043
  line-height: 32px;
4084
- color: var(--taskon-quest-text-lightest);
4044
+ color: var(--taskon-color-text);
4085
4045
  }
4086
4046
 
4087
4047
  .taskon-quest-rewards-list {
4088
4048
  display: flex;
4089
4049
  flex-direction: column;
4090
- gap: var(--taskon-quest-spacing-m);
4050
+ gap: var(--taskon-spacing-md);
4091
4051
  }
4092
4052
 
4093
4053
  .taskon-quest-reward-item {
4094
4054
  display: flex;
4095
4055
  justify-content: space-between;
4096
4056
  align-items: center;
4097
- padding: var(--taskon-quest-spacing-m);
4098
- background-color: var(--taskon-quest-text-invisible);
4099
- border-radius: var(--taskon-quest-radius-xl);
4057
+ padding: var(--taskon-spacing-md);
4058
+ background-color: var(--taskon-color-border-secondary);
4059
+ border-radius: var(--taskon-border-radius-lg);
4100
4060
  font-size: 16px;
4101
- color: var(--taskon-quest-text-lightest);
4061
+ color: var(--taskon-color-text);
4102
4062
  }
4103
4063
 
4104
4064
  /* ============================================================================
@@ -4106,14 +4066,14 @@ a.taskon-quest-footer-action-btn {
4106
4066
  ============================================================================ */
4107
4067
 
4108
4068
  .taskon-quest-eligs-section {
4109
- margin-top: var(--taskon-quest-spacing-xl);
4069
+ margin-top: var(--taskon-spacing-lg);
4110
4070
  }
4111
4071
 
4112
4072
  .taskon-quest-eligs-section-header {
4113
4073
  display: flex;
4114
4074
  align-items: center;
4115
4075
  justify-content: space-between;
4116
- margin-bottom: var(--taskon-quest-spacing-m);
4076
+ margin-bottom: var(--taskon-spacing-md);
4117
4077
  }
4118
4078
 
4119
4079
  .taskon-quest-eligs-section-title {
@@ -4121,7 +4081,7 @@ a.taskon-quest-footer-action-btn {
4121
4081
  font-size: 20px;
4122
4082
  font-weight: 600;
4123
4083
  line-height: 28px;
4124
- color: var(--taskon-quest-text-lightest);
4084
+ color: var(--taskon-color-text);
4125
4085
  }
4126
4086
 
4127
4087
  /* ============================================================================
@@ -4131,7 +4091,7 @@ a.taskon-quest-footer-action-btn {
4131
4091
  .taskon-quest-participants {
4132
4092
  display: flex;
4133
4093
  flex-direction: column;
4134
- gap: var(--taskon-quest-spacing-l);
4094
+ gap: var(--taskon-spacing-lg);
4135
4095
  }
4136
4096
 
4137
4097
  .taskon-quest-participants-title {
@@ -4139,7 +4099,7 @@ a.taskon-quest-footer-action-btn {
4139
4099
  font-size: 24px;
4140
4100
  font-weight: 600;
4141
4101
  line-height: 32px;
4142
- color: var(--taskon-quest-text-lightest);
4102
+ color: var(--taskon-color-text);
4143
4103
  }
4144
4104
 
4145
4105
  .taskon-quest-participants-item {
@@ -4152,11 +4112,11 @@ a.taskon-quest-footer-action-btn {
4152
4112
  }
4153
4113
 
4154
4114
  .taskon-quest-participants-label {
4155
- color: var(--taskon-quest-text-lighter);
4115
+ color: var(--taskon-color-text-secondary);
4156
4116
  }
4157
4117
 
4158
4118
  .taskon-quest-participants-value {
4159
- color: var(--taskon-quest-text-lightest);
4119
+ color: var(--taskon-color-text);
4160
4120
  }
4161
4121
 
4162
4122
  /* ============================================================================
@@ -4171,12 +4131,7 @@ a.taskon-quest-footer-action-btn {
4171
4131
  .taskon-quest-divider {
4172
4132
  width: 100%;
4173
4133
  height: 1px;
4174
- background: linear-gradient(
4175
- to right,
4176
- var(--taskon-quest-text-invisible),
4177
- var(--taskon-quest-text-darkest),
4178
- var(--taskon-quest-text-invisible)
4179
- );
4134
+ background: var(--taskon-color-border-secondary);
4180
4135
  }
4181
4136
 
4182
4137
  .taskon-quest-sidebar {
@@ -4191,7 +4146,7 @@ a.taskon-quest-footer-action-btn {
4191
4146
  ============================================================================ */
4192
4147
 
4193
4148
  .taskon-quest-blindbox-dialog-wrapper {
4194
- background: #0d0d0d;
4149
+ background: var(--taskon-color-bg-surface);
4195
4150
  padding: 0;
4196
4151
  width: auto;
4197
4152
  max-width: 560px;
@@ -4202,7 +4157,7 @@ a.taskon-quest-footer-action-btn {
4202
4157
  }
4203
4158
 
4204
4159
  .taskon-quest-blindbox-reward-wrapper {
4205
- background: #0d0d0d;
4160
+ background: var(--taskon-color-bg-surface);
4206
4161
  padding: 0;
4207
4162
  width: auto;
4208
4163
  max-width: 560px;
@@ -4211,4 +4166,3 @@ a.taskon-quest-footer-action-btn {
4211
4166
  .taskon-quest-blindbox-reward-wrapper .taskon-dialog-body {
4212
4167
  padding: 0;
4213
4168
  }
4214
-