freecodego 0.1.7-rc.2.2 → 0.1.7-rc.2.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.
package/dist/client.cjs CHANGED
@@ -4516,6 +4516,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4516
4516
  array(lazy(() => JsonValueRemoteCodec$schema9())),
4517
4517
  record(string(), lazy(() => JsonValueRemoteCodec$schema9())).readonly()
4518
4518
  ]);
4519
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountAnnouncements_result$schema$value;
4520
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountAnnouncements_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountAnnouncements_result$schema$value ??= array(object$1({
4521
+ "id": number().readonly(),
4522
+ "title": string().readonly(),
4523
+ "content": string().readonly(),
4524
+ "notifyMode": union([literal("silent"), literal("popup")]).readonly(),
4525
+ "readAt": string().readonly().optional(),
4526
+ "createdAt": string().readonly()
4527
+ }));
4519
4528
  let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountDetail_result$schema$value;
4520
4529
  const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountDetail_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountDetail_result$schema$value ??= object$1({
4521
4530
  "status": union([
@@ -4608,6 +4617,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
4608
4617
  }).readonly()
4609
4618
  })
4610
4619
  ]);
4620
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_parameter_0$schema$value;
4621
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_parameter_0$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_parameter_0$schema$value ??= number();
4622
+ let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_result$schema$value;
4623
+ const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_result$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_result$schema$value ??= boolean();
4611
4624
  let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMfaComplete_parameter_0$schema$value;
4612
4625
  const _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMfaComplete_parameter_0$schema = () => _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMfaComplete_parameter_0$schema$value ??= string();
4613
4626
  let _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMfaComplete_parameter_1$schema$value;
@@ -12265,6 +12278,25 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12265
12278
  const TYPERT_REMOTE = {
12266
12279
  package: "@deepseek-ai/dsh-freecodego-harness-plugin",
12267
12280
  descriptors: [
12281
+ {
12282
+ id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountAnnouncements",
12283
+ service: "freeCodeGoHarness",
12284
+ namespace: "freeCodeGoHarness",
12285
+ method: "accountAnnouncements",
12286
+ implementation: "announcements",
12287
+ invocation: { kind: "direct" },
12288
+ parameters: [],
12289
+ result: {
12290
+ mode: "strict",
12291
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountAnnouncements:result",
12292
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountAnnouncements_result$schema
12293
+ },
12294
+ sourceLocation: {
12295
+ "file": "packages/freecodego/harness-plugin/src/index.ts",
12296
+ "line": 6556,
12297
+ "column": 9
12298
+ }
12299
+ },
12268
12300
  {
12269
12301
  id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountDetail",
12270
12302
  service: "freeCodeGoHarness",
@@ -12377,6 +12409,34 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12377
12409
  "column": 9
12378
12410
  }
12379
12411
  },
12412
+ {
12413
+ id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountMarkAnnouncementRead",
12414
+ service: "freeCodeGoHarness",
12415
+ namespace: "freeCodeGoHarness",
12416
+ method: "accountMarkAnnouncementRead",
12417
+ implementation: "markAnnouncementRead",
12418
+ invocation: { kind: "direct" },
12419
+ parameters: [{
12420
+ name: "announcementId",
12421
+ wire: "announcementId",
12422
+ source: "json",
12423
+ codec: {
12424
+ mode: "strict",
12425
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountMarkAnnouncementRead:announcementId",
12426
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_parameter_0$schema
12427
+ }
12428
+ }],
12429
+ result: {
12430
+ mode: "strict",
12431
+ typeSymbol: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountMarkAnnouncementRead:result",
12432
+ create: _deepseek_ai_dsh_freecodego_harness_plugin_freeCodeGoHarness_accountMarkAnnouncementRead_result$schema
12433
+ },
12434
+ sourceLocation: {
12435
+ "file": "packages/freecodego/harness-plugin/src/index.ts",
12436
+ "line": 6566,
12437
+ "column": 9
12438
+ }
12439
+ },
12380
12440
  {
12381
12441
  id: "@deepseek-ai/dsh-freecodego-harness-plugin#freeCodeGoHarness/accountMfaComplete",
12382
12442
  service: "freeCodeGoHarness",
@@ -12665,7 +12725,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12665
12725
  },
12666
12726
  sourceLocation: {
12667
12727
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12668
- "line": 6561,
12728
+ "line": 6584,
12669
12729
  "column": 9
12670
12730
  }
12671
12731
  },
@@ -12693,7 +12753,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12693
12753
  },
12694
12754
  sourceLocation: {
12695
12755
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12696
- "line": 6553,
12756
+ "line": 6576,
12697
12757
  "column": 9
12698
12758
  }
12699
12759
  },
@@ -12767,7 +12827,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12767
12827
  },
12768
12828
  sourceLocation: {
12769
12829
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12770
- "line": 7179,
12830
+ "line": 7202,
12771
12831
  "column": 9
12772
12832
  }
12773
12833
  },
@@ -12803,7 +12863,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12803
12863
  },
12804
12864
  sourceLocation: {
12805
12865
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12806
- "line": 7161,
12866
+ "line": 7184,
12807
12867
  "column": 9
12808
12868
  }
12809
12869
  },
@@ -12831,7 +12891,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12831
12891
  },
12832
12892
  sourceLocation: {
12833
12893
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12834
- "line": 7203,
12894
+ "line": 7226,
12835
12895
  "column": 9
12836
12896
  }
12837
12897
  },
@@ -12859,7 +12919,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12859
12919
  },
12860
12920
  sourceLocation: {
12861
12921
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12862
- "line": 7195,
12922
+ "line": 7218,
12863
12923
  "column": 9
12864
12924
  }
12865
12925
  },
@@ -12908,7 +12968,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12908
12968
  },
12909
12969
  sourceLocation: {
12910
12970
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12911
- "line": 7171,
12971
+ "line": 7194,
12912
12972
  "column": 9
12913
12973
  }
12914
12974
  },
@@ -12935,7 +12995,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12935
12995
  },
12936
12996
  sourceLocation: {
12937
12997
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12938
- "line": 7187,
12998
+ "line": 7210,
12939
12999
  "column": 9
12940
13000
  }
12941
13001
  },
@@ -12984,7 +13044,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12984
13044
  },
12985
13045
  sourceLocation: {
12986
13046
  "file": "packages/freecodego/harness-plugin/src/index.ts",
12987
- "line": 7152,
13047
+ "line": 7175,
12988
13048
  "column": 9
12989
13049
  }
12990
13050
  },
@@ -13011,7 +13071,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13011
13071
  },
13012
13072
  sourceLocation: {
13013
13073
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13014
- "line": 7142,
13074
+ "line": 7165,
13015
13075
  "column": 9
13016
13076
  }
13017
13077
  },
@@ -13038,7 +13098,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13038
13098
  },
13039
13099
  sourceLocation: {
13040
13100
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13041
- "line": 7134,
13101
+ "line": 7157,
13042
13102
  "column": 9
13043
13103
  }
13044
13104
  },
@@ -13056,7 +13116,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13056
13116
  },
13057
13117
  sourceLocation: {
13058
13118
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13059
- "line": 7126,
13119
+ "line": 7149,
13060
13120
  "column": 9
13061
13121
  }
13062
13122
  },
@@ -13119,7 +13179,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13119
13179
  },
13120
13180
  sourceLocation: {
13121
13181
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13122
- "line": 7061,
13182
+ "line": 7084,
13123
13183
  "column": 9
13124
13184
  }
13125
13185
  },
@@ -13137,7 +13197,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13137
13197
  },
13138
13198
  sourceLocation: {
13139
13199
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13140
- "line": 6574,
13200
+ "line": 6597,
13141
13201
  "column": 9
13142
13202
  }
13143
13203
  },
@@ -13155,7 +13215,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13155
13215
  },
13156
13216
  sourceLocation: {
13157
13217
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13158
- "line": 7069,
13218
+ "line": 7092,
13159
13219
  "column": 9
13160
13220
  }
13161
13221
  },
@@ -13173,7 +13233,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13173
13233
  },
13174
13234
  sourceLocation: {
13175
13235
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13176
- "line": 7077,
13236
+ "line": 7100,
13177
13237
  "column": 9
13178
13238
  }
13179
13239
  },
@@ -13200,7 +13260,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13200
13260
  },
13201
13261
  sourceLocation: {
13202
13262
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13203
- "line": 7087,
13263
+ "line": 7110,
13204
13264
  "column": 9
13205
13265
  }
13206
13266
  },
@@ -13400,7 +13460,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13400
13460
  },
13401
13461
  sourceLocation: {
13402
13462
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13403
- "line": 7024,
13463
+ "line": 7047,
13404
13464
  "column": 9
13405
13465
  }
13406
13466
  },
@@ -13418,7 +13478,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13418
13478
  },
13419
13479
  sourceLocation: {
13420
13480
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13421
- "line": 7053,
13481
+ "line": 7076,
13422
13482
  "column": 9
13423
13483
  }
13424
13484
  },
@@ -13445,7 +13505,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13445
13505
  },
13446
13506
  sourceLocation: {
13447
13507
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13448
- "line": 7014,
13508
+ "line": 7037,
13449
13509
  "column": 9
13450
13510
  }
13451
13511
  },
@@ -13473,7 +13533,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13473
13533
  },
13474
13534
  sourceLocation: {
13475
13535
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13476
- "line": 7044,
13536
+ "line": 7067,
13477
13537
  "column": 9
13478
13538
  }
13479
13539
  },
@@ -13500,7 +13560,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13500
13560
  },
13501
13561
  sourceLocation: {
13502
13562
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13503
- "line": 7034,
13563
+ "line": 7057,
13504
13564
  "column": 9
13505
13565
  }
13506
13566
  },
@@ -13518,7 +13578,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13518
13578
  },
13519
13579
  sourceLocation: {
13520
13580
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13521
- "line": 7004,
13581
+ "line": 7027,
13522
13582
  "column": 9
13523
13583
  }
13524
13584
  },
@@ -13536,7 +13596,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
13536
13596
  },
13537
13597
  sourceLocation: {
13538
13598
  "file": "packages/freecodego/harness-plugin/src/index.ts",
13539
- "line": 6995,
13599
+ "line": 7018,
13540
13600
  "column": 9
13541
13601
  }
13542
13602
  },
@@ -15594,7 +15654,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15594
15654
  },
15595
15655
  sourceLocation: {
15596
15656
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15597
- "line": 7237,
15657
+ "line": 7260,
15598
15658
  "column": 9
15599
15659
  }
15600
15660
  },
@@ -15644,7 +15704,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15644
15704
  },
15645
15705
  sourceLocation: {
15646
15706
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15647
- "line": 6605,
15707
+ "line": 6628,
15648
15708
  "column": 9
15649
15709
  }
15650
15710
  },
@@ -15806,7 +15866,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15806
15866
  },
15807
15867
  sourceLocation: {
15808
15868
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15809
- "line": 6634,
15869
+ "line": 6657,
15810
15870
  "column": 9
15811
15871
  }
15812
15872
  },
@@ -15833,7 +15893,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15833
15893
  },
15834
15894
  sourceLocation: {
15835
15895
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15836
- "line": 6624,
15896
+ "line": 6647,
15837
15897
  "column": 9
15838
15898
  }
15839
15899
  },
@@ -15860,7 +15920,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15860
15920
  },
15861
15921
  sourceLocation: {
15862
15922
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15863
- "line": 6644,
15923
+ "line": 6667,
15864
15924
  "column": 9
15865
15925
  }
15866
15926
  },
@@ -15878,7 +15938,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
15878
15938
  },
15879
15939
  sourceLocation: {
15880
15940
  "file": "packages/freecodego/harness-plugin/src/index.ts",
15881
- "line": 6614,
15941
+ "line": 6637,
15882
15942
  "column": 9
15883
15943
  }
15884
15944
  },
@@ -16094,7 +16154,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16094
16154
  },
16095
16155
  sourceLocation: {
16096
16156
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16097
- "line": 6682,
16157
+ "line": 6705,
16098
16158
  "column": 9
16099
16159
  }
16100
16160
  },
@@ -16112,7 +16172,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16112
16172
  },
16113
16173
  sourceLocation: {
16114
16174
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16115
- "line": 6672,
16175
+ "line": 6695,
16116
16176
  "column": 9
16117
16177
  }
16118
16178
  },
@@ -16139,7 +16199,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16139
16199
  },
16140
16200
  sourceLocation: {
16141
16201
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16142
- "line": 7295,
16202
+ "line": 7318,
16143
16203
  "column": 9
16144
16204
  }
16145
16205
  },
@@ -16157,7 +16217,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16157
16217
  },
16158
16218
  sourceLocation: {
16159
16219
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16160
- "line": 7219,
16220
+ "line": 7242,
16161
16221
  "column": 9
16162
16222
  }
16163
16223
  },
@@ -16217,7 +16277,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16217
16277
  },
16218
16278
  sourceLocation: {
16219
16279
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16220
- "line": 7266,
16280
+ "line": 7289,
16221
16281
  "column": 9
16222
16282
  }
16223
16283
  },
@@ -16235,7 +16295,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16235
16295
  },
16236
16296
  sourceLocation: {
16237
16297
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16238
- "line": 7227,
16298
+ "line": 7250,
16239
16299
  "column": 9
16240
16300
  }
16241
16301
  },
@@ -16262,7 +16322,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16262
16322
  },
16263
16323
  sourceLocation: {
16264
16324
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16265
- "line": 7275,
16325
+ "line": 7298,
16266
16326
  "column": 9
16267
16327
  }
16268
16328
  },
@@ -16280,7 +16340,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16280
16340
  },
16281
16341
  sourceLocation: {
16282
16342
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16283
- "line": 7254,
16343
+ "line": 7277,
16284
16344
  "column": 9
16285
16345
  }
16286
16346
  },
@@ -16298,7 +16358,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16298
16358
  },
16299
16359
  sourceLocation: {
16300
16360
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16301
- "line": 7210,
16361
+ "line": 7233,
16302
16362
  "column": 9
16303
16363
  }
16304
16364
  },
@@ -16325,7 +16385,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16325
16385
  },
16326
16386
  sourceLocation: {
16327
16387
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16328
- "line": 7315,
16388
+ "line": 7338,
16329
16389
  "column": 9
16330
16390
  }
16331
16391
  },
@@ -16352,7 +16412,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16352
16412
  },
16353
16413
  sourceLocation: {
16354
16414
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16355
- "line": 7305,
16415
+ "line": 7328,
16356
16416
  "column": 9
16357
16417
  }
16358
16418
  },
@@ -16379,7 +16439,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16379
16439
  },
16380
16440
  sourceLocation: {
16381
16441
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16382
- "line": 7330,
16442
+ "line": 7353,
16383
16443
  "column": 9
16384
16444
  }
16385
16445
  },
@@ -16406,7 +16466,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16406
16466
  },
16407
16467
  sourceLocation: {
16408
16468
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16409
- "line": 7285,
16469
+ "line": 7308,
16410
16470
  "column": 9
16411
16471
  }
16412
16472
  },
@@ -16650,7 +16710,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16650
16710
  },
16651
16711
  sourceLocation: {
16652
16712
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16653
- "line": 6885,
16713
+ "line": 6908,
16654
16714
  "column": 9
16655
16715
  }
16656
16716
  },
@@ -16668,7 +16728,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16668
16728
  },
16669
16729
  sourceLocation: {
16670
16730
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16671
- "line": 6847,
16731
+ "line": 6870,
16672
16732
  "column": 9
16673
16733
  }
16674
16734
  },
@@ -16695,7 +16755,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16695
16755
  },
16696
16756
  sourceLocation: {
16697
16757
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16698
- "line": 6838,
16758
+ "line": 6861,
16699
16759
  "column": 9
16700
16760
  }
16701
16761
  },
@@ -16713,7 +16773,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16713
16773
  },
16714
16774
  sourceLocation: {
16715
16775
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16716
- "line": 6876,
16776
+ "line": 6899,
16717
16777
  "column": 9
16718
16778
  }
16719
16779
  },
@@ -16740,7 +16800,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16740
16800
  },
16741
16801
  sourceLocation: {
16742
16802
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16743
- "line": 6857,
16803
+ "line": 6880,
16744
16804
  "column": 9
16745
16805
  }
16746
16806
  },
@@ -16767,7 +16827,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16767
16827
  },
16768
16828
  sourceLocation: {
16769
16829
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16770
- "line": 6867,
16830
+ "line": 6890,
16771
16831
  "column": 9
16772
16832
  }
16773
16833
  },
@@ -16785,7 +16845,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16785
16845
  },
16786
16846
  sourceLocation: {
16787
16847
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16788
- "line": 6828,
16848
+ "line": 6851,
16789
16849
  "column": 9
16790
16850
  }
16791
16851
  },
@@ -16803,7 +16863,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
16803
16863
  },
16804
16864
  sourceLocation: {
16805
16865
  "file": "packages/freecodego/harness-plugin/src/index.ts",
16806
- "line": 6819,
16866
+ "line": 6842,
16807
16867
  "column": 9
16808
16868
  }
16809
16869
  },
@@ -17055,7 +17115,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17055
17115
  },
17056
17116
  sourceLocation: {
17057
17117
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17058
- "line": 6663,
17118
+ "line": 6686,
17059
17119
  "column": 9
17060
17120
  }
17061
17121
  },
@@ -17073,7 +17133,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17073
17133
  },
17074
17134
  sourceLocation: {
17075
17135
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17076
- "line": 6653,
17136
+ "line": 6676,
17077
17137
  "column": 9
17078
17138
  }
17079
17139
  },
@@ -17426,7 +17486,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17426
17486
  },
17427
17487
  sourceLocation: {
17428
17488
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17429
- "line": 6701,
17489
+ "line": 6724,
17430
17490
  "column": 9
17431
17491
  }
17432
17492
  },
@@ -17444,7 +17504,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17444
17504
  },
17445
17505
  sourceLocation: {
17446
17506
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17447
- "line": 6691,
17507
+ "line": 6714,
17448
17508
  "column": 9
17449
17509
  }
17450
17510
  },
@@ -17462,7 +17522,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17462
17522
  },
17463
17523
  sourceLocation: {
17464
17524
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17465
- "line": 6710,
17525
+ "line": 6733,
17466
17526
  "column": 9
17467
17527
  }
17468
17528
  },
@@ -17489,7 +17549,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17489
17549
  },
17490
17550
  sourceLocation: {
17491
17551
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17492
- "line": 7117,
17552
+ "line": 7140,
17493
17553
  "column": 9
17494
17554
  }
17495
17555
  },
@@ -17516,7 +17576,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17516
17576
  },
17517
17577
  sourceLocation: {
17518
17578
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17519
- "line": 7107,
17579
+ "line": 7130,
17520
17580
  "column": 9
17521
17581
  }
17522
17582
  },
@@ -17543,7 +17603,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17543
17603
  },
17544
17604
  sourceLocation: {
17545
17605
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17546
- "line": 7097,
17606
+ "line": 7120,
17547
17607
  "column": 9
17548
17608
  }
17549
17609
  },
@@ -17561,7 +17621,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17561
17621
  },
17562
17622
  sourceLocation: {
17563
17623
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17564
- "line": 6937,
17624
+ "line": 6960,
17565
17625
  "column": 9
17566
17626
  }
17567
17627
  },
@@ -17579,7 +17639,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17579
17639
  },
17580
17640
  sourceLocation: {
17581
17641
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17582
- "line": 6984,
17642
+ "line": 7007,
17583
17643
  "column": 9
17584
17644
  }
17585
17645
  },
@@ -17597,7 +17657,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17597
17657
  },
17598
17658
  sourceLocation: {
17599
17659
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17600
- "line": 6955,
17660
+ "line": 6978,
17601
17661
  "column": 9
17602
17662
  }
17603
17663
  },
@@ -17615,7 +17675,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17615
17675
  },
17616
17676
  sourceLocation: {
17617
17677
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17618
- "line": 6946,
17678
+ "line": 6969,
17619
17679
  "column": 9
17620
17680
  }
17621
17681
  },
@@ -17633,7 +17693,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17633
17693
  },
17634
17694
  sourceLocation: {
17635
17695
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17636
- "line": 6918,
17696
+ "line": 6941,
17637
17697
  "column": 9
17638
17698
  }
17639
17699
  },
@@ -17660,7 +17720,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17660
17720
  },
17661
17721
  sourceLocation: {
17662
17722
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17663
- "line": 6965,
17723
+ "line": 6988,
17664
17724
  "column": 9
17665
17725
  }
17666
17726
  },
@@ -17687,7 +17747,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17687
17747
  },
17688
17748
  sourceLocation: {
17689
17749
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17690
- "line": 6975,
17750
+ "line": 6998,
17691
17751
  "column": 9
17692
17752
  }
17693
17753
  },
@@ -17715,7 +17775,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17715
17775
  },
17716
17776
  sourceLocation: {
17717
17777
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17718
- "line": 6908,
17778
+ "line": 6931,
17719
17779
  "column": 9
17720
17780
  }
17721
17781
  },
@@ -17733,7 +17793,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17733
17793
  },
17734
17794
  sourceLocation: {
17735
17795
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17736
- "line": 6898,
17796
+ "line": 6921,
17737
17797
  "column": 9
17738
17798
  }
17739
17799
  },
@@ -17760,7 +17820,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17760
17820
  },
17761
17821
  sourceLocation: {
17762
17822
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17763
- "line": 6928,
17823
+ "line": 6951,
17764
17824
  "column": 9
17765
17825
  }
17766
17826
  },
@@ -17869,7 +17929,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17869
17929
  },
17870
17930
  sourceLocation: {
17871
17931
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17872
- "line": 6593,
17932
+ "line": 6616,
17873
17933
  "column": 9
17874
17934
  }
17875
17935
  },
@@ -17887,7 +17947,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17887
17947
  },
17888
17948
  sourceLocation: {
17889
17949
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17890
- "line": 6583,
17950
+ "line": 6606,
17891
17951
  "column": 9
17892
17952
  }
17893
17953
  },
@@ -17950,7 +18010,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17950
18010
  },
17951
18011
  sourceLocation: {
17952
18012
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17953
- "line": 6732,
18013
+ "line": 6755,
17954
18014
  "column": 9
17955
18015
  }
17956
18016
  },
@@ -17968,7 +18028,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17968
18028
  },
17969
18029
  sourceLocation: {
17970
18030
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17971
- "line": 6769,
18031
+ "line": 6792,
17972
18032
  "column": 9
17973
18033
  }
17974
18034
  },
@@ -17986,7 +18046,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
17986
18046
  },
17987
18047
  sourceLocation: {
17988
18048
  "file": "packages/freecodego/harness-plugin/src/index.ts",
17989
- "line": 6741,
18049
+ "line": 6764,
17990
18050
  "column": 9
17991
18051
  }
17992
18052
  },
@@ -18013,7 +18073,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18013
18073
  },
18014
18074
  sourceLocation: {
18015
18075
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18016
- "line": 6760,
18076
+ "line": 6783,
18017
18077
  "column": 9
18018
18078
  }
18019
18079
  },
@@ -18031,7 +18091,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18031
18091
  },
18032
18092
  sourceLocation: {
18033
18093
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18034
- "line": 6808,
18094
+ "line": 6831,
18035
18095
  "column": 9
18036
18096
  }
18037
18097
  },
@@ -18058,7 +18118,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18058
18118
  },
18059
18119
  sourceLocation: {
18060
18120
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18061
- "line": 6799,
18121
+ "line": 6822,
18062
18122
  "column": 9
18063
18123
  }
18064
18124
  },
@@ -18085,7 +18145,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18085
18145
  },
18086
18146
  sourceLocation: {
18087
18147
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18088
- "line": 6779,
18148
+ "line": 6802,
18089
18149
  "column": 9
18090
18150
  }
18091
18151
  },
@@ -18112,7 +18172,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18112
18172
  },
18113
18173
  sourceLocation: {
18114
18174
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18115
- "line": 6789,
18175
+ "line": 6812,
18116
18176
  "column": 9
18117
18177
  }
18118
18178
  },
@@ -18130,7 +18190,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18130
18190
  },
18131
18191
  sourceLocation: {
18132
18192
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18133
- "line": 6750,
18193
+ "line": 6773,
18134
18194
  "column": 9
18135
18195
  }
18136
18196
  },
@@ -18148,7 +18208,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18148
18208
  },
18149
18209
  sourceLocation: {
18150
18210
  "file": "packages/freecodego/harness-plugin/src/index.ts",
18151
- "line": 6723,
18211
+ "line": 6746,
18152
18212
  "column": 9
18153
18213
  }
18154
18214
  }
@@ -18379,13 +18439,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18379
18439
  }
18380
18440
  //#endregion
