completion-kit 0.5.42 → 0.5.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/completion_kit/application.js +17 -0
  3. data/app/assets/stylesheets/completion_kit/application.css +505 -39
  4. data/app/controllers/completion_kit/metrics_controller.rb +35 -24
  5. data/app/jobs/completion_kit/judge_review_job.rb +11 -0
  6. data/app/models/completion_kit/judge_version.rb +32 -1
  7. data/app/services/completion_kit/judge_variant_generator.rb +8 -6
  8. data/app/services/completion_kit/metric_calibration_stats.rb +16 -4
  9. data/app/views/completion_kit/api_reference/_body.html.erb +1 -1
  10. data/app/views/completion_kit/calibrations/_buttons.html.erb +43 -6
  11. data/app/views/completion_kit/calibrations/_trust_panel.html.erb +27 -28
  12. data/app/views/completion_kit/metrics/_form.html.erb +90 -4
  13. data/app/views/completion_kit/metrics/_rubric_diff.html.erb +25 -0
  14. data/app/views/completion_kit/metrics/_rubric_hint.html.erb +4 -0
  15. data/app/views/completion_kit/metrics/_starter_card.html.erb +13 -9
  16. data/app/views/completion_kit/metrics/edit.html.erb +5 -1
  17. data/app/views/completion_kit/metrics/index.html.erb +5 -3
  18. data/app/views/completion_kit/metrics/show.html.erb +132 -126
  19. data/app/views/completion_kit/metrics/starter_preview.html.erb +6 -6
  20. data/app/views/completion_kit/responses/show.html.erb +1 -1
  21. data/app/views/completion_kit/runs/_status_panel.html.erb +2 -2
  22. data/config/routes.rb +2 -1
  23. data/db/migrate/20260525000001_add_version_number_and_published_at_to_judge_versions.rb +24 -0
  24. data/lib/completion_kit/version.rb +1 -1
  25. metadata +4 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cb4e02cd47c184c237c34642f1ece8c44bef6a2e79cfeeb3da913a536940216e
4
- data.tar.gz: 516720138ec5dd2eeecc2d28cd9e7830c8c2ab2b4a183733afe44a939ca4d9af
3
+ metadata.gz: 7a9284c6a53b1b609de8ca2c081111687990d32f40f1fa4d2422670daeae9f2f
4
+ data.tar.gz: edb62bc8b34b3ecce534a1e4f0730066d6b56f591d05046b1904eb33f9f7cbc6
5
5
  SHA512:
6
- metadata.gz: 0f3403ecf234b58f659f49406e0264384a5ccbda7206e3673c3b4d96704658b1efe5c2e74943fd6110477a8acffeca3600af655980e76a139319e6dc4376779f
7
- data.tar.gz: da16ea0344f7a00f8366faabe4cd9d53ef487fc67a06f415b7772ff3631fcb3edca6f30be9a59dd3e4cc9e40795cdd4977028c5fd880ab9d2d49d3563babe5aa
6
+ metadata.gz: 0aaf95d75bdfee01b387d3ebe97434168815d58627f8d855ad3dd15534e33c2a69eca7ee8a25a964f6669f891026d350abb5c23e23006ada5a1c56df9ad616ea
7
+ data.tar.gz: 800fec24cee472a245fcfffbb025eabb2a3bc62cbfc513d1ec0a2c7aa8d1e304f59cc28aa9074712060d0f49ac6bbfba4597cc17e1d3b8db71c5e3b9c557dcab
@@ -164,3 +164,20 @@ document.addEventListener("click", function(e) {
164
164
  if (!menu.contains(e.target)) menu.removeAttribute("open");
165
165
  });
166
166
  });
