completion-kit 0.5.41 → 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 (28) 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 +557 -23
  4. data/app/controllers/completion_kit/metrics_controller.rb +62 -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/models/completion_kit/starter_metric_dismissal.rb +5 -0
  8. data/app/services/completion_kit/judge_variant_generator.rb +8 -6
  9. data/app/services/completion_kit/metric_calibration_stats.rb +16 -4
  10. data/app/services/completion_kit/starter_metrics.rb +94 -0
  11. data/app/views/completion_kit/api_reference/_body.html.erb +1 -1
  12. data/app/views/completion_kit/calibrations/_buttons.html.erb +43 -6
  13. data/app/views/completion_kit/calibrations/_trust_panel.html.erb +27 -28
  14. data/app/views/completion_kit/metrics/_form.html.erb +90 -4
  15. data/app/views/completion_kit/metrics/_rubric_diff.html.erb +25 -0
  16. data/app/views/completion_kit/metrics/_rubric_hint.html.erb +4 -0
  17. data/app/views/completion_kit/metrics/_starter_card.html.erb +15 -0
  18. data/app/views/completion_kit/metrics/edit.html.erb +5 -1
  19. data/app/views/completion_kit/metrics/index.html.erb +32 -6
  20. data/app/views/completion_kit/metrics/show.html.erb +132 -126
  21. data/app/views/completion_kit/metrics/starter_preview.html.erb +45 -0
  22. data/app/views/completion_kit/responses/show.html.erb +1 -1
  23. data/app/views/completion_kit/runs/_status_panel.html.erb +2 -2
  24. data/config/routes.rb +7 -1
  25. data/db/migrate/20260524000001_create_completion_kit_starter_metric_dismissals.rb +12 -0
  26. data/db/migrate/20260525000001_add_version_number_and_published_at_to_judge_versions.rb +24 -0
  27. data/lib/completion_kit/version.rb +1 -1
  28. metadata +9 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c92ab72bfe3b2fe9fa296a21e8430f7b8c3d9f949a933f7675f4ffd8059dd8ae
4
- data.tar.gz: ec53ee3e3b29a4d283db95d90e7a1dd8afef3572647ae243c9458500600714c9
3
+ metadata.gz: 7a9284c6a53b1b609de8ca2c081111687990d32f40f1fa4d2422670daeae9f2f
4
+ data.tar.gz: edb62bc8b34b3ecce534a1e4f0730066d6b56f591d05046b1904eb33f9f7cbc6
5
5
  SHA512:
6
- metadata.gz: 8b783ec1b478a365f9e8a04da486fc7a87251d53dd6c63720c7d88795a524546bf71da8a07eca79337863c6787f52c776e51c75940b854a6e477f8074bf1d016
7
- data.tar.gz: 7444db06e0adf5e29c7d68426496e643c743187d9cc8d974367cfdf025c993c0e061ad2b4b3f9d6a70f1aca3d70d124744b2a7ae416d5827efab9b6339b496f7
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,3 +5953,122 @@ 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
+ }
5965
+
5966
+ .ck-starter-row {
5967
+ margin-top: 2rem;
5968
+ padding-top: 1.5rem;
5969
+ border-top: 1px solid var(--ck-line);
5970
+ }
5971
+ .ck-starter-row--empty-state {
5972
+ margin-top: 0;
5973
+ padding-top: 0;
5974
+ border-top: 0;
5975
+ }
5976
+ .ck-starter-row .ck-kicker,
5977
+ .ck-starter-row .ck-title {
5978
+ margin-bottom: 0.5rem;
5979
+ }
5980
+ .ck-starter-row .ck-lead,
5981
+ .ck-starter-row .ck-meta-copy {
5982
+ margin-bottom: 1.25rem;
5983
+ }
5984
+ .ck-starter-grid {
5985
+ display: grid;
5986
+ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
5987
+ gap: 10px;
5988
+ }
5989
+ .ck-starter-card {
5990
+ display: flex;
5991
+ flex-direction: column;
5992
+ justify-content: space-between;
5993
+ gap: 10px;
5994
+ padding: 12px 14px;
5995
+ background: var(--ck-surface-soft);
5996
+ border: 1px solid var(--ck-line);
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;
6001
+ }
6002
+ .ck-starter-card:hover,
6003
+ .ck-starter-card:focus-visible {
6004
+ border-color: rgba(6, 182, 212, 0.45);
6005
+ background: var(--ck-surface-hover);
6006
+ }
6007
+ .ck-starter-card__body {
6008
+ display: flex;
6009
+ flex-direction: column;
6010
+ gap: 4px;
6011
+ }
6012
+ .ck-starter-card__name {
6013
+ margin: 0;
6014
+ font-family: var(--ck-mono);
6015
+ font-size: 0.92rem;
6016
+ letter-spacing: 0.01em;
6017
+ }
6018
+ .ck-starter-card__desc {
6019
+ margin: 0;
6020
+ font-size: 0.78rem;
6021
+ color: var(--ck-muted);
6022
+ line-height: 1.45;
6023
+ }
6024
+ .ck-starter-card__foot {
6025
+ display: flex;
6026
+ align-items: center;
6027
+ justify-content: space-between;
6028
+ gap: 10px;
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;
6042
+ }
6043
+ .ck-starter-card__dismiss {
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;
6051
+ color: var(--ck-dim);
6052
+ cursor: pointer;
6053
+ }
6054
+ .ck-starter-card__dismiss:hover,
6055
+ .ck-starter-card__dismiss:focus-visible {
6056
+ color: var(--ck-text);
6057
+ }
6058
+ .ck-actions--right {
6059
+ justify-content: flex-end;
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
+ }