18381
18441
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/settings-tab.module.css.mjs
18382
- const css$7 = ".fnB0BW_root{box-sizing:border-box;width:100%;min-width:0;max-width:100%;color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);overflow:hidden}.fnB0BW_toolbar{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 0 12px;display:flex}.fnB0BW_toolbarTitle{min-width:0}.fnB0BW_kicker{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600;line-height:18px}.fnB0BW_title{font-size:var(--fcg-font-section);margin:1px 0 0;font-weight:600;line-height:24px}.fnB0BW_toolbarAction,.fnB0BW_button{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:32px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;padding:5px 13px;line-height:18px;text-decoration:none;display:inline-flex}.fnB0BW_toolbarAction:hover,.fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_button:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_button:focus-visible,.fnB0BW_toolbarAction:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_buttonPrimary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-btn-primary-fill) 30%, transparent)}.fnB0BW_buttonPrimary{background:var(--fcg-btn-primary-fill);color:var(--fcg-text-on-brand);border-color:#0000}.fnB0BW_buttonPrimary:hover:not(:disabled){background:var(--fcg-btn-primary-hover);border-color:#0000}.fnB0BW_buttonPrimary:hover{background:var(--fcg-btn-primary-hover)}.fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_loading,.fnB0BW_error{color:var(--fcg-text-tertiary);padding:18px 0}.fnB0BW_error{color:var(--fcg-danger)}.fnB0BW_syncNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;margin:14px 0 0;padding:10px 14px;line-height:18px;display:flex}.fnB0BW_syncNoticeOffline{border-color:color-mix(in srgb, var(--fcg-warn-label) 34%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-warn-label) 7%, var(--fcg-bg-layer-1));color:var(--fcg-warn-label)}.fnB0BW_syncDot{border-radius:var(--fcg-radius-full);background:var(--fcg-brand);flex:none;width:7px;height:7px;animation:1.25s ease-in-out infinite fnB0BW_sync-pulse}.fnB0BW_syncNoticeOffline .fnB0BW_syncDot{background:var(--fcg-warn-label);animation:none}@keyframes fnB0BW_sync-pulse{50%{opacity:.38;transform:scale(.8)}}.fnB0BW_sections{gap:0;display:grid}.fnB0BW_pageTabs{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-tip);gap:4px;margin:0 0 14px;padding:3px;display:flex}.fnB0BW_pageTab{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:5px;flex:1;padding:5px 10px}.fnB0BW_pageTabActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_modelCategoryActions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;margin-top:8px;display:grid}.fnB0BW_modelCategoryActions .fnB0BW_select{width:100%;min-width:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions){align-items:start}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_pageTabs{box-sizing:border-box;grid-column:2;width:100%;margin:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_select{grid-area:2/1;width:100%}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_modelCategoryActions{grid-area:2/2;margin-top:0}.fnB0BW_modelCategoryActions .fnB0BW_button{min-height:42px}.fnB0BW_community{min-width:0;padding:4px 0 17px}.fnB0BW_communityHeader{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 0 14px;display:flex}.fnB0BW_communityIntro{max-width:520px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:5px 0 0;line-height:18px}.fnB0BW_communityFilterBar{justify-content:space-between;align-items:center;gap:12px;padding:12px 0 2px;display:flex}.fnB0BW_communityFilters{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.fnB0BW_communityFilter{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 10px}.fnB0BW_communityFilter:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityFilterActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_communityInstalledEntry{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:30px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;padding:5px 10px;font-weight:600}.fnB0BW_communityInstalledEntry:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityInstalledEntryActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_capabilityCommunity{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px}.fnB0BW_capabilityCommunityHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_capabilityCommunityGrid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:9px;margin-top:11px;display:grid}.fnB0BW_marketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:13px;display:grid}.fnB0BW_capabilityCommunityCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_capabilityCommunityCard strong{font-size:var(--fcg-font-body)}.fnB0BW_capabilityCommunityCard p{min-height:36px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_capabilityCommunityCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_capabilityCommunityCard .fnB0BW_button{width:100%;margin-top:2px}.fnB0BW_capabilityCommunityTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_capabilityCommunityKind{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.07em;font-weight:700}.fnB0BW_marketplaceIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_capabilityIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);width:28px;height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);object-fit:cover;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.fnB0BW_capabilityIconMcp{border-color:color-mix(in srgb, var(--fcg-brand) 35%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 11%, var(--fcg-bg-layer-1));color:var(--fcg-brand)}.fnB0BW_marketplaceControls{grid-template-columns:minmax(0,1fr) minmax(140px,.4fr);gap:8px;margin-top:12px;display:grid}.fnB0BW_marketplaceLink{appearance:none;cursor:pointer;font:inherit;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;text-decoration:none}.fnB0BW_marketplaceLink:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_marketplacePagination{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:center;align-items:center;gap:10px;margin-top:13px;display:flex}.fnB0BW_communitySearch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;margin-top:12px;display:grid}.fnB0BW_communityGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding-top:14px;display:grid}.fnB0BW_communityCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);flex-direction:column;gap:9px;padding:12px;display:flex}.fnB0BW_communityCard:hover,.fnB0BW_communityCard:focus-visible{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-2);outline:none;transform:translateY(-1px)}.fnB0BW_communityCardTop{align-items:center;gap:8px;min-width:0;display:flex}img.fnB0BW_communityPluginIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);object-fit:cover;flex:none;width:34px;height:34px;display:block;overflow:hidden}.fnB0BW_communityIdentity{gap:1px;min-width:0;display:grid}.fnB0BW_communityIdentity strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_communityIdentity small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityCategory{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-left:auto;padding:2px 6px}.fnB0BW_communityDescription{min-height:54px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:18px;display:-webkit-box;overflow:hidden}.fnB0BW_communityFeatures,.fnB0BW_communityFeatureList{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_communityStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);gap:10px;display:flex}.fnB0BW_communityState{color:var(--fcg-success);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_communityIncompatible{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);min-height:30px;color:var(--fcg-warn-label);font-size:var(--fcg-font-caption);padding:5px 8px;line-height:18px}.fnB0BW_communityInstall{width:100%;margin-top:auto}.fnB0BW_communityProgress{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityRestart{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 11px;line-height:18px;display:flex}.fnB0BW_communityFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:13px;line-height:18px;display:block}.fnB0BW_communityModalBackdrop{z-index:20;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fnB0BW_communityModal{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-2);width:min(760px,100%);min-width:0;max-height:min(820px,92vh);box-shadow:var(--fcg-shadow-pop);flex-direction:column;gap:12px;padding:18px;display:flex;overflow:hidden}.fnB0BW_communityModalHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_communityModalTitle{font-size:var(--fcg-font-section);margin:2px 0 0;line-height:25px}.fnB0BW_communityModalOwner{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityModalSummary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-body);margin:0;line-height:20px}.fnB0BW_communityModalHeader img.fnB0BW_communityPluginIcon{width:40px;height:40px;margin-top:8px}.fnB0BW_communityModalStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:12px;display:flex}.fnB0BW_communityModalStats a{color:var(--fcg-text-primary)}.fnB0BW_communityReadme{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);min-height:180px;overflow:auto}.fnB0BW_communityReadme pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;padding:13px}.fnB0BW_communityModalFooter{justify-content:flex-end;gap:8px;display:flex}.fnB0BW_section{border-bottom:1px solid var(--fcg-line-subtle);min-width:0;padding:24px 0}.fnB0BW_section:last-child{border-bottom:0}.fnB0BW_sectionHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.fnB0BW_sectionName{font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;font-weight:650;line-height:20px}.fnB0BW_sectionMeta{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_badge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 8px;line-height:18px}.fnB0BW_badgeLive{color:var(--fcg-success)}.fnB0BW_badgeDanger{color:var(--fcg-danger)}.fnB0BW_inspectStatus{background:0 0;align-self:start}.fnB0BW_diagnosticsDump{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:240px;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;padding:8px 10px;line-height:18px;overflow:auto}.fnB0BW_grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.fnB0BW_routingGrid{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell{grid-template-columns:minmax(150px,.7fr) minmax(0,1fr);align-items:center;gap:18px;min-height:0;padding:12px 14px;display:grid}.fnB0BW_routingCell.fnB0BW_selectCell{grid-template-rows:none;align-content:normal}.fnB0BW_routingCell .fnB0BW_select{min-height:42px}.fnB0BW_routingCopy{gap:2px;min-width:0;display:grid}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-column:1/-1;grid-template-columns:minmax(150px,.7fr) auto minmax(0,1fr);align-items:center;gap:10px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_cellHint{margin-top:0}.fnB0BW_infoCell{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-width:0;padding:14px}.fnB0BW_cellLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-bottom:4px;display:block}.fnB0BW_cellValue{text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.fnB0BW_cellHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_feedbackRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 18px;display:flex}.fnB0BW_feedbackRow>.fnB0BW_routingCopy{flex:220px}.fnB0BW_telegramLink{flex:none;gap:7px;text-decoration:none}.fnB0BW_telegramIcon{flex:none;display:block}.fnB0BW_selectCell{gap:5px;display:grid}.fnB0BW_select,.fnB0BW_input{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-width:0;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:8px 11px}.fnB0BW_select:hover,.fnB0BW_input:hover{border-color:var(--fcg-line-strong)}.fnB0BW_select:focus,.fnB0BW_input:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_accountList{flex-direction:column;gap:8px;display:flex}.fnB0BW_accountManager{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:10px;margin-top:10px;padding:14px;display:grid}.fnB0BW_extensionList{gap:6px;margin-top:14px;display:grid}.fnB0BW_extensionRow{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:11px 12px;display:flex}.fnB0BW_extensionRow span{gap:3px;min-width:0;display:grid}.fnB0BW_extensionRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineSelect{cursor:pointer;flex:none;width:216px}.fnB0BW_switch{-webkit-appearance:none;appearance:none;border:1px solid var(--fcg-line-strong);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);cursor:pointer;width:36px;height:20px;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);outline:none;flex:none;margin:0;position:relative}.fnB0BW_switch:before{content:\"\";corner-shape:round;background:var(--fcg-bg-layer-2);width:14px;height:14px;box-shadow:var(--fcg-shadow-1);transition:transform var(--fcg-fast) var(--fcg-ease);border-radius:50%;position:absolute;top:2px;left:2px}.fnB0BW_switch:checked{border-color:var(--fcg-brand);background:var(--fcg-brand)}.fnB0BW_switch:checked:before{transform:translate(16px)}.fnB0BW_switch:hover:not(:disabled){border-color:var(--fcg-brand)}.fnB0BW_switch:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent)}.fnB0BW_switch:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_capabilityForm{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px;padding:14px;display:grid}.fnB0BW_capabilityForm label{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_capabilityFormHead{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_capabilityFull{grid-column:1/-1}.fnB0BW_skillList{gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats div{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:12px 14px;display:grid}.fnB0BW_capabilityStats strong{font-size:var(--fcg-font-section);line-height:21px}.fnB0BW_capabilityStats small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_engineeringSection .fnB0BW_capabilityStats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.fnB0BW_manualEntry{border-top:1px solid var(--fcg-line);gap:6px;padding-top:10px;display:grid}.fnB0BW_manualEntry>small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_manualEntry summary{cursor:pointer;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryPanel{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:12px;margin-top:16px;padding:14px;display:grid}.fnB0BW_memoryHeader,.fnB0BW_memoryDetailHeader{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fnB0BW_memoryHeader>div:first-child,.fnB0BW_memoryDetailHeader>div{gap:3px;min-width:0;display:grid}.fnB0BW_memoryHeader strong,.fnB0BW_memoryDetailHeader strong{font-size:var(--fcg-font-body)}.fnB0BW_memoryHeader small,.fnB0BW_memoryDetailHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryActions,.fnB0BW_memoryRecordActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.fnB0BW_memoryActions .fnB0BW_button,.fnB0BW_memoryRecordActions .fnB0BW_button{min-height:26px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_memorySearchRow{align-items:center;gap:7px;display:flex}.fnB0BW_memorySearchRow .fnB0BW_input{flex:auto}.fnB0BW_memorySearchRow .fnB0BW_button{min-height:30px;font-size:var(--fcg-font-caption);flex:none;padding:4px 10px}.fnB0BW_memoryRecall{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:6px;padding:9px 11px;display:grid}.fnB0BW_memoryRecallHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.fnB0BW_memoryRecallHead span{gap:2px;min-width:0;display:grid}.fnB0BW_memoryRecallHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryRecallHead .fnB0BW_button{min-height:24px;font-size:var(--fcg-font-caption);flex:none;padding:2px 8px}.fnB0BW_memoryRecallList{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_memoryRecallList span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_memoryList{gap:7px;max-height:360px;padding-right:3px;display:grid;overflow:auto}.fnB0BW_memoryRecord{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;display:grid}.fnB0BW_memoryRecordSelected{box-shadow:inset 0 0 0 1px var(--fcg-brand)}.fnB0BW_memoryRecordSelect{min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_memoryRecordSelect:disabled{cursor:not-allowed;opacity:.6}.fnB0BW_memoryRecordSelect>span{gap:3px;min-width:0;display:grid}.fnB0BW_memoryRecordSelect strong,.fnB0BW_memoryRecordSelect small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_memoryRecordSelect strong{font-size:var(--fcg-font-caption)}.fnB0BW_memoryRecordSelect small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTrust{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px;font-weight:600}.fnB0BW_memoryTrustReviewed{background:color-mix(in srgb, var(--fcg-success) 12%, var(--fcg-bg-layer-2));color:var(--fcg-success)}.fnB0BW_memoryTrustDraft{background:color-mix(in srgb, var(--fcg-warn) 13%, var(--fcg-bg-layer-2));color:var(--fcg-warn-label)}.fnB0BW_memoryDetail{border:1px solid color-mix(in srgb, var(--fcg-text-primary) 18%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:9px;padding:11px;display:grid}.fnB0BW_memoryDetail p{max-height:240px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:19px;overflow:auto}.fnB0BW_memoryTags{flex-wrap:wrap;gap:5px;display:flex}.fnB0BW_memoryTags span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);padding:2px 6px}.fnB0BW_memoryTimeline{border-top:1px solid var(--fcg-line);gap:5px;padding-top:9px;display:grid}.fnB0BW_memoryTimeline strong{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTimeline button{color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;overflow:hidden}.fnB0BW_memoryTimeline button:hover,.fnB0BW_memoryTimelineCurrent{color:var(--fcg-text-primary)!important}.fnB0BW_graphPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--fcg-brand) 5%, var(--fcg-bg-layer-2)), var(--fcg-bg-layer-1));gap:10px;margin-top:14px;padding:12px;display:grid}.fnB0BW_graphState{border-left:2px solid var(--fcg-brand);background:var(--fcg-bg-layer-2);gap:3px;padding:10px 11px;display:grid}.fnB0BW_graphState strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphState small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallList{gap:8px;display:grid}.fnB0BW_graphInstallRow{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fnB0BW_graphInstallRow>div{flex:1;gap:4px;min-width:0;display:grid}.fnB0BW_graphInstallRow strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphInstallRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallRow .fnB0BW_input{margin-top:4px}.fnB0BW_verificationGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;display:grid}.fnB0BW_verificationGrid article{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:4px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_verificationGrid strong{font-size:var(--fcg-font-caption);text-transform:uppercase}.fnB0BW_verificationGrid small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_verificationGrid pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;overflow:auto}.fnB0BW_mcpTemplateBar{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:7px;margin-top:12px;display:flex}.fnB0BW_templateButton{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-sm);min-height:26px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.fnB0BW_templateButton:hover{border-style:solid;border-color:var(--fcg-text-primary);color:var(--fcg-text-primary)}.fnB0BW_mcpPresetHeading{justify-content:space-between;align-items:baseline;gap:10px;margin-top:14px;display:flex}.fnB0BW_mcpPresetHeading strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetHeading small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpPresetCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.fnB0BW_mcpPresetCard:hover{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-1);transform:translateY(-1px)}.fnB0BW_mcpPresetCard:disabled{cursor:not-allowed;opacity:.55;transform:none}.fnB0BW_mcpPresetCard>span:not(.fnB0BW_mcpPresetIcon){gap:2px;min-width:0;display:grid}.fnB0BW_mcpPresetCard strong{font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpPresetCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_mcpPresetCard b{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;font-weight:500}.fnB0BW_mcpPresetIcon,.fnB0BW_mcpServerIcon{border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 12%, var(--fcg-bg-layer-2));width:30px;height:30px;color:var(--fcg-brand);flex:none;place-items:center;display:grid}.fnB0BW_mcpServerIcon{width:32px;height:32px}.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpMarketplaceCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));grid-template-columns:auto minmax(0,1fr);gap:9px;min-width:0;padding:10px;display:grid}.fnB0BW_mcpMarketplaceIcon{object-fit:cover;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex:none;width:30px;height:30px}.fnB0BW_mcpMarketplaceCopy{gap:3px;min-width:0;display:grid}.fnB0BW_mcpMarketplaceCopy>div{justify-content:space-between;align-items:center;gap:6px;display:flex}.fnB0BW_mcpMarketplaceCopy strong,.fnB0BW_mcpMarketplaceCopy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpMarketplaceCopy strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpMarketplaceCopy span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px}.fnB0BW_mcpMarketplaceCopy small,.fnB0BW_mcpMarketplaceCopy em{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-style:normal;line-height:18px}.fnB0BW_mcpMarketplaceActions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_mcpMarketplaceActions a{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-decoration:none}.fnB0BW_mcpMarketplaceActions a:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_mcpMarketplaceActions .fnB0BW_button{min-height:27px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_mcpJsonPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-brand) 4%, var(--fcg-bg-layer-1));gap:9px;margin-top:12px;padding:11px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead{grid-template-columns:1fr auto;align-items:start;gap:4px 10px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);grid-column:1/-1;line-height:18px}.fnB0BW_mcpJsonInput{box-sizing:border-box;resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;min-height:170px;color:var(--fcg-text-primary);font:var(--fcg-font-caption)/18px var(--fcg-font-mono);outline:none;padding:10px}.fnB0BW_mcpJsonInput:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_mcpServerList{gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpServerCard{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:12px 14px;display:flex}.fnB0BW_mcpServerMain{gap:4px;min-width:0;display:grid}.fnB0BW_mcpServerMain>small{color:var(--fcg-text-tertiary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpServerTitle{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_mcpServerTitle strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_mcpServerActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:7px;display:flex}.fnB0BW_inlineSwitch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:4px;display:inline-flex}.fnB0BW_inlineSwitch input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_emptyCapability{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-md);color:var(--fcg-text-secondary);text-align:center;gap:4px;margin-top:12px;padding:18px 14px;display:grid}.fnB0BW_emptyCapability small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillPanel{gap:8px;margin-top:14px;padding-top:1px;display:grid}.fnB0BW_skillPanelHeader{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.fnB0BW_skillPanelHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);border:1px solid #0000;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.fnB0BW_skillCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_skillCardBody{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:1;gap:4px;padding:0;display:grid}.fnB0BW_skillCardBody:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_skillCardControl{flex:none;justify-items:end;gap:2px;padding-top:2px;display:grid}.fnB0BW_skillCardToggle{color:var(--fcg-text-tertiary);cursor:pointer;font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;display:flex}.fnB0BW_skillCardToggle input{margin:0}.fnB0BW_skillCardClear{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0}.fnB0BW_skillCardClear:disabled{opacity:.5;cursor:default}.fnB0BW_skillDetailControl{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;padding:9px 12px;display:flex}.fnB0BW_skillDetailControl>small{flex-basis:100%}.fnB0BW_skillForward{margin-top:12px}.fnB0BW_skillForwardHead{gap:2px;margin-bottom:6px;display:grid}.fnB0BW_skillForwardHead strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillForwardHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillCardHead{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_skillCard strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillCard p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_skillCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillFileBar{flex-wrap:wrap;gap:6px;margin:12px 0 0;display:flex}.fnB0BW_skillFileChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;padding:4px 9px;overflow:hidden}.fnB0BW_skillFileChip:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_skillFileChipActive{border-color:var(--fcg-brand);color:var(--fcg-text-primary)}.fnB0BW_skillFileChip:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_workbuddyHeaderActions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.fnB0BW_accountManagerButton{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 9px}.fnB0BW_accountManagerButton:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_accountRow{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.fnB0BW_accountIdentity{min-width:0}.fnB0BW_accountIdentityWithAvatar{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_accountText{min-width:0}.fnB0BW_accountAvatar{border-radius:var(--fcg-radius-md);border:1px solid #0000;flex:none;place-items:center;width:42px;height:42px;display:inline-grid;overflow:hidden;box-shadow:0 2px 8px #0f172a1a}.fnB0BW_accountAvatarRemote{border-color:var(--fcg-line);background:#fff}.fnB0BW_accountAvatarRemote img{object-fit:cover;width:100%;height:100%}.fnB0BW_accountAvatarMonogram{font-size:var(--fcg-font-section);letter-spacing:-.04em;font-weight:800;line-height:1}.fnB0BW_accountAvatarQq{color:#fff;background:linear-gradient(145deg,#38bdf8,#1263bd);border-color:#1688d8}.fnB0BW_accountAvatarGoogle{background:linear-gradient(145deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));color:#4285f4;text-shadow:1px 0 #ea4335,0 1px #34a853,-1px 0 #fbbc05;border-color:#d8dce5}.fnB0BW_accountAvatarGeneric{border-color:var(--fcg-line);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary)}.fnB0BW_accountAvatarGeneric svg{fill:currentColor;width:22px;height:22px}.fnB0BW_accountName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.fnB0BW_accountEmail{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block;overflow:hidden}.fnB0BW_accountActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.fnB0BW_clineUsage{gap:7px;margin-top:4px;display:grid}.fnB0BW_clineUsageHead{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_clineUsageRow{grid-template-columns:84px minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.fnB0BW_clineUsageLabel{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);overflow:hidden}.fnB0BW_clineUsageValue{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;text-align:right}.fnB0BW_clineUsageMeter{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:4px;overflow:hidden}.fnB0BW_clineUsageFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s}.fnB0BW_clineUsageFillHigh{background:var(--fcg-warn)}.fnB0BW_balance{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-success);font-size:var(--fcg-font-body-lg);font-variant-numeric:tabular-nums;align-items:baseline;gap:7px;padding:5px 11px;font-weight:600;display:inline-flex}.fnB0BW_balanceLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-weight:500}.fnB0BW_authForm{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.fnB0BW_authPanel{box-sizing:border-box;border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);width:100%;box-shadow:var(--fcg-shadow-2);gap:16px;padding:26px 24px 22px;display:grid}.fnB0BW_authLayout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:20px;margin-top:6px;display:grid}.fnB0BW_authHead{text-align:center;justify-items:center;gap:6px;display:grid}.fnB0BW_authTitle{color:var(--fcg-text-primary);letter-spacing:-.01em;font-size:17px;font-weight:650;line-height:24px}.fnB0BW_authSubtitle{max-width:300px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_authTabs{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.fnB0BW_authTab{min-height:32px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:8px}.fnB0BW_authTab:hover{color:var(--fcg-text-primary)}.fnB0BW_authTab:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authTabActive{background:var(--fcg-bg-layer-1);box-shadow:var(--fcg-shadow-1);color:var(--fcg-text-primary);font-weight:600}.fnB0BW_authStack{gap:11px;display:grid}.fnB0BW_authPanel .fnB0BW_input{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);min-height:42px;font-size:var(--fcg-font-body);border-color:#0000;padding:10px 13px}.fnB0BW_authPanel .fnB0BW_input::placeholder{color:var(--fcg-text-tertiary)}.fnB0BW_authPanel .fnB0BW_input:hover:not(:focus){border-color:var(--fcg-line)}.fnB0BW_authPanel .fnB0BW_input:focus{border-color:var(--fcg-brand);background:var(--fcg-bg-layer-1);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:hover,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fcg-text-primary);box-shadow:0 0 0 60px var(--fcg-bg-tip) inset}.fnB0BW_authCodeRow{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.fnB0BW_authCodeSend{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-height:42px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);padding:0 14px}.fnB0BW_authCodeSend:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover)}.fnB0BW_authCodeSend:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authCodeSend:disabled{cursor:not-allowed;color:var(--fcg-text-tertiary)}.fnB0BW_authSubmit{border-radius:var(--fcg-radius-md);background:var(--fcg-brand);width:100%;min-height:42px;color:var(--fcg-text-on-brand-fixed);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);letter-spacing:.01em;transition:background var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease);border:1px solid #0000;font-weight:600}.fnB0BW_authSubmit:hover:not(:disabled){background:var(--fcg-brand-strong)}.fnB0BW_authSubmit:active:not(:disabled){transform:translateY(1px)}.fnB0BW_authSubmit:disabled{cursor:not-allowed;opacity:.5}.fnB0BW_authSubmit:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 30%, transparent);outline:none}.fnB0BW_authNote,.fnB0BW_authStep{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-align:center;line-height:18px}.fnB0BW_authStep{color:var(--fcg-text-secondary)}.fnB0BW_authSocialRow{grid-template-columns:1fr 1fr;gap:9px;display:grid}.fnB0BW_authSocialButton{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-height:42px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;gap:8px;font-weight:550;display:inline-flex}.fnB0BW_authSocialButton svg{flex:none;width:16px;height:16px}.fnB0BW_authSocialButton:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_authSocialButton:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authSocialButton:disabled{cursor:progress;opacity:.6}.fnB0BW_authDivider{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;display:flex}.fnB0BW_authDivider:before,.fnB0BW_authDivider:after{background:var(--fcg-line);content:\"\";flex:1;height:1px}.fnB0BW_authNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 26%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-align:center;padding:9px 11px;line-height:18px}.fnB0BW_authNoticeAlert{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-align:left;grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:10px;padding:9px 11px;line-height:19px;display:flex}.fnB0BW_authNoticeAlert button{flex:none}.fnB0BW_authFull{grid-column:1/-1}.fnB0BW_remember{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:flex}.fnB0BW_remember input{width:15px;height:15px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_rememberRow{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.fnB0BW_passwordField{min-width:0;display:flex;position:relative}.fnB0BW_authPanel .fnB0BW_passwordField .fnB0BW_input{width:100%;padding-right:64px}.fnB0BW_passwordToggle{border-radius:var(--fcg-radius-sm);color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:4px 6px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.fnB0BW_passwordToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_paymentBar{border-bottom:1px solid var(--fcg-line-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 16px;margin-bottom:18px;padding-bottom:16px;display:grid}.fnB0BW_paymentBarDetail{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;grid-column:1/-1;line-height:17px}.fnB0BW_paymentPicker{justify-items:end;gap:6px;min-width:0;display:grid}.fnB0BW_paymentHeading{font-size:var(--fcg-font-title);letter-spacing:-.01em;color:var(--fcg-text-primary);margin-bottom:3px;font-weight:600;display:block}.fnB0BW_paymentMethod{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:inline-flex}.fnB0BW_paymentMethod>span{white-space:nowrap;flex:none}.fnB0BW_paymentMethod .fnB0BW_select{width:auto;min-width:176px;max-width:100%}.fnB0BW_alert{border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin-bottom:10px;padding:9px 11px;line-height:18px}.fnB0BW_alert button{color:inherit;font-size:var(--fcg-font-caption);cursor:pointer;white-space:nowrap;background:0 0;border:0;margin-left:10px;padding:0;text-decoration:underline}.fnB0BW_pending{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));gap:8px;margin-bottom:12px;padding:10px 11px;display:grid}.fnB0BW_pendingTitle{font-weight:600}.fnB0BW_pendingHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_pendingRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_pendingText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fnB0BW_plans,.fnB0BW_planShared,.fnB0BW_payDialog{--pixel-ink:color-mix(in srgb, var(--fcg-brand) 58%, var(--fcg-text-primary));--pixel-face:var(--fcg-bg-layer-1);--pixel-recess:color-mix(in srgb, var(--fcg-text-primary) 4%, var(--fcg-bg-layer-1));--pixel-recess-edge:color-mix(in srgb, var(--pixel-ink) 26%, transparent);--pixel-recess-rule:color-mix(in srgb, var(--pixel-ink) 22%, transparent);--pixel-rule:color-mix(in srgb, var(--pixel-ink) 18%, transparent);--pixel-notch:polygon(0 8px, 4px 8px, 4px 4px, 8px 4px, 8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px), calc(100% - 4px) calc(100% - 8px), calc(100% - 4px) calc(100% - 4px), calc(100% - 8px) calc(100% - 4px), calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 8px), 0 calc(100% - 8px));--pixel-chip:polygon(0 3px, 3px 3px, 3px 0, calc(100% - 3px) 0, calc(100% - 3px) 3px, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 3px calc(100% - 3px), 0 calc(100% - 3px))}.fnB0BW_plans{grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:16px;padding:0 6px 6px 0;display:grid}.fnB0BW_planShell{display:flex;position:relative}.fnB0BW_planShell:before{background:var(--pixel-ink);clip-path:var(--pixel-notch);content:\"\";transition:transform var(--fcg-fast) var(--fcg-ease);position:absolute;inset:0;transform:translate(6px,6px)}.fnB0BW_planShell:hover:before{transform:translate(8px,8px)}.fnB0BW_plan{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-width:0;clip-path:var(--pixel-notch);transition:transform var(--fcg-fast) var(--fcg-ease);flex-direction:column;flex:1;gap:11px;padding:16px 16px 14px;display:flex;position:relative}.fnB0BW_plan:hover{transform:translate(-2px,-2px)}.fnB0BW_planTop{border-bottom:2px solid var(--pixel-rule);align-items:center;gap:8px;padding-bottom:9px;display:flex}.fnB0BW_planDot{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:9px;height:9px;box-shadow:1px 1px 0 0 var(--pixel-ink);flex:none}.fnB0BW_planName{min-width:0;color:var(--fcg-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;flex:1;font-weight:800;overflow:hidden}.fnB0BW_planTag{border:1px solid var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 8px;font-size:10px;font-weight:700}.fnB0BW_planSave{border:1px solid color-mix(in srgb, var(--fcg-success) 52%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 13%, transparent);color:var(--fcg-success);letter-spacing:.04em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 7px;font-size:10px;font-weight:700}.fnB0BW_planFeatured .fnB0BW_planRecess{background:color-mix(in srgb, var(--fcg-brand) 8%, var(--pixel-recess))}.fnB0BW_planShared{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding:10px 12px;display:flex}.fnB0BW_planShared small{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);letter-spacing:.1em;font-size:10px;font-weight:700}.fnB0BW_planShared span{align-items:center;gap:6px;display:inline-flex}.fnB0BW_planRecess{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);align-items:stretch;padding:10px 12px;display:flex}.fnB0BW_planCreditBlock{flex:auto;gap:3px;min-width:0;display:grid}.fnB0BW_planPriceLabel{color:var(--fcg-brand);letter-spacing:.08em;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.fnB0BW_planRecessCode{font-family:var(--fcg-font-mono);letter-spacing:.14em}.fnB0BW_planPriceRow{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fnB0BW_planPrice{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.fnB0BW_planOriginalPrice{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-decoration:line-through}.fnB0BW_planPayBlock{border-left:2px solid var(--pixel-recess-rule);align-content:center;justify-items:end;gap:3px;margin-left:12px;padding-left:12px;display:grid}.fnB0BW_planPayLabel{color:var(--fcg-text-tertiary);font-size:10px;font-weight:600}.fnB0BW_planPayable{color:var(--fcg-brand);font-size:var(--fcg-font-title);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800}.fnB0BW_features{border-top:2px solid var(--pixel-rule);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:6px;padding-top:10px;line-height:17px;display:grid}.fnB0BW_features>span{grid-template-columns:12px minmax(0,1fr);align-items:start;gap:8px;display:grid}.fnB0BW_planCheck{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:7px;height:7px;margin-top:5px;display:block}.fnB0BW_planFeatureText{min-width:0}.fnB0BW_planButton{border:2px solid var(--pixel-ink);background:var(--fcg-brand);width:100%;min-height:40px;color:var(--fcg-text-on-brand-fixed);letter-spacing:.04em;box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;margin-top:auto;font-weight:700}.fnB0BW_planButton:hover:not(:disabled){background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_planButton:active:not(:disabled){box-shadow:inset 0 1px 0 0 #0000002e, 0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_planBlurb{gap:3px;display:grid}.fnB0BW_planPerk{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planLead{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planFootnote{color:var(--fcg-text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.fnB0BW_planDotOk{background:var(--fcg-success);flex:none;width:6px;height:6px}.fnB0BW_planBrandMark{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.05em;margin-left:auto;font-size:10px;font-weight:700}.fnB0BW_pricingSection{border-top:1px solid var(--fcg-line);gap:10px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_pricingHeader{justify-content:space-between;align-items:end;gap:14px;display:flex}.fnB0BW_pricingHeader>div{gap:3px;display:grid}.fnB0BW_pricingSearch{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:min(250px,100%);min-height:32px;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-caption);outline:none;padding:6px 10px}.fnB0BW_pricingSearch:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_pricingNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_pricingTableWrap{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:100%;overflow:auto hidden}.fnB0BW_pricingTable{table-layout:fixed;border-collapse:collapse;width:100%;min-width:660px;font-size:var(--fcg-font-caption)}.fnB0BW_pricingTable th{border-bottom:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;text-align:left;white-space:nowrap;padding:10px 14px;font-weight:600}.fnB0BW_pricingTable td{border-bottom:1px solid var(--fcg-line-subtle);color:var(--fcg-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;padding:10px 12px}.fnB0BW_pricingTable tbody tr:last-child td{border-bottom:0}.fnB0BW_pricingTable tbody tr:hover{background:var(--fcg-bg-hover)}.fnB0BW_pricingFreeSection{border-top:1px dashed var(--fcg-line-subtle);gap:8px;margin-top:6px;padding-top:14px;display:grid}.fnB0BW_pricingFreeHeader{gap:2px;display:grid}.fnB0BW_pricingFreeHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:650}.fnB0BW_paymentMethods{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-top:0;display:flex}.fnB0BW_paymentMethodChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.01em;white-space:nowrap;padding:2px 9px;font-weight:550}@media (width<=520px){.fnB0BW_paymentBar{grid-template-columns:minmax(0,1fr)}.fnB0BW_paymentPicker{justify-items:stretch}.fnB0BW_paymentMethod .fnB0BW_select{width:100%}.fnB0BW_paymentMethods{justify-content:flex-start}}.fnB0BW_pricingTable th:first-child,.fnB0BW_pricingTable td:first-child{width:34%}.fnB0BW_pricingTable td:first-child{white-space:normal}.fnB0BW_pricingSection .fnB0BW_pricingTable th:first-child,.fnB0BW_pricingSection .fnB0BW_pricingTable td:first-child{width:26%}.fnB0BW_pricingSection .fnB0BW_pricingTable th:nth-child(2),.fnB0BW_pricingSection .fnB0BW_pricingTable td:nth-child(2){width:22%}.fnB0BW_pricingSection .fnB0BW_pricingTable td.fnB0BW_pricingGroup{white-space:normal}.fnB0BW_pricingTable strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;display:block}.fnB0BW_pricingTable code{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.fnB0BW_pricingTable small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_tokenHero{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-end;gap:16px;margin:-2px 0 14px;padding:10px 0 14px;display:flex}.fnB0BW_tokenEyebrow{color:var(--fcg-brand);font-weight:650;font-size:var(--fcg-font-caption);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;display:flex}.fnB0BW_tokenPulse{corner-shape:round;background:var(--fcg-success);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%}.fnB0BW_tokenTitle{font-size:var(--fcg-font-display);letter-spacing:-.03em;margin:3px 0 0;line-height:31px}.fnB0BW_tokenSourceTabs{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:3px;display:inline-flex}.fnB0BW_tokenSourceTabs button{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;border-radius:5px;padding:5px 14px}.fnB0BW_tokenSourceTabs button:hover{background:var(--fcg-bg-hover)}.fnB0BW_tokenSourceTabs .fnB0BW_tokenSourceActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_tokenBalRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);align-items:center;gap:10px;margin-top:14px;padding:12px 16px;display:flex}.fnB0BW_tokenBalDot{corner-shape:round;background:var(--fcg-success);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%;flex:none}.fnB0BW_tokenBalDot[data-level=low]{background:var(--fcg-warn);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-warn) 18%, transparent)}.fnB0BW_tokenBalDot[data-level=danger]{background:var(--fcg-danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-danger) 18%, transparent)}.fnB0BW_tokenBalAmount{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:700}.fnB0BW_tokenBalBadge{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);white-space:nowrap;padding:2px 9px;line-height:18px}.fnB0BW_tokenBalBadge[data-level=low]{background:color-mix(in srgb, var(--fcg-warn) 13%, transparent);color:var(--fcg-warn-label)}.fnB0BW_tokenBalBadge[data-level=danger]{background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger)}.fnB0BW_tokenBalUpdated{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenBalHint{min-width:0;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fnB0BW_tokenBalRefresh{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:color var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);background:0 0;margin-left:auto;padding:4px 12px}.fnB0BW_tokenBalRefresh:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenSessionRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 16px;display:flex}.fnB0BW_tokenSessionRow strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWaste{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);flex-direction:column;gap:10px;margin-top:10px;padding:14px 16px;display:flex}.fnB0BW_tokenCacheWasteHead{align-items:baseline;gap:8px;display:flex}.fnB0BW_tokenCacheWasteHead strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body)}.fnB0BW_tokenCacheWasteClean{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStats{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_tokenCacheWasteStat{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex-direction:column;flex:120px;gap:2px;padding:8px 10px;display:flex}.fnB0BW_tokenCacheWasteStat span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStat b{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteStat[data-tone=warn] b{color:var(--fcg-warn-label)}.fnB0BW_tokenCacheWasteCauses{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_tokenCacheWasteCause{border-radius:var(--fcg-radius-full);font-size:var(--fcg-font-caption);background:color-mix(in srgb, var(--fcg-warn) 10%, transparent);color:var(--fcg-text-secondary);padding:2px 9px;line-height:18px}.fnB0BW_tokenCacheWasteCause[data-cause=idle-gap]{background:color-mix(in srgb, var(--fcg-warn) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=model-changed]{background:color-mix(in srgb, var(--fcg-danger) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=prefix-changed]{background:color-mix(in srgb, var(--fcg-text-tertiary) 12%, transparent)}.fnB0BW_tokenCacheWasteCause b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorst{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.fnB0BW_tokenCacheWasteWorst li{font-size:var(--fcg-font-caption);color:var(--fcg-text-secondary);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.fnB0BW_tokenCacheWasteWorstHead{color:var(--fcg-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.fnB0BW_tokenCacheWasteWorstModel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenCacheWasteWorstTokens{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorstCause{text-align:right;color:var(--fcg-text-tertiary)}.fnB0BW_tokenCacheWasteFoot{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:1.5}.fnB0BW_tokenSummaryGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:9px;display:grid}.fnB0BW_tokenMetric{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:4px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_tokenMetric span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenMetric strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:700;line-height:26px;overflow:hidden}.fnB0BW_tokenMetric small{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_tokenPanel{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px 16px}.fnB0BW_tokenPanelHeader{justify-content:space-between;align-items:center;gap:10px;min-height:30px;margin-bottom:10px;display:flex}.fnB0BW_tokenPanelTitle{gap:2px;min-width:0;display:grid}.fnB0BW_tokenPanelHeader strong{font-size:15px}.fnB0BW_tokenPanelKicker{color:var(--fcg-brand);font:700 var(--fcg-font-caption)/16px var(--fcg-font-mono);letter-spacing:.11em}.fnB0BW_tokenRangePills{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);scrollbar-width:none;flex-wrap:nowrap;flex:0 auto;gap:2px;max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.fnB0BW_tokenRangePills::-webkit-scrollbar{display:none}.fnB0BW_tokenRangePills button{min-height:22px;color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:none;padding:2px 8px}.fnB0BW_tokenRangePills .fnB0BW_tokenRangeActive{background:var(--fcg-brand-subtle);color:var(--fcg-brand);font-weight:650}.fnB0BW_tokenHeatFilter{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px;display:flex}.fnB0BW_tokenHeatFilterLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-right:2px}.fnB0BW_tokenHeatFilterBtn{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);max-width:150px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:2px 9px;line-height:18px;display:inline-flex;overflow:hidden}.fnB0BW_tokenHeatFilterBtn:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenHeatFilterBtnActive{background:color-mix(in srgb, var(--model-color,var(--fcg-brand)) 14%, transparent);color:var(--model-color,var(--fcg-brand));border-color:#0000;font-weight:600}.fnB0BW_tokenPillDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px}.fnB0BW_tokenChartHead{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.fnB0BW_tokenChartTitle{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_tokenChartTotal{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:650}.fnB0BW_tokenChartModel{color:var(--model-color,var(--fcg-brand));font:600 var(--fcg-font-caption)/18px var(--fcg-font-mono);margin-left:auto}.fnB0BW_tokenChartWrap{--fcg-chart-hit:#bcd7f8;--fcg-chart-miss:#7aaff0;--fcg-chart-out:#2f6fe0;--fcg-chart-tip-bg:#fff;--fcg-chart-tip-fg:#1a1a1c;--fcg-chart-tip-muted:#6b7280;min-width:0;position:relative}body[data-ds-dark-theme] .fnB0BW_tokenChartWrap{--fcg-chart-hit:#a9c8f0;--fcg-chart-miss:#5f97e8;--fcg-chart-out:#3d7ef0;--fcg-chart-tip-bg:#1f1f21;--fcg-chart-tip-fg:#f5f6f8;--fcg-chart-tip-muted:#a1a1a8}.fnB0BW_tokenChartPlot{position:relative}.fnB0BW_tokenChartGrid{background:var(--fcg-line-subtle);opacity:.8;pointer-events:none;height:1px;position:absolute;left:0;right:0}.fnB0BW_tokenChartGrid span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:11px;line-height:1;position:absolute;bottom:3px;left:0}.fnB0BW_tokenChartBar{background:var(--fcg-chart-out);transition:filter 90ms var(--fcg-ease);cursor:pointer;border-radius:3px 3px 0 0;position:absolute;bottom:0;overflow:hidden}.fnB0BW_tokenChartBar[data-active]{filter:brightness(1.14)}.fnB0BW_tokenChartBar[data-empty]{background:var(--fcg-line-subtle);opacity:.3}.fnB0BW_tokenChartCross{pointer-events:none;border-left:1px solid color-mix(in srgb, var(--fcg-text-tertiary) 40%, transparent);position:absolute;top:0;bottom:0}.fnB0BW_tokenChartSeg{width:100%;position:absolute;left:0}.fnB0BW_tokenChartSeg[data-top]{border-radius:3px 3px 0 0}.fnB0BW_tokenChartLegend{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;margin-top:6px;line-height:18px;display:flex}.fnB0BW_tokenChartLegend span{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_tokenChartLegend i{border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartTip{z-index:5;background:var(--fcg-chart-tip-bg);color:var(--fcg-chart-tip-muted);pointer-events:none;font-size:var(--fcg-font-caption);border-radius:8px;gap:3px;padding:8px 10px;line-height:14px;display:grid;position:absolute;box-shadow:0 10px 30px #00000047}.fnB0BW_tokenChartTipHead{color:var(--fcg-chart-tip-fg);justify-content:space-between;gap:14px;margin-bottom:2px;font-size:13px;display:flex}.fnB0BW_tokenChartTipHead b{font-variant-numeric:tabular-nums}.fnB0BW_tokenChartTipRow{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_tokenChartTipRow b{color:var(--fcg-chart-tip-fg);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.fnB0BW_tokenChartSwatch{background:var(--fcg-line-strong);border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartSwatch[data-tone=hit]{background:var(--fcg-chart-hit)}.fnB0BW_tokenChartSwatch[data-tone=miss]{background:var(--fcg-chart-miss)}.fnB0BW_tokenChartSwatch[data-tone=out]{background:var(--fcg-chart-out)}.fnB0BW_tokenChartSwatch[data-tone=req]{corner-shape:round;background:var(--fcg-chart-tip-muted);border-radius:50%}.fnB0BW_tokenChartAxis{height:18px;margin-top:2px;padding-left:46px;position:relative}.fnB0BW_tokenChartAxis span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.fnB0BW_tokenChartAxis span:first-child{transform:none}.fnB0BW_tokenChartAxis span:last-child{transform:translate(-100%)}.fnB0BW_tokenHeatTotals{border-top:1px solid var(--fcg-line-subtle);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:10px;padding-top:9px;display:flex}.fnB0BW_tokenHeatTotals b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;margin-right:3px;font-weight:650}.fnB0BW_tokenHeatDaily{margin-left:auto}.fnB0BW_tokenModelBars{gap:6px;margin-bottom:12px;display:grid}.fnB0BW_tokenModelBarRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;grid-template-columns:minmax(90px,180px) minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_tokenModelBarName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenModelBarTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);height:4px;overflow:hidden}.fnB0BW_tokenModelBarTrack i{border-radius:inherit;background:var(--model-color,var(--fcg-brand));height:100%;display:block}.fnB0BW_tokenModelBarRow b{color:var(--fcg-text-primary);font-weight:600}.fnB0BW_tokenModelDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px;margin-right:6px;display:inline-block}.fnB0BW_tokenNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-warn) 8%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-top:10px;padding:10px 14px}.fnB0BW_tokenGatewayTable{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);overflow-x:auto}.fnB0BW_tokenGatewayTable .fnB0BW_pricingTable{min-width:560px}.fnB0BW_tokenEmpty{min-height:90px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);place-items:center;display:grid}@media (width<=700px){.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr 1fr}}@media (width<=520px){.fnB0BW_tokenHero{flex-direction:column;align-items:flex-start}.fnB0BW_tokenTitle{font-size:22px}.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr}.fnB0BW_tokenPanelHeader{gap:6px}.fnB0BW_tokenChartTip{width:190px}.fnB0BW_tokenHeatTotals{gap:4px 10px}.fnB0BW_tokenHeatDaily{margin-left:0}.fnB0BW_tokenModelBarRow{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}}.fnB0BW_pricePair{gap:1px;min-width:0;line-height:18px;display:grid}.fnB0BW_priceOriginal{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;text-decoration:line-through;overflow:hidden}.fnB0BW_pricingTable .fnB0BW_priceCurrent,.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-brand);font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:650;display:block}.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-success)}.fnB0BW_pricingRequest{font-weight:600;color:var(--fcg-text-primary)!important}.fnB0BW_imageTiers{flex-wrap:wrap;align-items:start;gap:4px 18px;display:inline-flex}.fnB0BW_imageTier{gap:1px;min-width:0;display:grid}.fnB0BW_imageTierLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-style:normal;font-weight:600}.fnB0BW_pricingEmpty{text-align:center;color:var(--fcg-text-tertiary)!important;padding:28px!important}.fnB0BW_order{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);gap:10px;margin-top:20px;padding:18px;display:grid}.fnB0BW_orderTitle{font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:600}.fnB0BW_orderActions{flex-wrap:wrap;gap:7px;display:flex}.fnB0BW_qr{object-fit:contain;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:#fff;width:160px;max-width:100%;height:160px}.fnB0BW_qrWrap{justify-items:start;gap:8px;display:grid}.fnB0BW_textarea{resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-height:72px;color:var(--fcg-text-primary);font:inherit;transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:10px 12px;line-height:1.5}.fnB0BW_textarea:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_qrText{overflow-wrap:anywhere;max-width:min(100%,520px);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=800px){.fnB0BW_marketplaceGrid,.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_poolManager{gap:12px;display:grid}.fnB0BW_poolToolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_poolToolbarNote{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_poolToolbarActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fnB0BW_poolToggle{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:7px;display:inline-flex}.fnB0BW_poolToggle input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_poolList{gap:10px;display:grid}.fnB0BW_poolAccount{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);gap:10px;padding:12px;display:grid}.fnB0BW_poolAccount:hover{border-color:var(--fcg-line-strong);background:var(--fcg-bg-layer-2)}.fnB0BW_poolAccountHead{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolIdentity{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolMonogram{background:var(--fcg-brand-subtle);width:30px;height:30px;color:var(--fcg-brand);font:650 11px/1 var(--fcg-font-mono);letter-spacing:.02em;text-transform:uppercase;border-radius:9px;flex:none;place-items:center;display:grid}.fnB0BW_poolIdentityText{min-width:0}.fnB0BW_poolName{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:600;display:block;overflow:hidden}.fnB0BW_poolSub{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;margin-top:2px;display:block;overflow:hidden}.fnB0BW_poolChips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolChip{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);white-space:nowrap;padding:2px 8px;font-size:11px;line-height:16px}.fnB0BW_poolChipLive{background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success)}.fnB0BW_poolChipWarn{background:color-mix(in srgb, var(--fcg-warn) 16%, transparent);color:var(--fcg-warn)}.fnB0BW_poolChipDanger{background:color-mix(in srgb, var(--fcg-danger) 14%, transparent);color:var(--fcg-danger)}.fnB0BW_poolMeterRow{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_poolMeterTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:5px;display:block;overflow:hidden}.fnB0BW_poolMeterFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s var(--fcg-ease);display:block}.fnB0BW_poolMeterFillWarn{background:var(--fcg-warn)}.fnB0BW_poolMeterFillDanger{background:var(--fcg-danger)}.fnB0BW_poolMetric{color:var(--fcg-text-secondary);font:600 var(--fcg-font-caption)/1 var(--fcg-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.fnB0BW_poolActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=520px){.fnB0BW_poolAccountHead{flex-wrap:wrap;align-items:flex-start}.fnB0BW_poolIdentity{flex-basis:100%}.fnB0BW_poolActions{justify-content:flex-start}.fnB0BW_mcpServerCard{flex-direction:column;align-items:flex-start}.fnB0BW_mcpServerActions{justify-content:flex-start}.fnB0BW_skillPanelHeader,.fnB0BW_pricingHeader{flex-direction:column;align-items:flex-start;gap:7px}.fnB0BW_pricingSearch{width:100%}.fnB0BW_marketplaceControls,.fnB0BW_mcpMarketplaceGrid,.fnB0BW_marketplaceGrid{grid-template-columns:1fr}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_capabilityCommunityHeader{flex-direction:column;align-items:flex-start}.fnB0BW_communityFilterBar{gap:8px}.fnB0BW_communityInstalledEntry{padding-inline:8px}.fnB0BW_routingCell{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-template-columns:1fr;gap:2px}.fnB0BW_authForm,.fnB0BW_capabilityForm{grid-template-columns:1fr}.fnB0BW_authFull,.fnB0BW_capabilityFull{grid-column:auto}.fnB0BW_capabilityStats{grid-template-columns:1fr}.fnB0BW_accountRow{flex-direction:column;align-items:flex-start}.fnB0BW_accountActions{justify-content:flex-start}.fnB0BW_plans{grid-template-columns:repeat(2,minmax(0,1fr))}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_communityRestart{flex-direction:column;align-items:flex-start}.fnB0BW_communityModalBackdrop{padding:10px}.fnB0BW_communityModal{max-height:95vh;padding:14px}.fnB0BW_communityModalStats{flex-direction:column;align-items:flex-start;gap:4px}}@media (width<=360px){.fnB0BW_plans{grid-template-columns:1fr}}.fnB0BW_statGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));display:grid}.fnB0BW_statCell{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:2px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_statLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_statValue{color:var(--fcg-text-primary);font-size:var(--fcg-font-title);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}.fnB0BW_details{margin-top:var(--fcg-space-2)}.fnB0BW_detailsSummary{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);padding:5px 0;line-height:18px}.fnB0BW_detailsSummary:hover{color:var(--fcg-text-primary)}.fnB0BW_detailsSummary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}.fnB0BW_chipGrid{padding:var(--fcg-space-1) 0 var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_statChip{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;padding:3px 9px;line-height:18px;display:inline-flex}.fnB0BW_statChip b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:650}.fnB0BW_statChipIdle{color:var(--fcg-text-tertiary);opacity:.62}.fnB0BW_statChipIdle b{color:var(--fcg-text-tertiary)}@media (width<=520px){.fnB0BW_statGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_toggleGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-2);grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.fnB0BW_toggleCard{justify-content:space-between;align-items:center;gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);padding:9px 11px;display:flex}.fnB0BW_toggleCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_toggleCardDisabled{cursor:not-allowed;opacity:.55}.fnB0BW_toggleCardDisabled:hover{border-color:var(--fcg-line-subtle);background:var(--fcg-bg-layer-1)}.fnB0BW_toggleCardText{gap:1px;min-width:0;display:grid}.fnB0BW_toggleCardText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:18px;overflow:hidden}.fnB0BW_toggleCardText small{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_toggleCardNote{color:var(--fcg-warn-label);font-size:11px;line-height:15px}.fnB0BW_tuningGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.fnB0BW_tuningCell{gap:4px;min-width:0;display:grid}.fnB0BW_tuningLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_tuningHint{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_tuningCell .fnB0BW_select{min-height:32px;padding:5px 9px}.fnB0BW_subGroup{gap:var(--fcg-space-2);margin-top:var(--fcg-space-4);display:grid}.fnB0BW_subGroupLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-weight:600;line-height:18px}.fnB0BW_councilJob{gap:var(--fcg-space-3);display:grid}.fnB0BW_councilJobHead{align-items:baseline;gap:var(--fcg-space-2);flex-wrap:wrap;min-width:0;display:flex}.fnB0BW_councilJobId{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.fnB0BW_councilState{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-weight:600;line-height:18px}.fnB0BW_councilStateOk{background:var(--fcg-success-subtle);color:var(--fcg-success)}.fnB0BW_councilStateBlocked{background:var(--fcg-danger-subtle);color:var(--fcg-danger)}.fnB0BW_councilStateNowrap{white-space:nowrap;word-break:keep-all;flex:none;max-width:none}.fnB0BW_councilCallout{border-left:2px solid var(--fcg-line-strong);border-radius:0 var(--fcg-radius-sm) var(--fcg-radius-sm) 0;background:var(--fcg-bg-layer-2);gap:2px;padding:9px 11px;display:grid}.fnB0BW_councilCallout p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.fnB0BW_councilCalloutBlocked{border-left-color:var(--fcg-danger);background:color-mix(in srgb, var(--fcg-danger) 6%, var(--fcg-bg-layer-2))}.fnB0BW_findingList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fnB0BW_findingRow{align-items:start;gap:var(--fcg-space-2);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:auto minmax(0,1fr) auto;padding:8px 10px;display:grid}.fnB0BW_findingBody{gap:2px;min-width:0;display:grid}.fnB0BW_findingTitle{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;line-height:18px}.fnB0BW_findingEvidence{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:17px}.fnB0BW_findingEngine{color:var(--fcg-text-tertiary);white-space:nowrap;flex:none;font-size:11px;line-height:18px}.fnB0BW_findingSeverity{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);color:var(--fcg-text-secondary);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;flex:none;padding:1px 7px;font-size:10px;font-weight:600;line-height:16px}@media (width<=520px){.fnB0BW_toggleGrid,.fnB0BW_tuningGrid{grid-template-columns:1fr}.fnB0BW_findingRow{grid-template-columns:auto minmax(0,1fr)}.fnB0BW_findingEngine{grid-column:2}}.fnB0BW_engineeringHeader{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);display:flex}.fnB0BW_engineeringHeader>div:first-child{gap:3px;min-width:0;display:grid}.fnB0BW_engineeringHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg)}.fnB0BW_engineeringHeader small{max-width:620px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineeringKicker{color:var(--fcg-text-tertiary);letter-spacing:.08em;font-size:11px;font-weight:650}.fnB0BW_engineeringSummary{margin-top:var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_engineeringSummary span{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_engineeringSummary b{color:var(--fcg-text-primary)}.fnB0BW_actionMenu{position:relative}.fnB0BW_actionMenu summary{list-style:none}.fnB0BW_actionMenu summary::-webkit-details-marker{display:none}.fnB0BW_actionMenuPop{z-index:4;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-width:150px;box-shadow:var(--fcg-shadow-2);gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 5px);right:0}.fnB0BW_actionMenuPop .fnB0BW_button{background:0 0;border-color:#0000;justify-content:flex-start}.fnB0BW_actionMenuPop .fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_engineeringComposer{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);padding:var(--fcg-space-3);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:minmax(0,1fr) auto;display:grid}.fnB0BW_engineeringComposer .fnB0BW_input{min-width:0}@media (width<=520px){.fnB0BW_engineeringHeader{flex-direction:column}.fnB0BW_engineeringComposer{grid-template-columns:1fr}}.fnB0BW_composerLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-bottom:5px;font-weight:600;line-height:16px;display:block}.fnB0BW_engineeringComposer>div{min-width:0}.fnB0BW_engineeringComposer>div:first-child,.fnB0BW_engineeringComposer>div:nth-child(2){align-content:start;display:grid}.fnB0BW_pricingTable .fnB0BW_priceFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);letter-spacing:.04em;padding:1px 7px;font-weight:700}.fnB0BW_paymentNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:flex-start;gap:10px;margin-top:14px;padding:10px 12px;line-height:19px;display:flex}.fnB0BW_invoicePanel{border-top:1px solid var(--fcg-line);gap:12px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_invoiceHead{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.fnB0BW_invoiceOrders{gap:6px;display:grid}.fnB0BW_invoiceOrderRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.fnB0BW_invoiceOrderText{gap:2px;min-width:0;display:grid}.fnB0BW_invoiceOrderText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_invoiceForm{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.fnB0BW_invoiceForm label{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_invoiceForm .fnB0BW_input{min-width:0}.fnB0BW_invoiceActions{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_invoiceNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_invoicePreview{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;color:var(--fcg-text-primary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);resize:vertical;padding:10px 12px;line-height:18px}.fnB0BW_invoicePanel>.fnB0BW_sectionMeta{line-height:18px}body .fnB0BW_payDialog{border:2px solid var(--pixel-ink);background:var(--pixel-face);width:min(392px,100vw - 36px);box-shadow:6px 6px 0 0 var(--pixel-ink);border-radius:0;padding-bottom:20px}.fnB0BW_payDialog h2{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;margin:0;font-weight:800}.fnB0BW_payDialog h2+button{border:1px solid var(--pixel-ink);color:var(--pixel-ink);border-radius:0}.fnB0BW_payDialog h2+button:hover{background:var(--pixel-recess)}.fnB0BW_payDialogBody{gap:12px;display:grid}.fnB0BW_payDialogHead{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);gap:3px;padding:12px;display:grid}.fnB0BW_payDialogLabel{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.fnB0BW_payDialogAmount{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:34px}.fnB0BW_payDialogMeta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px;display:flex}.fnB0BW_payDialogCredit{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_payDialogCredit strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:700}.fnB0BW_payDialogState{border:1px solid var(--pixel-ink);background:var(--pixel-face);color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);margin-left:auto;padding:2px 9px;font-size:10px;font-weight:700}.fnB0BW_payDialogSlot{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);justify-items:start;gap:10px;padding:12px;display:grid}.fnB0BW_payDialogQr{text-align:center;justify-items:center}.fnB0BW_payDialogSlot .fnB0BW_paymentNotice{border-width:2px;border-radius:0;margin-top:0}.fnB0BW_payDialogSlot .fnB0BW_payDialogElement{width:100%;min-height:0}.fnB0BW_payDialogPaid{border:2px solid color-mix(in srgb, var(--fcg-success) 42%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 10%, var(--pixel-face));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:10px 12px}.fnB0BW_payDialogNote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px;display:block}.fnB0BW_payDialogFooter{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.fnB0BW_payDialogFooter .fnB0BW_button,.fnB0BW_payDialogSlot .fnB0BW_button{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-height:40px;color:var(--fcg-text-primary);letter-spacing:.04em;box-shadow:0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;font-weight:700}.fnB0BW_payDialogFooter .fnB0BW_button:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:hover:not(:disabled){background:var(--pixel-recess)}.fnB0BW_payDialogFooter .fnB0BW_button:active:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:active:not(:disabled){box-shadow:0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary,.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary{border-color:var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary:hover:not(:disabled){border-color:var(--pixel-ink);background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_payDialogFooter .fnB0BW_button:focus-visible,.fnB0BW_payDialogSlot .fnB0BW_button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 26%, transparent), 0 3px 0 0 var(--pixel-ink);outline:none}.fnB0BW_planReviewBody{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:300px;display:grid;overflow:auto}.fnB0BW_planReviewLine{width:100%;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-align:left;background:0 0;border:0;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:2px 10px;line-height:18px;display:grid}.fnB0BW_planReviewLine:hover{background:var(--fcg-bg-hover)}.fnB0BW_planReviewLineSelected{background:var(--fcg-bg-active)}.fnB0BW_planReviewLineNumber{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-align:right}.fnB0BW_planReviewLineText{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.fnB0BW_planReviewRemark{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;padding:10px 11px;display:grid}.fnB0BW_pickerVisibilityPanel{gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);padding:12px;display:grid}.fnB0BW_pickerVisibilityPanel[data-open=false]{padding:9px 12px}.fnB0BW_pickerVisibilityToggle{width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_pickerVisibilityToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_pickerVisibilityToggle:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityGear{flex:none;align-items:center;display:inline-flex}.fnB0BW_pickerVisibilityToggleLabel{min-width:0;font-size:var(--fcg-font-caption);flex:auto;font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityBadge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-tertiary);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:600;line-height:16px}.fnB0BW_pickerVisibilityChevron{flex:none;align-items:center;transition:transform .12s;display:inline-flex}.fnB0BW_pickerVisibilityToggle[aria-expanded=true] .fnB0BW_pickerVisibilityChevron{transform:rotate(180deg)}.fnB0BW_pickerVisibilityMaster{cursor:pointer;align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityText{gap:2px;min-width:0;display:grid}.fnB0BW_pickerVisibilityText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_pickerVisibilityHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.fnB0BW_pickerVisibilityLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_pickerVisibilityActions{align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityLink{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;line-height:18px}.fnB0BW_pickerVisibilityLink:hover{text-decoration:underline}.fnB0BW_pickerVisibilityLink:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityList{scrollbar-color:var(--fcg-line-strong) transparent;scrollbar-width:thin;gap:2px;max-height:224px;display:grid;overflow-y:auto}.fnB0BW_pickerVisibilityList[data-visible=false]{opacity:.5}.fnB0BW_pickerVisibilityRow{border-radius:var(--fcg-radius-sm);cursor:pointer;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.fnB0BW_pickerVisibilityRow:hover{background:var(--fcg-bg-layer-2)}.fnB0BW_pickerVisibilityCheck{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;flex:none;margin:0}.fnB0BW_pickerVisibilityName{min-width:0;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:11px;line-height:18px;overflow:hidden}.fnB0BW_pickerVisibilityPaid{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityEmpty{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}";
18383
- const tagId$7 = "freecodego/settings-tab.module.css";
18384
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
18442
+ const css$8 = ".fnB0BW_root{box-sizing:border-box;width:100%;min-width:0;max-width:100%;color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);overflow:hidden}.fnB0BW_toolbar{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 0 12px;display:flex}.fnB0BW_toolbarTitle{min-width:0}.fnB0BW_kicker{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.08em;text-transform:uppercase;font-weight:600;line-height:18px}.fnB0BW_title{font-size:var(--fcg-font-section);margin:1px 0 0;font-weight:600;line-height:24px}.fnB0BW_toolbarAction,.fnB0BW_button{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:32px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;padding:5px 13px;line-height:18px;text-decoration:none;display:inline-flex}.fnB0BW_toolbarAction:hover,.fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_button:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_button:focus-visible,.fnB0BW_toolbarAction:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_buttonPrimary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-btn-primary-fill) 30%, transparent)}.fnB0BW_buttonPrimary{background:var(--fcg-btn-primary-fill);color:var(--fcg-text-on-brand);border-color:#0000}.fnB0BW_buttonPrimary:hover:not(:disabled){background:var(--fcg-btn-primary-hover);border-color:#0000}.fnB0BW_buttonPrimary:hover{background:var(--fcg-btn-primary-hover)}.fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_loading,.fnB0BW_error{color:var(--fcg-text-tertiary);padding:18px 0}.fnB0BW_error{color:var(--fcg-danger)}.fnB0BW_syncNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;margin:14px 0 0;padding:10px 14px;line-height:18px;display:flex}.fnB0BW_syncNoticeOffline{border-color:color-mix(in srgb, var(--fcg-warn-label) 34%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-warn-label) 7%, var(--fcg-bg-layer-1));color:var(--fcg-warn-label)}.fnB0BW_syncDot{border-radius:var(--fcg-radius-full);background:var(--fcg-brand);flex:none;width:7px;height:7px;animation:1.25s ease-in-out infinite fnB0BW_sync-pulse}.fnB0BW_syncNoticeOffline .fnB0BW_syncDot{background:var(--fcg-warn-label);animation:none}@keyframes fnB0BW_sync-pulse{50%{opacity:.38;transform:scale(.8)}}.fnB0BW_sections{gap:0;display:grid}.fnB0BW_pageTabs{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-tip);gap:4px;margin:0 0 14px;padding:3px;display:flex}.fnB0BW_pageTab{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:5px;flex:1;padding:5px 10px}.fnB0BW_pageTabActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_modelCategoryActions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;margin-top:8px;display:grid}.fnB0BW_modelCategoryActions .fnB0BW_select{width:100%;min-width:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions){align-items:start}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_pageTabs{box-sizing:border-box;grid-column:2;width:100%;margin:0}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_select{grid-area:2/1;width:100%}.fnB0BW_routingCell:has(.fnB0BW_modelCategoryActions)>.fnB0BW_modelCategoryActions{grid-area:2/2;margin-top:0}.fnB0BW_modelCategoryActions .fnB0BW_button{min-height:42px}.fnB0BW_community{min-width:0;padding:4px 0 17px}.fnB0BW_communityHeader{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 0 14px;display:flex}.fnB0BW_communityIntro{max-width:520px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:5px 0 0;line-height:18px}.fnB0BW_communityFilterBar{justify-content:space-between;align-items:center;gap:12px;padding:12px 0 2px;display:flex}.fnB0BW_communityFilters{scrollbar-width:none;gap:6px;min-width:0;display:flex;overflow-x:auto}.fnB0BW_communityFilter{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 10px}.fnB0BW_communityFilter:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityFilterActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_communityInstalledEntry{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:30px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;padding:5px 10px;font-weight:600}.fnB0BW_communityInstalledEntry:hover{background:var(--fcg-bg-hover)}.fnB0BW_communityInstalledEntryActive{border-color:var(--fcg-text-primary);background:var(--fcg-text-primary);color:var(--fcg-bg-layer-2)}.fnB0BW_capabilityCommunity{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px}.fnB0BW_capabilityCommunityHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_capabilityCommunityGrid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:9px;margin-top:11px;display:grid}.fnB0BW_marketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:13px;display:grid}.fnB0BW_capabilityCommunityCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_capabilityCommunityCard strong{font-size:var(--fcg-font-body)}.fnB0BW_capabilityCommunityCard p{min-height:36px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_capabilityCommunityCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_capabilityCommunityCard .fnB0BW_button{width:100%;margin-top:2px}.fnB0BW_capabilityCommunityTop{justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_capabilityCommunityKind{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.07em;font-weight:700}.fnB0BW_marketplaceIdentity{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_capabilityIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);width:28px;height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);object-fit:cover;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;overflow:hidden}.fnB0BW_capabilityIconMcp{border-color:color-mix(in srgb, var(--fcg-brand) 35%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 11%, var(--fcg-bg-layer-1));color:var(--fcg-brand)}.fnB0BW_marketplaceControls{grid-template-columns:minmax(0,1fr) minmax(140px,.4fr);gap:8px;margin-top:12px;display:grid}.fnB0BW_marketplaceLink{appearance:none;cursor:pointer;font:inherit;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;text-decoration:none}.fnB0BW_marketplaceLink:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_marketplacePagination{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:center;align-items:center;gap:10px;margin-top:13px;display:flex}.fnB0BW_communitySearch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;margin-top:12px;display:grid}.fnB0BW_communityGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding-top:14px;display:grid}.fnB0BW_communityCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);flex-direction:column;gap:9px;padding:12px;display:flex}.fnB0BW_communityCard:hover,.fnB0BW_communityCard:focus-visible{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-2);outline:none;transform:translateY(-1px)}.fnB0BW_communityCardTop{align-items:center;gap:8px;min-width:0;display:flex}img.fnB0BW_communityPluginIcon{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);object-fit:cover;flex:none;width:34px;height:34px;display:block;overflow:hidden}.fnB0BW_communityIdentity{gap:1px;min-width:0;display:grid}.fnB0BW_communityIdentity strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_communityIdentity small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityCategory{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-left:auto;padding:2px 6px}.fnB0BW_communityDescription{min-height:54px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:18px;display:-webkit-box;overflow:hidden}.fnB0BW_communityFeatures,.fnB0BW_communityFeatureList{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_communityStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);gap:10px;display:flex}.fnB0BW_communityState{color:var(--fcg-success);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_communityIncompatible{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);min-height:30px;color:var(--fcg-warn-label);font-size:var(--fcg-font-caption);padding:5px 8px;line-height:18px}.fnB0BW_communityInstall{width:100%;margin-top:auto}.fnB0BW_communityProgress{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityRestart{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding:10px 11px;line-height:18px;display:flex}.fnB0BW_communityFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:13px;line-height:18px;display:block}.fnB0BW_communityModalBackdrop{z-index:20;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.fnB0BW_communityModal{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-2);width:min(760px,100%);min-width:0;max-height:min(820px,92vh);box-shadow:var(--fcg-shadow-pop);flex-direction:column;gap:12px;padding:18px;display:flex;overflow:hidden}.fnB0BW_communityModalHeader{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fnB0BW_communityModalTitle{font-size:var(--fcg-font-section);margin:2px 0 0;line-height:25px}.fnB0BW_communityModalOwner{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_communityModalSummary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-body);margin:0;line-height:20px}.fnB0BW_communityModalHeader img.fnB0BW_communityPluginIcon{width:40px;height:40px;margin-top:8px}.fnB0BW_communityModalStats{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:12px;display:flex}.fnB0BW_communityModalStats a{color:var(--fcg-text-primary)}.fnB0BW_communityReadme{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);min-height:180px;overflow:auto}.fnB0BW_communityReadme pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;padding:13px}.fnB0BW_communityModalFooter{justify-content:flex-end;gap:8px;display:flex}.fnB0BW_section{border-bottom:1px solid var(--fcg-line-subtle);min-width:0;padding:24px 0}.fnB0BW_section:last-child{border-bottom:0}.fnB0BW_sectionHeader{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.fnB0BW_sectionName{font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;font-weight:650;line-height:20px}.fnB0BW_sectionMeta{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_badge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 8px;line-height:18px}.fnB0BW_badgeLive{color:var(--fcg-success)}.fnB0BW_badgeDanger{color:var(--fcg-danger)}.fnB0BW_inspectStatus{background:0 0;align-self:start}.fnB0BW_diagnosticsDump{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:240px;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;padding:8px 10px;line-height:18px;overflow:auto}.fnB0BW_grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.fnB0BW_routingGrid{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell{grid-template-columns:minmax(150px,.7fr) minmax(0,1fr);align-items:center;gap:18px;min-height:0;padding:12px 14px;display:grid}.fnB0BW_routingCell.fnB0BW_selectCell{grid-template-rows:none;align-content:normal}.fnB0BW_routingCell .fnB0BW_select{min-height:42px}.fnB0BW_routingCopy{gap:2px;min-width:0;display:grid}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-column:1/-1;grid-template-columns:minmax(150px,.7fr) auto minmax(0,1fr);align-items:center;gap:10px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_cellHint{margin-top:0}.fnB0BW_infoCell{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-width:0;padding:14px}.fnB0BW_cellLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-bottom:4px;display:block}.fnB0BW_cellValue{text-overflow:ellipsis;white-space:nowrap;font-weight:500;display:block;overflow:hidden}.fnB0BW_cellHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_feedbackRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 18px;display:flex}.fnB0BW_feedbackRow>.fnB0BW_routingCopy{flex:220px}.fnB0BW_telegramLink{flex:none;gap:7px;text-decoration:none}.fnB0BW_telegramIcon{flex:none;display:block}.fnB0BW_selectCell{gap:5px;display:grid}.fnB0BW_select,.fnB0BW_input{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-width:0;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:8px 11px}.fnB0BW_select:hover,.fnB0BW_input:hover{border-color:var(--fcg-line-strong)}.fnB0BW_select:focus,.fnB0BW_input:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_accountList{flex-direction:column;gap:8px;display:flex}.fnB0BW_accountManager{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:10px;margin-top:10px;padding:14px;display:grid}.fnB0BW_extensionList{gap:6px;margin-top:14px;display:grid}.fnB0BW_extensionRow{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:11px 12px;display:flex}.fnB0BW_extensionRow span{gap:3px;min-width:0;display:grid}.fnB0BW_extensionRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineSelect{cursor:pointer;flex:none;width:216px}.fnB0BW_switch{-webkit-appearance:none;appearance:none;border:1px solid var(--fcg-line-strong);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);cursor:pointer;width:36px;height:20px;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);outline:none;flex:none;margin:0;position:relative}.fnB0BW_switch:before{content:\"\";corner-shape:round;background:var(--fcg-bg-layer-2);width:14px;height:14px;box-shadow:var(--fcg-shadow-1);transition:transform var(--fcg-fast) var(--fcg-ease);border-radius:50%;position:absolute;top:2px;left:2px}.fnB0BW_switch:checked{border-color:var(--fcg-brand);background:var(--fcg-brand)}.fnB0BW_switch:checked:before{transform:translate(16px)}.fnB0BW_switch:hover:not(:disabled){border-color:var(--fcg-brand)}.fnB0BW_switch:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent)}.fnB0BW_switch:disabled{cursor:not-allowed;opacity:.45}.fnB0BW_capabilityForm{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px;padding:14px;display:grid}.fnB0BW_capabilityForm label{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_capabilityFormHead{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_capabilityFull{grid-column:1/-1}.fnB0BW_skillList{gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_capabilityStats div{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:12px 14px;display:grid}.fnB0BW_capabilityStats strong{font-size:var(--fcg-font-section);line-height:21px}.fnB0BW_capabilityStats small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_engineeringSection .fnB0BW_capabilityStats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.fnB0BW_manualEntry{border-top:1px solid var(--fcg-line);gap:6px;padding-top:10px;display:grid}.fnB0BW_manualEntry>small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_manualEntry summary{cursor:pointer;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryPanel{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:12px;margin-top:16px;padding:14px;display:grid}.fnB0BW_memoryHeader,.fnB0BW_memoryDetailHeader{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.fnB0BW_memoryHeader>div:first-child,.fnB0BW_memoryDetailHeader>div{gap:3px;min-width:0;display:grid}.fnB0BW_memoryHeader strong,.fnB0BW_memoryDetailHeader strong{font-size:var(--fcg-font-body)}.fnB0BW_memoryHeader small,.fnB0BW_memoryDetailHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryActions,.fnB0BW_memoryRecordActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:6px;display:flex}.fnB0BW_memoryActions .fnB0BW_button,.fnB0BW_memoryRecordActions .fnB0BW_button{min-height:26px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_memorySearchRow{align-items:center;gap:7px;display:flex}.fnB0BW_memorySearchRow .fnB0BW_input{flex:auto}.fnB0BW_memorySearchRow .fnB0BW_button{min-height:30px;font-size:var(--fcg-font-caption);flex:none;padding:4px 10px}.fnB0BW_memoryRecall{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:6px;padding:9px 11px;display:grid}.fnB0BW_memoryRecallHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.fnB0BW_memoryRecallHead span{gap:2px;min-width:0;display:grid}.fnB0BW_memoryRecallHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_memoryRecallHead .fnB0BW_button{min-height:24px;font-size:var(--fcg-font-caption);flex:none;padding:2px 8px}.fnB0BW_memoryRecallList{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_memoryRecallList span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_memoryList{gap:7px;max-height:360px;padding-right:3px;display:grid;overflow:auto}.fnB0BW_memoryRecord{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;display:grid}.fnB0BW_memoryRecordSelected{box-shadow:inset 0 0 0 1px var(--fcg-brand)}.fnB0BW_memoryRecordSelect{min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_memoryRecordSelect:disabled{cursor:not-allowed;opacity:.6}.fnB0BW_memoryRecordSelect>span{gap:3px;min-width:0;display:grid}.fnB0BW_memoryRecordSelect strong,.fnB0BW_memoryRecordSelect small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_memoryRecordSelect strong{font-size:var(--fcg-font-caption)}.fnB0BW_memoryRecordSelect small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTrust{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px;font-weight:600}.fnB0BW_memoryTrustReviewed{background:color-mix(in srgb, var(--fcg-success) 12%, var(--fcg-bg-layer-2));color:var(--fcg-success)}.fnB0BW_memoryTrustDraft{background:color-mix(in srgb, var(--fcg-warn) 13%, var(--fcg-bg-layer-2));color:var(--fcg-warn-label)}.fnB0BW_memoryDetail{border:1px solid color-mix(in srgb, var(--fcg-text-primary) 18%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:9px;padding:11px;display:grid}.fnB0BW_memoryDetail p{max-height:240px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:19px;overflow:auto}.fnB0BW_memoryTags{flex-wrap:wrap;gap:5px;display:flex}.fnB0BW_memoryTags span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);padding:2px 6px}.fnB0BW_memoryTimeline{border-top:1px solid var(--fcg-line);gap:5px;padding-top:9px;display:grid}.fnB0BW_memoryTimeline strong{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_memoryTimeline button{color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:0;overflow:hidden}.fnB0BW_memoryTimeline button:hover,.fnB0BW_memoryTimelineCurrent{color:var(--fcg-text-primary)!important}.fnB0BW_graphPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 24%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--fcg-brand) 5%, var(--fcg-bg-layer-2)), var(--fcg-bg-layer-1));gap:10px;margin-top:14px;padding:12px;display:grid}.fnB0BW_graphState{border-left:2px solid var(--fcg-brand);background:var(--fcg-bg-layer-2);gap:3px;padding:10px 11px;display:grid}.fnB0BW_graphState strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphState small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallList{gap:8px;display:grid}.fnB0BW_graphInstallRow{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.fnB0BW_graphInstallRow>div{flex:1;gap:4px;min-width:0;display:grid}.fnB0BW_graphInstallRow strong{font-size:var(--fcg-font-caption)}.fnB0BW_graphInstallRow small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_graphInstallRow .fnB0BW_input{margin-top:4px}.fnB0BW_verificationGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px;display:grid}.fnB0BW_verificationGrid article{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:4px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_verificationGrid strong{font-size:var(--fcg-font-caption);text-transform:uppercase}.fnB0BW_verificationGrid small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_verificationGrid pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;color:var(--fcg-text-secondary);font:var(--fcg-font-caption)/19px var(--fcg-font-mono);margin:0;overflow:auto}.fnB0BW_mcpTemplateBar{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:7px;margin-top:12px;display:flex}.fnB0BW_templateButton{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-sm);min-height:26px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.fnB0BW_templateButton:hover{border-style:solid;border-color:var(--fcg-text-primary);color:var(--fcg-text-primary)}.fnB0BW_mcpPresetHeading{justify-content:space-between;align-items:baseline;gap:10px;margin-top:14px;display:flex}.fnB0BW_mcpPresetHeading strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetHeading small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_mcpPresetGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpPresetCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));min-width:0;color:var(--fcg-text-primary);cursor:pointer;font:inherit;text-align:left;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px;display:grid}.fnB0BW_mcpPresetCard:hover{border-color:var(--fcg-line-strong);box-shadow:var(--fcg-shadow-1);transform:translateY(-1px)}.fnB0BW_mcpPresetCard:disabled{cursor:not-allowed;opacity:.55;transform:none}.fnB0BW_mcpPresetCard>span:not(.fnB0BW_mcpPresetIcon){gap:2px;min-width:0;display:grid}.fnB0BW_mcpPresetCard strong{font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpPresetCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_mcpPresetCard b{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;font-weight:500}.fnB0BW_mcpPresetIcon,.fnB0BW_mcpServerIcon{border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 12%, var(--fcg-bg-layer-2));width:30px;height:30px;color:var(--fcg-brand);flex:none;place-items:center;display:grid}.fnB0BW_mcpServerIcon{width:32px;height:32px}.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpMarketplaceCard{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:linear-gradient(135deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));grid-template-columns:auto minmax(0,1fr);gap:9px;min-width:0;padding:10px;display:grid}.fnB0BW_mcpMarketplaceIcon{object-fit:cover;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex:none;width:30px;height:30px}.fnB0BW_mcpMarketplaceCopy{gap:3px;min-width:0;display:grid}.fnB0BW_mcpMarketplaceCopy>div{justify-content:space-between;align-items:center;gap:6px;display:flex}.fnB0BW_mcpMarketplaceCopy strong,.fnB0BW_mcpMarketplaceCopy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpMarketplaceCopy strong{font-size:var(--fcg-font-caption)}.fnB0BW_mcpMarketplaceCopy span{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex:none;padding:2px 6px}.fnB0BW_mcpMarketplaceCopy small,.fnB0BW_mcpMarketplaceCopy em{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-style:normal;line-height:18px}.fnB0BW_mcpMarketplaceActions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_mcpMarketplaceActions a{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-decoration:none}.fnB0BW_mcpMarketplaceActions a:hover{color:var(--fcg-text-primary);text-decoration:underline}.fnB0BW_mcpMarketplaceActions .fnB0BW_button{min-height:27px;font-size:var(--fcg-font-caption);padding:3px 8px}.fnB0BW_mcpJsonPanel{border:1px solid color-mix(in srgb, var(--fcg-brand) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-brand) 4%, var(--fcg-bg-layer-1));gap:9px;margin-top:12px;padding:11px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead{grid-template-columns:1fr auto;align-items:start;gap:4px 10px;display:grid}.fnB0BW_mcpJsonPanel .fnB0BW_capabilityFormHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);grid-column:1/-1;line-height:18px}.fnB0BW_mcpJsonInput{box-sizing:border-box;resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;min-height:170px;color:var(--fcg-text-primary);font:var(--fcg-font-caption)/18px var(--fcg-font-mono);outline:none;padding:10px}.fnB0BW_mcpJsonInput:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_mcpServerList{gap:8px;margin-top:12px;display:grid}.fnB0BW_mcpServerCard{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:12px 14px;display:flex}.fnB0BW_mcpServerMain{gap:4px;min-width:0;display:grid}.fnB0BW_mcpServerMain>small{color:var(--fcg-text-tertiary);font:var(--fcg-font-caption)/16px var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_mcpServerTitle{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_mcpServerTitle strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body);overflow:hidden}.fnB0BW_mcpServerActions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:7px;display:flex}.fnB0BW_inlineSwitch{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:4px;display:inline-flex}.fnB0BW_inlineSwitch input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_emptyCapability{border:1px dashed var(--fcg-line-strong);border-radius:var(--fcg-radius-md);color:var(--fcg-text-secondary);text-align:center;gap:4px;margin-top:12px;padding:18px 14px;display:grid}.fnB0BW_emptyCapability small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillPanel{gap:8px;margin-top:14px;padding-top:1px;display:grid}.fnB0BW_skillPanelHeader{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.fnB0BW_skillPanelHeader small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillCard{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);border:1px solid #0000;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.fnB0BW_skillCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_skillCardBody{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex:1;gap:4px;padding:0;display:grid}.fnB0BW_skillCardBody:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_skillCardControl{flex:none;justify-items:end;gap:2px;padding-top:2px;display:grid}.fnB0BW_skillCardToggle{color:var(--fcg-text-tertiary);cursor:pointer;font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;display:flex}.fnB0BW_skillCardToggle input{margin:0}.fnB0BW_skillCardClear{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0}.fnB0BW_skillCardClear:disabled{opacity:.5;cursor:default}.fnB0BW_skillDetailControl{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:10px;padding:9px 12px;display:flex}.fnB0BW_skillDetailControl>small{flex-basis:100%}.fnB0BW_skillForward{margin-top:12px}.fnB0BW_skillForwardHead{gap:2px;margin-bottom:6px;display:grid}.fnB0BW_skillForwardHead strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillForwardHead small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_skillCardHead{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_skillCard strong{font-size:var(--fcg-font-caption)}.fnB0BW_skillCard p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.fnB0BW_skillCard small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_skillFileBar{flex-wrap:wrap;gap:6px;margin:12px 0 0;display:flex}.fnB0BW_skillFileChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;padding:4px 9px;overflow:hidden}.fnB0BW_skillFileChip:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_skillFileChipActive{border-color:var(--fcg-brand);color:var(--fcg-text-primary)}.fnB0BW_skillFileChip:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_workbuddyHeaderActions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.fnB0BW_accountManagerButton{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);white-space:nowrap;padding:4px 9px}.fnB0BW_accountManagerButton:hover{background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_accountRow{justify-content:space-between;align-items:center;gap:14px;min-width:0;display:flex}.fnB0BW_accountIdentity{min-width:0}.fnB0BW_accountIdentityWithAvatar{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_accountText{min-width:0}.fnB0BW_accountAvatar{border-radius:var(--fcg-radius-md);border:1px solid #0000;flex:none;place-items:center;width:42px;height:42px;display:inline-grid;overflow:hidden;box-shadow:0 2px 8px #0f172a1a}.fnB0BW_accountAvatarRemote{border-color:var(--fcg-line);background:#fff}.fnB0BW_accountAvatarRemote img{object-fit:cover;width:100%;height:100%}.fnB0BW_accountAvatarMonogram{font-size:var(--fcg-font-section);letter-spacing:-.04em;font-weight:800;line-height:1}.fnB0BW_accountAvatarQq{color:#fff;background:linear-gradient(145deg,#38bdf8,#1263bd);border-color:#1688d8}.fnB0BW_accountAvatarGoogle{background:linear-gradient(145deg, var(--fcg-bg-layer-2), var(--fcg-bg-layer-1));color:#4285f4;text-shadow:1px 0 #ea4335,0 1px #34a853,-1px 0 #fbbc05;border-color:#d8dce5}.fnB0BW_accountAvatarGeneric{border-color:var(--fcg-line);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary)}.fnB0BW_accountAvatarGeneric svg{fill:currentColor;width:22px;height:22px}.fnB0BW_accountName{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.fnB0BW_accountEmail{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block;overflow:hidden}.fnB0BW_accountActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:9px;display:flex}.fnB0BW_clineUsage{gap:7px;margin-top:4px;display:grid}.fnB0BW_clineUsageHead{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_clineUsageRow{grid-template-columns:84px minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.fnB0BW_clineUsageLabel{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);overflow:hidden}.fnB0BW_clineUsageValue{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;text-align:right}.fnB0BW_clineUsageMeter{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:4px;overflow:hidden}.fnB0BW_clineUsageFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s}.fnB0BW_clineUsageFillHigh{background:var(--fcg-warn)}.fnB0BW_balance{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-success);font-size:var(--fcg-font-body-lg);font-variant-numeric:tabular-nums;align-items:baseline;gap:7px;padding:5px 11px;font-weight:600;display:inline-flex}.fnB0BW_balanceLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);font-weight:500}.fnB0BW_authForm{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.fnB0BW_authPanel{box-sizing:border-box;border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);width:100%;box-shadow:var(--fcg-shadow-2);gap:16px;padding:26px 24px 22px;display:grid}.fnB0BW_authLayout{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:20px;margin-top:6px;display:grid}.fnB0BW_authHead{text-align:center;justify-items:center;gap:6px;display:grid}.fnB0BW_authTitle{color:var(--fcg-text-primary);letter-spacing:-.01em;font-size:17px;font-weight:650;line-height:24px}.fnB0BW_authSubtitle{max-width:300px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_authTabs{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);grid-template-columns:1fr 1fr;gap:2px;padding:3px;display:grid}.fnB0BW_authTab{min-height:32px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;border-radius:8px}.fnB0BW_authTab:hover{color:var(--fcg-text-primary)}.fnB0BW_authTab:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authTabActive{background:var(--fcg-bg-layer-1);box-shadow:var(--fcg-shadow-1);color:var(--fcg-text-primary);font-weight:600}.fnB0BW_authStack{gap:11px;display:grid}.fnB0BW_authPanel .fnB0BW_input{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-tip);min-height:42px;font-size:var(--fcg-font-body);border-color:#0000;padding:10px 13px}.fnB0BW_authPanel .fnB0BW_input::placeholder{color:var(--fcg-text-tertiary)}.fnB0BW_authPanel .fnB0BW_input:hover:not(:focus){border-color:var(--fcg-line)}.fnB0BW_authPanel .fnB0BW_input:focus{border-color:var(--fcg-brand);background:var(--fcg-bg-layer-1);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:hover,.fnB0BW_authPanel .fnB0BW_input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fcg-text-primary);box-shadow:0 0 0 60px var(--fcg-bg-tip) inset}.fnB0BW_authCodeRow{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.fnB0BW_authCodeSend{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-height:42px;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);padding:0 14px}.fnB0BW_authCodeSend:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover)}.fnB0BW_authCodeSend:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authCodeSend:disabled{cursor:not-allowed;color:var(--fcg-text-tertiary)}.fnB0BW_authSubmit{border-radius:var(--fcg-radius-md);background:var(--fcg-brand);width:100%;min-height:42px;color:var(--fcg-text-on-brand-fixed);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);letter-spacing:.01em;transition:background var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease), transform var(--fcg-fast) var(--fcg-ease);border:1px solid #0000;font-weight:600}.fnB0BW_authSubmit:hover:not(:disabled){background:var(--fcg-brand-strong)}.fnB0BW_authSubmit:active:not(:disabled){transform:translateY(1px)}.fnB0BW_authSubmit:disabled{cursor:not-allowed;opacity:.5}.fnB0BW_authSubmit:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 30%, transparent);outline:none}.fnB0BW_authNote,.fnB0BW_authStep{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-align:center;line-height:18px}.fnB0BW_authStep{color:var(--fcg-text-secondary)}.fnB0BW_authSocialRow{grid-template-columns:1fr 1fr;gap:9px;display:grid}.fnB0BW_authSocialButton{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);min-height:42px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-body);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);justify-content:center;align-items:center;gap:8px;font-weight:550;display:inline-flex}.fnB0BW_authSocialButton svg{flex:none;width:16px;height:16px}.fnB0BW_authSocialButton:hover:not(:disabled){border-color:var(--fcg-line-strong);background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.fnB0BW_authSocialButton:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_authSocialButton:disabled{cursor:progress;opacity:.6}.fnB0BW_authDivider{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);align-items:center;gap:10px;display:flex}.fnB0BW_authDivider:before,.fnB0BW_authDivider:after{background:var(--fcg-line);content:\"\";flex:1;height:1px}.fnB0BW_authNotice{border:1px solid color-mix(in srgb, var(--fcg-brand) 26%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-brand) 6%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-align:center;padding:9px 11px;line-height:18px}.fnB0BW_authNoticeAlert{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-align:left;grid-column:1/-1;justify-content:space-between;align-items:flex-start;gap:10px;padding:9px 11px;line-height:19px;display:flex}.fnB0BW_authNoticeAlert button{flex:none}.fnB0BW_authFull{grid-column:1/-1}.fnB0BW_remember{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:flex}.fnB0BW_remember input{width:15px;height:15px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_rememberRow{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.fnB0BW_passwordField{min-width:0;display:flex;position:relative}.fnB0BW_authPanel .fnB0BW_passwordField .fnB0BW_input{width:100%;padding-right:64px}.fnB0BW_passwordToggle{border-radius:var(--fcg-radius-sm);color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:4px 6px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.fnB0BW_passwordToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_paymentBar{border-bottom:1px solid var(--fcg-line-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 16px;margin-bottom:18px;padding-bottom:16px;display:grid}.fnB0BW_paymentBarDetail{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;grid-column:1/-1;line-height:17px}.fnB0BW_paymentPicker{justify-items:end;gap:6px;min-width:0;display:grid}.fnB0BW_paymentHeading{font-size:var(--fcg-font-title);letter-spacing:-.01em;color:var(--fcg-text-primary);margin-bottom:3px;font-weight:600;display:block}.fnB0BW_paymentMethod{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:8px;display:inline-flex}.fnB0BW_paymentMethod>span{white-space:nowrap;flex:none}.fnB0BW_paymentMethod .fnB0BW_select{width:auto;min-width:176px;max-width:100%}.fnB0BW_alert{border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin-bottom:10px;padding:9px 11px;line-height:18px}.fnB0BW_alert button{color:inherit;font-size:var(--fcg-font-caption);cursor:pointer;white-space:nowrap;background:0 0;border:0;margin-left:10px;padding:0;text-decoration:underline}.fnB0BW_pending{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 6%, var(--fcg-bg-layer-2));gap:8px;margin-bottom:12px;padding:10px 11px;display:grid}.fnB0BW_pendingTitle{font-weight:600}.fnB0BW_pendingHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_pendingRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:8px;display:flex}.fnB0BW_pendingText{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fnB0BW_plans,.fnB0BW_planShared,.fnB0BW_payDialog{--pixel-ink:color-mix(in srgb, var(--fcg-brand) 58%, var(--fcg-text-primary));--pixel-face:var(--fcg-bg-layer-1);--pixel-recess:color-mix(in srgb, var(--fcg-text-primary) 4%, var(--fcg-bg-layer-1));--pixel-recess-edge:color-mix(in srgb, var(--pixel-ink) 26%, transparent);--pixel-recess-rule:color-mix(in srgb, var(--pixel-ink) 22%, transparent);--pixel-rule:color-mix(in srgb, var(--pixel-ink) 18%, transparent);--pixel-notch:polygon(0 8px, 4px 8px, 4px 4px, 8px 4px, 8px 0, calc(100% - 8px) 0, calc(100% - 8px) 4px, calc(100% - 4px) 4px, calc(100% - 4px) 8px, 100% 8px, 100% calc(100% - 8px), calc(100% - 4px) calc(100% - 8px), calc(100% - 4px) calc(100% - 4px), calc(100% - 8px) calc(100% - 4px), calc(100% - 8px) 100%, 8px 100%, 8px calc(100% - 4px), 4px calc(100% - 4px), 4px calc(100% - 8px), 0 calc(100% - 8px));--pixel-chip:polygon(0 3px, 3px 3px, 3px 0, calc(100% - 3px) 0, calc(100% - 3px) 3px, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 3px calc(100% - 3px), 0 calc(100% - 3px))}.fnB0BW_plans{grid-template-columns:repeat(auto-fit,minmax(236px,1fr));gap:16px;padding:0 6px 6px 0;display:grid}.fnB0BW_planShell{display:flex;position:relative}.fnB0BW_planShell:before{background:var(--pixel-ink);clip-path:var(--pixel-notch);content:\"\";transition:transform var(--fcg-fast) var(--fcg-ease);position:absolute;inset:0;transform:translate(6px,6px)}.fnB0BW_planShell:hover:before{transform:translate(8px,8px)}.fnB0BW_plan{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-width:0;clip-path:var(--pixel-notch);transition:transform var(--fcg-fast) var(--fcg-ease);flex-direction:column;flex:1;gap:11px;padding:16px 16px 14px;display:flex;position:relative}.fnB0BW_plan:hover{transform:translate(-2px,-2px)}.fnB0BW_planTop{border-bottom:2px solid var(--pixel-rule);align-items:center;gap:8px;padding-bottom:9px;display:flex}.fnB0BW_planDot{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:9px;height:9px;box-shadow:1px 1px 0 0 var(--pixel-ink);flex:none}.fnB0BW_planName{min-width:0;color:var(--fcg-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;flex:1;font-weight:800;overflow:hidden}.fnB0BW_planTag{border:1px solid var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 8px;font-size:10px;font-weight:700}.fnB0BW_planSave{border:1px solid color-mix(in srgb, var(--fcg-success) 52%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 13%, transparent);color:var(--fcg-success);letter-spacing:.04em;white-space:nowrap;clip-path:var(--pixel-chip);flex:none;padding:2px 7px;font-size:10px;font-weight:700}.fnB0BW_planFeatured .fnB0BW_planRecess{background:color-mix(in srgb, var(--fcg-brand) 8%, var(--pixel-recess))}.fnB0BW_planShared{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px;padding:10px 12px;display:flex}.fnB0BW_planShared small{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);letter-spacing:.1em;font-size:10px;font-weight:700}.fnB0BW_planShared span{align-items:center;gap:6px;display:inline-flex}.fnB0BW_planRecess{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);align-items:stretch;padding:10px 12px;display:flex}.fnB0BW_planCreditBlock{flex:auto;gap:3px;min-width:0;display:grid}.fnB0BW_planPriceLabel{color:var(--fcg-brand);letter-spacing:.08em;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.fnB0BW_planRecessCode{font-family:var(--fcg-font-mono);letter-spacing:.14em}.fnB0BW_planPriceRow{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.fnB0BW_planPrice{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1}.fnB0BW_planOriginalPrice{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-decoration:line-through}.fnB0BW_planPayBlock{border-left:2px solid var(--pixel-recess-rule);align-content:center;justify-items:end;gap:3px;margin-left:12px;padding-left:12px;display:grid}.fnB0BW_planPayLabel{color:var(--fcg-text-tertiary);font-size:10px;font-weight:600}.fnB0BW_planPayable{color:var(--fcg-brand);font-size:var(--fcg-font-title);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:800}.fnB0BW_features{border-top:2px solid var(--pixel-rule);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:6px;padding-top:10px;line-height:17px;display:grid}.fnB0BW_features>span{grid-template-columns:12px minmax(0,1fr);align-items:start;gap:8px;display:grid}.fnB0BW_planCheck{border:1px solid var(--pixel-ink);background:var(--fcg-brand);width:7px;height:7px;margin-top:5px;display:block}.fnB0BW_planFeatureText{min-width:0}.fnB0BW_planButton{border:2px solid var(--pixel-ink);background:var(--fcg-brand);width:100%;min-height:40px;color:var(--fcg-text-on-brand-fixed);letter-spacing:.04em;box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;margin-top:auto;font-weight:700}.fnB0BW_planButton:hover:not(:disabled){background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_planButton:active:not(:disabled){box-shadow:inset 0 1px 0 0 #0000002e, 0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_planBlurb{gap:3px;display:grid}.fnB0BW_planPerk{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planLead{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_planFootnote{color:var(--fcg-text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.fnB0BW_planDotOk{background:var(--fcg-success);flex:none;width:6px;height:6px}.fnB0BW_planBrandMark{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.05em;margin-left:auto;font-size:10px;font-weight:700}.fnB0BW_pricingSection{border-top:1px solid var(--fcg-line);gap:10px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_pricingHeader{justify-content:space-between;align-items:end;gap:14px;display:flex}.fnB0BW_pricingHeader>div{gap:3px;display:grid}.fnB0BW_pricingSearch{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:min(250px,100%);min-height:32px;color:var(--fcg-text-primary);font:inherit;font-size:var(--fcg-font-caption);outline:none;padding:6px 10px}.fnB0BW_pricingSearch:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_pricingNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_pricingTableWrap{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:100%;overflow:auto hidden}.fnB0BW_pricingTable{table-layout:fixed;border-collapse:collapse;width:100%;min-width:660px;font-size:var(--fcg-font-caption)}.fnB0BW_pricingTable th{border-bottom:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-1);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;text-align:left;white-space:nowrap;padding:10px 14px;font-weight:600}.fnB0BW_pricingTable td{border-bottom:1px solid var(--fcg-line-subtle);color:var(--fcg-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;padding:10px 12px}.fnB0BW_pricingTable tbody tr:last-child td{border-bottom:0}.fnB0BW_pricingTable tbody tr:hover{background:var(--fcg-bg-hover)}.fnB0BW_pricingFreeSection{border-top:1px dashed var(--fcg-line-subtle);gap:8px;margin-top:6px;padding-top:14px;display:grid}.fnB0BW_pricingFreeHeader{gap:2px;display:grid}.fnB0BW_pricingFreeHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:650}.fnB0BW_paymentMethods{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-top:0;display:flex}.fnB0BW_paymentMethodChip{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.01em;white-space:nowrap;padding:2px 9px;font-weight:550}@media (width<=520px){.fnB0BW_paymentBar{grid-template-columns:minmax(0,1fr)}.fnB0BW_paymentPicker{justify-items:stretch}.fnB0BW_paymentMethod .fnB0BW_select{width:100%}.fnB0BW_paymentMethods{justify-content:flex-start}}.fnB0BW_pricingTable th:first-child,.fnB0BW_pricingTable td:first-child{width:34%}.fnB0BW_pricingTable td:first-child{white-space:normal}.fnB0BW_pricingSection .fnB0BW_pricingTable th:first-child,.fnB0BW_pricingSection .fnB0BW_pricingTable td:first-child{width:26%}.fnB0BW_pricingSection .fnB0BW_pricingTable th:nth-child(2),.fnB0BW_pricingSection .fnB0BW_pricingTable td:nth-child(2){width:22%}.fnB0BW_pricingSection .fnB0BW_pricingTable td.fnB0BW_pricingGroup{white-space:normal}.fnB0BW_pricingTable strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;display:block}.fnB0BW_pricingTable code{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;display:block;overflow:hidden}.fnB0BW_pricingTable small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-top:3px;display:block}.fnB0BW_tokenHero{border-bottom:1px solid var(--fcg-line);justify-content:space-between;align-items:flex-end;gap:16px;margin:-2px 0 14px;padding:10px 0 14px;display:flex}.fnB0BW_tokenEyebrow{color:var(--fcg-brand);font-weight:650;font-size:var(--fcg-font-caption);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;display:flex}.fnB0BW_tokenPulse{corner-shape:round;background:var(--fcg-success);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%}.fnB0BW_tokenTitle{font-size:var(--fcg-font-display);letter-spacing:-.03em;margin:3px 0 0;line-height:31px}.fnB0BW_tokenSourceTabs{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);gap:2px;padding:3px;display:inline-flex}.fnB0BW_tokenSourceTabs button{min-height:30px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;border-radius:5px;padding:5px 14px}.fnB0BW_tokenSourceTabs button:hover{background:var(--fcg-bg-hover)}.fnB0BW_tokenSourceTabs .fnB0BW_tokenSourceActive{background:var(--fcg-bg-layer-2);color:var(--fcg-text-primary);box-shadow:var(--fcg-shadow-1);font-weight:600}.fnB0BW_tokenBalRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);align-items:center;gap:10px;margin-top:14px;padding:12px 16px;display:flex}.fnB0BW_tokenBalDot{corner-shape:round;background:var(--fcg-success);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-success) 18%, transparent);border-radius:50%;flex:none}.fnB0BW_tokenBalDot[data-level=low]{background:var(--fcg-warn);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-warn) 18%, transparent)}.fnB0BW_tokenBalDot[data-level=danger]{background:var(--fcg-danger);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-danger) 18%, transparent)}.fnB0BW_tokenBalAmount{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:20px;font-weight:700}.fnB0BW_tokenBalBadge{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);white-space:nowrap;padding:2px 9px;line-height:18px}.fnB0BW_tokenBalBadge[data-level=low]{background:color-mix(in srgb, var(--fcg-warn) 13%, transparent);color:var(--fcg-warn-label)}.fnB0BW_tokenBalBadge[data-level=danger]{background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger)}.fnB0BW_tokenBalUpdated{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenBalHint{min-width:0;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fnB0BW_tokenBalRefresh{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);min-height:28px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);transition:color var(--fcg-fast) var(--fcg-ease), border-color var(--fcg-fast) var(--fcg-ease);background:0 0;margin-left:auto;padding:4px 12px}.fnB0BW_tokenBalRefresh:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenSessionRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px 16px;display:flex}.fnB0BW_tokenSessionRow strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWaste{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);flex-direction:column;gap:10px;margin-top:10px;padding:14px 16px;display:flex}.fnB0BW_tokenCacheWasteHead{align-items:baseline;gap:8px;display:flex}.fnB0BW_tokenCacheWasteHead strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body)}.fnB0BW_tokenCacheWasteClean{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStats{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_tokenCacheWasteStat{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);flex-direction:column;flex:120px;gap:2px;padding:8px 10px;display:flex}.fnB0BW_tokenCacheWasteStat span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_tokenCacheWasteStat b{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteStat[data-tone=warn] b{color:var(--fcg-warn-label)}.fnB0BW_tokenCacheWasteCauses{flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_tokenCacheWasteCause{border-radius:var(--fcg-radius-full);font-size:var(--fcg-font-caption);background:color-mix(in srgb, var(--fcg-warn) 10%, transparent);color:var(--fcg-text-secondary);padding:2px 9px;line-height:18px}.fnB0BW_tokenCacheWasteCause[data-cause=idle-gap]{background:color-mix(in srgb, var(--fcg-warn) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=model-changed]{background:color-mix(in srgb, var(--fcg-danger) 10%, transparent)}.fnB0BW_tokenCacheWasteCause[data-cause=prefix-changed]{background:color-mix(in srgb, var(--fcg-text-tertiary) 12%, transparent)}.fnB0BW_tokenCacheWasteCause b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorst{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.fnB0BW_tokenCacheWasteWorst li{font-size:var(--fcg-font-caption);color:var(--fcg-text-secondary);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.fnB0BW_tokenCacheWasteWorstHead{color:var(--fcg-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.fnB0BW_tokenCacheWasteWorstModel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenCacheWasteWorstTokens{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteWorstCause{text-align:right;color:var(--fcg-text-tertiary)}.fnB0BW_tokenCacheWasteFoot{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums}.fnB0BW_tokenCacheWasteHint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:1.5}.fnB0BW_tokenSummaryGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:9px;display:grid}.fnB0BW_tokenMetric{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:4px;min-width:0;padding:12px 14px;display:grid}.fnB0BW_tokenMetric span{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenMetric strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:700;line-height:26px;overflow:hidden}.fnB0BW_tokenMetric small{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.fnB0BW_tokenPanel{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);margin-top:12px;padding:14px 16px}.fnB0BW_tokenPanelHeader{justify-content:space-between;align-items:center;gap:10px;min-height:30px;margin-bottom:10px;display:flex}.fnB0BW_tokenPanelTitle{gap:2px;min-width:0;display:grid}.fnB0BW_tokenPanelHeader strong{font-size:15px}.fnB0BW_tokenPanelKicker{color:var(--fcg-brand);font:700 var(--fcg-font-caption)/16px var(--fcg-font-mono);letter-spacing:.11em}.fnB0BW_tokenRangePills{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);scrollbar-width:none;flex-wrap:nowrap;flex:0 auto;gap:2px;max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.fnB0BW_tokenRangePills::-webkit-scrollbar{display:none}.fnB0BW_tokenRangePills button{min-height:22px;color:var(--fcg-text-tertiary);cursor:pointer;font:var(--fcg-font-caption)/16px var(--fcg-font-mono);white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:none;padding:2px 8px}.fnB0BW_tokenRangePills .fnB0BW_tokenRangeActive{background:var(--fcg-brand-subtle);color:var(--fcg-brand);font-weight:650}.fnB0BW_tokenHeatFilter{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px;display:flex}.fnB0BW_tokenHeatFilterLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin-right:2px}.fnB0BW_tokenHeatFilterBtn{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);max-width:150px;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:2px 9px;line-height:18px;display:inline-flex;overflow:hidden}.fnB0BW_tokenHeatFilterBtn:hover{border-color:var(--fcg-line-strong);color:var(--fcg-text-primary)}.fnB0BW_tokenHeatFilterBtnActive{background:color-mix(in srgb, var(--model-color,var(--fcg-brand)) 14%, transparent);color:var(--model-color,var(--fcg-brand));border-color:#0000;font-weight:600}.fnB0BW_tokenPillDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px}.fnB0BW_tokenChartHead{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.fnB0BW_tokenChartTitle{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-weight:600}.fnB0BW_tokenChartTotal{color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:650}.fnB0BW_tokenChartModel{color:var(--model-color,var(--fcg-brand));font:600 var(--fcg-font-caption)/18px var(--fcg-font-mono);margin-left:auto}.fnB0BW_tokenChartWrap{--fcg-chart-hit:#bcd7f8;--fcg-chart-miss:#7aaff0;--fcg-chart-out:#2f6fe0;--fcg-chart-tip-bg:#fff;--fcg-chart-tip-fg:#1a1a1c;--fcg-chart-tip-muted:#6b7280;min-width:0;position:relative}body[data-ds-dark-theme] .fnB0BW_tokenChartWrap{--fcg-chart-hit:#a9c8f0;--fcg-chart-miss:#5f97e8;--fcg-chart-out:#3d7ef0;--fcg-chart-tip-bg:#1f1f21;--fcg-chart-tip-fg:#f5f6f8;--fcg-chart-tip-muted:#a1a1a8}.fnB0BW_tokenChartPlot{position:relative}.fnB0BW_tokenChartGrid{background:var(--fcg-line-subtle);opacity:.8;pointer-events:none;height:1px;position:absolute;left:0;right:0}.fnB0BW_tokenChartGrid span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;font-size:11px;line-height:1;position:absolute;bottom:3px;left:0}.fnB0BW_tokenChartBar{background:var(--fcg-chart-out);transition:filter 90ms var(--fcg-ease);cursor:pointer;border-radius:3px 3px 0 0;position:absolute;bottom:0;overflow:hidden}.fnB0BW_tokenChartBar[data-active]{filter:brightness(1.14)}.fnB0BW_tokenChartBar[data-empty]{background:var(--fcg-line-subtle);opacity:.3}.fnB0BW_tokenChartCross{pointer-events:none;border-left:1px solid color-mix(in srgb, var(--fcg-text-tertiary) 40%, transparent);position:absolute;top:0;bottom:0}.fnB0BW_tokenChartSeg{width:100%;position:absolute;left:0}.fnB0BW_tokenChartSeg[data-top]{border-radius:3px 3px 0 0}.fnB0BW_tokenChartLegend{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;margin-top:6px;line-height:18px;display:flex}.fnB0BW_tokenChartLegend span{align-items:center;gap:6px;min-width:0;display:inline-flex}.fnB0BW_tokenChartLegend i{border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartTip{z-index:5;background:var(--fcg-chart-tip-bg);color:var(--fcg-chart-tip-muted);pointer-events:none;font-size:var(--fcg-font-caption);border-radius:8px;gap:3px;padding:8px 10px;line-height:14px;display:grid;position:absolute;box-shadow:0 10px 30px #00000047}.fnB0BW_tokenChartTipHead{color:var(--fcg-chart-tip-fg);justify-content:space-between;gap:14px;margin-bottom:2px;font-size:13px;display:flex}.fnB0BW_tokenChartTipHead b{font-variant-numeric:tabular-nums}.fnB0BW_tokenChartTipRow{align-items:center;gap:7px;min-width:0;display:flex}.fnB0BW_tokenChartTipRow b{color:var(--fcg-chart-tip-fg);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.fnB0BW_tokenChartSwatch{background:var(--fcg-line-strong);border-radius:2px;flex:none;width:8px;height:8px}.fnB0BW_tokenChartSwatch[data-tone=hit]{background:var(--fcg-chart-hit)}.fnB0BW_tokenChartSwatch[data-tone=miss]{background:var(--fcg-chart-miss)}.fnB0BW_tokenChartSwatch[data-tone=out]{background:var(--fcg-chart-out)}.fnB0BW_tokenChartSwatch[data-tone=req]{corner-shape:round;background:var(--fcg-chart-tip-muted);border-radius:50%}.fnB0BW_tokenChartAxis{height:18px;margin-top:2px;padding-left:46px;position:relative}.fnB0BW_tokenChartAxis span{color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;position:absolute;transform:translate(-50%)}.fnB0BW_tokenChartAxis span:first-child{transform:none}.fnB0BW_tokenChartAxis span:last-child{transform:translate(-100%)}.fnB0BW_tokenHeatTotals{border-top:1px solid var(--fcg-line-subtle);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:10px;padding-top:9px;display:flex}.fnB0BW_tokenHeatTotals b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;margin-right:3px;font-weight:650}.fnB0BW_tokenHeatDaily{margin-left:auto}.fnB0BW_tokenModelBars{gap:6px;margin-bottom:12px;display:grid}.fnB0BW_tokenModelBarRow{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;grid-template-columns:minmax(90px,180px) minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_tokenModelBarName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fnB0BW_tokenModelBarTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);height:4px;overflow:hidden}.fnB0BW_tokenModelBarTrack i{border-radius:inherit;background:var(--model-color,var(--fcg-brand));height:100%;display:block}.fnB0BW_tokenModelBarRow b{color:var(--fcg-text-primary);font-weight:600}.fnB0BW_tokenModelDot{corner-shape:round;background:var(--model-color,var(--fcg-text-tertiary));border-radius:50%;flex:none;width:7px;height:7px;margin-right:6px;display:inline-block}.fnB0BW_tokenNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 35%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-warn) 8%, var(--fcg-bg-layer-1));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-top:10px;padding:10px 14px}.fnB0BW_tokenGatewayTable{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);overflow-x:auto}.fnB0BW_tokenGatewayTable .fnB0BW_pricingTable{min-width:560px}.fnB0BW_tokenEmpty{min-height:90px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);place-items:center;display:grid}@media (width<=700px){.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr 1fr}}@media (width<=520px){.fnB0BW_tokenHero{flex-direction:column;align-items:flex-start}.fnB0BW_tokenTitle{font-size:22px}.fnB0BW_tokenSummaryGrid{grid-template-columns:1fr}.fnB0BW_tokenPanelHeader{gap:6px}.fnB0BW_tokenChartTip{width:190px}.fnB0BW_tokenHeatTotals{gap:4px 10px}.fnB0BW_tokenHeatDaily{margin-left:0}.fnB0BW_tokenModelBarRow{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}}.fnB0BW_pricePair{gap:1px;min-width:0;line-height:18px;display:grid}.fnB0BW_priceOriginal{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;text-decoration:line-through;overflow:hidden}.fnB0BW_pricingTable .fnB0BW_priceCurrent,.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-brand);font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:650;display:block}.fnB0BW_pricingTable .fnB0BW_priceCurrentDiscount{color:var(--fcg-success)}.fnB0BW_pricingRequest{font-weight:600;color:var(--fcg-text-primary)!important}.fnB0BW_imageTiers{flex-wrap:wrap;align-items:start;gap:4px 18px;display:inline-flex}.fnB0BW_imageTier{gap:1px;min-width:0;display:grid}.fnB0BW_imageTierLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-style:normal;font-weight:600}.fnB0BW_pricingEmpty{text-align:center;color:var(--fcg-text-tertiary)!important;padding:28px!important}.fnB0BW_order{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);gap:10px;margin-top:20px;padding:18px;display:grid}.fnB0BW_orderTitle{font-size:var(--fcg-font-body);letter-spacing:-.01em;font-weight:600}.fnB0BW_orderActions{flex-wrap:wrap;gap:7px;display:flex}.fnB0BW_qr{object-fit:contain;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:#fff;width:160px;max-width:100%;height:160px}.fnB0BW_qrWrap{justify-items:start;gap:8px;display:grid}.fnB0BW_textarea{resize:vertical;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);width:100%;min-height:72px;color:var(--fcg-text-primary);font:inherit;transition:border-color var(--fcg-fast) var(--fcg-ease), box-shadow var(--fcg-fast) var(--fcg-ease);outline:none;padding:10px 12px;line-height:1.5}.fnB0BW_textarea:focus{border-color:var(--fcg-brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 16%, transparent)}.fnB0BW_qrText{overflow-wrap:anywhere;max-width:min(100%,520px);color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=800px){.fnB0BW_marketplaceGrid,.fnB0BW_mcpMarketplaceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_poolManager{gap:12px;display:grid}.fnB0BW_poolToolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.fnB0BW_poolToolbarNote{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_poolToolbarActions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fnB0BW_poolToggle{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);align-items:center;gap:7px;display:inline-flex}.fnB0BW_poolToggle input{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;margin:0}.fnB0BW_poolList{gap:10px;display:grid}.fnB0BW_poolAccount{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);gap:10px;padding:12px;display:grid}.fnB0BW_poolAccount:hover{border-color:var(--fcg-line-strong);background:var(--fcg-bg-layer-2)}.fnB0BW_poolAccountHead{align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolIdentity{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.fnB0BW_poolMonogram{background:var(--fcg-brand-subtle);width:30px;height:30px;color:var(--fcg-brand);font:650 11px/1 var(--fcg-font-mono);letter-spacing:.02em;text-transform:uppercase;border-radius:9px;flex:none;place-items:center;display:grid}.fnB0BW_poolIdentityText{min-width:0}.fnB0BW_poolName{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-primary);font-size:var(--fcg-font-body);font-weight:600;display:block;overflow:hidden}.fnB0BW_poolSub{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;margin-top:2px;display:block;overflow:hidden}.fnB0BW_poolChips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolChip{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);white-space:nowrap;padding:2px 8px;font-size:11px;line-height:16px}.fnB0BW_poolChipLive{background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success)}.fnB0BW_poolChipWarn{background:color-mix(in srgb, var(--fcg-warn) 16%, transparent);color:var(--fcg-warn)}.fnB0BW_poolChipDanger{background:color-mix(in srgb, var(--fcg-danger) 14%, transparent);color:var(--fcg-danger)}.fnB0BW_poolMeterRow{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.fnB0BW_poolMeterTrack{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);height:5px;display:block;overflow:hidden}.fnB0BW_poolMeterFill{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width .3s var(--fcg-ease);display:block}.fnB0BW_poolMeterFillWarn{background:var(--fcg-warn)}.fnB0BW_poolMeterFillDanger{background:var(--fcg-danger)}.fnB0BW_poolMetric{color:var(--fcg-text-secondary);font:600 var(--fcg-font-caption)/1 var(--fcg-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.fnB0BW_poolActions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fnB0BW_poolFootnote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}@media (width<=520px){.fnB0BW_poolAccountHead{flex-wrap:wrap;align-items:flex-start}.fnB0BW_poolIdentity{flex-basis:100%}.fnB0BW_poolActions{justify-content:flex-start}.fnB0BW_mcpServerCard{flex-direction:column;align-items:flex-start}.fnB0BW_mcpServerActions{justify-content:flex-start}.fnB0BW_skillPanelHeader,.fnB0BW_pricingHeader{flex-direction:column;align-items:flex-start;gap:7px}.fnB0BW_pricingSearch{width:100%}.fnB0BW_marketplaceControls,.fnB0BW_mcpMarketplaceGrid,.fnB0BW_marketplaceGrid{grid-template-columns:1fr}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_capabilityCommunityHeader{flex-direction:column;align-items:flex-start}.fnB0BW_communityFilterBar{gap:8px}.fnB0BW_communityInstalledEntry{padding-inline:8px}.fnB0BW_routingCell{grid-template-columns:1fr;gap:8px}.fnB0BW_routingCell:not(.fnB0BW_selectCell) .fnB0BW_routingCopy{grid-template-columns:1fr;gap:2px}.fnB0BW_authForm,.fnB0BW_capabilityForm{grid-template-columns:1fr}.fnB0BW_authFull,.fnB0BW_capabilityFull{grid-column:auto}.fnB0BW_capabilityStats{grid-template-columns:1fr}.fnB0BW_accountRow{flex-direction:column;align-items:flex-start}.fnB0BW_accountActions{justify-content:flex-start}.fnB0BW_plans{grid-template-columns:repeat(2,minmax(0,1fr))}.fnB0BW_communityGrid,.fnB0BW_capabilityCommunityGrid{grid-template-columns:1fr}.fnB0BW_communityRestart{flex-direction:column;align-items:flex-start}.fnB0BW_communityModalBackdrop{padding:10px}.fnB0BW_communityModal{max-height:95vh;padding:14px}.fnB0BW_communityModalStats{flex-direction:column;align-items:flex-start;gap:4px}}@media (width<=360px){.fnB0BW_plans{grid-template-columns:1fr}}.fnB0BW_statGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(112px,1fr));display:grid}.fnB0BW_statCell{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);gap:2px;min-width:0;padding:10px 12px;display:grid}.fnB0BW_statLabel{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_statValue{color:var(--fcg-text-primary);font-size:var(--fcg-font-title);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}.fnB0BW_details{margin-top:var(--fcg-space-2)}.fnB0BW_detailsSummary{color:var(--fcg-text-secondary);cursor:pointer;font-size:var(--fcg-font-caption);padding:5px 0;line-height:18px}.fnB0BW_detailsSummary:hover{color:var(--fcg-text-primary)}.fnB0BW_detailsSummary:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}.fnB0BW_chipGrid{padding:var(--fcg-space-1) 0 var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_statChip{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;gap:6px;padding:3px 9px;line-height:18px;display:inline-flex}.fnB0BW_statChip b{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:650}.fnB0BW_statChipIdle{color:var(--fcg-text-tertiary);opacity:.62}.fnB0BW_statChipIdle b{color:var(--fcg-text-tertiary)}@media (width<=520px){.fnB0BW_statGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.fnB0BW_toggleGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-2);grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.fnB0BW_toggleCard{justify-content:space-between;align-items:center;gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);cursor:pointer;min-width:0;transition:border-color var(--fcg-fast) var(--fcg-ease), background var(--fcg-fast) var(--fcg-ease);padding:9px 11px;display:flex}.fnB0BW_toggleCard:hover{border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.fnB0BW_toggleCardDisabled{cursor:not-allowed;opacity:.55}.fnB0BW_toggleCardDisabled:hover{border-color:var(--fcg-line-subtle);background:var(--fcg-bg-layer-1)}.fnB0BW_toggleCardText{gap:1px;min-width:0;display:grid}.fnB0BW_toggleCardText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:18px;overflow:hidden}.fnB0BW_toggleCardText small{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_toggleCardNote{color:var(--fcg-warn-label);font-size:11px;line-height:15px}.fnB0BW_tuningGrid{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.fnB0BW_tuningCell{gap:4px;min-width:0;display:grid}.fnB0BW_tuningLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.fnB0BW_tuningHint{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.fnB0BW_tuningCell .fnB0BW_select{min-height:32px;padding:5px 9px}.fnB0BW_subGroup{gap:var(--fcg-space-2);margin-top:var(--fcg-space-4);display:grid}.fnB0BW_subGroupLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);letter-spacing:.02em;font-weight:600;line-height:18px}.fnB0BW_councilJob{gap:var(--fcg-space-3);display:grid}.fnB0BW_councilJobHead{align-items:baseline;gap:var(--fcg-space-2);flex-wrap:wrap;min-width:0;display:flex}.fnB0BW_councilJobId{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.fnB0BW_councilState{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-weight:600;line-height:18px}.fnB0BW_councilStateOk{background:var(--fcg-success-subtle);color:var(--fcg-success)}.fnB0BW_councilStateBlocked{background:var(--fcg-danger-subtle);color:var(--fcg-danger)}.fnB0BW_councilStateNowrap{white-space:nowrap;word-break:keep-all;flex:none;max-width:none}.fnB0BW_councilCallout{border-left:2px solid var(--fcg-line-strong);border-radius:0 var(--fcg-radius-sm) var(--fcg-radius-sm) 0;background:var(--fcg-bg-layer-2);gap:2px;padding:9px 11px;display:grid}.fnB0BW_councilCallout p{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.fnB0BW_councilCalloutBlocked{border-left-color:var(--fcg-danger);background:color-mix(in srgb, var(--fcg-danger) 6%, var(--fcg-bg-layer-2))}.fnB0BW_findingList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fnB0BW_findingRow{align-items:start;gap:var(--fcg-space-2);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);grid-template-columns:auto minmax(0,1fr) auto;padding:8px 10px;display:grid}.fnB0BW_findingBody{gap:2px;min-width:0;display:grid}.fnB0BW_findingTitle{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:600;line-height:18px}.fnB0BW_findingEvidence{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:17px}.fnB0BW_findingEngine{color:var(--fcg-text-tertiary);white-space:nowrap;flex:none;font-size:11px;line-height:18px}.fnB0BW_findingSeverity{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);color:var(--fcg-text-secondary);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;flex:none;padding:1px 7px;font-size:10px;font-weight:600;line-height:16px}@media (width<=520px){.fnB0BW_toggleGrid,.fnB0BW_tuningGrid{grid-template-columns:1fr}.fnB0BW_findingRow{grid-template-columns:auto minmax(0,1fr)}.fnB0BW_findingEngine{grid-column:2}}.fnB0BW_engineeringHeader{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);display:flex}.fnB0BW_engineeringHeader>div:first-child{gap:3px;min-width:0;display:grid}.fnB0BW_engineeringHeader strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg)}.fnB0BW_engineeringHeader small{max-width:620px;color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_engineeringKicker{color:var(--fcg-text-tertiary);letter-spacing:.08em;font-size:11px;font-weight:650}.fnB0BW_engineeringSummary{margin-top:var(--fcg-space-2);flex-wrap:wrap;gap:6px;display:flex}.fnB0BW_engineeringSummary span{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:3px 9px}.fnB0BW_engineeringSummary b{color:var(--fcg-text-primary)}.fnB0BW_actionMenu{position:relative}.fnB0BW_actionMenu summary{list-style:none}.fnB0BW_actionMenu summary::-webkit-details-marker{display:none}.fnB0BW_actionMenuPop{z-index:4;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);min-width:150px;box-shadow:var(--fcg-shadow-2);gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 5px);right:0}.fnB0BW_actionMenuPop .fnB0BW_button{background:0 0;border-color:#0000;justify-content:flex-start}.fnB0BW_actionMenuPop .fnB0BW_button:hover{background:var(--fcg-bg-hover)}.fnB0BW_engineeringComposer{gap:var(--fcg-space-2);margin-top:var(--fcg-space-3);padding:var(--fcg-space-3);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);grid-template-columns:minmax(0,1fr) auto;display:grid}.fnB0BW_engineeringComposer .fnB0BW_input{min-width:0}@media (width<=520px){.fnB0BW_engineeringHeader{flex-direction:column}.fnB0BW_engineeringComposer{grid-template-columns:1fr}}.fnB0BW_composerLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);margin-bottom:5px;font-weight:600;line-height:16px;display:block}.fnB0BW_engineeringComposer>div{min-width:0}.fnB0BW_engineeringComposer>div:first-child,.fnB0BW_engineeringComposer>div:nth-child(2){align-content:start;display:grid}.fnB0BW_pricingTable .fnB0BW_priceFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 14%, transparent);color:var(--fcg-success);font-size:var(--fcg-font-caption);letter-spacing:.04em;padding:1px 7px;font-weight:700}.fnB0BW_paymentNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);justify-content:space-between;align-items:flex-start;gap:10px;margin-top:14px;padding:10px 12px;line-height:19px;display:flex}.fnB0BW_invoicePanel{border-top:1px solid var(--fcg-line);gap:12px;margin-top:20px;padding-top:18px;display:grid}.fnB0BW_invoiceHead{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.fnB0BW_invoiceOrders{gap:6px;display:grid}.fnB0BW_invoiceOrderRow{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.fnB0BW_invoiceOrderText{gap:2px;min-width:0;display:grid}.fnB0BW_invoiceOrderText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.fnB0BW_invoiceForm{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.fnB0BW_invoiceForm label{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);gap:5px;display:grid}.fnB0BW_invoiceForm .fnB0BW_input{min-width:0}.fnB0BW_invoiceActions{flex-wrap:wrap;gap:8px;display:flex}.fnB0BW_invoiceNotice{border:1px solid color-mix(in srgb, var(--fcg-warn) 38%, var(--fcg-line));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-warn) 7%, var(--fcg-bg-layer-2));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:8px 10px}.fnB0BW_invoicePreview{box-sizing:border-box;border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);width:100%;color:var(--fcg-text-primary);font-family:var(--fcg-font-mono);font-size:var(--fcg-font-caption);resize:vertical;padding:10px 12px;line-height:18px}.fnB0BW_invoicePanel>.fnB0BW_sectionMeta{line-height:18px}body .fnB0BW_payDialog{border:2px solid var(--pixel-ink);background:var(--pixel-face);width:min(392px,100vw - 36px);box-shadow:6px 6px 0 0 var(--pixel-ink);border-radius:0;padding-bottom:20px}.fnB0BW_payDialog h2{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.012em;margin:0;font-weight:800}.fnB0BW_payDialog h2+button{border:1px solid var(--pixel-ink);color:var(--pixel-ink);border-radius:0}.fnB0BW_payDialog h2+button:hover{background:var(--pixel-recess)}.fnB0BW_payDialogBody{gap:12px;display:grid}.fnB0BW_payDialogHead{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);gap:3px;padding:12px;display:grid}.fnB0BW_payDialogLabel{color:var(--fcg-brand);font-family:var(--fcg-font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:700}.fnB0BW_payDialogAmount{color:var(--fcg-text-primary);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:800;line-height:34px}.fnB0BW_payDialogMeta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:5px;display:flex}.fnB0BW_payDialogCredit{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption)}.fnB0BW_payDialogCredit strong{color:var(--fcg-text-primary);font-variant-numeric:tabular-nums;font-weight:700}.fnB0BW_payDialogState{border:1px solid var(--pixel-ink);background:var(--pixel-face);color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);letter-spacing:.06em;white-space:nowrap;clip-path:var(--pixel-chip);margin-left:auto;padding:2px 9px;font-size:10px;font-weight:700}.fnB0BW_payDialogSlot{border:2px solid var(--pixel-ink);background:var(--pixel-recess);box-shadow:inset 2px 2px 0 0 var(--pixel-recess-edge);justify-items:start;gap:10px;padding:12px;display:grid}.fnB0BW_payDialogQr{text-align:center;justify-items:center}.fnB0BW_payDialogSlot .fnB0BW_paymentNotice{border-width:2px;border-radius:0;margin-top:0}.fnB0BW_payDialogSlot .fnB0BW_payDialogElement{width:100%;min-height:0}.fnB0BW_payDialogPaid{border:2px solid color-mix(in srgb, var(--fcg-success) 42%, var(--pixel-ink));background:color-mix(in srgb, var(--fcg-success) 10%, var(--pixel-face));color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);padding:10px 12px}.fnB0BW_payDialogNote{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px;display:block}.fnB0BW_payDialogFooter{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.fnB0BW_payDialogFooter .fnB0BW_button,.fnB0BW_payDialogSlot .fnB0BW_button{border:2px solid var(--pixel-ink);background:var(--pixel-face);min-height:40px;color:var(--fcg-text-primary);letter-spacing:.04em;box-shadow:0 3px 0 0 var(--pixel-ink);transition:background var(--fcg-fast) var(--fcg-ease), box-shadow 60ms linear, transform 60ms linear;border-radius:0;font-weight:700}.fnB0BW_payDialogFooter .fnB0BW_button:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:hover:not(:disabled){background:var(--pixel-recess)}.fnB0BW_payDialogFooter .fnB0BW_button:active:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_button:active:not(:disabled){box-shadow:0 0 0 0 var(--pixel-ink);transform:translateY(3px)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary,.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary{border-color:var(--pixel-ink);background:var(--fcg-brand);color:var(--fcg-text-on-brand-fixed);box-shadow:inset 0 2px 0 0 #ffffff61, 0 3px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonPrimary:hover:not(:disabled),.fnB0BW_payDialogSlot .fnB0BW_buttonPrimary:hover:not(:disabled){border-color:var(--pixel-ink);background:var(--fcg-brand-strong);box-shadow:inset 0 2px 0 0 #ffffff7a, 0 4px 0 0 var(--pixel-ink)}.fnB0BW_payDialogFooter .fnB0BW_buttonDanger{color:var(--fcg-danger)}.fnB0BW_payDialogFooter .fnB0BW_button:focus-visible,.fnB0BW_payDialogSlot .fnB0BW_button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 26%, transparent), 0 3px 0 0 var(--pixel-ink);outline:none}.fnB0BW_planReviewBody{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-input);max-height:300px;display:grid;overflow:auto}.fnB0BW_planReviewLine{width:100%;color:var(--fcg-text-primary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);text-align:left;background:0 0;border:0;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:2px 10px;line-height:18px;display:grid}.fnB0BW_planReviewLine:hover{background:var(--fcg-bg-hover)}.fnB0BW_planReviewLineSelected{background:var(--fcg-bg-active)}.fnB0BW_planReviewLineNumber{color:var(--fcg-text-tertiary);font-family:var(--fcg-font-mono);text-align:right}.fnB0BW_planReviewLineText{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.fnB0BW_planReviewRemark{border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-2);gap:8px;padding:10px 11px;display:grid}.fnB0BW_pickerVisibilityPanel{gap:var(--fcg-space-2);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-1);padding:12px;display:grid}.fnB0BW_pickerVisibilityPanel[data-open=false]{padding:9px 12px}.fnB0BW_pickerVisibilityToggle{width:100%;color:var(--fcg-text-secondary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.fnB0BW_pickerVisibilityToggle:hover{color:var(--fcg-text-primary)}.fnB0BW_pickerVisibilityToggle:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityGear{flex:none;align-items:center;display:inline-flex}.fnB0BW_pickerVisibilityToggleLabel{min-width:0;font-size:var(--fcg-font-caption);flex:auto;font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityBadge{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-tertiary);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:600;line-height:16px}.fnB0BW_pickerVisibilityChevron{flex:none;align-items:center;transition:transform .12s;display:inline-flex}.fnB0BW_pickerVisibilityToggle[aria-expanded=true] .fnB0BW_pickerVisibilityChevron{transform:rotate(180deg)}.fnB0BW_pickerVisibilityMaster{cursor:pointer;align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityText{gap:2px;min-width:0;display:grid}.fnB0BW_pickerVisibilityText strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption);font-weight:620;line-height:18px}.fnB0BW_pickerVisibilityText small{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:17px}.fnB0BW_pickerVisibilityHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;display:flex}.fnB0BW_pickerVisibilityLabel{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}.fnB0BW_pickerVisibilityActions{align-items:center;gap:10px;display:flex}.fnB0BW_pickerVisibilityLink{color:var(--fcg-brand);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;padding:0;line-height:18px}.fnB0BW_pickerVisibilityLink:hover{text-decoration:underline}.fnB0BW_pickerVisibilityLink:focus-visible{border-radius:var(--fcg-radius-sm);box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);outline:none}.fnB0BW_pickerVisibilityList{scrollbar-color:var(--fcg-line-strong) transparent;scrollbar-width:thin;gap:2px;max-height:224px;display:grid;overflow-y:auto}.fnB0BW_pickerVisibilityList[data-visible=false]{opacity:.5}.fnB0BW_pickerVisibilityRow{border-radius:var(--fcg-radius-sm);cursor:pointer;align-items:center;gap:8px;min-width:0;padding:4px 6px;display:flex}.fnB0BW_pickerVisibilityRow:hover{background:var(--fcg-bg-layer-2)}.fnB0BW_pickerVisibilityCheck{width:14px;height:14px;accent-color:var(--fcg-brand);cursor:pointer;flex:none;margin:0}.fnB0BW_pickerVisibilityName{min-width:0;color:var(--fcg-text-secondary);font-family:var(--fcg-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:11px;line-height:18px;overflow:hidden}.fnB0BW_pickerVisibilityPaid{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-danger) 12%, transparent);color:var(--fcg-danger);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityFree{border-radius:var(--fcg-radius-full);background:color-mix(in srgb, var(--fcg-success) 12%, transparent);color:var(--fcg-success);flex:none;padding:0 6px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.fnB0BW_pickerVisibilityEmpty{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}";
18443
+ const tagId$8 = "freecodego/settings-tab.module.css";
18444
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
18385
18445
  const tag = document.createElement("style");