167
+
168
+ document.addEventListener("click", function(e) {
169
+ var btn = e.target.closest("[data-ck-apply]");
170
+ if (!btn) return;
171
+ e.preventDefault();
172
+ var targetName = btn.getAttribute("data-target");
173
+ var value = btn.getAttribute("data-value");
174
+ if (!targetName) return;
175
+ var field = document.querySelector('[name="' + targetName.replace(/"/g, '\\"') + '"]');
176
+ if (!field) return;
177
+ field.value = value;
178
+ field.dispatchEvent(new Event("input", { bubbles: true }));
179
+ field.dispatchEvent(new Event("change", { bubbles: true }));
180
+ btn.classList.add("is-applied");
181
+ btn.textContent = "Applied ✓";
182
+ field.focus({ preventScroll: true });
183
+ });
@@ -1943,11 +1943,22 @@ tr:hover .ck-chip--publish {
1943
1943
  transition: all 0.15s;
1944
1944
  }
1945
1945
 
1946
+
1946
1947
  .ck-icon-btn svg {
1947
1948
  width: 16px;
1948
1949
  height: 16px;
1949
1950
  }
1950
1951
 
1952
+ .ck-icon-btn--form {
1953
+ min-height: 2rem;
1954
+ padding: 0.4rem 0.7rem;
1955
+ border-color: var(--ck-line-strong);
1956
+ }
1957
+ .ck-icon-btn--form.ck-icon-btn svg {
1958
+ width: 18px;
1959
+ height: 18px;
1960
+ }
1961
+
1951
1962
  .ck-select-with-action {
1952
1963
  display: flex;
1953
1964
  gap: 0.5rem;
@@ -2721,6 +2732,9 @@ select.ck-input {
2721
2732
  height: 16px;
2722
2733
  }
2723
2734
 
2735
+ .ck-metric-pip__sub {
2736
+ color: var(--ck-dim);
2737
+ }
2724
2738
  .ck-metric-pip__label strong {
2725
2739
  font-weight: 700;
2726
2740
  }
@@ -3458,7 +3472,6 @@ select.ck-input {
3458
3472
  }
3459
3473
  .ck-tags-table__unused {
3460
3474
  color: var(--ck-dim);
3461
- font-style: italic;
3462
3475
  }
3463
3476
 
3464
3477
  .ck-mg-members {
@@ -3523,6 +3536,47 @@ select.ck-input {
3523
3536
  .ck-prompt-versions-table th:nth-child(3), .ck-prompt-versions-table td:nth-child(3) { width: 8rem; white-space: nowrap; }
3524
3537
  .ck-prompt-versions-table th:nth-child(4), .ck-prompt-versions-table td:nth-child(4) { width: auto; }
3525
3538
 
3539
+ .ck-metric-versions-table th:nth-child(1), .ck-metric-versions-table td:nth-child(1) { width: 16rem; }
3540
+ .ck-metric-versions-table th:nth-child(2), .ck-metric-versions-table td:nth-child(2) { width: 12rem; white-space: nowrap; }
3541
+ .ck-metric-versions-table th:nth-child(3), .ck-metric-versions-table td:nth-child(3) { width: auto; }
3542
+
3543
+ .ck-source-chip {
3544
+ display: inline-block;
3545
+ padding: 2px 8px;
3546
+ border-radius: 4px;
3547
+ font-family: var(--ck-mono);
3548
+ font-size: 0.7rem;
3549
+ letter-spacing: 0.06em;
3550
+ text-transform: uppercase;
3551
+ border: 1px solid var(--ck-line-strong);
3552
+ background: var(--ck-surface-soft);
3553
+ color: var(--ck-muted);
3554
+ }
3555
+ .ck-source-chip--ai {
3556
+ border-color: rgba(56, 189, 248, 0.35);
3557
+ background: rgba(56, 189, 248, 0.08);
3558
+ color: var(--ck-accent);
3559
+ }
3560
+ .ck-source-chip--manual {
3561
+ border-color: var(--ck-line-strong);
3562
+ color: var(--ck-text);
3563
+ }
3564
+ .ck-source-chip--initial {
3565
+ border-color: var(--ck-line);
3566
+ color: var(--ck-dim);
3567
+ }
3568
+ .ck-source-chip--current {
3569
+ border-color: var(--ck-line-strong);
3570
+ color: var(--ck-text);
3571
+ }
3572
+ .ck-source-chip--past {
3573
+ border-color: var(--ck-line);
3574
+ color: var(--ck-dim);
3575
+ }
3576
+ .ck-disagreement--stale {
3577
+ opacity: 0.7;
3578
+ }
3579
+
3526
3580
  .ck-suggestions-table th:nth-child(1), .ck-suggestions-table td:nth-child(1) { width: 16rem; white-space: nowrap; }
3527
3581
  .ck-suggestions-table th:nth-child(2), .ck-suggestions-table td:nth-child(2) { width: auto; }
3528
3582
  .ck-suggestions-table th:nth-child(3), .ck-suggestions-table td:nth-child(3) { width: 6rem; white-space: nowrap; }
@@ -3967,6 +4021,28 @@ table.ck-runs-table {
3967
4021
  transform: none;
3968
4022
  }
3969
4023
 
4024
+ .ck-info-hint {
4025
+ display: inline-flex;
4026
+ align-items: center;
4027
+ position: relative;
4028
+ vertical-align: middle;
4029
+ margin-left: 0.4rem;
4030
+ color: var(--ck-dim);
4031
+ cursor: help;
4032
+ }
4033
+ .ck-info-hint:hover,
4034
+ .ck-info-hint:focus-visible {
4035
+ color: var(--ck-text);
4036
+ }
4037
+ .ck-info-hint:hover .ck-info-popup,
4038
+ .ck-info-hint:focus-within .ck-info-popup {
4039
+ display: block;
4040
+ }
4041
+ .ck-info-hint svg {
4042
+ width: 14px;
4043
+ height: 14px;
4044
+ }
4045
+
3970
4046
  .ck-suggest-reasoning {
3971
4047
  margin: 1.5rem 0;
3972
4048
  padding: 1.25rem 1.5rem;
@@ -4000,6 +4076,65 @@ table.ck-runs-table {
4000
4076
  background: var(--ck-line);
4001
4077
  }
4002
4078
 
4079
+ .ck-kicker--inset {
4080
+ margin: 1.25rem 0 0.5rem;
4081
+ }
4082
+
4083
+ .ck-rubric-diff {
4084
+ margin: 0 0 0.5rem;
4085
+ border: 1px solid var(--ck-line);
4086
+ border-radius: var(--ck-radius);
4087
+ overflow: hidden;
4088
+ background: var(--ck-line);
4089
+ }
4090
+ .ck-rubric-diff__row {
4091
+ display: grid;
4092
+ grid-template-columns: 110px 1fr;
4093
+ gap: 1px;
4094
+ align-items: stretch;
4095
+ background: var(--ck-surface);
4096
+ border-bottom: 1px solid var(--ck-line);
4097
+ }
4098
+ .ck-rubric-diff__row:last-child { border-bottom: 0; }
4099
+ .ck-rubric-diff__row--unchanged { opacity: 0.55; }
4100
+ .ck-rubric-diff__stars {
4101
+ display: flex;
4102
+ align-items: center;
4103
+ gap: 2px;
4104
+ padding: 0.75rem 0.85rem;
4105
+ background: var(--ck-bg-strong);
4106
+ border-right: 1px solid var(--ck-line);
4107
+ white-space: nowrap;
4108
+ }
4109
+ .ck-rubric-diff__stars svg { width: 12px; height: 12px; flex-shrink: 0; }
4110
+ .ck-rubric-diff__panes {
4111
+ display: grid;
4112
+ grid-template-columns: 1fr 1fr;
4113
+ gap: 1px;
4114
+ background: var(--ck-line);
4115
+ min-width: 0;
4116
+ }
4117
+ .ck-rubric-diff__pane {
4118
+ margin: 0;
4119
+ padding: 0.7rem 0.85rem;
4120
+ background: var(--ck-surface);
4121
+ font-family: var(--ck-mono);
4122
+ font-size: 0.78rem;
4123
+ line-height: 1.55;
4124
+ color: var(--ck-text);
4125
+ white-space: pre-wrap;
4126
+ word-break: break-word;
4127
+ min-width: 0;
4128
+ }
4129
+ .ck-rubric-diff__unchanged {
4130
+ margin: 0;
4131
+ padding: 0.7rem 0.85rem;
4132
+ font-family: var(--ck-mono);
4133
+ font-size: 0.78rem;
4134
+ line-height: 1.55;
4135
+ color: var(--ck-dim);
4136
+ }
4137
+
4003
4138
  .ck-suggest-diff__pane {
4004
4139
  background: var(--ck-surface);
4005
4140
  min-width: 0;
@@ -4481,8 +4616,8 @@ a.tag-mark {
4481
4616
  .ck-settings-kicker__link:hover { color: var(--ck-text); }
4482
4617
 
4483
4618
  .tag-marks-row--header {
4484
- margin-top: -0.5rem;
4485
- margin-bottom: 1.25rem;
4619
+ margin-top: 0.4rem;
4620
+ margin-bottom: 0;
4486
4621
  }
4487
4622
 
4488
4623
 
@@ -5176,36 +5311,124 @@ a.tag-mark {
5176
5311
  }
5177
5312
  .ck-calibration__prompt {
5178
5313
  margin: 0 0 10px;
5179
- display: flex;
5180
- align-items: baseline;
5181
- flex-wrap: wrap;
5182
- gap: 8px 12px;
5183
- }
5184
- .ck-calibration__label {
5185
5314
  font-family: var(--ck-mono);
5186
5315
  font-size: 0.72rem;
5187
- letter-spacing: 0.06em;
5316
+ letter-spacing: 0.04em;
5317
+ color: var(--ck-dim);
5318
+ }
5319
+ .ck-calibration__prompt > * + * {
5320
+ margin-left: 8px;
5321
+ }
5322
+ .ck-calibration__label {
5323
+ letter-spacing: 0.08em;
5188
5324
  text-transform: uppercase;
5189
5325
  color: var(--ck-dim);
5190
- flex-shrink: 0;
5191
5326
  }
5192
- .ck-calibration__count {
5327
+ .ck-calibration__meta {
5328
+ color: var(--ck-muted);
5329
+ }
5330
+ .ck-calibration__sep {
5331
+ color: var(--ck-line-strong);
5332
+ }
5333
+ .ck-calibration__meta-link {
5334
+ color: var(--ck-accent);
5335
+ text-decoration: none;
5336
+ white-space: nowrap;
5337
+ text-transform: uppercase;
5338
+ letter-spacing: 0.08em;
5339
+ }
5340
+
5341
+ .ck-calibration__others {
5342
+ margin: 10px 0 0;
5193
5343
  font-family: var(--ck-mono);
5194
- font-size: 0.72rem;
5195
- letter-spacing: 0.03em;
5344
+ font-size: 0.78rem;
5345
+ }
5346
+ .ck-calibration__others-summary {
5347
+ display: inline-flex;
5348
+ align-items: center;
5349
+ gap: 6px;
5196
5350
  color: var(--ck-accent);
5351
+ font-weight: 500;
5352
+ cursor: pointer;
5353
+ user-select: none;
5354
+ list-style: none;
5197
5355
  }
5198
- .ck-calibration__hint {
5199
- font-size: 0.82rem;
5356
+ .ck-calibration__others-summary:hover,
5357
+ .ck-calibration__others-summary:focus-visible {
5358
+ color: var(--ck-accent-hover);
5359
+ }
5360
+ .ck-calibration__others-summary::-webkit-details-marker { display: none; }
5361
+ .ck-calibration__others-summary svg {
5362
+ width: 12px;
5363
+ height: 12px;
5364
+ transition: transform 0.15s;
5365
+ }
5366
+ .ck-calibration__others[open] .ck-calibration__others-summary svg {
5367
+ transform: rotate(90deg);
5368
+ }
5369
+ .ck-calibration__others-list {
5370
+ list-style: none;
5371
+ padding: 8px 0 0;
5372
+ margin: 0;
5373
+ display: flex;
5374
+ flex-direction: column;
5375
+ gap: 6px;
5376
+ }
5377
+ .ck-calibration__others-item {
5378
+ padding: 8px 10px;
5379
+ background: var(--ck-surface-soft);
5380
+ border: 1px solid var(--ck-line);
5381
+ border-radius: 4px;
5200
5382
  color: var(--ck-dim);
5201
- line-height: 1.4;
5202
5383
  }
5203
- @media (max-width: 640px) {
5204
- .ck-calibration__prompt {
5205
- flex-direction: column;
5206
- align-items: flex-start;
5207
- gap: 4px;
5208
- }
5384
+ .ck-calibration__others-item--agree { border-left: 2px solid var(--ck-success); }
5385
+ .ck-calibration__others-item--disagree { border-left: 2px solid var(--ck-danger); }
5386
+ .ck-calibration__others-item--borderline { border-left: 2px solid var(--ck-warning); }
5387
+ .ck-calibration__others-row {
5388
+ display: flex;
5389
+ flex-wrap: wrap;
5390
+ align-items: center;
5391
+ gap: 10px;
5392
+ line-height: 1;
5393
+ }
5394
+ .ck-calibration__others-verdict {
5395
+ display: inline-flex;
5396
+ align-items: center;
5397
+ gap: 4px;
5398
+ text-transform: uppercase;
5399
+ letter-spacing: 0.06em;
5400
+ font-weight: 500;
5401
+ color: var(--ck-text);
5402
+ }
5403
+ .ck-calibration__others-item--agree .ck-calibration__others-verdict { color: var(--ck-success); }
5404
+ .ck-calibration__others-item--disagree .ck-calibration__others-verdict { color: var(--ck-danger); }
5405
+ .ck-calibration__others-item--borderline .ck-calibration__others-verdict { color: var(--ck-warning); }
5406
+ .ck-calibration__others-by {
5407
+ color: var(--ck-muted);
5408
+ }
5409
+ .ck-calibration__others-stars {
5410
+ display: inline-flex;
5411
+ align-items: center;
5412
+ gap: 2px;
5413
+ }
5414
+ .ck-calibration__others-stars svg { display: block; }
5415
+ .ck-calibration__others-note {
5416
+ margin: 6px 0 0;
5417
+ color: var(--ck-dim);
5418
+ line-height: 1.5;
5419
+ }
5420
+ .ck-calibration__meta-link svg {
5421
+ display: inline-block;
5422
+ width: 12px;
5423
+ height: 12px;
5424
+ vertical-align: middle;
5425
+ margin-right: 3px;
5426
+ position: relative;
5427
+ top: -1px;
5428
+ }
5429
+ .ck-calibration__meta-link:hover,
5430
+ .ck-calibration__meta-link:focus-visible {
5431
+ color: var(--ck-accent-hover);
5209
5432
  }
5210
5433
  .ck-calibration__buttons {
5211
5434
  display: flex;
@@ -5268,6 +5491,10 @@ a.tag-mark {
5268
5491
  .ck-calibration__detail .ck-button {
5269
5492
  align-self: flex-start;
5270
5493
  }
5494
+ .ck-calibration__detail textarea {
5495
+ font-family: var(--ck-mono);
5496
+ font-size: 0.82rem;
5497
+ }
5271
5498
  .ck-calibration__value {
5272
5499
  color: var(--ck-accent);
5273
5500
  font-family: var(--ck-mono);
@@ -5361,6 +5588,112 @@ a.tag-mark {
5361
5588
  .ck-trust-panel__borderline--warning { color: var(--ck-warning); }
5362
5589
  .ck-trust-panel__borderline--danger { color: var(--ck-danger); }
5363
5590
 
5591
+ .ck-trust-line {
5592
+ margin: 10px 0 0;
5593
+ font-family: var(--ck-mono);
5594
+ font-size: 0.82rem;
5595
+ color: var(--ck-dim);
5596
+ line-height: 1.55;
5597
+ }
5598
+ .ck-trust-line > * + * {
5599
+ margin-left: 6px;
5600
+ }
5601
+ .ck-trust-line__label {
5602
+ font-size: 0.82rem;
5603
+ letter-spacing: 0.08em;
5604
+ text-transform: uppercase;
5605
+ color: var(--ck-muted);
5606
+ white-space: nowrap;
5607
+ }
5608
+ .ck-trust-line__label svg {
5609
+ display: inline-block;
5610
+ width: 14px;
5611
+ height: 14px;
5612
+ vertical-align: middle;
5613
+ margin-right: 2px;
5614
+ position: relative;
5615
+ top: -1px;
5616
+ }
5617
+ .ck-trust-line__state {
5618
+ color: var(--ck-text);
5619
+ font-weight: 500;
5620
+ }
5621
+ .ck-trust-icon {
5622
+ display: inline-block;
5623
+ width: 11px;
5624
+ height: 11px;
5625
+ vertical-align: -1px;
5626
+ margin-right: 4px;
5627
+ color: var(--ck-muted);
5628
+ }
5629
+ .ck-trust-line__state {
5630
+ color: var(--ck-text);
5631
+ }
5632
+ .ck-trust-line__sep {
5633
+ color: var(--ck-line-strong);
5634
+ }
5635
+ .ck-trust-line__counter {
5636
+ font-weight: 600;
5637
+ color: var(--ck-accent);
5638
+ }
5639
+ .ck-trust-line__score {
5640
+ font-weight: 600;
5641
+ color: var(--ck-success);
5642
+ }
5643
+ .ck-trust-line--early .ck-trust-line__score,
5644
+ .ck-trust-line--provisional .ck-trust-line__score {
5645
+ color: var(--ck-accent);
5646
+ }
5647
+ .ck-trust-line__margin {
5648
+ color: var(--ck-dim);
5649
+ }
5650
+ .ck-trust-line__gate {
5651
+ font-size: 0.68rem;
5652
+ letter-spacing: 0.06em;
5653
+ text-transform: uppercase;
5654
+ padding: 1px 6px;
5655
+ border-radius: 3px;
5656
+ border: 1px solid var(--ck-line);
5657
+ color: var(--ck-dim);
5658
+ }
5659
+ .ck-trust-line--firm .ck-trust-line__gate {
5660
+ color: var(--ck-success);
5661
+ border-color: rgba(45, 212, 168, 0.35);
5662
+ }
5663
+ .ck-trust-line__hint {
5664
+ color: var(--ck-dim);
5665
+ }
5666
+ .ck-trust-line__link {
5667
+ color: var(--ck-accent);
5668
+ text-decoration: none;
5669
+ font-weight: 500;
5670
+ white-space: nowrap;
5671
+ }
5672
+ .ck-trust-line__link:hover,
5673
+ .ck-trust-line__link:focus-visible {
5674
+ color: var(--ck-accent-hover);
5675
+ }
5676
+ .ck-trust-line__borderline--ok { color: var(--ck-dim); }
5677
+ .ck-trust-line__borderline--warning { color: var(--ck-warning); }
5678
+ .ck-trust-line__borderline--danger { color: var(--ck-danger); }
5679
+
5680
+ @media (max-width: 640px) {
5681
+ .ck-trust-panel {
5682
+ display: flex;
5683
+ width: 100%;
5684
+ box-sizing: border-box;
5685
+ }
5686
+ .ck-trust-panel__body {
5687
+ flex-direction: column;
5688
+ align-items: flex-start;
5689
+ gap: 4px;
5690
+ }
5691
+ .ck-trust-panel__hint {
5692
+ line-height: 1.4;
5693
+ white-space: normal;
5694
+ }
5695
+ }
5696
+
5364
5697
  .ck-disagreements-table td .ck-meta-copy {
5365
5698
  font-size: 0.78rem;
5366
5699
  }
@@ -5419,6 +5752,15 @@ a.tag-mark {
5419
5752
  letter-spacing: 0.03em;
5420
5753
  color: var(--ck-dim);
5421
5754
  }
5755
+ .ck-metrics-table__trust-label {
5756
+ text-transform: uppercase;
5757
+ letter-spacing: 0.08em;
5758
+ color: var(--ck-muted);
5759
+ margin-right: 4px;
5760
+ }
5761
+ .ck-metrics-table__trust-state {
5762
+ color: var(--ck-text);
5763
+ }
5422
5764
  .ck-metrics-table__trust-rate {
5423
5765
  font-weight: 600;
5424
5766
  color: var(--ck-success);
@@ -5459,6 +5801,8 @@ a.tag-mark {
5459
5801
  border-radius: 4px;
5460
5802
  }
5461
5803
  .ck-star-picker label svg {
5804
+ width: 20px;
5805
+ height: 20px;
5462
5806
  fill: transparent;
5463
5807
  stroke: var(--ck-line-strong);
5464
5808
  transition: fill 0.08s, stroke 0.08s;
@@ -5505,6 +5849,77 @@ a.tag-mark {
5505
5849
  flex-direction: column;
5506
5850
  gap: 8px;
5507
5851
  }
5852
+ .ck-disagreement--remembered {
5853
+ border-color: rgba(45, 212, 168, 0.35);
5854
+ background: rgba(45, 212, 168, 0.04);
5855
+ }
5856
+
5857
+ .ck-suggestion-banner {
5858
+ margin: 0 0 1rem;
5859
+ padding: 0.9rem 1rem;
5860
+ border: 1px solid rgba(56, 189, 248, 0.35);
5861
+ background: rgba(56, 189, 248, 0.05);
5862
+ border-radius: var(--ck-radius);
5863
+ display: flex;
5864
+ align-items: center;
5865
+ justify-content: space-between;
5866
+ gap: 1rem;
5867
+ flex-wrap: wrap;
5868
+ }
5869
+ .ck-suggestion-banner__body { min-width: 0; flex: 1 1 320px; }
5870
+ .ck-suggestion-banner__actions {
5871
+ display: inline-flex;
5872
+ align-items: center;
5873
+ gap: 0.5rem;
5874
+ flex-wrap: wrap;
5875
+ }
5876
+
5877
+ .ck-inline-suggestion {
5878
+ margin: 0.6rem 0 0;
5879
+ border: 1px solid rgba(56, 189, 248, 0.3);
5880
+ background: rgba(56, 189, 248, 0.04);
5881
+ border-radius: var(--ck-radius);
5882
+ overflow: hidden;
5883
+ }
5884
+ .ck-inline-suggestion--band { margin-top: 0.45rem; }
5885
+ .ck-inline-suggestion__head {
5886
+ display: flex;
5887
+ align-items: center;
5888
+ justify-content: space-between;
5889
+ gap: 0.6rem;
5890
+ padding: 0.55rem 0.75rem;
5891
+ background: rgba(56, 189, 248, 0.06);
5892
+ border-bottom: 1px solid rgba(56, 189, 248, 0.18);
5893
+ }
5894
+ .ck-inline-suggestion__head .ck-kicker { color: var(--ck-accent); }
5895
+ .ck-inline-suggestion__diff {
5896
+ display: grid;
5897
+ grid-template-columns: 1fr 1fr;
5898
+ gap: 1px;
5899
+ background: var(--ck-line);
5900
+ }
5901
+ .ck-inline-suggestion__pane {
5902
+ margin: 0;
5903
+ padding: 0.7rem 0.85rem;
5904
+ background: var(--ck-surface);
5905
+ font-family: var(--ck-mono);
5906
+ font-size: 0.78rem;
5907
+ line-height: 1.55;
5908
+ color: var(--ck-text);
5909
+ white-space: pre-wrap;
5910
+ word-break: break-word;
5911
+ min-width: 0;
5912
+ }
5913
+ .ck-inline-suggestion__apply.is-applied {
5914
+ color: var(--ck-success);
5915
+ border-color: rgba(45, 212, 168, 0.45);
5916
+ }
5917
+ .ck-disagreement__action {
5918
+ display: inline-flex;
5919
+ align-items: center;
5920
+ gap: 8px;
5921
+ flex-wrap: wrap;
5922
+ }
5508
5923
  .ck-disagreement__head {
5509
5924
  display: flex;
5510
5925
  align-items: center;
@@ -5538,6 +5953,15 @@ a.tag-mark {
5538
5953
  margin: 0;
5539
5954
  font-size: 0.78rem;
5540
5955
  }
5956
+ .ck-disagreement__source-link {
5957
+ color: var(--ck-accent);
5958
+ text-decoration: none;
5959
+ font-weight: 500;
5960
+ }
5961
+ .ck-disagreement__source-link:hover,
5962
+ .ck-disagreement__source-link:focus-visible {
5963
+ color: var(--ck-accent-hover);
5964
+ }
5541
5965
 
5542
5966
  .ck-starter-row {
5543
5967
  margin-top: 2rem;
@@ -5559,45 +5983,73 @@ a.tag-mark {
5559
5983
  }
5560
5984
  .ck-starter-grid {
5561
5985
  display: grid;
5562
- grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
5563
- gap: 12px;
5986
+ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
5987
+ gap: 10px;
5564
5988
  }
5565
5989
  .ck-starter-card {
5566
5990
  display: flex;
5567
5991
  flex-direction: column;
5568
- gap: 8px;
5569
- padding: 14px;
5570
- background: var(--ck-surface);
5992
+ justify-content: space-between;
5993
+ gap: 10px;
5994
+ padding: 12px 14px;
5995
+ background: var(--ck-surface-soft);
5571
5996
  border: 1px solid var(--ck-line);
5572
- border-radius: var(--ck-radius-lg);
5573
- transition: border-color 0.12s, background 0.12s;
5997
+ border-radius: 6px;
5998
+ color: var(--ck-text);
5999
+ text-decoration: none;
6000
+ transition: border-color 0.12s, background 0.12s, color 0.12s;
5574
6001
  }
5575
- .ck-starter-card:hover {
5576
- border-color: rgba(6, 182, 212, 0.35);
6002
+ .ck-starter-card:hover,
6003
+ .ck-starter-card:focus-visible {
6004
+ border-color: rgba(6, 182, 212, 0.45);
5577
6005
  background: var(--ck-surface-hover);
5578
6006
  }
6007
+ .ck-starter-card__body {
6008
+ display: flex;
6009
+ flex-direction: column;
6010
+ gap: 4px;
6011
+ }
5579
6012
  .ck-starter-card__name {
5580
6013
  margin: 0;
5581
- font-size: 1rem;
5582
- font-weight: 600;
6014
+ font-family: var(--ck-mono);
6015
+ font-size: 0.92rem;
6016
+ letter-spacing: 0.01em;
5583
6017
  }
5584
6018
  .ck-starter-card__desc {
5585
6019
  margin: 0;
5586
- font-size: 0.85rem;
6020
+ font-size: 0.78rem;
5587
6021
  color: var(--ck-muted);
5588
6022
  line-height: 1.45;
5589
- flex: 1;
5590
6023
  }
5591
- .ck-starter-card__actions {
6024
+ .ck-starter-card__foot {
5592
6025
  display: flex;
5593
6026
  align-items: center;
5594
6027
  justify-content: space-between;
5595
6028
  gap: 10px;
5596
- margin-top: 4px;
6029
+ }
6030
+ .ck-starter-card__cta {
6031
+ font-family: var(--ck-mono);
6032
+ font-size: 0.72rem;
6033
+ letter-spacing: 0.06em;
6034
+ text-transform: uppercase;
6035
+ color: var(--ck-accent);
6036
+ }
6037
+ .ck-starter-card:hover .ck-starter-card__cta {
6038
+ color: var(--ck-accent-hover);
6039
+ }
6040
+ .ck-starter-card__dismiss-form {
6041
+ margin: 0;
5597
6042
  }
5598
6043
  .ck-starter-card__dismiss {
5599
- font-size: 0.75rem;
6044
+ background: transparent;
6045
+ border: 0;
6046
+ padding: 0;
6047
+ font-family: var(--ck-mono);
6048
+ font-size: 0.7rem;
6049
+ letter-spacing: 0.06em;
6050
+ text-transform: uppercase;
5600
6051
  color: var(--ck-dim);
6052
+ cursor: pointer;
5601
6053
  }
5602
6054
  .ck-starter-card__dismiss:hover,
5603
6055
  .ck-starter-card__dismiss:focus-visible {
@@ -5606,3 +6058,17 @@ a.tag-mark {
5606
6058
  .ck-actions--right {
5607
6059
  justify-content: flex-end;
5608
6060
  }
6061
+
6062
+ .ck-starter-actions {
6063
+ display: flex;
6064
+ align-items: center;
6065
+ justify-content: flex-end;
6066
+ gap: 10px;
6067
+ margin-top: 1.5rem;
6068
+ }
6069
+ .ck-starter-actions form.inline-block {
6070
+ margin: 0;
6071
+ }
6072
+ .ck-starter-actions .ck-button {
6073
+ line-height: 1;
6074
+ }