18386
18446
  tag.dataset.plugin = "freecodego";
18387
- tag.dataset.pluginCss = tagId$7;
18388
- tag.textContent = css$7;
18447
+ tag.dataset.pluginCss = tagId$8;
18448
+ tag.textContent = css$8;
18389
18449
  document.head.appendChild(tag);
18390
18450
  }
18391
18451
  var settings_tab_module_css_default = {
@@ -21633,13 +21693,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
21633
21693
  }
21634
21694
  //#endregion
21635
21695
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/provider-card.module.css.mjs
21636
- const css$6 = "._166XFq_card{gap:var(--fcg-space-3);padding:var(--fcg-space-4);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease);display:grid}._166XFq_card:hover{border-color:var(--fcg-line)}._166XFq_head{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_identity{align-items:center;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_mark{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:34px;height:34px;color:var(--fcg-text-secondary);flex:none;place-items:center;display:grid}._166XFq_names{gap:2px;min-width:0;display:grid}._166XFq_name{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}._166XFq_title{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}._166XFq_status{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;align-items:center;gap:6px;line-height:18px;display:inline-flex}._166XFq_statusDot{corner-shape:round;background:currentColor;border-radius:50%;width:6px;height:6px}._166XFq_statusLive{color:var(--fcg-success)}._166XFq_statusWarn{color:var(--fcg-warn-label)}._166XFq_statusIdle{color:var(--fcg-text-tertiary)}._166XFq_summary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_description{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_cloud{flex-wrap:wrap;gap:6px;display:flex}._166XFq_tag{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:3px 9px;line-height:18px;display:inline-flex;overflow:hidden}._166XFq_tagMono{font-family:var(--fcg-font-mono);font-size:11px}._166XFq_more{color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;align-self:flex-start;padding:0;line-height:18px}._166XFq_more:hover{color:var(--fcg-brand)}._166XFq_more:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}._166XFq_actions{justify-content:flex-end;align-items:center;gap:var(--fcg-space-2);flex-wrap:wrap;display:flex}._166XFq_body{gap:var(--fcg-space-2);min-width:0;display:grid}@media (width<=520px){._166XFq_head{flex-direction:column;align-items:stretch}._166XFq_status{align-self:flex-start}}._166XFq_notice{border:1px solid color-mix(in srgb, var(--fcg-success) 28%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-success) 8%, var(--fcg-bg-layer-1));color:var(--fcg-success);font-size:var(--fcg-font-caption);align-items:center;gap:7px;padding:7px 9px;font-weight:600;line-height:18px;display:flex}._166XFq_noticeDot{corner-shape:round;background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}";
21637
- const tagId$6 = "freecodego/provider-card.module.css";
21638
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
21696
+ const css$7 = "._166XFq_card{gap:var(--fcg-space-3);padding:var(--fcg-space-4);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-lg);background:var(--fcg-bg-layer-1);transition:border-color var(--fcg-fast) var(--fcg-ease);display:grid}._166XFq_card:hover{border-color:var(--fcg-line)}._166XFq_head{justify-content:space-between;align-items:flex-start;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_identity{align-items:center;gap:var(--fcg-space-3);min-width:0;display:flex}._166XFq_mark{border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:34px;height:34px;color:var(--fcg-text-secondary);flex:none;place-items:center;display:grid}._166XFq_names{gap:2px;min-width:0;display:grid}._166XFq_name{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:650;line-height:20px;overflow:hidden}._166XFq_title{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}._166XFq_status{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);white-space:nowrap;flex:none;align-items:center;gap:6px;line-height:18px;display:inline-flex}._166XFq_statusDot{corner-shape:round;background:currentColor;border-radius:50%;width:6px;height:6px}._166XFq_statusLive{color:var(--fcg-success)}._166XFq_statusWarn{color:var(--fcg-warn-label)}._166XFq_statusIdle{color:var(--fcg-text-tertiary)}._166XFq_summary{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_description{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);line-height:18px}._166XFq_cloud{flex-wrap:wrap;gap:6px;display:flex}._166XFq_tag{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);max-width:100%;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;align-items:center;padding:3px 9px;line-height:18px;display:inline-flex;overflow:hidden}._166XFq_tagMono{font-family:var(--fcg-font-mono);font-size:11px}._166XFq_more{color:var(--fcg-text-tertiary);cursor:pointer;font:inherit;font-size:var(--fcg-font-caption);background:0 0;border:0;align-self:flex-start;padding:0;line-height:18px}._166XFq_more:hover{color:var(--fcg-brand)}._166XFq_more:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--fcg-brand) 22%, transparent);border-radius:var(--fcg-radius-sm);outline:none}._166XFq_actions{justify-content:flex-end;align-items:center;gap:var(--fcg-space-2);flex-wrap:wrap;display:flex}._166XFq_body{gap:var(--fcg-space-2);min-width:0;display:grid}@media (width<=520px){._166XFq_head{flex-direction:column;align-items:stretch}._166XFq_status{align-self:flex-start}}._166XFq_notice{border:1px solid color-mix(in srgb, var(--fcg-success) 28%, var(--fcg-line-subtle));border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-success) 8%, var(--fcg-bg-layer-1));color:var(--fcg-success);font-size:var(--fcg-font-caption);align-items:center;gap:7px;padding:7px 9px;font-weight:600;line-height:18px;display:flex}._166XFq_noticeDot{corner-shape:round;background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}";
21697
+ const tagId$7 = "freecodego/provider-card.module.css";
21698
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
21639
21699
  const tag = document.createElement("style");
21640
21700
  tag.dataset.plugin = "freecodego";
21641
- tag.dataset.pluginCss = tagId$6;
21642
- tag.textContent = css$6;
21701
+ tag.dataset.pluginCss = tagId$7;
21702
+ tag.textContent = css$7;
21643
21703
  document.head.appendChild(tag);
21644
21704
  }
21645
21705
  var provider_card_module_css_default = {
@@ -22061,7 +22121,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22061
22121
  */
22062
22122
  /** Where the preference lives. Versioned: a future shape change must not be
22063
22123
  * read as this one. */
22064
- const STORAGE_KEY = "freecodego.modelPicker.visibility.v1";
22124
+ const STORAGE_KEY$1 = "freecodego.modelPicker.visibility.v1";
22065
22125
  /** Document event that announces a change to every live reader. */
22066
22126
  const MODEL_VISIBILITY_EVENT = "fcg:model-visibility-changed";
22067
22127
  /** Nothing hidden: the picker as the Host composed it. */
@@ -22119,7 +22179,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22119
22179
  }
22120
22180
  return out;
22121
22181
  }
22122
- function storage() {
22182
+ function storage$1() {
22123
22183
  try {
22124
22184
  return globalThis.localStorage;
22125
22185
  } catch {
@@ -22131,10 +22191,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22131
22191
  * @returns the stored decisions, or the empty default when nothing is stored.
22132
22192
  */
22133
22193
  function readModelPickerVisibility() {
22134
- const store = storage();
22194
+ const store = storage$1();
22135
22195
  if (store === void 0) return EMPTY_MODEL_PICKER_VISIBILITY;
22136
22196
  try {
22137
- const raw = store.getItem(STORAGE_KEY);
22197
+ const raw = store.getItem(STORAGE_KEY$1);
22138
22198
  if (raw === null || raw === "") return EMPTY_MODEL_PICKER_VISIBILITY;
22139
22199
  return normalizeModelPickerVisibility(JSON.parse(raw));
22140
22200
  } catch {
@@ -22146,9 +22206,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22146
22206
  * @param visibility - the decisions to store.
22147
22207
  */
22148
22208
  function writeModelPickerVisibility(visibility) {
22149
- const store = storage();
22209
+ const store = storage$1();
22150
22210
  try {
22151
- store?.setItem(STORAGE_KEY, JSON.stringify(normalizeModelPickerVisibility(visibility)));
22211
+ store?.setItem(STORAGE_KEY$1, JSON.stringify(normalizeModelPickerVisibility(visibility)));
22152
22212
  } catch {}
22153
22213
  document.dispatchEvent(new Event(MODEL_VISIBILITY_EVENT));
22154
22214
  }
@@ -22158,7 +22218,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
22158
22218
  */
22159
22219
  function clearModelPickerVisibility() {
22160
22220
  try {
22161
- storage()?.removeItem(STORAGE_KEY);
22221
+ storage$1()?.removeItem(STORAGE_KEY$1);
22162
22222
  } catch {}
22163
22223
  document.dispatchEvent(new Event(MODEL_VISIBILITY_EVENT));
22164
22224
  return EMPTY_MODEL_PICKER_VISIBILITY;
@@ -36924,13 +36984,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
36924
36984
  }
36925
36985
  //#endregion
36926
36986
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/toolbar-actions.module.css.mjs
36927
- const css$5 = "._0YUfBa_action,._0YUfBa_engine{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:6px;display:inline-flex}._0YUfBa_action{cursor:pointer;padding:0 9px}._0YUfBa_action:hover{color:var(--fcg-text-primary);background:var(--fcg-bg-hover)}._0YUfBa_sessionDeleteError{z-index:61;border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));max-width:min(420px,100vw - 24px);color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);align-items:center;gap:8px;padding:8px 12px;line-height:18px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}._0YUfBa_sessionDeleteError span{overflow-wrap:anywhere}._0YUfBa_sessionDeleteError button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:15px;line-height:1}._0YUfBa_engine{padding-left:9px}._0YUfBa_engineControl{align-items:center;display:inline-flex;position:relative}._0YUfBa_engineLabel{color:var(--fcg-text-tertiary)}._0YUfBa_engineSelect{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;outline:0;padding:4px 8px 4px 0}._0YUfBa_execution{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);min-height:24px;color:var(--fcg-text-tertiary);background:var(--fcg-bg-layer-2);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;padding:0 8px;display:inline-flex}._0YUfBa_executionNative{border-color:color-mix(in srgb, var(--fcg-success) 42%, var(--fcg-line));color:var(--fcg-success);background:color-mix(in srgb, var(--fcg-success) 7%, var(--fcg-bg-layer-2))}._0YUfBa_engineNotice{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-warn) 45%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:248px;color:var(--fcg-text-secondary);box-shadow:var(--fcg-shadow-2);font-size:var(--fcg-font-caption);grid-template-columns:1fr auto;gap:2px 10px;padding:10px 28px 10px 12px;line-height:1.45;display:grid;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineNotice strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption)}._0YUfBa_engineNotice span{grid-column:1/-1}._0YUfBa_engineNotice button{color:var(--fcg-text-tertiary);cursor:pointer;background:0 0;border:0;padding:0;font-size:17px;line-height:1;position:absolute;top:6px;right:7px}._0YUfBa_engineError{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));width:248px;color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);overflow-wrap:anywhere;padding:9px 12px;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineError span{display:block}._0YUfBa_engineRetry{border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:inherit;font:inherit;cursor:pointer;margin-top:6px;padding:2px 8px}._0YUfBa_engineRetry:hover{background:color-mix(in srgb, var(--fcg-danger) 12%, var(--fcg-bg-layer-2))}";
36928
- const tagId$5 = "freecodego/toolbar-actions.module.css";
36929
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
36987
+ const css$6 = "._0YUfBa_action,._0YUfBa_engine{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);min-height:28px;color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:center;gap:6px;display:inline-flex}._0YUfBa_action{cursor:pointer;padding:0 9px}._0YUfBa_action:hover{color:var(--fcg-text-primary);background:var(--fcg-bg-hover)}._0YUfBa_sessionDeleteError{z-index:61;border:1px solid color-mix(in srgb, var(--fcg-danger) 28%, transparent);border-radius:var(--fcg-radius-sm);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));max-width:min(420px,100vw - 24px);color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);align-items:center;gap:8px;padding:8px 12px;line-height:18px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%)}._0YUfBa_sessionDeleteError span{overflow-wrap:anywhere}._0YUfBa_sessionDeleteError button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:15px;line-height:1}._0YUfBa_engine{padding-left:9px}._0YUfBa_engineControl{align-items:center;display:inline-flex;position:relative}._0YUfBa_engineLabel{color:var(--fcg-text-tertiary)}._0YUfBa_engineSelect{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;outline:0;padding:4px 8px 4px 0}._0YUfBa_execution{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);min-height:24px;color:var(--fcg-text-tertiary);background:var(--fcg-bg-layer-2);font-size:var(--fcg-font-caption);white-space:nowrap;align-items:center;padding:0 8px;display:inline-flex}._0YUfBa_executionNative{border-color:color-mix(in srgb, var(--fcg-success) 42%, var(--fcg-line));color:var(--fcg-success);background:color-mix(in srgb, var(--fcg-success) 7%, var(--fcg-bg-layer-2))}._0YUfBa_engineNotice{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-warn) 45%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:var(--fcg-bg-layer-2);width:248px;color:var(--fcg-text-secondary);box-shadow:var(--fcg-shadow-2);font-size:var(--fcg-font-caption);grid-template-columns:1fr auto;gap:2px 10px;padding:10px 28px 10px 12px;line-height:1.45;display:grid;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineNotice strong{color:var(--fcg-text-primary);font-size:var(--fcg-font-caption)}._0YUfBa_engineNotice span{grid-column:1/-1}._0YUfBa_engineNotice button{color:var(--fcg-text-tertiary);cursor:pointer;background:0 0;border:0;padding:0;font-size:17px;line-height:1;position:absolute;top:6px;right:7px}._0YUfBa_engineError{z-index:20;border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-md);background:color-mix(in srgb, var(--fcg-danger) 7%, var(--fcg-bg-layer-2));width:248px;color:var(--fcg-danger);font-size:var(--fcg-font-caption);box-shadow:var(--fcg-shadow-2);overflow-wrap:anywhere;padding:9px 12px;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0}._0YUfBa_engineError span{display:block}._0YUfBa_engineRetry{border:1px solid color-mix(in srgb, var(--fcg-danger) 32%, var(--fcg-line));border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:inherit;font:inherit;cursor:pointer;margin-top:6px;padding:2px 8px}._0YUfBa_engineRetry:hover{background:color-mix(in srgb, var(--fcg-danger) 12%, var(--fcg-bg-layer-2))}";
36988
+ const tagId$6 = "freecodego/toolbar-actions.module.css";
36989
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
36930
36990
  const tag = document.createElement("style");
36931
36991
  tag.dataset.plugin = "freecodego";
36932
- tag.dataset.pluginCss = tagId$5;
36933
- tag.textContent = css$5;
36992
+ tag.dataset.pluginCss = tagId$6;
36993
+ tag.textContent = css$6;
36934
36994
  document.head.appendChild(tag);
36935
36995
  }
36936
36996
  var toolbar_actions_module_css_default = {
@@ -37006,13 +37066,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
37006
37066
  }
37007
37067
  //#endregion
37008
37068
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/web-search-provider-section.module.css.mjs
37009
- const css$4 = ".i0u2iW_section{border-top:1px solid var(--fcg-line-subtle);gap:6px;padding:16px 0 4px;display:grid}.i0u2iW_head{justify-content:space-between;align-items:center;gap:12px;display:flex}.i0u2iW_title{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);margin:0;font-weight:650;line-height:20px}.i0u2iW_hint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.i0u2iW_current{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.i0u2iW_reset{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font:inherit;font-size:var(--fcg-font-caption);cursor:pointer;padding:2px 10px}.i0u2iW_reset:hover{border-color:var(--fcg-line-strong,var(--fcg-line));color:var(--fcg-text-primary)}.i0u2iW_group{gap:4px;margin-top:6px;display:grid}.i0u2iW_provider{color:var(--fcg-text-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.i0u2iW_rows{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.i0u2iW_row{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);text-align:left;font:inherit;cursor:pointer;grid-template-columns:minmax(0,1fr);gap:1px;padding:6px 10px;display:grid}.i0u2iW_row:hover:not(:disabled){border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.i0u2iW_row:disabled{cursor:progress;opacity:.6}.i0u2iW_rowActive{border-color:color-mix(in srgb, var(--fcg-brand) 45%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 7%, var(--fcg-bg-layer-1));color:var(--fcg-text-primary)}.i0u2iW_rowLabel{color:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.i0u2iW_rowMeta{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.i0u2iW_done{color:var(--fcg-success);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.i0u2iW_problem{color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}";
37010
- const tagId$4 = "freecodego/web-search-provider-section.module.css";
37011
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
37069
+ const css$5 = ".i0u2iW_section{border-top:1px solid var(--fcg-line-subtle);gap:6px;padding:16px 0 4px;display:grid}.i0u2iW_head{justify-content:space-between;align-items:center;gap:12px;display:flex}.i0u2iW_title{color:var(--fcg-text-primary);font-size:var(--fcg-font-body-lg);margin:0;font-weight:650;line-height:20px}.i0u2iW_hint{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.i0u2iW_current{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}.i0u2iW_reset{border:1px solid var(--fcg-line);border-radius:var(--fcg-radius-full);background:var(--fcg-bg-layer-2);color:var(--fcg-text-secondary);font:inherit;font-size:var(--fcg-font-caption);cursor:pointer;padding:2px 10px}.i0u2iW_reset:hover{border-color:var(--fcg-line-strong,var(--fcg-line));color:var(--fcg-text-primary)}.i0u2iW_group{gap:4px;margin-top:6px;display:grid}.i0u2iW_provider{color:var(--fcg-text-tertiary);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.i0u2iW_rows{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.i0u2iW_row{border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-layer-1);color:var(--fcg-text-secondary);text-align:left;font:inherit;cursor:pointer;grid-template-columns:minmax(0,1fr);gap:1px;padding:6px 10px;display:grid}.i0u2iW_row:hover:not(:disabled){border-color:var(--fcg-line);background:var(--fcg-bg-layer-2)}.i0u2iW_row:disabled{cursor:progress;opacity:.6}.i0u2iW_rowActive{border-color:color-mix(in srgb, var(--fcg-brand) 45%, var(--fcg-line));background:color-mix(in srgb, var(--fcg-brand) 7%, var(--fcg-bg-layer-1));color:var(--fcg-text-primary)}.i0u2iW_rowLabel{color:inherit;font-size:var(--fcg-font-caption);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.i0u2iW_rowMeta{color:var(--fcg-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:15px;overflow:hidden}.i0u2iW_done{color:var(--fcg-success);font-size:var(--fcg-font-caption);margin:0;line-height:18px}.i0u2iW_problem{color:var(--fcg-danger);font-size:var(--fcg-font-caption);overflow-wrap:anywhere;margin:0;line-height:18px}";
37070
+ const tagId$5 = "freecodego/web-search-provider-section.module.css";
37071
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
37012
37072
  const tag = document.createElement("style");
37013
37073
  tag.dataset.plugin = "freecodego";
37014
- tag.dataset.pluginCss = tagId$4;
37015
- tag.textContent = css$4;
37074
+ tag.dataset.pluginCss = tagId$5;
37075
+ tag.textContent = css$5;
37016
37076
  document.head.appendChild(tag);
37017
37077
  }
37018
37078
  var web_search_provider_section_module_css_default = {
@@ -37374,13 +37434,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
37374
37434
  }
37375
37435
  //#endregion
37376
37436
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/design-section.module.css.mjs
37377
- const css$3 = ".sFfOKq_page{flex-direction:column;gap:18px;padding:4px 0 24px;display:flex}.sFfOKq_head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sFfOKq_title{margin:0 0 6px;font-size:15px;font-weight:600}.sFfOKq_intro{color:var(--dsh-text-secondary,#8b93a1);max-width:62ch;margin:0;font-size:12px;line-height:1.6}.sFfOKq_list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.sFfOKq_row{border:1px solid var(--dsh-border,#2b3040);border-radius:10px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.sFfOKq_rowHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.sFfOKq_rowTitle{font-size:13px;font-weight:600}.sFfOKq_rowBody{color:var(--dsh-text-secondary,#8b93a1);white-space:pre-line;font-size:12px;line-height:1.65}.sFfOKq_meta{color:var(--dsh-text-tertiary,#6d7484);font-size:11px;line-height:1.6}.sFfOKq_tools{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sFfOKq_tool{background:var(--dsh-surface-raised,#1d2130);font-family:var(--dsh-font-mono,ui-monospace, monospace);border-radius:5px;padding:2px 6px;font-size:10px}.sFfOKq_switch{cursor:pointer;flex:none;width:36px;height:20px;display:inline-flex;position:relative}.sFfOKq_switchInput{opacity:0;width:100%;height:100%;margin:0;position:absolute}.sFfOKq_track{background:var(--dsh-border,#39404f);pointer-events:none;border-radius:999px;width:100%;height:100%;transition:background .12s}.sFfOKq_track:after{content:\"\";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .12s;position:absolute;top:3px;left:3px}.sFfOKq_switchInput:checked+.sFfOKq_track{background:var(--dsh-accent,#438de7)}.sFfOKq_switchInput:checked+.sFfOKq_track:after{transform:translate(16px)}.sFfOKq_switchInput:disabled+.sFfOKq_track{cursor:not-allowed;opacity:.45}.sFfOKq_switchInput:focus-visible+.sFfOKq_track{outline:2px solid var(--dsh-accent,#438de7);outline-offset:2px}.sFfOKq_loading{color:var(--dsh-text-secondary,#8b93a1);font-size:12px}.sFfOKq_error{color:#e46c61;font-size:12px}";
37378
- const tagId$3 = "freecodego/design-section.module.css";
37379
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
37437
+ const css$4 = ".sFfOKq_page{flex-direction:column;gap:18px;padding:4px 0 24px;display:flex}.sFfOKq_head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sFfOKq_title{margin:0 0 6px;font-size:15px;font-weight:600}.sFfOKq_intro{color:var(--dsh-text-secondary,#8b93a1);max-width:62ch;margin:0;font-size:12px;line-height:1.6}.sFfOKq_list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.sFfOKq_row{border:1px solid var(--dsh-border,#2b3040);border-radius:10px;flex-direction:column;gap:10px;padding:14px 16px;display:flex}.sFfOKq_rowHead{justify-content:space-between;align-items:center;gap:12px;display:flex}.sFfOKq_rowTitle{font-size:13px;font-weight:600}.sFfOKq_rowBody{color:var(--dsh-text-secondary,#8b93a1);white-space:pre-line;font-size:12px;line-height:1.65}.sFfOKq_meta{color:var(--dsh-text-tertiary,#6d7484);font-size:11px;line-height:1.6}.sFfOKq_tools{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.sFfOKq_tool{background:var(--dsh-surface-raised,#1d2130);font-family:var(--dsh-font-mono,ui-monospace, monospace);border-radius:5px;padding:2px 6px;font-size:10px}.sFfOKq_switch{cursor:pointer;flex:none;width:36px;height:20px;display:inline-flex;position:relative}.sFfOKq_switchInput{opacity:0;width:100%;height:100%;margin:0;position:absolute}.sFfOKq_track{background:var(--dsh-border,#39404f);pointer-events:none;border-radius:999px;width:100%;height:100%;transition:background .12s}.sFfOKq_track:after{content:\"\";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .12s;position:absolute;top:3px;left:3px}.sFfOKq_switchInput:checked+.sFfOKq_track{background:var(--dsh-accent,#438de7)}.sFfOKq_switchInput:checked+.sFfOKq_track:after{transform:translate(16px)}.sFfOKq_switchInput:disabled+.sFfOKq_track{cursor:not-allowed;opacity:.45}.sFfOKq_switchInput:focus-visible+.sFfOKq_track{outline:2px solid var(--dsh-accent,#438de7);outline-offset:2px}.sFfOKq_loading{color:var(--dsh-text-secondary,#8b93a1);font-size:12px}.sFfOKq_error{color:#e46c61;font-size:12px}";
37438
+ const tagId$4 = "freecodego/design-section.module.css";
37439
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
37380
37440
  const tag = document.createElement("style");
37381
37441
  tag.dataset.plugin = "freecodego";
37382
- tag.dataset.pluginCss = tagId$3;
37383
- tag.textContent = css$3;
37442
+ tag.dataset.pluginCss = tagId$4;
37443
+ tag.textContent = css$4;
37384
37444
  document.head.appendChild(tag);
37385
37445
  }
37386
37446
  var design_section_module_css_default = {
@@ -40796,7 +40856,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40796
40856
  * them would be the strip contradicting the session it describes — and these are
40797
40857
  * the only poses whose words a reader meets at rest.
40798
40858
  */
40799
- const zh$2 = {
40859
+ const zh$3 = {
40800
40860
  idle: "空闲",
40801
40861
  wink: "眨眼",
40802
40862
  wide: "睁大眼",
@@ -40814,7 +40874,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
40814
40874
  alert: "等待你的确认"
40815
40875
  };
40816
40876
  /** {@link zh}, in English. */
40817
- const en$2 = {
40877
+ const en$3 = {
40818
40878
  idle: "Idle",
40819
40879
  wink: "Wink",
40820
40880
  wide: "Wide-eyed",
@@ -42719,13 +42779,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
42719
42779
  }
42720
42780
  //#endregion
42721
42781
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/companion/companion.module.css.mjs
42722
- const css$2 = ".fx4Y-W_root{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance,16px) - var(--dsh-composer-side-clearance,16px));max-width:var(--dsh-composer-card-max-width,100%);padding:0 var(--dsh-composer-side-clearance,16px);gap:var(--fcg-space-3);flex:none;align-items:center;min-height:72px;margin:0 auto;display:flex}.fx4Y-W_mark{color:var(--fcg-text-primary);flex:none;display:block}.fx4Y-W_label{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-body);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;line-height:1.4;overflow:hidden}";
42723
- const tagId$2 = "freecodego/companion.module.css";
42724
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
42782
+ const css$3 = ".fx4Y-W_root{box-sizing:border-box;width:calc(100% - var(--dsh-composer-side-clearance,16px) - var(--dsh-composer-side-clearance,16px));max-width:var(--dsh-composer-card-max-width,100%);padding:0 var(--dsh-composer-side-clearance,16px);gap:var(--fcg-space-3);flex:none;align-items:center;min-height:72px;margin:0 auto;display:flex}.fx4Y-W_mark{color:var(--fcg-text-primary);flex:none;display:block}.fx4Y-W_label{min-width:0;color:var(--fcg-text-secondary);font-size:var(--fcg-font-body);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;line-height:1.4;overflow:hidden}";
42783
+ const tagId$3 = "freecodego/companion.module.css";
42784
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
42725
42785
  const tag = document.createElement("style");
42726
42786
  tag.dataset.plugin = "freecodego";
42727
- tag.dataset.pluginCss = tagId$2;
42728
- tag.textContent = css$2;
42787
+ tag.dataset.pluginCss = tagId$3;
42788
+ tag.textContent = css$3;
42729
42789
  document.head.appendChild(tag);
42730
42790
  }
42731
42791
  var companion_module_css_default = {
@@ -43397,8 +43457,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
43397
43457
  */
43398
43458
  function installCompanion(ctx) {
43399
43459
  ctx.effect(() => ctx.locale.register(NS$2, {
43400
- zh: zh$2,
43401
- en: en$2
43460
+ zh: zh$3,
43461
+ en: en$3
43402
43462
  }), "freecodego-ui: Companion");
43403
43463
  const activity = createCompanionActivity(ctx.sessions);
43404
43464
  ctx.effect(() => () => {
@@ -46251,13 +46311,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46251
46311
  const NS$1 = "freecodego.agent-progress";
46252
46312
  //#endregion
46253
46313
  //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/agent-progress.module.css.mjs
46254
- const css$1 = ".PvOOxq_root{margin:var(--fcg-space-3) 0;border:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-1);border-radius:var(--fcg-radius-md);box-shadow:var(--fcg-shadow-1);font-size:var(--fcg-font-body);overflow:hidden}.PvOOxq_header{gap:var(--fcg-space-3);padding:var(--fcg-space-3) var(--fcg-space-4);border-bottom:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-2);align-items:center;display:flex}.PvOOxq_headerText{flex:1;gap:2px;min-width:0;display:grid}.PvOOxq_headerText strong{font-size:var(--fcg-font-body-lg);color:var(--fcg-text-primary);letter-spacing:-.01em;font-weight:600}.PvOOxq_headerMeta{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.PvOOxq_headerProgress{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);flex:none;width:72px;height:4px;overflow:hidden}.PvOOxq_headerProgressBar{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width var(--fcg-slow) var(--fcg-ease)}.PvOOxq_headerProgressDone{background:var(--fcg-success)}.PvOOxq_headerProgressFailed{background:var(--fcg-danger)}.PvOOxq_tree{padding:var(--fcg-space-2) var(--fcg-space-2) var(--fcg-space-3);gap:2px;display:grid}.PvOOxq_row{gap:var(--fcg-space-2);border-radius:var(--fcg-radius-sm);min-height:44px;transition:background var(--fcg-fast) var(--fcg-ease);align-items:stretch;display:flex}.PvOOxq_row:hover{background:var(--fcg-bg-hover)}.PvOOxq_stateCell{flex:none;justify-content:center;width:20px;padding-top:14px;display:flex}.PvOOxq_dot{corner-shape:round;background:var(--fcg-text-tertiary);border-radius:50%;width:8px;height:8px}.PvOOxq_dotRunning{background:var(--fcg-brand);animation:PvOOxq_fcg-agent-pulse 1.6s var(--fcg-ease) infinite}.PvOOxq_dotQueued{background:var(--fcg-text-tertiary)}.PvOOxq_dotStalled{background:var(--fcg-warn)}.PvOOxq_dotCompleted{background:var(--fcg-success)}.PvOOxq_dotFailed{background:var(--fcg-danger)}@keyframes PvOOxq_fcg-agent-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--fcg-brand) 45%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.PvOOxq_contentButton{min-width:0;padding:var(--fcg-space-2) var(--fcg-space-1);color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;flex:1;display:flex}.PvOOxq_contentButton:disabled{cursor:default}.PvOOxq_contentButton:not(:disabled):hover .PvOOxq_title strong{color:var(--fcg-brand)}.PvOOxq_content{flex:1;gap:3px;min-width:0;display:grid}.PvOOxq_title{gap:var(--fcg-space-2);align-items:center;min-width:0;display:flex}.PvOOxq_title strong{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-primary);transition:color var(--fcg-fast) var(--fcg-ease);font-weight:600;overflow:hidden}.PvOOxq_status{border-radius:var(--fcg-radius-full);color:var(--fcg-text-tertiary);background:var(--fcg-bg-tip);font-size:var(--fcg-font-caption);letter-spacing:.01em;flex:none;padding:1px 8px;line-height:17px}.PvOOxq_statusRunning{color:var(--fcg-brand);background:var(--fcg-brand-subtle)}.PvOOxq_statusCompleted{color:var(--fcg-success);background:var(--fcg-success-subtle)}.PvOOxq_statusFailed,.PvOOxq_statusCancelled{color:var(--fcg-danger);background:var(--fcg-danger-subtle)}.PvOOxq_statusStalled{color:var(--fcg-warn-label);background:var(--fcg-warn-subtle)}.PvOOxq_detail{gap:var(--fcg-space-2);color:var(--fcg-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:var(--fcg-font-caption);align-items:baseline;display:flex;overflow:hidden}.PvOOxq_metrics{color:var(--fcg-text-caption);font-variant-numeric:tabular-nums;flex:none}.PvOOxq_activity{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);height:3px;overflow:hidden}.PvOOxq_activityBar{border-radius:inherit;background:linear-gradient(90deg, transparent, var(--fcg-brand), transparent);width:40%;height:100%;animation:PvOOxq_fcg-agent-indeterminate 1.4s var(--fcg-ease) infinite}@keyframes PvOOxq_fcg-agent-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.PvOOxq_error{color:var(--fcg-danger);white-space:normal;font-size:var(--fcg-font-caption)}.PvOOxq_todos{gap:var(--fcg-space-2);margin:var(--fcg-space-3) var(--fcg-space-4) 0;padding:var(--fcg-space-2) var(--fcg-space-3);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-tip);display:grid}.PvOOxq_todosHeader{gap:var(--fcg-space-2);align-items:center;display:flex}.PvOOxq_todosTitle{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.PvOOxq_todosBar{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);flex:1;height:3px;overflow:hidden}.PvOOxq_todosBarFill{border-radius:inherit;background:var(--fcg-success);height:100%;transition:width var(--fcg-slow) var(--fcg-ease)}.PvOOxq_todoList{gap:2px;margin:0;padding:0;list-style:none;display:grid}.PvOOxq_todo{gap:var(--fcg-space-2);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:baseline;line-height:1.45;display:flex}.PvOOxq_todoMark{text-align:center;width:12px;color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;flex:none}.PvOOxq_todoText{overflow-wrap:anywhere;min-width:0}.PvOOxq_todoActive{color:var(--fcg-text-primary)}.PvOOxq_todoActive .PvOOxq_todoMark{color:var(--fcg-brand);font-weight:700}.PvOOxq_todoCompleted{color:var(--fcg-text-tertiary);text-decoration:line-through;text-decoration-color:var(--fcg-line-subtle)}.PvOOxq_todoCompleted .PvOOxq_todoMark{color:var(--fcg-success)}.PvOOxq_actions{align-self:center;gap:var(--fcg-space-1);padding-right:var(--fcg-space-2);flex:none;display:flex}.PvOOxq_actionButton{border-radius:var(--fcg-radius-full);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);cursor:pointer;transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;padding:3px 10px;line-height:18px}.PvOOxq_actionButton:hover:not(:disabled){background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.PvOOxq_actionButton:disabled{opacity:.5;cursor:default}.PvOOxq_actionStop:hover:not(:disabled){color:var(--fcg-danger);background:var(--dsw-alias-interactive-bg-hover-danger)}.PvOOxq_actionResume:hover:not(:disabled){color:var(--fcg-brand);background:var(--fcg-bg-hover)}";
46255
- const tagId$1 = "freecodego/agent-progress.module.css";
46256
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
46314
+ const css$2 = ".PvOOxq_root{margin:var(--fcg-space-3) 0;border:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-1);border-radius:var(--fcg-radius-md);box-shadow:var(--fcg-shadow-1);font-size:var(--fcg-font-body);overflow:hidden}.PvOOxq_header{gap:var(--fcg-space-3);padding:var(--fcg-space-3) var(--fcg-space-4);border-bottom:1px solid var(--fcg-line-subtle);background:var(--fcg-bg-layer-2);align-items:center;display:flex}.PvOOxq_headerText{flex:1;gap:2px;min-width:0;display:grid}.PvOOxq_headerText strong{font-size:var(--fcg-font-body-lg);color:var(--fcg-text-primary);letter-spacing:-.01em;font-weight:600}.PvOOxq_headerMeta{color:var(--fcg-text-tertiary);font-size:var(--fcg-font-caption)}.PvOOxq_headerProgress{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);flex:none;width:72px;height:4px;overflow:hidden}.PvOOxq_headerProgressBar{border-radius:inherit;background:var(--fcg-brand);height:100%;transition:width var(--fcg-slow) var(--fcg-ease)}.PvOOxq_headerProgressDone{background:var(--fcg-success)}.PvOOxq_headerProgressFailed{background:var(--fcg-danger)}.PvOOxq_tree{padding:var(--fcg-space-2) var(--fcg-space-2) var(--fcg-space-3);gap:2px;display:grid}.PvOOxq_row{gap:var(--fcg-space-2);border-radius:var(--fcg-radius-sm);min-height:44px;transition:background var(--fcg-fast) var(--fcg-ease);align-items:stretch;display:flex}.PvOOxq_row:hover{background:var(--fcg-bg-hover)}.PvOOxq_stateCell{flex:none;justify-content:center;width:20px;padding-top:14px;display:flex}.PvOOxq_dot{corner-shape:round;background:var(--fcg-text-tertiary);border-radius:50%;width:8px;height:8px}.PvOOxq_dotRunning{background:var(--fcg-brand);animation:PvOOxq_fcg-agent-pulse 1.6s var(--fcg-ease) infinite}.PvOOxq_dotQueued{background:var(--fcg-text-tertiary)}.PvOOxq_dotStalled{background:var(--fcg-warn)}.PvOOxq_dotCompleted{background:var(--fcg-success)}.PvOOxq_dotFailed{background:var(--fcg-danger)}@keyframes PvOOxq_fcg-agent-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--fcg-brand) 45%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.PvOOxq_contentButton{min-width:0;padding:var(--fcg-space-2) var(--fcg-space-1);color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;flex:1;display:flex}.PvOOxq_contentButton:disabled{cursor:default}.PvOOxq_contentButton:not(:disabled):hover .PvOOxq_title strong{color:var(--fcg-brand)}.PvOOxq_content{flex:1;gap:3px;min-width:0;display:grid}.PvOOxq_title{gap:var(--fcg-space-2);align-items:center;min-width:0;display:flex}.PvOOxq_title strong{text-overflow:ellipsis;white-space:nowrap;color:var(--fcg-text-primary);transition:color var(--fcg-fast) var(--fcg-ease);font-weight:600;overflow:hidden}.PvOOxq_status{border-radius:var(--fcg-radius-full);color:var(--fcg-text-tertiary);background:var(--fcg-bg-tip);font-size:var(--fcg-font-caption);letter-spacing:.01em;flex:none;padding:1px 8px;line-height:17px}.PvOOxq_statusRunning{color:var(--fcg-brand);background:var(--fcg-brand-subtle)}.PvOOxq_statusCompleted{color:var(--fcg-success);background:var(--fcg-success-subtle)}.PvOOxq_statusFailed,.PvOOxq_statusCancelled{color:var(--fcg-danger);background:var(--fcg-danger-subtle)}.PvOOxq_statusStalled{color:var(--fcg-warn-label);background:var(--fcg-warn-subtle)}.PvOOxq_detail{gap:var(--fcg-space-2);color:var(--fcg-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:var(--fcg-font-caption);align-items:baseline;display:flex;overflow:hidden}.PvOOxq_metrics{color:var(--fcg-text-caption);font-variant-numeric:tabular-nums;flex:none}.PvOOxq_activity{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-tip);height:3px;overflow:hidden}.PvOOxq_activityBar{border-radius:inherit;background:linear-gradient(90deg, transparent, var(--fcg-brand), transparent);width:40%;height:100%;animation:PvOOxq_fcg-agent-indeterminate 1.4s var(--fcg-ease) infinite}@keyframes PvOOxq_fcg-agent-indeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.PvOOxq_error{color:var(--fcg-danger);white-space:normal;font-size:var(--fcg-font-caption)}.PvOOxq_todos{gap:var(--fcg-space-2);margin:var(--fcg-space-3) var(--fcg-space-4) 0;padding:var(--fcg-space-2) var(--fcg-space-3);border:1px solid var(--fcg-line-subtle);border-radius:var(--fcg-radius-sm);background:var(--fcg-bg-tip);display:grid}.PvOOxq_todosHeader{gap:var(--fcg-space-2);align-items:center;display:flex}.PvOOxq_todosTitle{color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);font-variant-numeric:tabular-nums;flex:none;font-weight:600}.PvOOxq_todosBar{border-radius:var(--fcg-radius-full);background:var(--fcg-bg-hover);flex:1;height:3px;overflow:hidden}.PvOOxq_todosBarFill{border-radius:inherit;background:var(--fcg-success);height:100%;transition:width var(--fcg-slow) var(--fcg-ease)}.PvOOxq_todoList{gap:2px;margin:0;padding:0;list-style:none;display:grid}.PvOOxq_todo{gap:var(--fcg-space-2);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);align-items:baseline;line-height:1.45;display:flex}.PvOOxq_todoMark{text-align:center;width:12px;color:var(--fcg-text-tertiary);font-variant-numeric:tabular-nums;flex:none}.PvOOxq_todoText{overflow-wrap:anywhere;min-width:0}.PvOOxq_todoActive{color:var(--fcg-text-primary)}.PvOOxq_todoActive .PvOOxq_todoMark{color:var(--fcg-brand);font-weight:700}.PvOOxq_todoCompleted{color:var(--fcg-text-tertiary);text-decoration:line-through;text-decoration-color:var(--fcg-line-subtle)}.PvOOxq_todoCompleted .PvOOxq_todoMark{color:var(--fcg-success)}.PvOOxq_actions{align-self:center;gap:var(--fcg-space-1);padding-right:var(--fcg-space-2);flex:none;display:flex}.PvOOxq_actionButton{border-radius:var(--fcg-radius-full);color:var(--fcg-text-secondary);font-size:var(--fcg-font-caption);cursor:pointer;transition:background var(--fcg-fast) var(--fcg-ease), color var(--fcg-fast) var(--fcg-ease);background:0 0;border:0;padding:3px 10px;line-height:18px}.PvOOxq_actionButton:hover:not(:disabled){background:var(--fcg-bg-hover);color:var(--fcg-text-primary)}.PvOOxq_actionButton:disabled{opacity:.5;cursor:default}.PvOOxq_actionStop:hover:not(:disabled){color:var(--fcg-danger);background:var(--dsw-alias-interactive-bg-hover-danger)}.PvOOxq_actionResume:hover:not(:disabled){color:var(--fcg-brand);background:var(--fcg-bg-hover)}";
46315
+ const tagId$2 = "freecodego/agent-progress.module.css";
46316
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
46257
46317
  const tag = document.createElement("style");
46258
46318
  tag.dataset.plugin = "freecodego";
46259
- tag.dataset.pluginCss = tagId$1;
46260
- tag.textContent = css$1;
46319
+ tag.dataset.pluginCss = tagId$2;
46320
+ tag.textContent = css$2;
46261
46321
  document.head.appendChild(tag);
46262
46322
  }
46263
46323
  var agent_progress_module_css_default = {
@@ -46616,8 +46676,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46616
46676
  /** Register the durable event Definition and its keyed Chat renderer. */
46617
46677
  function registerAgentProgressUi(ctx) {
46618
46678
  ctx.effect(() => ctx.locale.register(NS$1, {
46619
- zh: zh$1,
46620
- en: en$1
46679
+ zh: zh$2,
46680
+ en: en$2
46621
46681
  }), "freecodego-ui: Agent progress");
46622
46682
  ctx.uiConversation.events.register(progressDefinition);
46623
46683
  ctx.inject([
@@ -46657,7 +46717,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46657
46717
  }, AgentProgressNodeView));
46658
46718
  });
46659
46719
  }
46660
- const zh$1 = {
46720
+ const zh$2 = {
46661
46721
  "summary.running": "{running}/{total} 个 Agent 正在工作",
46662
46722
  "summary.finished": "{completed}/{total} 个 Agent 已完成",
46663
46723
  "summary.failed": "{failed}/{total} 个 Agent 失败或取消",
@@ -46675,7 +46735,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46675
46735
  resume: "继续",
46676
46736
  focusChain: "任务计划"
46677
46737
  };
46678
- const en$1 = {
46738
+ const en$2 = {
46679
46739
  "summary.running": "{running}/{total} agents working",
46680
46740
  "summary.finished": "{completed}/{total} agents finished",
46681
46741
  "summary.failed": "{failed}/{total} agents failed or cancelled",
@@ -46695,8 +46755,170 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46695
46755
  };
46696
46756
  //#endregion
46697
46757
  //#region \0dsh-global-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/theme.css.mjs
46698
- const css = "body{--fcg-space-1:4px;--fcg-space-2:8px;--fcg-space-3:12px;--fcg-space-4:16px;--fcg-space-5:20px;--fcg-space-6:24px;--fcg-space-8:32px;--fcg-radius-sm:6px;--fcg-radius-md:10px;--fcg-radius-lg:14px;--fcg-radius-full:999px;--fcg-font-caption:12px;--fcg-font-body:13px;--fcg-font-body-lg:14px;--fcg-font-title:15px;--fcg-font-section:20px;--fcg-font-display:28px;--fcg-font-mono:ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, monospace;--fcg-shadow-1:0 1px 2px #0f172a0d;--fcg-shadow-2:0 8px 24px #0f172a1f;--fcg-shadow-pop:0 12px 40px #0f172a33;--fcg-bg-base:var(--dsw-alias-bg-module-platform);--fcg-bg-layer-1:var(--dsw-alias-bg-layer-1);--fcg-bg-layer-2:var(--dsw-alias-bg-layer-2);--fcg-bg-layer-3:var(--dsw-alias-bg-layer-3);--fcg-bg-input:var(--dsw-specific-input-major);--fcg-bg-hover:var(--dsw-alias-interactive-bg-hover);--fcg-bg-active:var(--dsw-alias-interactive-bg-active);--fcg-bg-tip:var(--dsw-specific-tip);--fcg-line-subtle:var(--dsw-alias-border-l1);--fcg-line:var(--dsw-alias-border-l2);--fcg-line-strong:var(--dsw-alias-border-l4);--fcg-text-primary:var(--dsw-alias-label-primary);--fcg-text-secondary:var(--dsw-alias-label-secondary);--fcg-text-tertiary:var(--dsw-alias-label-tertiary);--fcg-text-caption:var(--dsw-alias-label-caption);--fcg-text-on-brand:var(--dsw-alias-label-primary-foreground);--fcg-text-on-brand-fixed:var(--dsw-static-neutral-bluish-00);--fcg-companion-halo:none;--fcg-brand:var(--dsw-static-deepseek-500);--fcg-brand-strong:var(--dsw-static-deepseek-600);--fcg-brand-subtle:var(--dsw-static-deepseek-100);--fcg-success:var(--dsw-alias-state-success-primary);--fcg-success-subtle:var(--dsw-alias-state-success-tertiary);--fcg-warn:var(--dsw-alias-state-warn-primary);--fcg-warn-label:var(--dsw-alias-state-warn-label);--fcg-warn-subtle:var(--dsw-alias-state-warn-tertiary);--fcg-danger:var(--dsw-alias-state-error-primary);--fcg-danger-subtle:var(--dsw-static-red-50);--fcg-btn-primary-fill:var(--dsw-alias-button-info-fill);--fcg-btn-primary-hover:var(--dsw-alias-button-info-hover);--fcg-btn-ghost-hover:var(--dsw-alias-interactive-bg-hover-solid);--fcg-btn-ghost-active:var(--dsw-alias-button-ghost-active-fill);--fcg-ease:cubic-bezier(.2, 0, 0, 1);--fcg-fast:.14s;--fcg-slow:.28s}body[data-ds-dark-theme]{--fcg-shadow-1:0 1px 2px #0006;--fcg-shadow-2:0 8px 24px #00000080;--fcg-shadow-pop:0 12px 40px #0009;--fcg-danger-subtle:var(--dsw-static-red-900);--fcg-brand-subtle:var(--dsw-static-deepseek-800);--fcg-companion-halo:drop-shadow(0 0 1px #ffffff73) drop-shadow(0 0 6px #fff3)}";
46699
- const tagId = "freecodego/theme.css";
46758
+ const css$1 = "body{--fcg-space-1:4px;--fcg-space-2:8px;--fcg-space-3:12px;--fcg-space-4:16px;--fcg-space-5:20px;--fcg-space-6:24px;--fcg-space-8:32px;--fcg-radius-sm:6px;--fcg-radius-md:10px;--fcg-radius-lg:14px;--fcg-radius-full:999px;--fcg-font-caption:12px;--fcg-font-body:13px;--fcg-font-body-lg:14px;--fcg-font-title:15px;--fcg-font-section:20px;--fcg-font-display:28px;--fcg-font-mono:ui-monospace, \"SF Mono\", \"Cascadia Mono\", Consolas, monospace;--fcg-shadow-1:0 1px 2px #0f172a0d;--fcg-shadow-2:0 8px 24px #0f172a1f;--fcg-shadow-pop:0 12px 40px #0f172a33;--fcg-bg-base:var(--dsw-alias-bg-module-platform);--fcg-bg-layer-1:var(--dsw-alias-bg-layer-1);--fcg-bg-layer-2:var(--dsw-alias-bg-layer-2);--fcg-bg-layer-3:var(--dsw-alias-bg-layer-3);--fcg-bg-input:var(--dsw-specific-input-major);--fcg-bg-hover:var(--dsw-alias-interactive-bg-hover);--fcg-bg-active:var(--dsw-alias-interactive-bg-active);--fcg-bg-tip:var(--dsw-specific-tip);--fcg-line-subtle:var(--dsw-alias-border-l1);--fcg-line:var(--dsw-alias-border-l2);--fcg-line-strong:var(--dsw-alias-border-l4);--fcg-text-primary:var(--dsw-alias-label-primary);--fcg-text-secondary:var(--dsw-alias-label-secondary);--fcg-text-tertiary:var(--dsw-alias-label-tertiary);--fcg-text-caption:var(--dsw-alias-label-caption);--fcg-text-on-brand:var(--dsw-alias-label-primary-foreground);--fcg-text-on-brand-fixed:var(--dsw-static-neutral-bluish-00);--fcg-companion-halo:none;--fcg-brand:var(--dsw-static-deepseek-500);--fcg-brand-strong:var(--dsw-static-deepseek-600);--fcg-brand-subtle:var(--dsw-static-deepseek-100);--fcg-success:var(--dsw-alias-state-success-primary);--fcg-success-subtle:var(--dsw-alias-state-success-tertiary);--fcg-warn:var(--dsw-alias-state-warn-primary);--fcg-warn-label:var(--dsw-alias-state-warn-label);--fcg-warn-subtle:var(--dsw-alias-state-warn-tertiary);--fcg-danger:var(--dsw-alias-state-error-primary);--fcg-danger-subtle:var(--dsw-static-red-50);--fcg-btn-primary-fill:var(--dsw-alias-button-info-fill);--fcg-btn-primary-hover:var(--dsw-alias-button-info-hover);--fcg-btn-ghost-hover:var(--dsw-alias-interactive-bg-hover-solid);--fcg-btn-ghost-active:var(--dsw-alias-button-ghost-active-fill);--fcg-ease:cubic-bezier(.2, 0, 0, 1);--fcg-fast:.14s;--fcg-slow:.28s}body[data-ds-dark-theme]{--fcg-shadow-1:0 1px 2px #0006;--fcg-shadow-2:0 8px 24px #00000080;--fcg-shadow-pop:0 12px 40px #0009;--fcg-danger-subtle:var(--dsw-static-red-900);--fcg-brand-subtle:var(--dsw-static-deepseek-800);--fcg-companion-halo:drop-shadow(0 0 1px #ffffff73) drop-shadow(0 0 6px #fff3)}";
46759
+ const tagId$1 = "freecodego/theme.css";
46760
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
46761
+ const tag = document.createElement("style");
46762
+ tag.dataset.plugin = "freecodego";
46763
+ tag.dataset.pluginCss = tagId$1;
46764
+ tag.textContent = css$1;
46765
+ document.head.appendChild(tag);
46766
+ }
46767
+ //#endregion
46768
+ //#region src/client/announcement-preference.ts
46769
+ /**
46770
+ * Where the announcement bar's own decisions are kept.
46771
+ *
46772
+ * Two things live here, and both are the *client's* rather than the account's:
46773
+ * whether the bar is shown at all, and which announcements this browser has
46774
+ * already closed. The second exists because closing a notice is a round trip —
46775
+ * the read record is the backend's, so it holds on the account's other machines
46776
+ * (see `account-remotes.ts`), and this list is what keeps a notice closed when
46777
+ * that round trip fails. Without it, a failed acknowledgement would resurrect
46778
+ * the bar on the next poll, which reads as "the close button does not work".
46779
+ *
46780
+ * The list is bounded and pruned against what the backend still returns, so it
46781
+ * cannot grow forever: an announcement that has ended, or whose account read
46782
+ * record has caught up, is forgotten the next time the bar polls.
46783
+ *
46784
+ * @module client/announcement-preference
46785
+ */
46786
+ /** Where the preference lives. Versioned: a future shape change must not be read as this one. */
46787
+ const STORAGE_KEY = "freecodego.announcements.v1";
46788
+ /** Document event that announces a change to every live reader. */
46789
+ const ANNOUNCEMENT_PREFERENCE_EVENT = "fcg:announcement-preference-changed";
46790
+ /** The default: the bar is shown, nothing is dismissed. */
46791
+ const DEFAULT_ANNOUNCEMENT_PREFERENCE = {
46792
+ bar: true,
46793
+ dismissed: []
46794
+ };
46795
+ /** Keep only well-formed ids, so one corrupt entry cannot silence an unrelated notice. */
46796
+ function normalizeDismissed(value) {
46797
+ if (!Array.isArray(value)) return [];
46798
+ const ids = [];
46799
+ for (const entry of value) {
46800
+ if (typeof entry !== "number" || !Number.isFinite(entry) || entry <= 0) continue;
46801
+ if (ids.includes(entry)) continue;
46802
+ ids.push(entry);
46803
+ }
46804
+ return ids.slice(-50);
46805
+ }
46806
+ /**
46807
+ * Normalize any parsed document into the current shape.
46808
+ * @param value - the parsed `localStorage` document.
46809
+ * @returns the decisions it carries, with unknown fields dropped.
46810
+ */
46811
+ function normalizeAnnouncementPreference(value) {
46812
+ if (typeof value !== "object" || value === null) return DEFAULT_ANNOUNCEMENT_PREFERENCE;
46813
+ const record = value;
46814
+ return {
46815
+ bar: record.bar !== false,
46816
+ dismissed: normalizeDismissed(record.dismissed)
46817
+ };
46818
+ }
46819
+ function storage() {
46820
+ try {
46821
+ return globalThis.localStorage;
46822
+ } catch {
46823
+ return;
46824
+ }
46825
+ }
46826
+ /**
46827
+ * Read the stored decisions.
46828
+ * @returns the stored decisions, or the default when nothing is stored.
46829
+ */
46830
+ function readAnnouncementPreference() {
46831
+ const store = storage();
46832
+ if (store === void 0) return DEFAULT_ANNOUNCEMENT_PREFERENCE;
46833
+ try {
46834
+ const raw = store.getItem(STORAGE_KEY);
46835
+ if (raw === null || raw === "") return DEFAULT_ANNOUNCEMENT_PREFERENCE;
46836
+ return normalizeAnnouncementPreference(JSON.parse(raw));
46837
+ } catch {
46838
+ return DEFAULT_ANNOUNCEMENT_PREFERENCE;
46839
+ }
46840
+ }
46841
+ /**
46842
+ * Persist decisions and tell every live reader.
46843
+ * @param preference - the decisions to store.
46844
+ */
46845
+ function writeAnnouncementPreference(preference) {
46846
+ const normalized = normalizeAnnouncementPreference(preference);
46847
+ try {
46848
+ storage()?.setItem(STORAGE_KEY, JSON.stringify(normalized));
46849
+ } catch {}
46850
+ document.dispatchEvent(new Event(ANNOUNCEMENT_PREFERENCE_EVENT));
46851
+ }
46852
+ /**
46853
+ * Turn the bar on or off.
46854
+ * @param visible - whether the bar may be rendered.
46855
+ */
46856
+ function setAnnouncementBarVisible(visible) {
46857
+ const current = readAnnouncementPreference();
46858
+ if (current.bar === visible) return;
46859
+ writeAnnouncementPreference({
46860
+ ...current,
46861
+ bar: visible
46862
+ });
46863
+ }
46864
+ /**
46865
+ * Remember that this browser closed one announcement.
46866
+ *
46867
+ * The bound is applied by dropping the oldest entries, so a busy account keeps
46868
+ * the narrow window of notices it is actually being shown.
46869
+ * @param announcementId - the announcement the user closed.
46870
+ */
46871
+ function dismissAnnouncement(announcementId) {
46872
+ const current = readAnnouncementPreference();
46873
+ if (current.dismissed.includes(announcementId)) return;
46874
+ writeAnnouncementPreference({
46875
+ ...current,
46876
+ dismissed: [...current.dismissed, announcementId]
46877
+ });
46878
+ }
46879
+ /**
46880
+ * Forget dismissals the backend no longer returns.
46881
+ *
46882
+ * The list is the client's memory of its own round trips, and every entry it
46883
+ * still holds is an id the bar keeps consulting; once the backend stops
46884
+ * returning an announcement — it ended, or the read record caught up — the entry
46885
+ * has no work left to do. Called on every poll so the document stays as small as
46886
+ * the notices it is about.
46887
+ * @param liveIds - the ids the backend just returned.
46888
+ */
46889
+ function pruneAnnouncements(liveIds) {
46890
+ const current = readAnnouncementPreference();
46891
+ if (current.dismissed.length === 0) return;
46892
+ const live = new Set(liveIds);
46893
+ const kept = current.dismissed.filter((id) => live.has(id));
46894
+ if (kept.length === current.dismissed.length) return;
46895
+ writeAnnouncementPreference({
46896
+ ...current,
46897
+ dismissed: kept
46898
+ });
46899
+ }
46900
+ /**
46901
+ * Run a listener whenever the decisions change from anywhere in the page.
46902
+ *
46903
+ * Both writers are in the same document — the bar's close button and the page
46904
+ * that holds the switch — so the event is the whole channel. The `storage` event
46905
+ * is included for a second browser tab, where the same preference is the same
46906
+ * user's intent.
46907
+ * @param listener - called after every change.
46908
+ * @returns a disposer that removes the listeners.
46909
+ */
46910
+ function subscribeAnnouncementPreference(listener) {
46911
+ document.addEventListener(ANNOUNCEMENT_PREFERENCE_EVENT, listener);
46912
+ window.addEventListener("storage", listener);
46913
+ return () => {
46914
+ document.removeEventListener(ANNOUNCEMENT_PREFERENCE_EVENT, listener);
46915
+ window.removeEventListener("storage", listener);
46916
+ };
46917
+ }
46918
+ //#endregion
46919
+ //#region \0dsh-css:/home/runner/work/dsh-plugin-freecodego/dsh-plugin-freecodego/plugin/packages/freecodego/harness-ui/src/client/announcement-bar.module.css.mjs
46920
+ const css = "._8Q7yhG_bar{left:var(--dsh-windows-sidebar-width,0px);right:0;top:calc(var(--dsh-windows-titlebar-height,0px) + 40px);z-index:2;pointer-events:auto;border-bottom:1px solid #0000;border-bottom-left-radius:6px;align-items:center;gap:8px;height:28px;padding:0 8px;font-size:12px;line-height:1;display:flex;position:absolute}[data-platform=darwin] ._8Q7yhG_bar{top:var(--dsh-frame-top-clearance,48px);left:0}._8Q7yhG_bonus{color:#d8ffcd;background:linear-gradient(90deg,#052a0d 0%,#0b3d16 55%,#052a0d 100%);border-bottom-color:#39ff14;box-shadow:0 2px 14px #39ff1459}._8Q7yhG_bonus ._8Q7yhG_badge{color:#04220a;background:#39ff14}._8Q7yhG_urgent{color:#ffdcd8;background:linear-gradient(90deg,#380709 0%,#4d0b0f 55%,#380709 100%);border-bottom-color:#ff3b30;box-shadow:0 2px 16px #ff3b3073}._8Q7yhG_urgent ._8Q7yhG_badge{color:#fdecea;background:#ff3b30}._8Q7yhG_badge{letter-spacing:.02em;border-radius:4px;flex:none;padding:2px 6px;font-size:11px;font-weight:600}._8Q7yhG_track{flex:auto;align-items:center;min-width:0;display:flex;overflow:hidden}._8Q7yhG_marquee{white-space:nowrap;color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding-left:100%;animation:linear infinite _8Q7yhG_announcement-marquee;display:inline-block}._8Q7yhG_marquee:hover{text-decoration:underline}@keyframes _8Q7yhG_announcement-marquee{0%{transform:translate(0)}to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){._8Q7yhG_marquee{text-overflow:ellipsis;max-width:100%;padding-left:0;animation:none;overflow:hidden}}._8Q7yhG_action{color:inherit;font:inherit;cursor:pointer;opacity:.9;background:#00000040;border:1px solid;border-radius:4px;flex:none;padding:3px 8px}._8Q7yhG_action:hover{opacity:1}._8Q7yhG_document{max-height:52vh;overflow:auto}._8Q7yhG_rows{max-height:52vh;margin:0;padding:0;list-style:none;overflow:auto}._8Q7yhG_row{border-bottom:1px solid var(--dsw-alias-border-secondary,#7f7f7f33);align-items:center;gap:8px;padding:6px 0;display:flex}._8Q7yhG_rowTitle{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:auto;align-items:center;gap:6px;display:flex;overflow:hidden}._8Q7yhG_rowTitle:hover{text-decoration:underline}._8Q7yhG_rowState{opacity:.7;flex:none;font-size:11px}._8Q7yhG_dot{border-radius:50%;flex:none;width:7px;height:7px}._8Q7yhG_dotBonus{background:#39ff14}._8Q7yhG_dotUrgent{background:#ff3b30}._8Q7yhG_switch{opacity:.85;align-items:center;gap:6px;font-size:12px;display:flex}._8Q7yhG_footerButtons{justify-content:flex-end;gap:8px;display:flex}._8Q7yhG_primary{background:var(--dsw-alias-bg-brand,#1f6feb);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:6px;padding:6px 14px}._8Q7yhG_empty{opacity:.8;margin:0}._8Q7yhG_section{flex-direction:column;gap:6px;display:flex}._8Q7yhG_sectionHint{opacity:.72;font-size:12px}";
46921
+ const tagId = "freecodego/announcement-bar.module.css";
46700
46922
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
46701
46923
  const tag = document.createElement("style");
46702
46924
  tag.dataset.plugin = "freecodego";
@@ -46704,6 +46926,446 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46704
46926
  tag.textContent = css;
46705
46927
  document.head.appendChild(tag);
46706
46928
  }
46929
+ var announcement_bar_module_css_default = {
46930
+ "action": "_8Q7yhG_action",
46931
+ "announcement-marquee": "_8Q7yhG_announcement-marquee",
46932
+ "badge": "_8Q7yhG_badge",
46933
+ "bar": "_8Q7yhG_bar",
46934
+ "bonus": "_8Q7yhG_bonus",
46935
+ "document": "_8Q7yhG_document",
46936
+ "dot": "_8Q7yhG_dot",
46937
+ "dotBonus": "_8Q7yhG_dotBonus",
46938
+ "dotUrgent": "_8Q7yhG_dotUrgent",
46939
+ "empty": "_8Q7yhG_empty",
46940
+ "footerButtons": "_8Q7yhG_footerButtons",
46941
+ "marquee": "_8Q7yhG_marquee",
46942
+ "primary": "_8Q7yhG_primary",
46943
+ "row": "_8Q7yhG_row",
46944
+ "rowState": "_8Q7yhG_rowState",
46945
+ "rowTitle": "_8Q7yhG_rowTitle",
46946
+ "rows": "_8Q7yhG_rows",
46947
+ "section": "_8Q7yhG_section",
46948
+ "sectionHint": "_8Q7yhG_sectionHint",
46949
+ "switch": "_8Q7yhG_switch",
46950
+ "track": "_8Q7yhG_track",
46951
+ "urgent": "_8Q7yhG_urgent"
46952
+ };
46953
+ //#endregion
46954
+ //#region src/client/announcement-bar.tsx
46955
+ /**
46956
+ * The backend's announcements, on the client's own surface.
46957
+ *
46958
+ * One channel: the top bar. Every announcement the backend returns rides it, and
46959
+ * the notify mode is the only emphasis signal the announcement schema carries —
46960
+ * there is no colour or priority field — so it decides the tone instead (green
46961
+ * for a quiet 静默 notice, red for a 弹窗 one). The plugin deliberately opens no
46962
+ * dialog of its own: a notice nobody asked for must not take the screen, and the
46963
+ * full text is a click away, here and in the settings section.
46964
+ *
46965
+ * The bar shows one announcement at a time — the newest — and offers the rest
46966
+ * behind a count, because a stripe that cycles through everything at once is a
46967
+ * stripe nobody reads.
46968
+ *
46969
+ * Closing a notice is the account's record, not this browser's: the click calls
46970
+ * the backend's mark-read route through the Host, so the same announcement stays
46971
+ * closed on the account's other machines and the administrator's read report
46972
+ * counts it. The client keeps its own dismissal list as a fallback (see
46973
+ * {@link ./announcement-preference}) so a failed round trip cannot resurrect a
46974
+ * notice the user already closed.
46975
+ *
46976
+ * The settings section renders the same feed as a list, which is also how a user
46977
+ * who hid the bar gets it back — a switch that lives only on the surface it
46978
+ * hides would be a one-way door.
46979
+ *
46980
+ * @module client/announcement-bar
46981
+ */
46982
+ /**
46983
+ * How often the bar asks the backend for notices.
46984
+ *
46985
+ * The plugin has no push channel — announcements are a plain authenticated GET —
46986
+ * so "in time" is this poll. Long enough that the request is invisible in a
46987
+ * normal session, short enough that a 福利 posted while someone works is seen
46988
+ * without a reload.
46989
+ */
46990
+ const POLL_MS = 12e4;
46991
+ const zh$1 = {
46992
+ barLabel: "公告",
46993
+ bonus: "福利",
46994
+ urgent: "重要",
46995
+ details: "详情",
46996
+ more: (count) => `还有 ${count} 条`,
46997
+ close: (title) => `关闭公告「${title}」`,
46998
+ dismiss: "关闭",
46999
+ gotIt: "知道了",
47000
+ listTitle: "公告",
47001
+ listDetail: "关闭即标记为已读,账号在其它设备上也不会再提示。",
47002
+ markRead: "标记已读",
47003
+ read: "已读",
47004
+ unread: "未读",
47005
+ showBar: "显示顶部公告栏",
47006
+ showBarHint: "公告会在对话页顶部滚动显示。",
47007
+ settingsTitle: "公告",
47008
+ settingsDetail: "后端发布的通知。关闭后账号在其它设备上也不会再提示,仍可在此重新查看。",
47009
+ empty: "当前没有公告。",
47010
+ closeDialog: "关闭",
47011
+ codeCopy: "复制",
47012
+ codeCopied: "已复制",
47013
+ footnotes: "脚注"
47014
+ };
47015
+ const en$1 = {
47016
+ barLabel: "Announcement",
47017
+ bonus: "Update",
47018
+ urgent: "Important",
47019
+ details: "Details",
47020
+ more: (count) => `${count} more`,
47021
+ close: (title) => `Close announcement “${title}”`,
47022
+ dismiss: "Close",
47023
+ gotIt: "Got it",
47024
+ listTitle: "Announcements",
47025
+ listDetail: "Closing one marks it read, so the account stops showing it on your other devices.",
47026
+ markRead: "Mark read",
47027
+ read: "Read",
47028
+ unread: "Unread",
47029
+ showBar: "Show the top announcement bar",
47030
+ showBarHint: "Announcements scroll along the top of the conversation.",
47031
+ settingsTitle: "Announcements",
47032
+ settingsDetail: "Notices published by the backend. Closing one marks it read for the account; it stays listed here.",
47033
+ empty: "There are no announcements right now.",
47034
+ closeDialog: "Close",
47035
+ codeCopy: "Copy",
47036
+ codeCopied: "Copied",
47037
+ footnotes: "Footnotes"
47038
+ };
47039
+ /**
47040
+ * The live feed both surfaces render.
47041
+ *
47042
+ * One poll, one dismissal path, one preference reader: the bar and the settings
47043
+ * list are two views of the same account data, and a second copy of either would
47044
+ * be the place they disagree.
47045
+ * @param props - the backend calls and the locale to render in.
47046
+ * @returns the announcements, the client preference, and the two mutators.
47047
+ */
47048
+ function useAnnouncementFeed({ list, markRead, language }) {
47049
+ const text = language === "zh" ? zh$1 : en$1;
47050
+ const [items, setItems] = (0, react.useState)([]);
47051
+ const [preference, setPreference] = (0, react.useState)(readAnnouncementPreference);
47052
+ (0, react.useEffect)(() => subscribeAnnouncementPreference(() => {
47053
+ setPreference(readAnnouncementPreference());
47054
+ }), []);
47055
+ const poll = (0, react.useCallback)(async () => {
47056
+ let fetched;
47057
+ try {
47058
+ fetched = await list();
47059
+ } catch {
47060
+ return;
47061
+ }
47062
+ const ordered = [...fetched].sort((left, right) => right.id - left.id);
47063
+ setItems(ordered);
47064
+ pruneAnnouncements(ordered.map((item) => item.id));
47065
+ setPreference(readAnnouncementPreference());
47066
+ }, [list]);
47067
+ (0, react.useEffect)(() => {
47068
+ poll();
47069
+ const timer = globalThis.setInterval(() => {
47070
+ poll();
47071
+ }, POLL_MS);
47072
+ const onVisible = () => {
47073
+ if (document.visibilityState === "visible") poll();
47074
+ };
47075
+ document.addEventListener("visibilitychange", onVisible);
47076
+ return () => {
47077
+ globalThis.clearInterval(timer);
47078
+ document.removeEventListener("visibilitychange", onVisible);
47079
+ };
47080
+ }, [poll]);
47081
+ const close = (0, react.useCallback)((announcement) => {
47082
+ dismissAnnouncement(announcement.id);
47083
+ setPreference(readAnnouncementPreference());
47084
+ setItems((current) => current.map((item) => item.id === announcement.id ? {
47085
+ ...item,
47086
+ readAt: (/* @__PURE__ */ new Date()).toISOString()
47087
+ } : item));
47088
+ markRead(announcement.id).catch(() => false);
47089
+ }, [markRead]);
47090
+ const setBar = (0, react.useCallback)((visible) => {
47091
+ setAnnouncementBarVisible(visible);
47092
+ setPreference(readAnnouncementPreference());
47093
+ }, []);
47094
+ return {
47095
+ text,
47096
+ items,
47097
+ unread: (0, react.useMemo)(() => items.filter((item) => item.readAt === void 0 && !preference.dismissed.includes(item.id)), [items, preference.dismissed]),
47098
+ preference,
47099
+ close,
47100
+ setBar,
47101
+ poll
47102
+ };
47103
+ }
47104
+ /** The Markdown chrome a rendered announcement needs; the plugin supplies its own copy. */
47105
+ function useMarkdownLabels(text) {
47106
+ return (0, react.useMemo)(() => ({
47107
+ code: {
47108
+ copyLabel: text.codeCopy,
47109
+ copiedLabel: text.codeCopied
47110
+ },
47111
+ footnotes: text.footnotes
47112
+ }), [text]);
47113
+ }
47114
+ /** One line for the moving bar: the title, then as much of the body as fits without markup. */
47115
+ function marqueeOf(announcement) {
47116
+ const body = (0, _deepseek_ai_dsh_client_ui_primitives.extractMarkdownPlainText)(announcement.content, { mode: "all" }).replace(/\s+/gu, " ").trim();
47117
+ return body === "" ? announcement.title : `${announcement.title}:${body}`;
47118
+ }
47119
+ /**
47120
+ * The announcement bar.
47121
+ *
47122
+ * Rendered from a root-level shell slot, so one instance owns the whole app: an
47123
+ * announcement is not tied to a session, and a second registration would show
47124
+ * the same notice twice.
47125
+ * @param props - the backend calls and the locale to render in.
47126
+ * @returns the bar, the dialogs a click opens, or null while there is nothing to show.
47127
+ */
47128
+ function AnnouncementBar(props) {
47129
+ const { text, items, unread, preference, close, setBar } = useAnnouncementFeed(props);
47130
+ const [panel, setPanel] = (0, react.useState)();
47131
+ const labels = useMarkdownLabels(text);
47132
+ const current = unread[0];
47133
+ const detail = panel?.kind === "detail" ? items.find((item) => item.id === panel.id) : void 0;
47134
+ /** The close path the bar and both dialogs share: leaving a notice on screen after the user acknowledged it is the one thing a close button must not do. */
47135
+ const dismiss = (0, react.useCallback)((announcement) => {
47136
+ close(announcement);
47137
+ setPanel((currentPanel) => currentPanel !== void 0 && currentPanel.kind === "detail" && currentPanel.id === announcement.id ? void 0 : currentPanel);
47138
+ }, [close]);
47139
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
47140
+ current !== void 0 && preference.bar ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
47141
+ className: `${announcement_bar_module_css_default.bar} ${current.notifyMode === "popup" ? announcement_bar_module_css_default.urgent : announcement_bar_module_css_default.bonus}`,
47142
+ role: "status",
47143
+ "aria-label": text.barLabel,
47144
+ children: [
47145
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47146
+ className: announcement_bar_module_css_default.badge,
47147
+ children: current.notifyMode === "popup" ? text.urgent : text.bonus
47148
+ }),
47149
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47150
+ className: announcement_bar_module_css_default.track,
47151
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47152
+ className: announcement_bar_module_css_default.marquee,
47153
+ type: "button",
47154
+ title: text.details,
47155
+ style: { animationDuration: `${Math.min(60, Math.max(14, Math.round(marqueeOf(current).length * .4)))}s` },
47156
+ onClick: () => {
47157
+ setPanel({
47158
+ kind: "detail",
47159
+ id: current.id
47160
+ });
47161
+ },
47162
+ children: marqueeOf(current)
47163
+ })
47164
+ }),
47165
+ unread.length > 1 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47166
+ className: announcement_bar_module_css_default.action,
47167
+ type: "button",
47168
+ onClick: () => {
47169
+ setPanel({ kind: "list" });
47170
+ },
47171
+ children: text.more(unread.length - 1)
47172
+ }) : null,
47173
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47174
+ className: announcement_bar_module_css_default.action,
47175
+ type: "button",
47176
+ "aria-label": text.close(current.title),
47177
+ onClick: () => {
47178
+ dismiss(current);
47179
+ },
47180
+ children: text.dismiss
47181
+ })
47182
+ ]
47183
+ }) : null,
47184
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
47185
+ open: detail !== void 0,
47186
+ onClose: () => {
47187
+ setPanel(void 0);
47188
+ },
47189
+ title: detail?.title ?? "",
47190
+ closeLabel: text.closeDialog,
47191
+ footer: detail === void 0 ? void 0 : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
47192
+ className: announcement_bar_module_css_default.switch,
47193
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
47194
+ type: "checkbox",
47195
+ checked: preference.bar,
47196
+ onChange: (event) => {
47197
+ setBar(event.target.checked);
47198
+ }
47199
+ }), text.showBar]
47200
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47201
+ className: announcement_bar_module_css_default.footerButtons,
47202
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47203
+ className: announcement_bar_module_css_default.primary,
47204
+ type: "button",
47205
+ onClick: () => {
47206
+ if (detail !== void 0) dismiss(detail);
47207
+ },
47208
+ children: text.gotIt
47209
+ })
47210
+ })] }),
47211
+ children: detail === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47212
+ className: announcement_bar_module_css_default.document,
47213
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
47214
+ text: detail.content,
47215
+ labels,
47216
+ variant: "compact"
47217
+ })
47218
+ })
47219
+ }),
47220
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
47221
+ open: panel?.kind === "list",
47222
+ onClose: () => {
47223
+ setPanel(void 0);
47224
+ },
47225
+ title: text.listTitle,
47226
+ closeLabel: text.closeDialog,
47227
+ description: text.listDetail,
47228
+ footer: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
47229
+ className: announcement_bar_module_css_default.switch,
47230
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
47231
+ type: "checkbox",
47232
+ checked: preference.bar,
47233
+ onChange: (event) => {
47234
+ setBar(event.target.checked);
47235
+ }
47236
+ }), text.showBar]
47237
+ }),
47238
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AnnouncementRows, {
47239
+ items,
47240
+ text,
47241
+ onOpen: (id) => {
47242
+ setPanel({
47243
+ kind: "detail",
47244
+ id
47245
+ });
47246
+ },
47247
+ onMarkRead: (announcement) => {
47248
+ dismiss(announcement);
47249
+ }
47250
+ })
47251
+ })
47252
+ ] });
47253
+ }
47254
+ /** The list body both the bar's dialog and the settings section render. */
47255
+ function AnnouncementRows({ items, text, onOpen, onMarkRead }) {
47256
+ if (items.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
47257
+ className: announcement_bar_module_css_default.empty,
47258
+ children: text.empty
47259
+ });
47260
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
47261
+ className: announcement_bar_module_css_default.rows,
47262
+ children: items.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
47263
+ className: announcement_bar_module_css_default.row,
47264
+ children: [
47265
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
47266
+ className: announcement_bar_module_css_default.rowTitle,
47267
+ type: "button",
47268
+ onClick: () => {
47269
+ onOpen(item.id);
47270
+ },
47271
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47272
+ className: `${announcement_bar_module_css_default.dot} ${item.notifyMode === "popup" ? announcement_bar_module_css_default.dotUrgent : announcement_bar_module_css_default.dotBonus}`,
47273
+ "aria-hidden": "true"
47274
+ }), item.title]
47275
+ }),
47276
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
47277
+ className: announcement_bar_module_css_default.rowState,
47278
+ children: item.readAt === void 0 ? text.unread : text.read
47279
+ }),
47280
+ item.readAt === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47281
+ className: announcement_bar_module_css_default.action,
47282
+ type: "button",
47283
+ onClick: () => {
47284
+ onMarkRead(item);
47285
+ },
47286
+ children: text.markRead
47287
+ }) : null
47288
+ ]
47289
+ }, item.id))
47290
+ });
47291
+ }
47292
+ /**
47293
+ * The settings section: the announcement history, and the switch that brings the
47294
+ * bar back.
47295
+ *
47296
+ * This is the other half of "hide the bar" — the bar's own switch disappears with
47297
+ * the bar, so a section that lists the same feed is what keeps a hidden notice
47298
+ * reachable rather than lost.
47299
+ * @param props - the backend calls and the locale to render in.
47300
+ * @returns the section's rows and its switch.
47301
+ */
47302
+ function AnnouncementSettingsSection(props) {
47303
+ const { text, items, preference, close, setBar } = useAnnouncementFeed(props);
47304
+ const [openId, setOpenId] = (0, react.useState)();
47305
+ const labels = useMarkdownLabels(text);
47306
+ const detail = openId === void 0 ? void 0 : items.find((item) => item.id === openId);
47307
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
47308
+ className: announcement_bar_module_css_default.section,
47309
+ children: [
47310
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
47311
+ className: announcement_bar_module_css_default.switch,
47312
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
47313
+ type: "checkbox",
47314
+ checked: preference.bar,
47315
+ onChange: (event) => {
47316
+ setBar(event.target.checked);
47317
+ }
47318
+ }), text.showBar]
47319
+ }),
47320
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
47321
+ className: announcement_bar_module_css_default.sectionHint,
47322
+ children: text.showBarHint
47323
+ }),
47324
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
47325
+ className: announcement_bar_module_css_default.sectionHint,
47326
+ children: text.settingsDetail
47327
+ }),
47328
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AnnouncementRows, {
47329
+ items,
47330
+ text,
47331
+ onOpen: (id) => {
47332
+ setOpenId(id);
47333
+ },
47334
+ onMarkRead: (announcement) => {
47335
+ close(announcement);
47336
+ }
47337
+ }),
47338
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Modal, {
47339
+ open: detail !== void 0,
47340
+ onClose: () => {
47341
+ setOpenId(void 0);
47342
+ },
47343
+ title: detail?.title ?? "",
47344
+ closeLabel: text.closeDialog,
47345
+ footer: detail === void 0 ? void 0 : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47346
+ className: announcement_bar_module_css_default.footerButtons,
47347
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
47348
+ className: announcement_bar_module_css_default.primary,
47349
+ type: "button",
47350
+ onClick: () => {
47351
+ close(detail);
47352
+ setOpenId(void 0);
47353
+ },
47354
+ children: detail.readAt === void 0 ? text.gotIt : text.closeDialog
47355
+ })
47356
+ }),
47357
+ children: detail === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
47358
+ className: announcement_bar_module_css_default.document,
47359
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.MarkdownText, {
47360
+ text: detail.content,
47361
+ labels,
47362
+ variant: "compact"
47363
+ })
47364
+ })
47365
+ })
47366
+ ]
47367
+ });
47368
+ }
46707
47369
  //#endregion
46708
47370
  //#region src/client/index.ts
46709
47371
  const NS = "settings.freecodego";
@@ -46756,6 +47418,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46756
47418
  */
46757
47419
  const zh = {
46758
47420
  tab: "FreeCodeGo",
47421
+ announcements: "公告",
46759
47422
  "language.switch": "切换中英文",
46760
47423
  engineShort: "引擎",
46761
47424
  engineHint: "选择新会话使用的 Agent 引擎",
@@ -46884,6 +47547,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
46884
47547
  */
46885
47548
  const en = {
46886
47549
  tab: "FreeCodeGo",
47550
+ announcements: "Announcements",
46887
47551
  "language.switch": "Switch language",
46888
47552
  engineShort: "Engine",
46889
47553
  engineHint: "Choose the Agent engine for new sessions",
@@ -47842,6 +48506,37 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
47842
48506
  disposeSkill?.();
47843
48507
  };
47844
48508
  });
48509
+ const announcementFeed = {
48510
+ list: async () => {
48511
+ const result = await backendCall("accountAnnouncements");
48512
+ return result.ok ? result.value : [];
48513
+ },
48514
+ markRead: async (announcementId) => {
48515
+ const result = await backendCall("accountMarkAnnouncementRead", announcementId);
48516
+ return result.ok ? result.value : false;
48517
+ }
48518
+ };
48519
+ ctx.inject(["slots"], (scope) => scope.slots.inject("shell.overlay", () => scope.slots.register({
48520
+ name: "shell.overlay",
48521
+ id: "freecodego-announcements",
48522
+ order: 5,
48523
+ locale: NS,
48524
+ inject: () => ({
48525
+ ...announcementFeed,
48526
+ language: settingsLanguage()
48527
+ })
48528
+ }, AnnouncementBar)));
48529
+ ctx.inject(["slots"], (scope) => scope.slots.inject("settings.section", () => scope.slots.register({
48530
+ name: "settings.section",
48531
+ id: "freecodego-announcements",
48532
+ order: 36,
48533
+ label: () => t("announcements"),
48534
+ locale: NS,
48535
+ inject: () => ({
48536
+ ...announcementFeed,
48537
+ language: settingsLanguage()
48538
+ })
48539
+ }, AnnouncementSettingsSection)));
47845
48540
  ctx.inject(["slots", "sessions"], (scope) => scope.slots.inject("settings.section", () => {
47846
48541
  let disposeEngineering;
47847
48542
  let registrationEpoch = 0;