@erdemtuna/doc-review 0.12.0 → 0.13.0

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 (49) hide show
  1. package/README.md +23 -25
  2. package/lib/SKILL.md +65 -202
  3. package/lib/agent-handoff.js +24 -0
  4. package/lib/agent-output.js +287 -0
  5. package/lib/anchor-text.js +31 -19
  6. package/lib/chrome-api.js +23 -4
  7. package/lib/chrome.html +0 -25
  8. package/lib/cli.js +282 -104
  9. package/lib/comment-target.js +4 -0
  10. package/lib/contracts/agent.js +122 -0
  11. package/lib/contracts/feedback.js +369 -1
  12. package/lib/contracts/frame.js +81 -0
  13. package/lib/contracts/history.js +189 -1
  14. package/lib/contracts/index.js +7 -2
  15. package/lib/contracts/page-boundary.js +187 -0
  16. package/lib/contracts/validation.js +200 -0
  17. package/lib/conversation-anchor-controller.js +84 -0
  18. package/lib/conversation-capture.js +81 -0
  19. package/lib/conversation-controller.js +798 -0
  20. package/lib/conversation-save.js +175 -0
  21. package/lib/conversation-server.js +184 -0
  22. package/lib/conversation-shell.js +1013 -0
  23. package/lib/conversation-store.js +809 -0
  24. package/lib/frame-controller.js +8 -8
  25. package/lib/frame-policy.js +1 -0
  26. package/lib/history-policy.js +4 -15
  27. package/lib/history-server.js +42 -326
  28. package/lib/html-transform.js +19 -4
  29. package/lib/icons.js +323 -0
  30. package/lib/new-message-target.js +27 -0
  31. package/lib/paths.js +2 -2
  32. package/lib/poll-transport.js +109 -26
  33. package/lib/positioning.js +51 -0
  34. package/lib/references/context-and-recovery.md +130 -0
  35. package/lib/references/response-contract.md +108 -0
  36. package/lib/references/source-edits.md +47 -0
  37. package/lib/revision-store.js +1 -1
  38. package/lib/save-controller.js +28 -14
  39. package/lib/sdk.js +357 -35
  40. package/lib/server.js +73 -595
  41. package/lib/setup.js +17 -48
  42. package/lib/state.js +21 -7
  43. package/lib/thread-anchor-controller.js +56 -0
  44. package/lib/toolbar-controller.js +3 -3
  45. package/lib/ui/THIRD_PARTY_NOTICES.md +127 -8
  46. package/lib/ui/chrome.css +1079 -2782
  47. package/lib/ui/chrome.js +81 -17
  48. package/package.json +2 -2
  49. package/lib/chrome-client.js +0 -1706
package/lib/ui/chrome.css CHANGED
@@ -49,6 +49,7 @@
49
49
  --tw-drop-shadow-size: initial;
50
50
  --tw-duration: initial;
51
51
  --tw-ease: initial;
52
+ --tw-content: "";
52
53
  --tw-animation-delay: 0s;
53
54
  --tw-animation-direction: normal;
54
55
  --tw-animation-duration: initial;
@@ -70,146 +71,89 @@
70
71
  }
71
72
  }
72
73
 
73
- @layer legacy {
74
- :root, .review-ui {
75
- color-scheme: light;
76
- --background: #f5f2ea;
77
- --foreground: #292e2b;
78
- --card: #fffdf7;
79
- --card-foreground: #292e2b;
80
- --popover: #fffdf7;
81
- --popover-foreground: #292e2b;
82
- --primary: #17685f;
83
- --primary-foreground: #fffdf7;
84
- --secondary: #ecede5;
85
- --secondary-foreground: #626b65;
86
- --muted: #ecede5;
87
- --muted-foreground: #626b65;
88
- --accent: #e1eeea;
89
- --accent-foreground: #17685f;
90
- --destructive: #b43c48;
91
- --destructive-foreground: #fffdf7;
92
- --border: #d8d8cc;
93
- --input: #7c877d;
94
- --ring: #17685f;
95
- --review-added: #eff3e2;
96
- --review-added-foreground: #4d6b24;
97
- --review-added-border: #82945e;
98
- --review-removed: #fcecef;
99
- --review-removed-foreground: #b43c48;
100
- --review-removed-border: #c88791;
101
- --review-modified: #fff1d9;
102
- --review-modified-foreground: #915b13;
103
- --review-modified-border: #b99157;
104
- --review-count-added: #4d6b24;
105
- --review-count-removed: #b43c48;
106
- --review-count-modified: #915b13;
107
- --review-insert: #dce7c5;
108
- --review-delete: #fae2e7;
109
- --review-overlay: #191f1d80;
110
- --review-shadow-color: #191f1d26;
111
- --annotation-foreground: #75470e;
112
- --annotation-background: #fff1d9;
113
- --annotation-active: #f5d6a3;
114
- --annotation-border: #915b13;
115
- --annotation-tint: #915b131a;
116
- --annotation-active-tint: #915b132e;
117
- --halo-light: #fffdf7;
118
- --halo-dark: #191f1d;
119
- }
120
-
121
- :root[data-theme="dark"], :root[data-theme="dark"].review-ui, :root[data-theme="dark"] .review-ui {
122
- color-scheme: dark;
123
- --background: #191f1d;
124
- --foreground: #eeefe6;
125
- --card: #222a26;
126
- --card-foreground: #eeefe6;
127
- --popover: #222a26;
128
- --popover-foreground: #eeefe6;
129
- --primary: #85c7b8;
130
- --primary-foreground: #102f29;
131
- --secondary: #303a33;
132
- --secondary-foreground: #afb9af;
133
- --muted: #303a33;
134
- --muted-foreground: #afb9af;
135
- --accent: #293f37;
136
- --accent-foreground: #85c7b8;
137
- --destructive: #f2a2ab;
138
- --destructive-foreground: #40272c;
139
- --border: #3c4841;
140
- --input: #77877b;
141
- --ring: #85c7b8;
142
- --review-added: #2b3522;
143
- --review-added-foreground: #bbcd87;
144
- --review-added-border: #6f8347;
145
- --review-removed: #40272c;
146
- --review-removed-foreground: #f2a2ab;
147
- --review-removed-border: #a96572;
148
- --review-modified: #3d3020;
149
- --review-modified-foreground: #e7bb72;
150
- --review-modified-border: #9c7a46;
151
- --review-count-added: #bbcd87;
152
- --review-count-removed: #f2a2ab;
153
- --review-count-modified: #e7bb72;
154
- --review-insert: #3e4d2d;
155
- --review-delete: #633944;
156
- --review-overlay: #191f1db3;
157
- --review-shadow-color: #0006;
158
- --annotation-foreground: #f1cc8e;
159
- --annotation-background: #3d3020;
160
- --annotation-active: #594325;
161
- --annotation-border: #e7bb72;
162
- --annotation-tint: #e7bb721a;
163
- --annotation-active-tint: #e7bb722e;
164
- --halo-light: #fffdf7;
165
- --halo-dark: #191f1d;
166
- }
167
-
168
- :root, .review-ui {
169
- --canvas: var(--background);
170
- --panel: var(--card);
171
- --card-border: var(--border);
172
- --hair: var(--border);
173
- --hair-2: var(--border);
174
- --dash: var(--border);
175
- --strong-border: var(--input);
176
- --txt: var(--foreground);
177
- --strong-txt: var(--foreground);
178
- --mute: var(--muted-foreground);
179
- --mute-2: var(--muted-foreground);
180
- --faint: var(--muted-foreground);
181
- --faint-2: var(--muted-foreground);
182
- --soft: var(--muted);
183
- --chip: var(--secondary);
184
- --input-bg: var(--card);
185
- --focus: var(--ring);
186
- --danger: var(--destructive);
187
- --danger-soft: var(--review-removed);
188
- --amber: var(--annotation-border);
189
- --green: var(--review-added-foreground);
190
- --btn-bg: var(--primary);
191
- --btn-fg: var(--primary-foreground);
192
- --diff-paper: var(--card);
193
- --diff-ink: var(--foreground);
194
- --diff-muted: var(--muted-foreground);
195
- --diff-line: var(--border);
196
- --diff-removed: var(--review-removed);
197
- --diff-added: var(--review-added);
198
- --diff-delete: var(--review-delete);
199
- --diff-insert: var(--review-insert);
200
- --diff-delete-ink: var(--review-removed-foreground);
201
- --diff-insert-ink: var(--review-added-foreground);
202
- --diff-gap: var(--muted);
203
- --diff-accent: var(--review-modified-foreground);
204
- --focus-ring: 0 0 0 3px var(--ring);
205
- --review-shadow: 0 8px 24px var(--review-shadow-color), 0 1px 3px var(--review-shadow-color);
74
+ @layer theme {
75
+ :root, :host {
76
+ --spacing: .25rem;
77
+ --container-xs: 20rem;
78
+ --container-sm: 24rem;
79
+ --text-xs--line-height: calc(1 / .75);
80
+ --text-sm--line-height: calc(1.25 / .875);
81
+ --text-base--line-height: calc(1.5 / 1);
82
+ --text-lg--line-height: calc(1.75 / 1.125);
83
+ --font-weight-medium: 500;
84
+ --font-weight-semibold: 600;
85
+ --tracking-tight: -.025em;
86
+ --leading-relaxed: 1.625;
87
+ --radius-md: var(--radius);
88
+ --radius-4xl: 2rem;
89
+ --shadow-lg: 0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;
90
+ --ease-out: cubic-bezier(0, 0, .2, 1);
91
+ --default-transition-duration: .15s;
92
+ --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
93
+ }
94
+ }
95
+
96
+ @layer base {
97
+ .review-ui {
98
+ font-family: var(--review-font-sans);
99
+ font-size: var(--review-text-sm);
100
+ color: var(--foreground);
101
+ -webkit-font-smoothing: antialiased;
102
+ line-height: 1.5;
103
+ }
104
+
105
+ :root.review-ui {
106
+ font-size: 100%;
107
+ }
108
+
109
+ .review-ui :where(*) {
110
+ box-sizing: border-box;
111
+ border: 0 solid var(--border);
112
+ }
113
+
114
+ .review-ui :where(button, input, select, textarea) {
115
+ font: inherit;
116
+ letter-spacing: inherit;
117
+ color: inherit;
118
+ }
119
+
120
+ .review-ui :where(button) {
121
+ cursor: pointer;
122
+ background-color: #0000;
123
+ }
124
+
125
+ .review-ui :where(button:disabled, input:disabled, select:disabled, textarea:disabled) {
126
+ cursor: not-allowed;
127
+ }
128
+
129
+ .review-ui :where(svg) {
130
+ flex-shrink: 0;
131
+ display: block;
132
+ }
133
+
134
+ .review-ui :where([hidden]) {
135
+ display: none !important;
136
+ }
137
+
138
+ .review-ui :where(h1, h2, h3, p) {
139
+ margin: 0;
140
+ }
141
+
142
+ .review-ui :where(a) {
143
+ color: inherit;
144
+ -webkit-text-decoration: inherit;
145
+ -webkit-text-decoration: inherit;
146
+ text-decoration: inherit;
147
+ }
148
+
149
+ .review-ui :where(a[href]) {
150
+ color: var(--primary);
151
+ text-underline-offset: .15em;
152
+ text-decoration: underline;
206
153
  }
207
154
 
208
155
  :root {
209
156
  --toolbar-h: 48px;
210
- --drawer-w: 380px;
211
- --narrow: 720px;
212
- --overlay: 60;
213
157
  }
214
158
 
215
159
  * {
@@ -227,35 +171,14 @@
227
171
  }
228
172
 
229
173
  body {
230
- background: var(--canvas);
231
- color: var(--txt);
174
+ background: var(--background);
175
+ color: var(--foreground);
176
+ font: 13px/1.5 var(--review-font-sans);
232
177
  -webkit-font-smoothing: antialiased;
233
- font: 13px / 1.5 -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, sans-serif;
234
- }
235
-
236
- button, textarea {
237
- font: inherit;
238
- color: inherit;
239
- }
240
-
241
- button:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
242
- box-shadow: var(--focus-ring);
243
- outline: none;
244
- }
245
-
246
- .app {
247
- grid-template-rows: auto minmax(0, 1fr);
248
- height: 100dvh;
249
- display: grid;
250
- }
251
-
252
- .icon {
253
- flex: none;
254
- display: block;
255
178
  }
256
179
 
257
180
  .sr-only {
258
- clip: rect(0, 0, 0, 0);
181
+ clip-path: inset(50%);
259
182
  white-space: nowrap;
260
183
  border: 0;
261
184
  width: 1px;
@@ -265,2316 +188,335 @@
265
188
  position: absolute;
266
189
  overflow: hidden;
267
190
  }
191
+ }
268
192
 
269
- .toolbar {
270
- z-index: 20;
271
- border-bottom: 1px solid var(--hair);
272
- align-items: center;
273
- display: grid;
274
- position: relative;
193
+ @layer components {
194
+ .comparison-host {
195
+ background: var(--background);
196
+ color: var(--foreground);
275
197
  }
276
198
 
277
- .document-trust {
278
- flex: none;
279
- grid-area: scripts;
280
- align-items: center;
281
- gap: 2px;
282
- display: flex;
199
+ .comparison-host .comparison-surface {
200
+ border: 1px solid var(--border);
201
+ border-radius: 0 0 var(--radius) var(--radius);
202
+ background: var(--card);
203
+ color: var(--foreground);
204
+ overflow-wrap: anywhere;
283
205
  }
284
206
 
285
- .script-switch {
286
- cursor: pointer;
287
- background: none;
288
- border: 1px solid #0000;
289
- border-radius: 8px;
290
- align-items: center;
291
- gap: 8px;
292
- height: 44px;
293
- padding: 5px 8px;
294
- font-weight: 550;
295
- display: flex;
207
+ .comparison-host .comparison-headings, .comparison-host .comparison-row {
208
+ grid-template-columns: repeat(2, minmax(0, 1fr));
209
+ display: grid;
296
210
  }
297
211
 
298
- .script-switch:hover:not([aria-disabled="true"]) {
299
- background: var(--soft);
300
- border-color: var(--hair);
212
+ .comparison-host .comparison-headings {
213
+ border-bottom: 1px solid var(--border);
214
+ background: var(--muted);
215
+ color: var(--muted-foreground);
216
+ font-size: 12px;
217
+ font-weight: 600;
301
218
  }
302
219
 
303
- .script-switch:focus-visible, .script-retry:focus-visible {
304
- outline: 2px solid var(--focus);
305
- outline-offset: 2px;
220
+ .comparison-host .comparison-headings > div {
221
+ padding: 12px 18px;
306
222
  }
307
223
 
308
- .script-switch[aria-disabled="true"] {
309
- cursor: wait;
224
+ .comparison-host .comparison-headings > div + div, .comparison-host .comparison-after {
225
+ border-left: 1px solid var(--border);
310
226
  }
311
227
 
312
- .script-switch-value {
313
- text-align: center;
314
- width: 20px;
315
- color: var(--mute-2);
316
- flex: none;
317
- font-size: 11px;
318
- font-weight: 400;
228
+ .comparison-host .comparison-row + .comparison-row {
229
+ border-top: 1px solid var(--border);
319
230
  }
320
231
 
321
- .script-switch-label {
322
- white-space: nowrap;
232
+ .comparison-host .comparison-cell {
233
+ min-width: 0;
234
+ padding: 16px 20px 16px 0;
235
+ display: flex;
323
236
  }
324
237
 
325
- .script-switch-short-label {
326
- display: none;
238
+ .comparison-host .comparison-cell-body {
239
+ flex: 1;
240
+ min-width: 0;
327
241
  }
328
242
 
329
- .script-switch-track {
330
- border: 1px solid var(--mute-2);
331
- background: var(--soft);
332
- border-radius: 20px;
333
- flex: none;
334
- width: 30px;
335
- height: 18px;
336
- position: relative;
243
+ .comparison-host .comparison-gutter {
244
+ text-align: center;
245
+ font: 12px/1.6 var(--review-font-mono);
246
+ color: var(--muted-foreground);
247
+ -webkit-user-select: none;
248
+ user-select: none;
249
+ flex: 0 0 32px;
250
+ padding-top: 2px;
337
251
  }
338
252
 
339
- .script-switch-track:after {
340
- content: "";
341
- background: var(--mute-2);
342
- border-radius: 50%;
343
- width: 10px;
344
- height: 10px;
345
- transition: transform .12s;
346
- position: absolute;
347
- top: 3px;
348
- left: 3px;
253
+ .comparison-host .comparison-block {
254
+ min-width: 0;
255
+ font: 15px/1.7 var(--review-font-sans);
256
+ color: var(--foreground);
349
257
  }
350
258
 
351
- .script-switch[aria-checked="true"] .script-switch-track {
352
- background: var(--btn-bg);
353
- border-color: var(--btn-bg);
259
+ .comparison-host .comparison-block :is(p, h1, h2, h3, h4, h5, h6, pre, ul, ol, figure, blockquote) {
260
+ margin: 0;
354
261
  }
355
262
 
356
- .script-switch[aria-checked="true"] .script-switch-track:after {
357
- background: var(--btn-fg);
358
- transform: translateX(12px);
263
+ .comparison-host .comparison-block h1 {
264
+ letter-spacing: -.5px;
265
+ font-size: 25px;
266
+ line-height: 1.3;
359
267
  }
360
268
 
361
- .script-help, .script-status, .script-error {
362
- color: var(--mute-2);
363
- overflow-wrap: anywhere;
364
- margin: 0;
365
- padding: 0;
269
+ .comparison-host .comparison-block h2 {
270
+ letter-spacing: -.3px;
271
+ font-size: 21px;
272
+ line-height: 1.4;
366
273
  }
367
274
 
368
- .script-status {
369
- color: var(--txt);
275
+ .comparison-host .comparison-block h3 {
276
+ font-size: 18px;
277
+ line-height: 1.4;
370
278
  }
371
279
 
372
- .script-error {
373
- color: var(--danger);
280
+ .comparison-host .comparison-block :is(h4, h5, h6) {
281
+ font-size: 16px;
282
+ line-height: 1.5;
374
283
  }
375
284
 
376
- .script-retry {
377
- cursor: pointer;
378
- background: none;
379
- border: 0;
380
- flex: none;
381
- height: 24px;
382
- padding: 0;
383
- font-size: 11px;
384
- text-decoration: underline;
285
+ .comparison-host .comparison-block pre {
286
+ white-space: pre-wrap;
287
+ overflow-wrap: anywhere;
288
+ font: 12px/1.7 var(--review-font-mono);
289
+ tab-size: 4;
385
290
  }
386
291
 
387
- .script-details {
388
- flex: none;
292
+ .comparison-host .comparison-block blockquote {
293
+ border-left: 3px solid var(--input);
294
+ color: var(--muted-foreground);
295
+ padding-left: 12px;
389
296
  }
390
297
 
391
- .script-details summary {
392
- cursor: pointer;
393
- width: 24px;
394
- height: 24px;
395
- color: var(--mute-2);
396
- border-radius: 50%;
397
- place-items: center;
398
- font-size: 12px;
399
- list-style: none;
400
- display: grid;
298
+ .comparison-host .comparison-block :is(code, kbd, samp) {
299
+ font-family: var(--review-font-mono);
300
+ background: var(--muted);
301
+ border-radius: 3px;
302
+ padding: 1px 3px;
303
+ font-size: .9em;
401
304
  }
402
305
 
403
- .script-details summary::-webkit-details-marker {
404
- display: none;
306
+ .comparison-host .comparison-block hr {
307
+ border-top: 1px solid var(--border);
308
+ margin: 12px 0;
405
309
  }
406
310
 
407
- .script-details summary:hover {
408
- background: var(--soft);
311
+ .comparison-host .comparison-block mark {
312
+ background: var(--review-modified);
313
+ color: var(--review-modified-foreground);
409
314
  }
410
315
 
411
- .script-details summary:focus-visible {
412
- outline: 2px solid var(--focus);
413
- outline-offset: 1px;
316
+ .comparison-host .comparison-removed {
317
+ background: var(--review-removed);
414
318
  }
415
319
 
416
- .script-details-body {
417
- border: 1px solid var(--strong-border);
418
- background: var(--panel);
419
- width: min(380px, 100vw - 16px);
420
- max-height: min(300px, 50vh);
421
- box-shadow: var(--review-shadow);
422
- color: var(--txt);
423
- border-radius: 8px;
424
- padding: 12px 16px;
425
- font-size: 12px;
426
- line-height: 1.5;
427
- position: absolute;
428
- top: calc(100% + 4px);
429
- right: 8px;
430
- overflow: auto;
320
+ .comparison-host .comparison-added {
321
+ background: var(--review-added);
431
322
  }
432
323
 
433
- .script-details-body p {
434
- overflow-wrap: anywhere;
435
- margin: 0 0 8px;
324
+ .comparison-host .comparison-gap {
325
+ background: repeating-linear-gradient(135deg, var(--card) 0, var(--card) 5px, var(--muted) 5px, var(--muted) 7px);
436
326
  }
437
327
 
438
- .script-details-body p:last-child {
439
- margin-bottom: 0;
328
+ .comparison-host .comparison-surface del {
329
+ background: var(--review-delete);
330
+ text-decoration: line-through;
331
+ -webkit-text-decoration-color: var(--review-removed-foreground);
332
+ -webkit-text-decoration-color: var(--review-removed-foreground);
333
+ text-decoration-color: var(--review-removed-foreground);
334
+ border-radius: 2px;
440
335
  }
441
336
 
442
- @media (prefers-reduced-motion: reduce) {
443
- .script-switch-track:after {
444
- transition: none;
445
- }
337
+ .comparison-host .comparison-surface ins {
338
+ background: var(--review-insert);
339
+ text-decoration: underline;
340
+ text-decoration-thickness: 2px;
341
+ -webkit-text-decoration-color: var(--review-added-foreground);
342
+ -webkit-text-decoration-color: var(--review-added-foreground);
343
+ text-decoration-color: var(--review-added-foreground);
344
+ text-underline-offset: 3px;
345
+ border-radius: 2px;
446
346
  }
447
347
 
448
- .stage {
449
- background: var(--canvas);
450
- min-width: 0;
451
- min-height: 0;
452
- position: relative;
348
+ .comparison-host .comparison-current {
349
+ scroll-margin-top: var(--comparison-header-height, 0px);
453
350
  }
454
351
 
455
- .history-panel {
456
- z-index: 1;
457
- background: var(--panel);
458
- scrollbar-gutter: stable;
459
- height: 100%;
460
- padding: 18px clamp(12px, 2vw, 28px) 28px;
461
- position: absolute;
462
- inset: 0;
463
- overflow: auto;
352
+ .comparison-host .comparison-current > .comparison-before {
353
+ box-shadow: inset 3px 0 var(--ring);
464
354
  }
465
355
 
466
- .history-head, .history-controls, .history-navigation {
467
- flex-wrap: wrap;
468
- justify-content: space-between;
469
- align-items: center;
470
- gap: 12px;
471
- display: flex;
356
+ .comparison-host .comparison-mobile-label {
357
+ display: none;
472
358
  }
473
359
 
474
- .history-head h1 {
475
- letter-spacing: -.5px;
476
- margin: 0;
477
- font-size: 20px;
360
+ .comparison-host .comparison-change-label {
361
+ color: var(--muted-foreground);
362
+ margin-bottom: 6px;
363
+ font-size: 11px;
364
+ display: block;
478
365
  }
479
366
 
480
- .history-head h1 .section {
481
- vertical-align: middle;
482
- letter-spacing: .04em;
483
- margin-left: 10px;
367
+ .comparison-host .comparison-notice, .comparison-host .comparison-budget {
368
+ color: var(--muted-foreground);
369
+ margin: 0;
370
+ padding: 14px 18px;
371
+ font-size: 12px;
484
372
  }
485
373
 
486
- .history-summary {
487
- color: var(--mute-2);
488
- flex-wrap: wrap;
489
- justify-content: space-between;
490
- align-items: baseline;
491
- gap: 4px 16px;
492
- margin: 8px 0 14px;
493
- font-size: 12px;
494
- display: flex;
374
+ .comparison-host .comparison-budget {
375
+ color: var(--destructive);
495
376
  }
496
377
 
497
- .history-summary > p {
378
+ .comparison-host .comparison-block :is(.metadata-note, .structure-note, .newline-note) {
379
+ font: 12px/1.5 var(--review-font-sans);
380
+ color: var(--muted-foreground);
498
381
  overflow-wrap: anywhere;
499
- margin: 0;
382
+ margin-top: 5px;
383
+ display: block;
500
384
  }
501
385
 
502
- .history-summary > :empty {
503
- display: none;
386
+ .comparison-host .saved-link {
387
+ color: var(--primary);
388
+ -webkit-text-decoration: underline dotted;
389
+ text-decoration: underline dotted;
504
390
  }
505
391
 
506
- .history-panel label {
507
- flex-wrap: wrap;
508
- align-items: center;
509
- gap: 8px;
510
- min-width: 0;
511
- display: flex;
512
- }
513
-
514
- .history-panel select {
515
- border: 1px solid var(--strong-border);
516
- background: var(--card);
517
- min-width: 0;
518
- max-width: 100%;
519
- min-height: 44px;
520
- color: var(--txt);
521
- font: inherit;
522
- text-overflow: ellipsis;
523
- border-radius: 7px;
524
- padding: 8px 10px;
525
- }
526
-
527
- .history-panel select:focus-visible {
528
- outline: 2px solid var(--focus);
529
- }
530
-
531
- .history-controls {
532
- justify-content: flex-start;
533
- gap: 8px 16px;
534
- margin: 0;
535
- }
536
-
537
- .history-controls > label {
538
- color: var(--mute-2);
539
- flex-wrap: nowrap;
540
- font-size: 12px;
541
- }
542
-
543
- .history-round-label select {
544
- max-width: min(280px, 65vw);
545
- }
546
-
547
- #historyTargetLabel {
548
- flex: 200px;
549
- }
550
-
551
- #historyTarget {
552
- width: 100%;
553
- }
554
-
555
- .history-controls button {
556
- min-width: 44px;
557
- min-height: 44px;
558
- }
559
-
560
- .history-controls [aria-pressed="true"] {
561
- background: var(--soft);
562
- color: var(--strong-txt);
563
- }
564
-
565
- .history-controls button:disabled {
566
- opacity: .55;
567
- cursor: default;
568
- }
569
-
570
- .history-counts {
571
- color: var(--mute-2);
572
- flex-wrap: wrap;
573
- gap: 16px;
574
- margin: 0;
575
- display: flex;
576
- }
577
-
578
- .history-timing {
579
- flex-wrap: wrap;
580
- gap: 12px 24px;
581
- margin: 14px 0;
582
- display: flex;
583
- }
584
-
585
- .history-timing > div {
586
- min-width: 0;
587
- }
588
-
589
- .history-timing dt {
590
- text-transform: uppercase;
591
- color: var(--mute-2);
592
- letter-spacing: .04em;
593
- font-size: 11px;
594
- }
595
-
596
- .history-timing dd {
597
- overflow-wrap: anywhere;
598
- margin: 2px 0 0;
599
- font-weight: 550;
600
- }
601
-
602
- .history-context {
603
- color: var(--mute-2);
604
- overflow-wrap: anywhere;
605
- }
606
-
607
- .history-context p {
608
- margin: 6px 0;
609
- }
610
-
611
- .history-diagnostics {
612
- color: var(--mute-2);
613
- margin: 12px 0 0;
614
- font-size: 12px;
615
- }
616
-
617
- .history-diagnostics summary {
618
- cursor: pointer;
619
- width: fit-content;
620
- min-height: 44px;
621
- padding-block: 12px;
622
- }
623
-
624
- .history-diagnostics > p {
625
- max-width: 90ch;
626
- }
627
-
628
- .history-diagnostics > button {
629
- min-height: 44px;
630
- }
631
-
632
- .change-detail {
633
- border: 1px solid var(--diff-line);
634
- background: var(--card);
635
- overflow-wrap: anywhere;
636
- border-radius: 0 0 8px 8px;
637
- }
638
-
639
- .change-detail:empty {
640
- display: none;
641
- }
642
-
643
- .comparison-header {
644
- z-index: 4;
645
- background: var(--panel);
646
- position: sticky;
647
- top: 0;
648
- }
649
-
650
- .history-navigation {
651
- background: var(--panel);
652
- justify-content: flex-start;
653
- gap: 8px;
654
- margin: 0;
655
- padding: 0 0 8px;
656
- font-size: 12px;
657
- }
658
-
659
- .history-navigation button {
660
- min-width: 44px;
661
- min-height: 44px;
662
- }
663
-
664
- .history-navigation .change-jump-label {
665
- flex: 1;
666
- justify-content: flex-end;
667
- }
668
-
669
- .change-jump-label select {
670
- max-width: min(420px, 100%);
671
- }
672
-
673
- .comparison-headings, .comparison-row {
674
- grid-template-columns: repeat(2, minmax(0, 1fr));
675
- display: grid;
676
- }
677
-
678
- .comparison-headings {
679
- background: var(--soft);
680
- border: 1px solid var(--diff-line);
681
- color: var(--diff-muted);
682
- border-radius: 8px 8px 0 0;
683
- font-size: 12px;
684
- font-weight: 600;
685
- }
686
-
687
- .comparison-headings > div {
688
- padding: 12px 18px;
689
- }
690
-
691
- .comparison-headings > div + div, .comparison-after {
692
- border-left: 1px solid var(--diff-line);
693
- }
694
-
695
- .comparison-row + .comparison-row {
696
- border-top: 1px solid var(--hair-2);
697
- }
698
-
699
- .comparison-cell {
700
- min-width: 0;
701
- padding: 16px 20px 16px 0;
702
- display: flex;
703
- }
704
-
705
- .comparison-cell-body {
706
- flex: 1;
707
- min-width: 0;
708
- }
709
-
710
- .comparison-gutter {
711
- text-align: center;
712
- color: var(--diff-muted);
713
- -webkit-user-select: none;
714
- user-select: none;
715
- flex: 0 0 32px;
716
- padding-top: 2px;
717
- font: 12px / 1.6 ui-monospace, monospace;
718
- }
719
-
720
- .comparison-block {
721
- min-width: 0;
722
- color: var(--diff-ink);
723
- font: 15px / 1.7 system-ui, sans-serif;
724
- }
725
-
726
- .comparison-block :is(p, h1, h2, h3, h4, h5, h6, pre, ul, ol, figure, blockquote) {
727
- margin: 0;
728
- }
729
-
730
- .comparison-block h1 {
731
- letter-spacing: -.5px;
732
- font-size: 25px;
733
- line-height: 1.3;
734
- }
735
-
736
- .comparison-block h2 {
737
- letter-spacing: -.3px;
738
- font-size: 21px;
739
- line-height: 1.4;
740
- }
741
-
742
- .comparison-block h3 {
743
- font-size: 18px;
744
- line-height: 1.4;
745
- }
746
-
747
- .comparison-block :is(h4, h5, h6) {
748
- font-size: 16px;
749
- line-height: 1.5;
750
- }
751
-
752
- .comparison-block pre {
753
- white-space: pre-wrap;
754
- overflow-wrap: anywhere;
755
- tab-size: 4;
756
- font: 12px / 1.7 ui-monospace, monospace;
757
- }
758
-
759
- .comparison-block blockquote {
760
- border-left: 3px solid var(--strong-border);
761
- color: var(--diff-muted);
762
- padding-left: 12px;
763
- }
764
-
765
- .comparison-block :is(code, kbd, samp) {
766
- background: var(--soft);
767
- border-radius: 3px;
768
- padding: 1px 3px;
769
- font-family: ui-monospace, monospace;
770
- font-size: .9em;
771
- }
772
-
773
- .comparison-removed {
774
- background: var(--diff-removed);
775
- }
776
-
777
- .comparison-added {
778
- background: var(--diff-added);
779
- }
780
-
781
- .comparison-gap {
782
- background: repeating-linear-gradient(135deg, var(--diff-paper) 0, var(--diff-paper) 5px, var(--diff-gap) 5px, var(--diff-gap) 7px);
783
- }
784
-
785
- .comparison-surface {
786
- background: var(--diff-paper);
787
- color: var(--diff-ink);
788
- }
789
-
790
- .comparison-surface del {
791
- background: var(--diff-delete);
792
- text-decoration: line-through;
793
- -webkit-text-decoration-color: var(--diff-delete-ink);
794
- -webkit-text-decoration-color: var(--diff-delete-ink);
795
- text-decoration-color: var(--diff-delete-ink);
796
- border-radius: 2px;
797
- }
798
-
799
- .comparison-surface ins {
800
- background: var(--diff-insert);
801
- text-decoration: underline;
802
- text-decoration-thickness: 2px;
803
- -webkit-text-decoration-color: var(--diff-insert-ink);
804
- -webkit-text-decoration-color: var(--diff-insert-ink);
805
- text-decoration-color: var(--diff-insert-ink);
806
- text-underline-offset: 3px;
807
- border-radius: 2px;
808
- }
809
-
810
- .comparison-current > .comparison-before {
811
- box-shadow: inset 3px 0 var(--diff-accent);
812
- }
813
-
814
- .comparison-mobile-label {
815
- display: none;
816
- }
817
-
818
- .comparison-change-label {
819
- color: var(--diff-muted);
820
- margin-bottom: 6px;
821
- font-size: 11px;
822
- display: block;
823
- }
824
-
825
- .comparison-expand {
826
- border: 0;
827
- border-block: 1px solid var(--diff-line);
828
- background: var(--soft);
829
- width: 100%;
830
- min-height: 44px;
831
- color: var(--diff-muted);
832
- cursor: pointer;
833
- text-align: center;
834
- padding: 10px 16px;
835
- font: 12px / 1.5 system-ui, sans-serif;
836
- display: block;
837
- }
838
-
839
- .comparison-expand:hover {
840
- background: var(--chip);
841
- color: var(--strong-txt);
842
- }
843
-
844
- .comparison-surface :focus-visible, .history-panel summary:focus-visible {
845
- outline: 2px solid var(--focus);
846
- outline-offset: -2px;
847
- }
848
-
849
- .comparison-notice, .comparison-budget {
850
- color: var(--diff-muted);
851
- margin: 0;
852
- padding: 14px 18px;
853
- font-size: 12px;
854
- }
855
-
856
- .comparison-budget {
857
- color: var(--danger);
858
- }
859
-
860
- .comparison-block .metadata-note, .comparison-block .structure-note, .comparison-block .newline-note {
861
- color: var(--diff-muted);
862
- overflow-wrap: anywhere;
863
- margin-top: 5px;
864
- font: 12px / 1.5 system-ui, sans-serif;
865
- display: block;
866
- }
867
-
868
- .saved-link {
869
- color: var(--diff-accent);
870
- -webkit-text-decoration: underline dotted;
871
- text-decoration: underline dotted;
872
- }
873
-
874
- .saved-image {
875
- border: 1px dashed var(--diff-muted);
876
- background: var(--diff-gap);
877
- border-radius: 5px;
878
- padding: 12px;
879
- }
880
-
881
- .saved-image small {
882
- color: var(--diff-muted);
883
- font-size: 12px;
884
- display: block;
885
- }
886
-
887
- .saved-list {
888
- padding-inline-start: 22px;
889
- }
890
-
891
- .saved-table {
892
- border-collapse: collapse;
893
- table-layout: fixed;
894
- width: 100%;
895
- }
896
-
897
- .saved-table :is(th, td) {
898
- border: 1px solid var(--diff-line);
899
- text-align: left;
900
- vertical-align: top;
901
- padding: 7px 10px;
902
- }
903
-
904
- .saved-table th {
905
- background: var(--soft);
906
- }
907
-
908
- .saved-table .comparison-block {
909
- font-size: 13px;
910
- }
911
-
912
- .comparison-source .comparison-cell {
913
- padding-block: 0;
914
- padding-right: 8px;
915
- }
916
-
917
- .comparison-source .comparison-change-label {
918
- display: none;
919
- }
920
-
921
- .comparison-source .comparison-gutter {
922
- text-align: right;
923
- white-space: pre;
924
- flex-basis: 60px;
925
- padding: 0 12px 0 4px;
926
- }
927
-
928
- .comparison-source .comparison-block pre {
929
- min-height: 22px;
930
- line-height: 22px;
931
- }
932
-
933
- .comparison-source .comparison-block .newline-note {
934
- margin: 0;
935
- padding: 3px 0;
936
- }
937
-
938
- .capture-warning {
939
- border: 1px solid var(--strong-border);
940
- background: var(--panel);
941
- overflow-wrap: anywhere;
942
- border-radius: 8px;
943
- padding: 12px;
944
- }
945
-
946
- .capture-warning p {
947
- margin: 0 0 8px;
948
- }
949
-
950
- body.comparing :is(#compose, #alignedCard) {
951
- display: none !important;
952
- }
953
-
954
- body.comparing #frame {
955
- pointer-events: none;
956
- }
957
-
958
- @media (max-width: 540px) {
959
- .history-panel {
960
- padding: 12px 8px;
961
- }
962
-
963
- .history-head {
964
- align-items: flex-start;
965
- }
966
- }
967
-
968
- @media (max-width: 700px) {
969
- .comparison-headings {
970
- display: none;
971
- }
972
-
973
- .change-detail {
974
- border-radius: 8px;
975
- }
976
-
977
- .comparison-row {
978
- border-bottom: 1px solid var(--diff-line);
979
- grid-template-columns: minmax(0, 1fr);
980
- }
981
-
982
- .comparison-after {
983
- border-left: 0;
984
- border-top: 1px solid var(--diff-line);
985
- }
986
-
987
- .comparison-gap, .comparison-unchanged > .comparison-after {
988
- display: none;
989
- }
990
-
991
- .comparison-cell {
992
- padding-right: 10px;
993
- }
994
-
995
- .comparison-mobile-label {
996
- color: var(--diff-muted);
997
- margin-bottom: 8px;
998
- font: 600 12px / 1.6 system-ui, sans-serif;
999
- display: block;
1000
- }
1001
-
1002
- .comparison-change-label {
1003
- display: none;
1004
- }
1005
-
1006
- .comparison-current > .comparison-after {
1007
- box-shadow: inset 3px 0 var(--diff-accent);
1008
- }
1009
-
1010
- .comparison-block {
1011
- font-size: 14px;
1012
- }
1013
-
1014
- .comparison-source .comparison-gutter {
1015
- flex-basis: 48px;
1016
- }
1017
-
1018
- .history-navigation {
1019
- flex-wrap: nowrap;
1020
- }
1021
-
1022
- .history-navigation .change-jump-label {
1023
- flex: 1;
1024
- }
1025
-
1026
- .change-jump-label > span {
1027
- display: none;
1028
- }
1029
-
1030
- .change-jump-label select {
1031
- width: 100%;
1032
- max-width: 100%;
1033
- }
1034
-
1035
- .history-navigation button {
1036
- flex: 0 0 44px;
1037
- width: 44px;
1038
- padding: 4px;
1039
- font-size: 0;
1040
- }
1041
-
1042
- .history-navigation button:before {
1043
- font-size: 18px;
1044
- }
1045
-
1046
- #previousChange:before {
1047
- content: "←";
1048
- }
1049
-
1050
- #nextChange:before {
1051
- content: "→";
1052
- }
1053
-
1054
- #changePosition {
1055
- white-space: nowrap;
1056
- }
1057
- }
1058
-
1059
- #frame {
1060
- background: #fff;
1061
- border: 0;
1062
- width: 100%;
1063
- height: 100%;
1064
- display: block;
1065
- }
1066
-
1067
- #frame[data-replacing] {
1068
- opacity: 0;
1069
- pointer-events: none;
1070
- }
1071
-
1072
- #previousFrame {
1073
- z-index: 1;
1074
- pointer-events: none;
1075
- border: 0;
1076
- width: 100%;
1077
- height: 100%;
1078
- display: block;
1079
- position: absolute;
1080
- inset: 0;
1081
- }
1082
-
1083
- .icon-btn {
1084
- border: 1px solid var(--hair);
1085
- background: var(--soft);
1086
- width: 30px;
1087
- height: 30px;
1088
- color: var(--mute-2);
1089
- cursor: pointer;
1090
- border-radius: 7px;
1091
- justify-content: center;
1092
- align-items: center;
1093
- padding: 0;
1094
- display: inline-flex;
1095
- }
1096
-
1097
- .icon-btn:hover {
1098
- border-color: var(--strong-border);
1099
- color: var(--strong-txt);
1100
- }
1101
-
1102
- .contextual-compose {
1103
- z-index: 90;
1104
- border: 1px solid var(--strong-border);
1105
- background: var(--card);
1106
- width: min(340px, 100vw - 24px);
1107
- box-shadow: 0 16px 44px var(--review-shadow-color);
1108
- max-height: calc(100dvh - var(--toolbar-h) - 12px);
1109
- border-radius: 10px;
1110
- padding: 14px;
1111
- animation: .13s ease-out rise;
1112
- position: fixed;
1113
- overflow-y: auto;
1114
- }
1115
-
1116
- .contextual-compose.sheet {
1117
- width: 100%;
1118
- max-height: min(70dvh, 420px);
1119
- padding-bottom: max(14px, env(safe-area-inset-bottom));
1120
- border-radius: 14px 14px 0 0;
1121
- bottom: 0;
1122
- right: 0;
1123
- top: auto !important;
1124
- left: 0 !important;
1125
- }
1126
-
1127
- .contextual-compose.edge-top, .contextual-compose.edge-bottom {
1128
- border-color: var(--focus);
1129
- }
1130
-
1131
- .contextual-compose.pass-through {
1132
- pointer-events: none;
1133
- opacity: .92;
1134
- }
1135
-
1136
- .compose-head {
1137
- justify-content: space-between;
1138
- align-items: center;
1139
- gap: 10px;
1140
- margin-bottom: 10px;
1141
- display: flex;
1142
- }
1143
-
1144
- .compose-head > div {
1145
- align-items: center;
1146
- gap: 8px;
1147
- display: flex;
1148
- }
1149
-
1150
- .compose-head strong {
1151
- font-size: 13px;
1152
- }
1153
-
1154
- .chip {
1155
- background: var(--chip);
1156
- color: var(--mute);
1157
- border-radius: 999px;
1158
- padding: 2px 8px;
1159
- font-size: 10px;
1160
- font-weight: 600;
1161
- }
1162
-
1163
- .compose-direction {
1164
- background: var(--soft);
1165
- color: var(--mute-2);
1166
- border-radius: 6px;
1167
- justify-content: space-between;
1168
- align-items: center;
1169
- gap: 10px;
1170
- margin: -2px 0 9px;
1171
- padding: 7px 9px;
1172
- font-size: 11.5px;
1173
- display: flex;
1174
- }
1175
-
1176
- .link-action {
1177
- color: var(--focus);
1178
- font: inherit;
1179
- cursor: pointer;
1180
- background: none;
1181
- border: 0;
1182
- flex: none;
1183
- padding: 0;
1184
- font-weight: 600;
1185
- }
1186
-
1187
- .compose-help {
1188
- color: var(--faint-2);
1189
- justify-content: space-between;
1190
- gap: 10px;
1191
- margin: 5px 1px 0;
1192
- font-size: 10.5px;
1193
- display: flex;
1194
- }
1195
-
1196
- .quote {
1197
- border-left: 2px solid var(--annotation-border);
1198
- color: var(--mute);
1199
- white-space: normal;
1200
- overflow-wrap: anywhere;
1201
- margin: 0 0 10px;
1202
- padding-left: 9px;
1203
- font-size: 12px;
1204
- font-style: italic;
1205
- line-height: 1.45;
1206
- }
1207
-
1208
- .contextual-compose textarea, .send-section textarea {
1209
- border: 1px solid var(--hair);
1210
- background: var(--input-bg);
1211
- resize: vertical;
1212
- border-radius: 6px;
1213
- outline: none;
1214
- width: 100%;
1215
- padding: 8px 10px;
1216
- font-size: 13px;
1217
- line-height: 1.5;
1218
- }
1219
-
1220
- .contextual-compose textarea:focus, .send-section textarea:focus {
1221
- border-color: var(--focus);
1222
- background: var(--card);
1223
- }
1224
-
1225
- .compose-actions {
1226
- align-items: center;
1227
- gap: 8px;
1228
- margin-top: 9px;
1229
- display: flex;
1230
- }
1231
-
1232
- .compose-error {
1233
- color: var(--danger);
1234
- margin: 8px 0 0;
1235
- font-size: 11.5px;
1236
- }
1237
-
1238
- .btn-primary, .btn-ghost {
1239
- cursor: pointer;
1240
- border-radius: 6px;
1241
- justify-content: center;
1242
- align-items: center;
1243
- gap: 7px;
1244
- min-height: 32px;
1245
- padding: 6px 11px;
1246
- font-size: 12px;
1247
- font-weight: 500;
1248
- display: inline-flex;
1249
- }
1250
-
1251
- .btn-primary {
1252
- border: 1px solid var(--btn-bg);
1253
- background: var(--btn-bg);
1254
- color: var(--btn-fg);
1255
- }
1256
-
1257
- .btn-primary:disabled {
1258
- opacity: .55;
1259
- cursor: wait;
1260
- }
1261
-
1262
- .btn-ghost {
1263
- color: var(--mute);
1264
- background: none;
1265
- border: 0;
1266
- }
1267
-
1268
- .btn-ghost:hover {
1269
- background: var(--soft);
1270
- color: var(--strong-txt);
1271
- }
1272
-
1273
- .aligned-card {
1274
- z-index: 55;
1275
- width: 300px;
1276
- max-height: min(280px, calc(100dvh - var(--toolbar-h) - 24px));
1277
- border: 1px solid var(--strong-border);
1278
- background: var(--card);
1279
- box-shadow: 0 10px 30px var(--review-shadow-color);
1280
- border-radius: 9px;
1281
- padding: 13px 14px;
1282
- position: fixed;
1283
- overflow: auto;
1284
- }
1285
-
1286
- .drawer {
1287
- z-index: 75;
1288
- top: var(--toolbar-h);
1289
- width: min(var(--drawer-w), calc(100vw - 32px));
1290
- border-left: 1px solid var(--hair);
1291
- background: var(--panel);
1292
- box-shadow: -12px 0 34px var(--review-shadow-color);
1293
- visibility: hidden;
1294
- grid-template-rows: auto minmax(0, 1fr) minmax(0, auto);
1295
- transition: transform .16s ease-out, visibility 0s linear .16s;
1296
- display: grid;
1297
- position: fixed;
1298
- bottom: 0;
1299
- right: 0;
1300
- transform: translateX(102%);
1301
- }
1302
-
1303
- .drawer.open {
1304
- visibility: visible;
1305
- transition-delay: 0s;
1306
- transform: none;
1307
- }
1308
-
1309
- .drawer-inventory {
1310
- min-width: 0;
1311
- min-height: 0;
1312
- padding: 14px 12px 18px;
1313
- overflow: hidden auto;
1314
- }
1315
-
1316
- .drawer-backdrop {
1317
- z-index: 70;
1318
- inset: var(--toolbar-h) 0 0;
1319
- background: var(--review-overlay);
1320
- position: fixed;
1321
- }
1322
-
1323
- .rail-head {
1324
- align-items: baseline;
1325
- gap: 7px;
1326
- padding: 0 4px 9px;
1327
- display: flex;
1328
- }
1329
-
1330
- .rail-head.tight {
1331
- padding-top: 0;
1332
- }
1333
-
1334
- .section {
1335
- letter-spacing: .08em;
1336
- text-transform: uppercase;
1337
- color: var(--mute);
1338
- font-size: 11px;
1339
- font-weight: 600;
1340
- }
1341
-
1342
- .dim {
1343
- color: var(--faint);
1344
- font-size: 11px;
1345
- }
1346
-
1347
- .link-btn {
1348
- color: var(--faint-2);
1349
- cursor: pointer;
1350
- background: none;
1351
- border: 0;
1352
- margin-left: auto;
1353
- padding: 0;
1354
- font-size: 11px;
1355
- }
1356
-
1357
- .link-btn:hover {
1358
- color: var(--strong-txt);
1359
- }
1360
-
1361
- .danger-hover:hover {
1362
- color: var(--danger);
1363
- }
1364
-
1365
- .aligned-card {
1366
- color: var(--txt);
1367
- }
1368
-
1369
- .comment-head {
1370
- align-items: center;
1371
- gap: 8px;
1372
- margin-bottom: 8px;
1373
- display: flex;
1374
- }
1375
-
1376
- .comment-head .who {
1377
- margin-right: auto;
1378
- }
1379
-
1380
- .who {
1381
- color: var(--mute-2);
1382
- font-size: 11px;
1383
- font-weight: 500;
1384
- }
1385
-
1386
- .who .sep {
1387
- color: var(--faint);
1388
- margin: 0 4px;
1389
- }
1390
-
1391
- .who .when {
1392
- color: var(--faint-2);
1393
- }
1394
-
1395
- .jump {
1396
- color: var(--faint-2);
1397
- white-space: nowrap;
1398
- cursor: pointer;
1399
- background: none;
1400
- border: 0;
1401
- margin-left: auto;
1402
- padding: 0;
1403
- font-size: 11px;
1404
- }
1405
-
1406
- .jump:hover {
1407
- color: var(--strong-txt);
1408
- }
1409
-
1410
- .edit-comment {
1411
- margin-left: 0;
1412
- }
1413
-
1414
- .remove {
1415
- color: var(--faint);
1416
- cursor: pointer;
1417
- background: none;
1418
- border: 0;
1419
- border-radius: 4px;
1420
- margin-left: 0;
1421
- padding: 3px;
1422
- }
1423
-
1424
- .remove:hover {
1425
- background: var(--danger-soft);
1426
- color: var(--danger);
1427
- }
1428
-
1429
- .aligned-card .quote {
1430
- margin-bottom: 8px;
1431
- }
1432
-
1433
- .aligned-card .body {
1434
- cursor: text;
1435
- white-space: pre-wrap;
1436
- border-radius: 4px;
1437
- margin: 0;
1438
- font-size: 13px;
1439
- line-height: 1.5;
1440
- }
1441
-
1442
- .card-action {
1443
- color: var(--faint-2);
1444
- font: inherit;
1445
- cursor: pointer;
1446
- white-space: nowrap;
1447
- background: none;
1448
- border: 0;
1449
- border-radius: 4px;
1450
- flex: none;
1451
- align-items: center;
1452
- gap: 4px;
1453
- padding: 3px 4px;
1454
- font-size: 11px;
1455
- display: inline-flex;
1456
- }
1457
-
1458
- .card-action:hover, .card-action:focus-visible, .more-trigger[aria-expanded="true"] {
1459
- background: var(--soft);
1460
- color: var(--strong-txt);
1461
- }
1462
-
1463
- .comment-menu {
1464
- z-index: 3;
1465
- border: 1px solid var(--strong-border);
1466
- background: var(--card);
1467
- min-width: 132px;
1468
- box-shadow: var(--review-shadow);
1469
- border-radius: 7px;
1470
- padding: 4px;
1471
- position: absolute;
1472
- top: 38px;
1473
- right: 12px;
1474
- }
1475
-
1476
- .aligned-card .comment-menu {
1477
- top: 38px;
1478
- right: 12px;
1479
- }
1480
-
1481
- .comment-menu-item {
1482
- width: 100%;
1483
- color: var(--danger);
1484
- font: inherit;
1485
- text-align: left;
1486
- cursor: pointer;
1487
- background: none;
1488
- border: 0;
1489
- border-radius: 5px;
1490
- align-items: center;
1491
- gap: 7px;
1492
- padding: 7px 8px;
1493
- font-size: 12px;
1494
- display: flex;
1495
- }
1496
-
1497
- .comment-menu-item:hover, .comment-menu-item:focus-visible {
1498
- background: var(--danger-soft);
1499
- outline: none;
1500
- }
1501
-
1502
- .body-edit {
1503
- border: 1px solid var(--focus);
1504
- background: var(--card);
1505
- width: 100%;
1506
- color: var(--txt);
1507
- resize: vertical;
1508
- border-radius: 6px;
1509
- outline: none;
1510
- padding: 6px 8px;
1511
- font-size: 13px;
1512
- line-height: 1.5;
1513
- }
1514
-
1515
- .body-edit[readonly] {
1516
- opacity: .75;
1517
- }
1518
-
1519
- .edit-help {
1520
- color: var(--faint-2);
1521
- margin: 5px 0 0;
1522
- font-size: 10.5px;
1523
- }
1524
-
1525
- .comment-edit-actions, .delete-actions {
1526
- align-items: center;
1527
- gap: 7px;
1528
- margin-top: 8px;
1529
- display: flex;
1530
- }
1531
-
1532
- .comment-validation {
1533
- color: var(--danger);
1534
- margin: 6px 0 0;
1535
- font-size: 11.5px;
1536
- }
1537
-
1538
- .delete-prompt {
1539
- margin: 2px 0 0;
1540
- font-size: 13px;
1541
- font-weight: 600;
1542
- }
1543
-
1544
- .btn-danger {
1545
- border: 1px solid var(--danger);
1546
- background: var(--danger);
1547
- min-height: 32px;
1548
- color: var(--destructive-foreground);
1549
- cursor: pointer;
1550
- border-radius: 6px;
1551
- padding: 6px 11px;
1552
- font-size: 12px;
1553
- font-weight: 500;
1554
- }
1555
-
1556
- .btn-danger:disabled, .comment-edit-actions button:disabled, .delete-actions button:disabled {
1557
- opacity: .55;
1558
- cursor: wait;
1559
- }
1560
-
1561
- .badge {
1562
- background: var(--chip);
1563
- color: var(--faint-2);
1564
- border-radius: 999px;
1565
- margin-left: 6px;
1566
- padding: 1px 7px;
1567
- font-size: 10px;
1568
- font-weight: 600;
1569
- display: inline-block;
1570
- }
1571
-
1572
- .badge.correction {
1573
- background: var(--danger-soft);
1574
- color: var(--danger);
1575
- }
1576
-
1577
- #othersBox, #editsBox {
1578
- margin-top: 20px;
1579
- }
1580
-
1581
- .save-line {
1582
- color: var(--faint-2);
1583
- align-items: center;
1584
- gap: 7px;
1585
- padding: 0 4px 9px;
1586
- font-size: 11px;
1587
- display: flex;
1588
- }
1589
-
1590
- .save-line.failed {
1591
- color: var(--danger);
1592
- }
1593
-
1594
- .save-line.dynamic {
1595
- color: var(--mute);
1596
- }
1597
-
1598
- .dot {
1599
- background: var(--green);
1600
- border-radius: 50%;
1601
- flex: none;
1602
- width: 6px;
1603
- height: 6px;
1604
- }
1605
-
1606
- .save-line.saving .dot, .save-line.dynamic .dot, .dot.amber {
1607
- background: var(--amber);
1608
- }
1609
-
1610
- .save-line.failed .dot {
1611
- background: var(--danger);
1612
- }
1613
-
1614
- .edit-list {
1615
- border: 1px solid var(--card-border);
1616
- background: var(--card);
1617
- border-radius: 8px;
1618
- overflow: hidden;
1619
- }
1620
-
1621
- .edit-row {
1622
- border-top: 1px solid var(--hair-2);
1623
- align-items: center;
1624
- gap: 9px;
1625
- padding: 9px 12px;
1626
- display: flex;
1627
- }
1628
-
1629
- .edit-row:first-child {
1630
- border-top: 0;
1631
- }
1632
-
1633
- .edit-row .pip {
1634
- background: var(--amber);
1635
- border-radius: 50%;
1636
- flex: none;
1637
- width: 5px;
1638
- height: 5px;
1639
- }
1640
-
1641
- .edit-row.deleted .pip {
1642
- background: var(--danger);
1643
- }
1644
-
1645
- .edit-row .label {
1646
- white-space: nowrap;
1647
- text-overflow: ellipsis;
1648
- font-size: 12.5px;
1649
- overflow: hidden;
1650
- }
1651
-
1652
- .edit-row .kind {
1653
- color: var(--faint-2);
1654
- white-space: nowrap;
1655
- margin-left: auto;
1656
- font-size: 11px;
1657
- }
1658
-
1659
- .edit-more {
1660
- border: 0;
1661
- border-top: 1px solid var(--hair-2);
1662
- width: 100%;
1663
- color: var(--faint-2);
1664
- text-align: left;
1665
- cursor: pointer;
1666
- background: none;
1667
- padding: 8px 12px;
1668
- font-size: 11.5px;
1669
- }
1670
-
1671
- .edit-more:hover {
1672
- background: var(--soft);
1673
- color: var(--strong-txt);
1674
- }
1675
-
1676
- .drawer-footer {
1677
- border-top: 1px solid var(--hair);
1678
- background: var(--panel);
1679
- grid-template-rows: auto minmax(44px, 1fr);
1680
- min-width: 0;
1681
- min-height: 0;
1682
- max-height: min(55dvh, 430px);
1683
- display: grid;
1684
- }
1685
-
1686
- .send-primary {
1687
- flex: none;
1688
- padding: 12px 12px 10px;
1689
- }
1690
-
1691
- .send-secondary {
1692
- min-height: 0;
1693
- padding: 0 12px 12px;
1694
- overflow: hidden auto;
1695
- }
1696
-
1697
- .send-section textarea {
1698
- min-height: 64px;
1699
- max-height: min(24vh, 160px);
1700
- margin-bottom: 9px;
1701
- overflow-y: auto;
1702
- }
1703
-
1704
- .send {
1705
- border: 1px solid var(--btn-bg);
1706
- background: var(--btn-bg);
1707
- width: 100%;
1708
- min-height: 40px;
1709
- color: var(--btn-fg);
1710
- cursor: pointer;
1711
- border-radius: 6px;
1712
- justify-content: center;
1713
- align-items: center;
1714
- gap: 8px;
1715
- padding: 9px 12px;
1716
- font-size: 12.5px;
1717
- font-weight: 500;
1718
- display: flex;
1719
- }
1720
-
1721
- .send:disabled {
1722
- border-color: var(--hair);
1723
- background: var(--soft);
1724
- color: var(--faint);
1725
- cursor: default;
1726
- }
1727
-
1728
- .agent-line {
1729
- color: var(--faint);
1730
- justify-content: center;
1731
- align-items: center;
1732
- gap: 6px;
1733
- margin: 10px 2px 2px;
1734
- font-size: 11px;
1735
- display: flex;
1736
- }
1737
-
1738
- .handoff {
1739
- border: 1px solid var(--strong-border);
1740
- background: var(--card);
1741
- border-radius: 8px;
1742
- padding: 11px 12px;
1743
- }
1744
-
1745
- .handoff-title {
1746
- margin: 0 0 4px;
1747
- font-size: 12px;
1748
- font-weight: 600;
1749
- }
1750
-
1751
- .handoff-body {
1752
- color: var(--mute);
1753
- margin: 0 0 8px;
1754
- font-size: 11.5px;
1755
- }
1756
-
1757
- .handoff-cmd {
1758
- background: var(--input-bg);
1759
- border: 1px solid var(--hair);
1760
- border-radius: 6px;
1761
- margin-bottom: 8px;
1762
- padding: 8px 9px;
1763
- overflow-x: auto;
1764
- }
1765
-
1766
- .handoff-cmd code {
1767
- white-space: pre-wrap;
1768
- word-break: break-word;
1769
- font: 11.5px / 1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
1770
- }
1771
-
1772
- .end-review {
1773
- width: 100%;
1774
- color: var(--faint-2);
1775
- cursor: pointer;
1776
- background: none;
1777
- border: none;
1778
- border-radius: 6px;
1779
- margin-top: 9px;
1780
- padding: 6px;
1781
- font-size: 12px;
1782
- }
1783
-
1784
- .end-review:hover {
1785
- color: var(--danger);
1786
- background: var(--danger-soft);
1787
- }
1788
-
1789
- .ended {
1790
- z-index: 100;
1791
- background: var(--panel);
1792
- color: var(--txt);
1793
- flex-direction: column;
1794
- justify-content: center;
1795
- align-items: center;
1796
- gap: 4px;
1797
- display: flex;
1798
- position: fixed;
1799
- inset: 0;
1800
- }
1801
-
1802
- .ended h2 {
1803
- color: var(--strong-txt);
1804
- margin: 0;
1805
- font-size: 17px;
1806
- }
1807
-
1808
- .ended p {
1809
- color: var(--mute-2);
1810
- margin: 0;
1811
- font-size: 13px;
1812
- }
1813
-
1814
- .toast {
1815
- z-index: 110;
1816
- background: var(--btn-bg);
1817
- color: var(--btn-fg);
1818
- box-shadow: var(--review-shadow);
1819
- border-radius: 8px;
1820
- padding: 8px 14px;
1821
- font-size: 12px;
1822
- animation: .14s ease-out rise;
1823
- position: fixed;
1824
- bottom: 22px;
1825
- left: 50%;
1826
- transform: translateX(-50%);
1827
- }
1828
-
1829
- @keyframes rise {
1830
- from {
1831
- opacity: 0;
1832
- transform: translateY(4px);
1833
- }
1834
-
1835
- to {
1836
- opacity: 1;
1837
- transform: none;
1838
- }
1839
- }
1840
-
1841
- @media (max-width: 720px) {
1842
- .drawer {
1843
- top: var(--toolbar-h);
1844
- border-left: 0;
1845
- width: 100%;
1846
- }
1847
-
1848
- .drawer-backdrop, .aligned-card {
1849
- display: none !important;
1850
- }
1851
- }
1852
-
1853
- @media (prefers-reduced-motion: reduce) {
1854
- *, :before, :after {
1855
- scroll-behavior: auto !important;
1856
- transition: none !important;
1857
- animation: none !important;
1858
- }
1859
- }
1860
- }
1861
-
1862
- @layer theme {
1863
- :root, :host {
1864
- --spacing: .25rem;
1865
- --container-xs: 20rem;
1866
- --container-sm: 24rem;
1867
- --text-xs--line-height: calc(1 / .75);
1868
- --text-sm--line-height: calc(1.25 / .875);
1869
- --text-base--line-height: calc(1.5 / 1);
1870
- --text-lg--line-height: calc(1.75 / 1.125);
1871
- --font-weight-medium: 500;
1872
- --font-weight-semibold: 600;
1873
- --tracking-tight: -.025em;
1874
- --tracking-widest: .1em;
1875
- --leading-relaxed: 1.625;
1876
- --radius-md: var(--radius);
1877
- --radius-4xl: 2rem;
1878
- --ease-out: cubic-bezier(0, 0, .2, 1);
1879
- --default-transition-duration: .15s;
1880
- --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
1881
- }
1882
- }
1883
-
1884
- @layer base {
1885
- .review-ui {
1886
- font-family: var(--review-font-sans);
1887
- font-size: var(--review-text-sm);
1888
- color: var(--foreground);
1889
- -webkit-font-smoothing: antialiased;
1890
- line-height: 1.5;
1891
- }
1892
-
1893
- :root.review-ui {
1894
- font-size: 100%;
1895
- }
1896
-
1897
- .review-ui :where(*) {
1898
- box-sizing: border-box;
1899
- border: 0 solid var(--border);
1900
- }
1901
-
1902
- .review-ui :where(button, input, select, textarea) {
1903
- font: inherit;
1904
- letter-spacing: inherit;
1905
- color: inherit;
1906
- }
1907
-
1908
- .review-ui :where(button) {
1909
- cursor: pointer;
1910
- background-color: #0000;
1911
- }
1912
-
1913
- .review-ui :where(button:disabled, input:disabled, select:disabled, textarea:disabled) {
1914
- cursor: not-allowed;
1915
- }
1916
-
1917
- .review-ui :where(svg) {
1918
- flex-shrink: 0;
1919
- display: block;
1920
- }
1921
-
1922
- .review-ui :where([hidden]) {
1923
- display: none !important;
1924
- }
1925
-
1926
- .review-ui :where(h1, h2, h3, p) {
1927
- margin: 0;
1928
- }
1929
-
1930
- .review-ui :where(a) {
1931
- color: inherit;
1932
- -webkit-text-decoration: inherit;
1933
- -webkit-text-decoration: inherit;
1934
- text-decoration: inherit;
1935
- }
1936
- }
1937
-
1938
- @layer components {
1939
- #historyPanel.review-ui {
1940
- background: var(--background);
1941
- --diff-paper: var(--card);
1942
- --diff-ink: var(--foreground);
1943
- --diff-muted: var(--muted-foreground);
1944
- --diff-line: var(--border);
1945
- --diff-accent: var(--ring);
1946
- --diff-added: var(--review-added);
1947
- --diff-removed: var(--review-removed);
1948
- --diff-gap: var(--muted);
1949
- --diff-delete: var(--review-delete);
1950
- --diff-delete-ink: var(--review-removed-foreground);
1951
- --diff-insert: var(--review-insert);
1952
- --diff-insert-ink: var(--review-added-foreground);
1953
- }
1954
-
1955
- #historyPanel .comparison-header {
1956
- background: var(--background);
1957
- }
1958
-
1959
- #historyPanel .comparison-surface {
1960
- border: 1px solid var(--border);
1961
- background: var(--card);
1962
- color: var(--foreground);
1963
- }
1964
-
1965
- #historyPanel .comparison-current {
1966
- scroll-margin-top: var(--comparison-header-height, 0px);
1967
- }
1968
-
1969
- #historyPanel .comparison-headings {
1970
- border: 1px solid var(--border);
1971
- background: var(--muted);
1972
- color: var(--muted-foreground);
1973
- }
1974
-
1975
- #historyPanel .comparison-headings > div + div, #historyPanel .comparison-after {
1976
- border-left: 1px solid var(--border);
1977
- }
1978
-
1979
- #historyPanel .comparison-row + .comparison-row {
1980
- border-top: 1px solid var(--border);
1981
- }
1982
-
1983
- #historyPanel .comparison-block {
1984
- color: var(--foreground);
1985
- font-family: var(--review-font-sans);
1986
- }
1987
-
1988
- #historyPanel .comparison-block blockquote {
1989
- border-left: 3px solid var(--input);
1990
- color: var(--muted-foreground);
1991
- }
1992
-
1993
- #historyPanel .comparison-block :is(code, kbd, samp) {
1994
- background: var(--muted);
1995
- font-family: var(--review-font-mono);
1996
- }
1997
-
1998
- #historyPanel .comparison-block pre {
1999
- font-family: var(--review-font-mono);
2000
- }
2001
-
2002
- #historyPanel .comparison-block hr {
2003
- border-top: 1px solid var(--border);
2004
- margin: 12px 0;
2005
- }
2006
-
2007
- #historyPanel .comparison-block mark {
2008
- background: var(--review-modified);
2009
- color: var(--review-modified-foreground);
2010
- }
2011
-
2012
- #historyPanel .comparison-gutter, #historyPanel .comparison-change-label, #historyPanel .comparison-mobile-label {
2013
- color: var(--muted-foreground);
2014
- }
2015
-
2016
- #historyPanel .comparison-added {
2017
- background: var(--review-added);
2018
- }
2019
-
2020
- #historyPanel .comparison-removed {
2021
- background: var(--review-removed);
2022
- }
2023
-
2024
- #historyPanel .comparison-surface ins {
2025
- background: var(--review-insert);
2026
- -webkit-text-decoration-color: var(--review-added-foreground);
2027
- -webkit-text-decoration-color: var(--review-added-foreground);
2028
- text-decoration-color: var(--review-added-foreground);
2029
- }
2030
-
2031
- #historyPanel .comparison-surface del {
2032
- background: var(--review-delete);
2033
- -webkit-text-decoration-color: var(--review-removed-foreground);
2034
- -webkit-text-decoration-color: var(--review-removed-foreground);
2035
- text-decoration-color: var(--review-removed-foreground);
2036
- }
2037
-
2038
- #historyPanel .comparison-notice {
2039
- color: var(--muted-foreground);
2040
- }
2041
-
2042
- #historyPanel .comparison-budget {
2043
- color: var(--destructive);
2044
- }
2045
-
2046
- #historyPanel .comparison-block :is(.metadata-note, .structure-note, .newline-note) {
2047
- color: var(--muted-foreground);
2048
- font-family: var(--review-font-sans);
2049
- }
2050
-
2051
- #historyPanel .comparison-expand {
2052
- border-block: 1px solid var(--border);
2053
- background: var(--muted);
2054
- color: var(--muted-foreground);
2055
- font: 12px/1.5 var(--review-font-sans);
2056
- }
2057
-
2058
- #historyPanel .comparison-expand:hover {
2059
- background: var(--accent);
2060
- color: var(--accent-foreground);
2061
- }
2062
-
2063
- #historyPanel .saved-link {
2064
- color: var(--primary);
2065
- }
2066
-
2067
- #historyPanel .saved-image {
2068
- border: 1px dashed var(--input);
2069
- background: var(--muted);
2070
- }
2071
-
2072
- #historyPanel .saved-image small {
2073
- color: var(--muted-foreground);
2074
- }
2075
-
2076
- #historyPanel .saved-table :is(th, td) {
2077
- border: 1px solid var(--border);
2078
- }
2079
-
2080
- #historyPanel .saved-table th {
2081
- background: var(--muted);
2082
- }
2083
-
2084
- @media (max-width: 700px) {
2085
- #historyPanel .comparison-row {
2086
- border-bottom: 1px solid var(--border);
2087
- }
2088
-
2089
- #historyPanel .comparison-after {
2090
- border-left: 0;
2091
- border-top: 1px solid var(--border);
2092
- }
2093
- }
2094
-
2095
- .changes-controls {
2096
- border: 1px solid var(--border);
2097
- border-radius: var(--radius);
2098
- background: var(--card);
2099
- margin-bottom: 12px;
2100
- padding: 12px;
2101
- }
2102
-
2103
- .changes-support {
2104
- flex-wrap: wrap;
2105
- align-items: center;
2106
- gap: 8px;
2107
- display: flex;
2108
- }
2109
-
2110
- #historyStatus {
2111
- min-width: 0;
2112
- color: var(--muted-foreground);
2113
- overflow-wrap: anywhere;
2114
- margin: 0;
2115
- font-size: 12px;
2116
- }
2117
-
2118
- .changes-toolbar {
2119
- border: 1px solid var(--border);
2120
- border-radius: var(--radius) var(--radius) 0 0;
2121
- background: var(--card);
2122
- border-bottom: 0;
2123
- grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
2124
- align-items: center;
2125
- gap: 12px 8px;
2126
- padding: 8px 12px;
2127
- font-size: 12px;
2128
- display: grid;
2129
- }
2130
-
2131
- .changes-view-tools {
2132
- flex-wrap: wrap;
2133
- grid-area: 1 / 3;
2134
- justify-content: flex-end;
2135
- justify-self: end;
2136
- align-items: center;
2137
- gap: 8px;
2138
- min-width: 0;
2139
- max-width: 100%;
2140
- display: flex;
2141
- }
2142
-
2143
- .changes-context {
2144
- flex-wrap: wrap;
2145
- grid-area: 1 / 1;
2146
- align-items: center;
2147
- gap: 8px;
2148
- min-width: 0;
2149
- max-width: 100%;
2150
- display: flex;
2151
- }
2152
-
2153
- .changes-context > #historyTargetLabel {
2154
- flex: 0 auto;
2155
- min-width: 0;
2156
- max-width: 100%;
2157
- }
2158
-
2159
- .choice-trigger {
2160
- max-width: 100%;
2161
- }
2162
-
2163
- .choice-label {
2164
- text-overflow: ellipsis;
2165
- white-space: nowrap;
2166
- min-width: 0;
2167
- overflow: hidden;
2168
- }
2169
-
2170
- #roundPicker {
2171
- max-width: 12rem;
2172
- }
2173
-
2174
- #historyTarget {
2175
- width: auto;
2176
- max-width: 12rem;
2177
- }
2178
-
2179
- .changes-counts {
2180
- white-space: normal;
2181
- flex-wrap: wrap;
2182
- align-items: center;
2183
- gap: 4px;
2184
- display: flex;
2185
- }
2186
-
2187
- .changes-counts [data-slot="badge"] {
2188
- background: var(--card);
2189
- border-color: var(--border);
2190
- color: var(--foreground);
2191
- gap: 4px;
2192
- }
2193
-
2194
- .changes-added svg {
2195
- color: var(--review-count-added);
2196
- }
2197
-
2198
- .changes-modified svg {
2199
- color: var(--review-count-modified);
2200
- }
2201
-
2202
- .changes-removed svg {
2203
- color: var(--review-count-removed);
2204
- }
2205
-
2206
- .changes-error-line {
2207
- flex-wrap: wrap;
2208
- align-items: center;
2209
- gap: 8px;
2210
- margin-top: 8px;
2211
- display: flex;
2212
- }
2213
-
2214
- .changes-error {
2215
- color: var(--destructive);
2216
- overflow-wrap: anywhere;
2217
- margin: 0;
2218
- font-size: 12px;
2219
- }
2220
-
2221
- .changes-navigation {
2222
- grid-area: 1 / 2;
2223
- justify-self: center;
2224
- align-items: center;
2225
- gap: 8px;
2226
- min-width: 0;
2227
- max-width: 100%;
2228
- display: flex;
2229
- }
2230
-
2231
- .changes-navigation #previousChange:before, .changes-navigation #nextChange:before {
2232
- content: none;
2233
- }
2234
-
2235
- @media (max-width: 700px) {
2236
- .changes-toolbar {
2237
- grid-template-columns: minmax(0, 1fr);
2238
- }
2239
-
2240
- .changes-navigation {
2241
- grid-area: 2 / 1;
2242
- }
2243
-
2244
- .changes-view-tools {
2245
- grid-area: 3 / 1;
2246
- justify-content: center;
2247
- justify-self: center;
2248
- }
2249
- }
2250
-
2251
- .changes-diagnostics {
2252
- border: 1px solid var(--border);
2253
- border-radius: var(--radius);
2254
- background: var(--card);
2255
- color: var(--muted-foreground);
2256
- overflow-wrap: anywhere;
2257
- margin-top: 12px;
2258
- padding: 0 12px 12px;
2259
- font-size: 12px;
2260
- }
2261
-
2262
- .changes-diagnostics summary {
2263
- width: fit-content;
2264
- max-width: 100%;
2265
- min-height: 32px;
2266
- color: var(--foreground);
2267
- cursor: pointer;
2268
- padding: 8px 0;
2269
- font-weight: 500;
2270
- }
2271
-
2272
- .changes-diagnostics summary:focus-visible {
2273
- outline: 2px solid var(--ring);
2274
- outline-offset: 2px;
2275
- border-radius: 2px;
2276
- }
2277
-
2278
- .changes-diagnostics p {
2279
- max-width: 90ch;
2280
- margin: 8px 0;
2281
- }
2282
-
2283
- .changes-diagnostics ul {
2284
- margin: 8px 0;
2285
- padding-left: 20px;
2286
- }
2287
-
2288
- .changes-timing {
2289
- flex-wrap: wrap;
2290
- gap: 12px 24px;
2291
- margin: 12px 0;
2292
- display: flex;
2293
- }
2294
-
2295
- .changes-timing dt {
2296
- color: var(--muted-foreground);
2297
- }
2298
-
2299
- .changes-timing dd {
2300
- color: var(--foreground);
2301
- margin: 4px 0 0;
2302
- }
2303
-
2304
- .changes-legend, .changes-legend > span {
2305
- flex-wrap: wrap;
2306
- align-items: center;
2307
- gap: 8px;
2308
- display: flex;
2309
- }
2310
-
2311
- .changes-legend {
2312
- column-gap: 16px;
2313
- }
2314
-
2315
- .feedback-edits {
2316
- border-top: 1px solid var(--border);
2317
- margin-top: 0;
2318
- }
2319
-
2320
- .feedback-disclosure h3 {
2321
- margin: 0;
2322
- }
2323
-
2324
- .feedback-disclosure-trigger {
2325
- justify-content: flex-start;
2326
- gap: 8px;
2327
- width: 100%;
2328
- height: auto;
2329
- min-height: 44px;
2330
- padding: 10px 0;
2331
- font-size: 13px;
2332
- font-weight: 600;
2333
- }
2334
-
2335
- .feedback-disclosure-trigger[aria-disabled="true"] {
2336
- cursor: default;
2337
- }
2338
-
2339
- .disclosure-chevron {
2340
- transition: transform var(--review-duration);
2341
- color: var(--muted-foreground);
2342
- transform: rotate(-90deg);
2343
- }
2344
-
2345
- .feedback-disclosure[data-open="true"] .disclosure-chevron {
2346
- transform: rotate(0);
2347
- }
2348
-
2349
- .feedback-disclosure-content {
2350
- padding-bottom: 12px;
2351
- }
2352
-
2353
- .disclosure-help {
2354
- margin: 0 0 8px;
2355
- }
2356
-
2357
- .feedback-edit-status {
2358
- align-items: center;
2359
- gap: 8px;
2360
- margin-bottom: 4px;
2361
- display: flex;
2362
- }
2363
-
2364
- .feedback-edit-status .feedback-save {
2365
- flex: 1;
2366
- margin: 0;
2367
- }
2368
-
2369
- .feedback-revert {
2370
- color: var(--destructive);
2371
- margin-left: auto;
2372
- }
2373
-
2374
- .feedback-save, .feedback-help {
2375
- color: var(--muted-foreground);
2376
- overflow-wrap: anywhere;
2377
- margin: 0 0 8px;
2378
- font-size: 12px;
2379
- }
2380
-
2381
- .feedback-save[data-error="true"], .feedback-error {
2382
- color: var(--destructive);
2383
- overflow-wrap: anywhere;
2384
- font-size: 12px;
2385
- }
2386
-
2387
- .feedback-edit-list {
2388
- margin: 0;
2389
- padding: 0;
2390
- list-style: none;
2391
- }
2392
-
2393
- .feedback-edit-list li {
2394
- border-bottom: 1px solid var(--border);
2395
- align-items: baseline;
2396
- gap: 8px;
2397
- padding: 6px 0;
2398
- display: flex;
392
+ .comparison-host .saved-image {
393
+ border: 1px dashed var(--input);
394
+ background: var(--muted);
395
+ border-radius: 5px;
396
+ padding: 12px;
2399
397
  }
2400
398
 
2401
- .feedback-edit-label {
2402
- overflow-wrap: anywhere;
2403
- flex: 1;
2404
- min-width: 0;
399
+ .comparison-host .saved-image small {
400
+ color: var(--muted-foreground);
2405
401
  font-size: 12px;
402
+ display: block;
2406
403
  }
2407
404
 
2408
- .drawer-footer.review-ui {
2409
- border-color: var(--border);
2410
- background: var(--card);
2411
- grid-template-rows: auto minmax(0, 1fr) auto;
2412
- max-height: min(55dvh, 430px);
2413
- }
2414
-
2415
- .feedback-primary {
2416
- grid-row: 1;
2417
- gap: 8px;
2418
- padding: 12px;
2419
- display: grid;
405
+ .comparison-host .saved-list {
406
+ padding-inline-start: 22px;
2420
407
  }
2421
408
 
2422
- .feedback-primary #note {
2423
- resize: vertical;
2424
- background: var(--background);
2425
- height: 56px;
2426
- min-height: 56px;
2427
- max-height: min(18dvh, 120px);
2428
- margin: 0;
409
+ .comparison-host .saved-table {
410
+ border-collapse: collapse;
411
+ table-layout: fixed;
412
+ width: 100%;
2429
413
  }
2430
414
 
2431
- .feedback-actions {
2432
- grid-row: 3;
2433
- justify-content: space-between;
2434
- align-items: center;
2435
- gap: 12px;
2436
- padding: 0 12px 12px;
2437
- display: flex;
415
+ .comparison-host .saved-table :is(th, td) {
416
+ border: 1px solid var(--border);
417
+ text-align: left;
418
+ vertical-align: top;
419
+ padding: 7px 10px;
2438
420
  }
2439
421
 
2440
- .feedback-send {
2441
- white-space: normal;
2442
- overflow-wrap: anywhere;
2443
- flex: 0 auto;
2444
- min-width: 0;
2445
- max-width: 100%;
2446
- height: auto;
2447
- min-height: 32px;
2448
- padding-top: 6px;
2449
- padding-bottom: 6px;
422
+ .comparison-host .saved-table th {
423
+ background: var(--muted);
2450
424
  }
2451
425
 
2452
- .feedback-secondary {
2453
- grid-row: 2;
2454
- padding: 0 12px 12px;
426
+ .comparison-host .saved-table .comparison-block {
427
+ font-size: 13px;
2455
428
  }
2456
429
 
2457
- .feedback-end {
2458
- width: auto;
2459
- color: var(--muted-foreground);
2460
- flex: none;
430
+ .comparison-host .comparison-source .comparison-cell {
431
+ padding-block: 0;
432
+ padding-right: 8px;
2461
433
  }
2462
434
 
2463
- .feedback-handoff {
2464
- border: 1px solid var(--border);
2465
- border-radius: var(--radius);
2466
- background: var(--background);
2467
- overflow-wrap: anywhere;
2468
- margin: 0 0 8px;
2469
- padding: 10px;
435
+ .comparison-host .comparison-source .comparison-change-label {
436
+ display: none;
2470
437
  }
2471
438
 
2472
- .feedback-handoff p {
2473
- color: var(--muted-foreground);
2474
- margin: 0 0 8px;
2475
- font-size: 12px;
439
+ .comparison-host .comparison-source .comparison-gutter {
440
+ text-align: right;
441
+ white-space: pre;
442
+ flex-basis: 60px;
443
+ padding: 0 12px 0 4px;
2476
444
  }
2477
445
 
2478
- .feedback-handoff h3 {
2479
- margin: 0 0 6px;
2480
- font-size: 13px;
446
+ .comparison-host .comparison-source .comparison-block pre {
447
+ min-height: 22px;
448
+ line-height: 22px;
2481
449
  }
2482
450
 
2483
- .feedback-handoff code {
2484
- border-radius: var(--radius);
2485
- background: var(--muted);
2486
- color: var(--foreground);
2487
- white-space: pre-wrap;
2488
- overflow-wrap: anywhere;
2489
- margin-bottom: 8px;
2490
- padding: 8px;
2491
- font: 11px / 1.5 ui-monospace, monospace;
2492
- display: block;
451
+ .comparison-host .comparison-source .comparison-block .newline-note {
452
+ margin: 0;
453
+ padding: 3px 0;
2493
454
  }
2494
455
 
2495
- @media (max-height: 550px) {
2496
- .drawer-footer.review-ui {
2497
- max-height: calc(100dvh - var(--toolbar-h) - 80px);
456
+ @media (max-width: 700px) {
457
+ .comparison-host .comparison-headings {
458
+ display: none;
2498
459
  }
2499
460
 
2500
- .feedback-primary {
2501
- gap: 6px;
2502
- padding: 8px 12px;
461
+ .comparison-host .comparison-row {
462
+ border-bottom: 1px solid var(--border);
463
+ grid-template-columns: minmax(0, 1fr);
2503
464
  }
2504
465
 
2505
- .feedback-primary #note {
2506
- height: 40px;
2507
- min-height: 40px;
2508
- max-height: 60px;
466
+ .comparison-host .comparison-after {
467
+ border-left: 0;
468
+ border-top: 1px solid var(--border);
2509
469
  }
2510
- }
2511
470
 
2512
- .contextual-compose.review-ui {
2513
- border: 1px solid var(--border);
2514
- border-radius: var(--radius);
2515
- background: var(--card);
2516
- color: var(--card-foreground);
2517
- max-height: calc(100dvh - var(--toolbar-h) - 24px);
2518
- padding: 12px;
2519
- overflow: auto;
2520
- box-shadow: 0 8px 24px #00000026;
2521
- }
471
+ .comparison-host .comparison-gap, .comparison-host .comparison-unchanged > .comparison-after {
472
+ display: none;
473
+ }
2522
474
 
2523
- .contextual-compose.review-ui .quote {
2524
- border-left: 2px solid var(--border);
2525
- color: var(--muted-foreground);
2526
- overflow-wrap: anywhere;
2527
- margin: 0 0 10px;
2528
- padding-left: 8px;
2529
- font-size: 12px;
2530
- font-style: normal;
2531
- }
475
+ .comparison-host .comparison-cell {
476
+ padding-right: 10px;
477
+ }
2532
478
 
2533
- .contextual-compose.review-ui textarea {
2534
- background: var(--background);
2535
- color: var(--foreground);
2536
- border-color: var(--input);
2537
- }
479
+ .comparison-host .comparison-mobile-label {
480
+ color: var(--muted-foreground);
481
+ font: 600 12px/1.6 var(--review-font-sans);
482
+ margin-bottom: 8px;
483
+ display: block;
484
+ }
2538
485
 
2539
- .contextual-compose.review-ui .compose-help {
2540
- margin: calc(2 * var(--review-space)) 1px 0;
2541
- color: var(--muted-foreground);
2542
- flex-wrap: wrap;
2543
- }
486
+ .comparison-host .comparison-change-label {
487
+ display: none;
488
+ }
2544
489
 
2545
- .contextual-compose.review-ui.edge-top, .contextual-compose.review-ui.edge-bottom {
2546
- border-color: var(--ring);
2547
- }
490
+ .comparison-host .comparison-current > .comparison-after {
491
+ box-shadow: inset 3px 0 var(--ring);
492
+ }
2548
493
 
2549
- .contextual-direction {
2550
- color: var(--muted-foreground);
2551
- flex-wrap: wrap;
2552
- align-items: center;
2553
- gap: 4px;
2554
- margin-bottom: 8px;
2555
- font-size: 12px;
2556
- display: flex;
2557
- }
494
+ .comparison-host .comparison-block {
495
+ font-size: 14px;
496
+ }
2558
497
 
2559
- .aligned-card.review-ui {
2560
- max-height: calc(100dvh - var(--toolbar-h) - 24px);
2561
- background: none;
2562
- border: 0;
2563
- padding: 0;
2564
- overflow: auto;
498
+ .comparison-host .comparison-source .comparison-gutter {
499
+ flex-basis: 48px;
500
+ }
2565
501
  }
2566
502
 
2567
- .aligned-card.review-ui .inventory-card {
2568
- margin: 0;
503
+ .app {
504
+ grid-template-rows: auto minmax(0, 1fr);
505
+ height: 100dvh;
506
+ display: grid;
2569
507
  }
2570
508
 
2571
509
  .shell-toolbar {
2572
- border-color: var(--border);
510
+ z-index: var(--review-layer-toolbar);
511
+ border-bottom: 1px solid var(--border);
2573
512
  background: var(--card);
2574
- grid-template: "destinations mode actions recovery"
2575
- / minmax(0, 1fr) auto minmax(0, 1fr) auto;
513
+ grid-template-columns: minmax(0, 1fr) auto;
514
+ grid-template-areas: "destinations tools";
515
+ align-items: center;
2576
516
  gap: 8px;
2577
517
  padding: 8px 12px;
518
+ display: grid;
519
+ position: relative;
2578
520
  }
2579
521
 
2580
522
  #toolbarRoot {
@@ -2597,35 +539,62 @@
2597
539
  display: block;
2598
540
  }
2599
541
 
2600
- .segmented-control {
2601
- border: 1px solid var(--border);
2602
- border-radius: calc(var(--radius) + 2px);
2603
- flex-wrap: wrap;
2604
- gap: 2px;
2605
- width: fit-content;
2606
- padding: 2px;
542
+ .shell-mode {
543
+ align-items: center;
544
+ gap: 8px;
2607
545
  display: flex;
2608
546
  }
2609
547
 
2610
- .shell-mode {
2611
- grid-area: mode;
548
+ .shell-tools {
549
+ grid-area: tools;
550
+ justify-content: flex-end;
551
+ align-items: center;
552
+ gap: 8px;
553
+ display: flex;
2612
554
  }
2613
555
 
2614
- .shell-actions {
2615
- grid-area: actions;
2616
- justify-content: flex-end;
556
+ .review-options-menu {
557
+ width: 280px;
558
+ }
559
+
560
+ .review-options-document {
2617
561
  gap: 4px;
2618
- display: flex;
562
+ display: grid;
2619
563
  }
2620
564
 
2621
- .shell-recovery {
2622
- grid-area: recovery;
2623
- justify-self: end;
565
+ .review-options-name {
566
+ text-overflow: ellipsis;
567
+ white-space: nowrap;
568
+ min-width: 0;
569
+ color: var(--foreground);
570
+ overflow: hidden;
571
+ }
572
+
573
+ .review-options-notice {
574
+ overflow-wrap: anywhere;
575
+ padding: 4px 6px;
576
+ font-size: 12px;
577
+ }
578
+
579
+ .review-options-notice[role="alert"] {
580
+ color: var(--destructive);
581
+ }
582
+
583
+ .review-options-path {
584
+ color: var(--foreground);
585
+ -webkit-user-select: text;
586
+ user-select: text;
587
+ margin-top: 4px;
588
+ display: block;
2624
589
  }
2625
590
 
2626
591
  .stage {
592
+ background: var(--background);
2627
593
  flex-direction: column;
594
+ min-width: 0;
595
+ min-height: 0;
2628
596
  display: flex;
597
+ position: relative;
2629
598
  }
2630
599
 
2631
600
  .document-host {
@@ -2635,221 +604,309 @@
2635
604
  position: relative;
2636
605
  }
2637
606
 
2638
- #noticesRoot {
2639
- z-index: var(--review-layer-notice);
2640
- flex: none;
2641
- min-height: 0;
2642
- max-height: min(45dvh, 20rem);
2643
- position: relative;
2644
- overflow: auto;
607
+ #frame {
608
+ background: #fff;
609
+ border: 0;
610
+ width: 100%;
611
+ height: 100%;
612
+ display: block;
2645
613
  }
2646
614
 
2647
- .recovery-notices {
2648
- background: var(--background);
2649
- padding: 8px 12px;
615
+ #frame[data-replacing] {
616
+ opacity: 0;
617
+ pointer-events: none;
618
+ }
619
+
620
+ #previousFrame {
621
+ z-index: 1;
622
+ pointer-events: none;
623
+ border: 0;
624
+ width: 100%;
625
+ height: 100%;
626
+ display: block;
627
+ position: absolute;
628
+ inset: 0;
629
+ }
630
+
631
+ body.comparing #frame {
632
+ pointer-events: none;
633
+ }
634
+
635
+ .choice-trigger {
636
+ max-width: 100%;
637
+ }
638
+
639
+ .choice-label {
640
+ text-overflow: ellipsis;
641
+ white-space: nowrap;
642
+ min-width: 0;
643
+ overflow: hidden;
644
+ }
645
+
646
+ #historyTarget {
647
+ width: auto;
648
+ max-width: 12rem;
2650
649
  }
2651
650
 
2652
- .recovery-notice {
2653
- border: 1px solid var(--input);
651
+ .changes-controls {
652
+ border: 1px solid var(--border);
2654
653
  border-radius: var(--radius);
2655
654
  background: var(--card);
2656
- color: var(--card-foreground);
2657
- overflow-wrap: anywhere;
2658
- margin: 0;
655
+ margin-bottom: 12px;
2659
656
  padding: 12px;
2660
657
  }
2661
658
 
2662
- .recovery-notice[data-error="true"] {
2663
- border-color: var(--destructive);
659
+ .changes-toolbar {
660
+ border: 1px solid var(--border);
661
+ border-radius: var(--radius) var(--radius) 0 0;
662
+ background: var(--card);
663
+ border-bottom: 0;
664
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
665
+ align-items: center;
666
+ gap: 12px 8px;
667
+ padding: 8px 12px;
668
+ font-size: 12px;
669
+ display: grid;
2664
670
  }
2665
671
 
2666
- .recovery-notice[data-error="true"] strong {
2667
- color: var(--destructive);
672
+ .changes-view-tools {
673
+ flex-wrap: wrap;
674
+ grid-area: 1 / 3;
675
+ justify-content: flex-end;
676
+ justify-self: end;
677
+ align-items: center;
678
+ gap: 8px;
679
+ min-width: 0;
680
+ max-width: 100%;
681
+ display: flex;
2668
682
  }
2669
683
 
2670
- .recovery-notice-actions {
684
+ .changes-context {
2671
685
  flex-wrap: wrap;
686
+ grid-area: 1 / 1;
2672
687
  align-items: center;
2673
688
  gap: 8px;
2674
- margin-top: 10px;
689
+ min-width: 0;
690
+ max-width: 100%;
2675
691
  display: flex;
2676
692
  }
2677
693
 
2678
- .recovery-notice p {
2679
- margin: 4px 0 0;
2680
- }
2681
-
2682
- .recovery-notice :where(button):focus-visible {
2683
- outline-offset: 2px;
694
+ .changes-counts {
695
+ white-space: normal;
696
+ flex-wrap: wrap;
697
+ align-items: center;
698
+ gap: 4px;
699
+ display: flex;
2684
700
  }
2685
701
 
2686
- .inventory-drawer-head {
2687
- border-bottom: 1px solid var(--border);
702
+ .changes-counts [data-slot="badge"] {
2688
703
  background: var(--card);
2689
- justify-content: space-between;
2690
- align-items: center;
2691
- gap: 8px;
2692
- padding: 12px;
2693
- display: flex;
704
+ border-color: var(--border);
705
+ color: var(--foreground);
706
+ gap: 4px;
2694
707
  }
2695
708
 
2696
- .inventory-drawer-head h2 {
2697
- margin: 0;
2698
- font-size: 17px;
2699
- font-weight: 600;
709
+ .changes-added svg {
710
+ color: var(--review-count-added);
2700
711
  }
2701
712
 
2702
- .inventory-heading {
2703
- align-items: center;
2704
- gap: 8px;
2705
- margin-bottom: 10px;
2706
- display: flex;
713
+ .changes-modified svg {
714
+ color: var(--review-count-modified);
2707
715
  }
2708
716
 
2709
- .inventory-heading h3 {
2710
- margin: 0;
2711
- font-size: 13px;
2712
- font-weight: 600;
717
+ .changes-removed svg {
718
+ color: var(--review-count-removed);
2713
719
  }
2714
720
 
2715
- .inventory-cards {
2716
- flex-direction: column;
721
+ .changes-navigation {
722
+ grid-area: 1 / 2;
723
+ justify-self: center;
724
+ align-items: center;
2717
725
  gap: 8px;
726
+ min-width: 0;
727
+ max-width: 100%;
2718
728
  display: flex;
2719
729
  }
2720
730
 
2721
- .inventory-card {
731
+ .changes-diagnostics {
2722
732
  border: 1px solid var(--border);
2723
733
  border-radius: var(--radius);
2724
734
  background: var(--card);
2725
- min-width: 0;
2726
- color: var(--card-foreground);
735
+ color: var(--muted-foreground);
2727
736
  overflow-wrap: anywhere;
2728
- padding: 12px;
737
+ margin-top: 12px;
738
+ padding: 0 12px 12px;
739
+ font-size: 12px;
2729
740
  }
2730
741
 
2731
- .inventory-card.active {
2732
- border-color: var(--ring);
2733
- box-shadow: inset 2px 0 0 var(--ring);
742
+ .changes-diagnostics summary {
743
+ width: fit-content;
744
+ max-width: 100%;
745
+ min-height: 32px;
746
+ color: var(--foreground);
747
+ cursor: pointer;
748
+ padding: 8px 0;
749
+ font-weight: 500;
2734
750
  }
2735
751
 
2736
- .inventory-card-head {
2737
- flex-wrap: wrap;
2738
- align-items: center;
2739
- gap: 4px;
2740
- margin-bottom: 8px;
2741
- display: flex;
752
+ .changes-diagnostics p {
753
+ max-width: 90ch;
754
+ margin: 8px 0;
2742
755
  }
2743
756
 
2744
- .inventory-meta {
2745
- color: var(--muted-foreground);
757
+ .changes-diagnostics ul {
758
+ margin: 8px 0;
759
+ padding-left: 20px;
760
+ }
761
+
762
+ .changes-legend, .changes-legend > span {
2746
763
  flex-wrap: wrap;
2747
764
  align-items: center;
2748
- gap: 4px;
2749
- margin-right: auto;
2750
- font-size: 11px;
765
+ gap: 8px;
2751
766
  display: flex;
2752
767
  }
2753
768
 
2754
- .inventory-actions {
2755
- flex-wrap: wrap;
769
+ .changes-legend {
770
+ column-gap: 16px;
771
+ }
772
+
773
+ .review-ui details > summary {
774
+ cursor: pointer;
775
+ border-radius: 2px;
776
+ }
777
+
778
+ .review-ui details > summary:focus-visible {
779
+ outline: 2px solid var(--ring);
780
+ outline-offset: 2px;
781
+ }
782
+
783
+ .feedback-edit-status {
2756
784
  align-items: center;
2757
- gap: 4px;
785
+ gap: 8px;
786
+ margin-bottom: 4px;
2758
787
  display: flex;
2759
788
  }
2760
789
 
2761
- .inventory-card .quote {
2762
- border-left: 2px solid var(--border);
790
+ .feedback-revert {
791
+ margin-left: auto;
792
+ }
793
+
794
+ .feedback-help {
2763
795
  color: var(--muted-foreground);
2764
- white-space: pre-wrap;
796
+ overflow-wrap: anywhere;
2765
797
  margin: 0 0 8px;
2766
- padding-left: 8px;
2767
798
  font-size: 12px;
2768
- font-style: normal;
2769
799
  }
2770
800
 
2771
- .inventory-card .body {
2772
- border-radius: var(--radius);
2773
- white-space: pre-wrap;
2774
- cursor: text;
801
+ .feedback-edit-list {
2775
802
  margin: 0;
2776
- font-size: 13px;
803
+ padding: 0;
804
+ list-style: none;
2777
805
  }
2778
806
 
2779
- .inventory-card .body:hover {
2780
- background: var(--muted);
807
+ .feedback-edit-list li {
808
+ border-bottom: 1px solid var(--border);
2781
809
  }
2782
810
 
2783
- .inventory-card .body-edit {
2784
- background: var(--background);
2785
- color: var(--foreground);
2786
- border-color: var(--input);
811
+ .feedback-edit-label {
812
+ overflow-wrap: anywhere;
813
+ flex: 1;
814
+ min-width: 0;
815
+ font-size: 12px;
2787
816
  }
2788
817
 
2789
- .inventory-help {
2790
- color: var(--muted-foreground);
2791
- margin: 6px 0;
2792
- font-size: 11px;
818
+ .feedback-actions {
819
+ justify-content: space-between;
820
+ align-items: center;
821
+ gap: 12px;
822
+ padding: 0 12px 12px;
823
+ display: flex;
2793
824
  }
2794
825
 
2795
- .inventory-error {
2796
- color: var(--destructive);
2797
- margin: 6px 0;
2798
- font-size: 12px;
826
+ .feedback-send {
827
+ white-space: normal;
828
+ overflow-wrap: anywhere;
829
+ flex: 0 auto;
830
+ min-width: 0;
831
+ max-width: 100%;
832
+ height: auto;
833
+ min-height: 32px;
834
+ padding-top: 6px;
835
+ padding-bottom: 6px;
2799
836
  }
2800
837
 
2801
- .inventory-delete {
2802
- margin: 0 0 8px;
2803
- font-weight: 500;
838
+ .feedback-end {
839
+ flex: none;
840
+ width: auto;
2804
841
  }
2805
842
 
2806
- .inventory-empty {
2807
- border: 1px dashed var(--input);
2808
- border-radius: var(--radius);
843
+ .contextual-compose.review-ui {
844
+ max-height: calc(100dvh - var(--toolbar-h) - 24px);
845
+ }
846
+
847
+ .contextual-compose.review-ui .quote {
848
+ border-left: 2px solid var(--border);
2809
849
  color: var(--muted-foreground);
2810
- text-align: center;
2811
- margin: 0;
2812
- padding: 16px 12px;
850
+ overflow-wrap: anywhere;
851
+ margin: 0 0 10px;
852
+ padding-left: 8px;
853
+ font-size: 12px;
854
+ }
855
+
856
+ .contextual-direction {
857
+ color: var(--muted-foreground);
858
+ flex-wrap: wrap;
859
+ align-items: center;
860
+ gap: 4px;
861
+ margin-bottom: 8px;
2813
862
  font-size: 12px;
863
+ display: flex;
2814
864
  }
2815
865
 
2816
- .inventory-other-pages {
866
+ .inventory-card {
2817
867
  border: 1px solid var(--border);
2818
868
  border-radius: var(--radius);
2819
869
  background: var(--card);
2820
- overflow: hidden;
870
+ min-width: 0;
871
+ color: var(--card-foreground);
872
+ overflow-wrap: anywhere;
873
+ padding: 12px;
2821
874
  }
2822
875
 
2823
- .inventory-other-page {
2824
- white-space: normal;
2825
- text-align: left;
2826
- border-radius: 0;
2827
- justify-content: space-between;
2828
- gap: 8px;
2829
- width: 100%;
2830
- height: auto;
2831
- min-height: 32px;
2832
- padding: 8px;
876
+ .inventory-meta {
877
+ color: var(--muted-foreground);
878
+ flex-wrap: wrap;
879
+ align-items: center;
880
+ gap: 4px;
881
+ margin-right: auto;
882
+ font-size: 11px;
883
+ display: flex;
2833
884
  }
2834
885
 
2835
- .inventory-other-page > span:first-child {
2836
- overflow-wrap: anywhere;
2837
- min-width: 0;
2838
- }
886
+ @media (max-width: 700px) {
887
+ .changes-toolbar {
888
+ grid-template-columns: minmax(0, 1fr);
889
+ }
2839
890
 
2840
- @media (max-width: 600px) {
2841
- .shell-toolbar {
2842
- grid-template-columns: auto minmax(0, 1fr) auto;
2843
- grid-template-areas: "destinations destinations actions"
2844
- "mode recovery recovery";
891
+ .changes-navigation {
892
+ grid-area: 2 / 1;
893
+ }
894
+
895
+ .changes-view-tools {
896
+ grid-area: 3 / 1;
897
+ justify-self: end;
2845
898
  }
899
+ }
2846
900
 
901
+ @media (max-width: 600px) {
2847
902
  .shell-comments-label {
2848
903
  display: none;
2849
904
  }
2850
905
 
2851
- body.comparing .shell-toolbar {
2852
- grid-template-areas: "destinations destinations actions";
906
+ .shell-toolbar {
907
+ grid-template-columns: minmax(0, 1fr);
908
+ grid-template-areas: "destinations"
909
+ "tools";
2853
910
  }
2854
911
  }
2855
912
  }
@@ -2907,6 +964,10 @@
2907
964
  inset: 0;
2908
965
  }
2909
966
 
967
+ .top-0 {
968
+ top: 0;
969
+ }
970
+
2910
971
  .top-1\/2 {
2911
972
  top: 50%;
2912
973
  }
@@ -2919,6 +980,10 @@
2919
980
  right: calc(var(--spacing) * 2.5);
2920
981
  }
2921
982
 
983
+ .left-0 {
984
+ left: 0;
985
+ }
986
+
2922
987
  .left-1\/2 {
2923
988
  left: 50%;
2924
989
  }
@@ -2935,12 +1000,16 @@
2935
1000
  z-index: var(--review-layer-menu);
2936
1001
  }
2937
1002
 
2938
- .row-10 {
2939
- grid-row: 10;
1003
+ .z-10 {
1004
+ z-index: 10;
1005
+ }
1006
+
1007
+ .row-0 {
1008
+ grid-row: 0;
2940
1009
  }
2941
1010
 
2942
- .row-39 {
2943
- grid-row: 39;
1011
+ .row-10 {
1012
+ grid-row: 10;
2944
1013
  }
2945
1014
 
2946
1015
  .row-43 {
@@ -3073,9 +1142,19 @@
3073
1142
  field-sizing: content;
3074
1143
  }
3075
1144
 
3076
- .size-3\.5 {
3077
- width: calc(var(--spacing) * 3.5);
3078
- height: calc(var(--spacing) * 3.5);
1145
+ .size-\(--review-control-height\) {
1146
+ width: var(--review-control-height);
1147
+ height: var(--review-control-height);
1148
+ }
1149
+
1150
+ .size-\(--review-control-height-xs\) {
1151
+ width: var(--review-control-height-xs);
1152
+ height: var(--review-control-height-xs);
1153
+ }
1154
+
1155
+ .size-3 {
1156
+ width: calc(var(--spacing) * 3);
1157
+ height: calc(var(--spacing) * 3);
3079
1158
  }
3080
1159
 
3081
1160
  .size-4 {
@@ -3088,46 +1167,31 @@
3088
1167
  height: calc(var(--spacing) * 6);
3089
1168
  }
3090
1169
 
3091
- .size-7 {
3092
- width: calc(var(--spacing) * 7);
3093
- height: calc(var(--spacing) * 7);
1170
+ .size-10 {
1171
+ width: calc(var(--spacing) * 10);
1172
+ height: calc(var(--spacing) * 10);
3094
1173
  }
3095
1174
 
3096
- .size-8 {
3097
- width: calc(var(--spacing) * 8);
3098
- height: calc(var(--spacing) * 8);
1175
+ .h-\(--review-control-height\) {
1176
+ height: var(--review-control-height);
3099
1177
  }
3100
1178
 
3101
- .size-9 {
3102
- width: calc(var(--spacing) * 9);
3103
- height: calc(var(--spacing) * 9);
1179
+ .h-\(--review-control-height-sm\) {
1180
+ height: var(--review-control-height-sm);
3104
1181
  }
3105
1182
 
3106
- .size-10 {
3107
- width: calc(var(--spacing) * 10);
3108
- height: calc(var(--spacing) * 10);
1183
+ .h-\(--review-control-height-xs\) {
1184
+ height: var(--review-control-height-xs);
3109
1185
  }
3110
1186
 
3111
1187
  .h-5 {
3112
1188
  height: calc(var(--spacing) * 5);
3113
1189
  }
3114
1190
 
3115
- .h-6 {
3116
- height: calc(var(--spacing) * 6);
3117
- }
3118
-
3119
- .h-7 {
3120
- height: calc(var(--spacing) * 7);
3121
- }
3122
-
3123
1191
  .h-8 {
3124
1192
  height: calc(var(--spacing) * 8);
3125
1193
  }
3126
1194
 
3127
- .h-9 {
3128
- height: calc(var(--spacing) * 9);
3129
- }
3130
-
3131
1195
  .h-auto {
3132
1196
  height: auto;
3133
1197
  }
@@ -3140,6 +1204,10 @@
3140
1204
  max-height: var(--radix-dropdown-menu-content-available-height);
3141
1205
  }
3142
1206
 
1207
+ .max-h-\(--radix-tooltip-content-available-height\) {
1208
+ max-height: var(--radix-tooltip-content-available-height);
1209
+ }
1210
+
3143
1211
  .max-h-\[calc\(100dvh-2rem\)\] {
3144
1212
  max-height: calc(100dvh - 2rem);
3145
1213
  }
@@ -3148,20 +1216,20 @@
3148
1216
  max-height: min(22rem, var(--radix-dropdown-menu-content-available-height));
3149
1217
  }
3150
1218
 
3151
- .min-h-8 {
3152
- min-height: calc(var(--spacing) * 8);
1219
+ .min-h-6 {
1220
+ min-height: calc(var(--spacing) * 6);
3153
1221
  }
3154
1222
 
3155
- .min-h-16 {
3156
- min-height: calc(var(--spacing) * 16);
1223
+ .min-h-8 {
1224
+ min-height: calc(var(--spacing) * 8);
3157
1225
  }
3158
1226
 
3159
- .w-64 {
3160
- width: calc(var(--spacing) * 64);
1227
+ .min-h-9 {
1228
+ min-height: calc(var(--spacing) * 9);
3161
1229
  }
3162
1230
 
3163
- .w-72 {
3164
- width: calc(var(--spacing) * 72);
1231
+ .min-h-16 {
1232
+ min-height: calc(var(--spacing) * 16);
3165
1233
  }
3166
1234
 
3167
1235
  .w-80 {
@@ -3188,30 +1256,14 @@
3188
1256
  max-width: calc(100vw - 2rem);
3189
1257
  }
3190
1258
 
3191
- .max-w-full {
3192
- max-width: 100%;
1259
+ .max-w-\[min\(20rem\,var\(--radix-tooltip-content-available-width\)\)\] {
1260
+ max-width: min(20rem, var(--radix-tooltip-content-available-width));
3193
1261
  }
3194
1262
 
3195
1263
  .min-w-0 {
3196
1264
  min-width: 0;
3197
1265
  }
3198
1266
 
3199
- .min-w-7 {
3200
- min-width: calc(var(--spacing) * 7);
3201
- }
3202
-
3203
- .min-w-8 {
3204
- min-width: calc(var(--spacing) * 8);
3205
- }
3206
-
3207
- .min-w-9 {
3208
- min-width: calc(var(--spacing) * 9);
3209
- }
3210
-
3211
- .min-w-32 {
3212
- min-width: calc(var(--spacing) * 32);
3213
- }
3214
-
3215
1267
  .min-w-48 {
3216
1268
  min-width: calc(var(--spacing) * 48);
3217
1269
  }
@@ -3224,6 +1276,10 @@
3224
1276
  flex-shrink: 0;
3225
1277
  }
3226
1278
 
1279
+ .grow {
1280
+ flex-grow: 1;
1281
+ }
1282
+
3227
1283
  .border-collapse {
3228
1284
  border-collapse: collapse;
3229
1285
  }
@@ -3254,6 +1310,10 @@
3254
1310
  resize: both;
3255
1311
  }
3256
1312
 
1313
+ .list-none {
1314
+ list-style-type: none;
1315
+ }
1316
+
3257
1317
  .appearance-none {
3258
1318
  appearance: none;
3259
1319
  }
@@ -3270,10 +1330,6 @@
3270
1330
  flex-direction: column-reverse;
3271
1331
  }
3272
1332
 
3273
- .flex-row {
3274
- flex-direction: row;
3275
- }
3276
-
3277
1333
  .place-items-center {
3278
1334
  place-items: center;
3279
1335
  }
@@ -3286,12 +1342,12 @@
3286
1342
  align-items: center;
3287
1343
  }
3288
1344
 
3289
- .justify-center {
3290
- justify-content: center;
1345
+ .justify-between {
1346
+ justify-content: space-between;
3291
1347
  }
3292
1348
 
3293
- .justify-start {
3294
- justify-content: flex-start;
1349
+ .justify-center {
1350
+ justify-content: center;
3295
1351
  }
3296
1352
 
3297
1353
  .gap-1 {
@@ -3318,8 +1374,8 @@
3318
1374
  gap: calc(var(--spacing) * 5);
3319
1375
  }
3320
1376
 
3321
- .gap-\[--spacing\(var\(--gap\)\)\] {
3322
- gap: calc(var(--spacing) * var(--gap));
1377
+ .overflow-auto {
1378
+ overflow: auto;
3323
1379
  }
3324
1380
 
3325
1381
  .overflow-hidden {
@@ -3350,6 +1406,10 @@
3350
1406
  border-radius: min(var(--radius-md), 12px);
3351
1407
  }
3352
1408
 
1409
+ .rounded-full {
1410
+ border-radius: 3.40282e38px;
1411
+ }
1412
+
3353
1413
  .rounded-lg {
3354
1414
  border-radius: calc(var(--radius) + 2px);
3355
1415
  }
@@ -3358,10 +1418,6 @@
3358
1418
  border-radius: var(--radius);
3359
1419
  }
3360
1420
 
3361
- .rounded-sm {
3362
- border-radius: calc(var(--radius) - 2px);
3363
- }
3364
-
3365
1421
  .rounded-xl {
3366
1422
  border-radius: calc(var(--radius) + 4px);
3367
1423
  }
@@ -3401,6 +1457,14 @@
3401
1457
  background-color: canvas;
3402
1458
  }
3403
1459
 
1460
+ .bg-\[var\(--annotation-background\)\] {
1461
+ background-color: var(--annotation-background);
1462
+ }
1463
+
1464
+ .bg-accent {
1465
+ background-color: var(--accent);
1466
+ }
1467
+
3404
1468
  .bg-background {
3405
1469
  background-color: var(--background);
3406
1470
  }
@@ -3409,6 +1473,20 @@
3409
1473
  background-color: var(--border);
3410
1474
  }
3411
1475
 
1476
+ .bg-card {
1477
+ background-color: var(--card);
1478
+ }
1479
+
1480
+ .bg-destructive\/5 {
1481
+ background-color: var(--destructive);
1482
+ }
1483
+
1484
+ @supports (color: color-mix(in lab, red, red)) {
1485
+ .bg-destructive\/5 {
1486
+ background-color: color-mix(in oklab, var(--destructive) 5%, transparent);
1487
+ }
1488
+ }
1489
+
3412
1490
  .bg-destructive\/10 {
3413
1491
  background-color: var(--destructive);
3414
1492
  }
@@ -3419,10 +1497,6 @@
3419
1497
  }
3420
1498
  }
3421
1499
 
3422
- .bg-foreground {
3423
- background-color: var(--foreground);
3424
- }
3425
-
3426
1500
  .bg-muted, .bg-muted\/50 {
3427
1501
  background-color: var(--muted);
3428
1502
  }
@@ -3465,6 +1539,10 @@
3465
1539
  background-clip: padding-box;
3466
1540
  }
3467
1541
 
1542
+ .p-0 {
1543
+ padding: 0;
1544
+ }
1545
+
3468
1546
  .p-1 {
3469
1547
  padding: var(--spacing);
3470
1548
  }
@@ -3477,10 +1555,6 @@
3477
1555
  padding: calc(var(--spacing) * 4);
3478
1556
  }
3479
1557
 
3480
- .px-0 {
3481
- padding-inline: 0;
3482
- }
3483
-
3484
1558
  .px-1\.5 {
3485
1559
  padding-inline: calc(var(--spacing) * 1.5);
3486
1560
  }
@@ -3505,22 +1579,18 @@
3505
1579
  padding-block: var(--spacing);
3506
1580
  }
3507
1581
 
3508
- .py-1\.5 {
3509
- padding-block: calc(var(--spacing) * 1.5);
3510
- }
3511
-
3512
1582
  .py-2 {
3513
1583
  padding-block: calc(var(--spacing) * 2);
3514
1584
  }
3515
1585
 
3516
- .py-2\.5 {
3517
- padding-block: calc(var(--spacing) * 2.5);
3518
- }
3519
-
3520
1586
  .pr-8 {
3521
1587
  padding-right: calc(var(--spacing) * 8);
3522
1588
  }
3523
1589
 
1590
+ .pb-6 {
1591
+ padding-bottom: calc(var(--spacing) * 6);
1592
+ }
1593
+
3524
1594
  .pl-1\.5 {
3525
1595
  padding-left: calc(var(--spacing) * 1.5);
3526
1596
  }
@@ -3529,10 +1599,18 @@
3529
1599
  padding-left: calc(var(--spacing) * 2.5);
3530
1600
  }
3531
1601
 
1602
+ .pl-9 {
1603
+ padding-left: calc(var(--spacing) * 9);
1604
+ }
1605
+
3532
1606
  .text-center {
3533
1607
  text-align: center;
3534
1608
  }
3535
1609
 
1610
+ .text-left {
1611
+ text-align: left;
1612
+ }
1613
+
3536
1614
  .font-mono {
3537
1615
  font-family: var(--review-font-mono);
3538
1616
  }
@@ -3557,14 +1635,6 @@
3557
1635
  line-height: var(--tw-leading, var(--text-xs--line-height));
3558
1636
  }
3559
1637
 
3560
- .text-\[0\.8rem\] {
3561
- font-size: .8rem;
3562
- }
3563
-
3564
- .text-\[13px\] {
3565
- font-size: 13px;
3566
- }
3567
-
3568
1638
  .leading-none {
3569
1639
  --tw-leading: 1;
3570
1640
  line-height: 1;
@@ -3590,11 +1660,6 @@
3590
1660
  letter-spacing: var(--tracking-tight);
3591
1661
  }
3592
1662
 
3593
- .tracking-widest {
3594
- --tw-tracking: var(--tracking-widest);
3595
- letter-spacing: var(--tracking-widest);
3596
- }
3597
-
3598
1663
  .text-balance {
3599
1664
  text-wrap: balance;
3600
1665
  }
@@ -3615,8 +1680,12 @@
3615
1680
  color: canvastext;
3616
1681
  }
3617
1682
 
3618
- .text-background {
3619
- color: var(--background);
1683
+ .text-\[var\(--annotation-foreground\)\] {
1684
+ color: var(--annotation-foreground);
1685
+ }
1686
+
1687
+ .text-accent-foreground {
1688
+ color: var(--accent-foreground);
3620
1689
  }
3621
1690
 
3622
1691
  .text-destructive {
@@ -3703,6 +1772,11 @@
3703
1772
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
3704
1773
  }
3705
1774
 
1775
+ .shadow-xs {
1776
+ --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);
1777
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1778
+ }
1779
+
3706
1780
  .ring {
3707
1781
  --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3708
1782
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -3730,8 +1804,7 @@
3730
1804
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
3731
1805
  }
3732
1806
 
3733
- .invert {
3734
- --tw-invert: invert(100%);
1807
+ .filter {
3735
1808
  filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );
3736
1809
  }
3737
1810
 
@@ -3773,10 +1846,6 @@
3773
1846
  user-select: none;
3774
1847
  }
3775
1848
 
3776
- .block-1 {
3777
- block-size: var(--spacing);
3778
- }
3779
-
3780
1849
  .paused {
3781
1850
  animation-play-state: paused;
3782
1851
  }
@@ -3785,10 +1854,6 @@
3785
1854
  animation-play-state: running;
3786
1855
  }
3787
1856
 
3788
- .group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *) {
3789
- color: var(--accent-foreground);
3790
- }
3791
-
3792
1857
  .group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled="true"] *) {
3793
1858
  pointer-events: none;
3794
1859
  }
@@ -3805,14 +1870,6 @@
3805
1870
  grid-template-columns: repeat(2, minmax(0, 1fr));
3806
1871
  }
3807
1872
 
3808
- .group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *) {
3809
- border-radius: 0;
3810
- }
3811
-
3812
- .group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *) {
3813
- padding-inline: calc(var(--spacing) * 2);
3814
- }
3815
-
3816
1873
  .peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled ~ *) {
3817
1874
  cursor: not-allowed;
3818
1875
  }
@@ -3841,6 +1898,46 @@
3841
1898
  color: var(--muted-foreground);
3842
1899
  }
3843
1900
 
1901
+ .before\:absolute:before {
1902
+ content: var(--tw-content);
1903
+ position: absolute;
1904
+ }
1905
+
1906
+ .before\:top-3:before {
1907
+ content: var(--tw-content);
1908
+ top: calc(var(--spacing) * 3);
1909
+ }
1910
+
1911
+ .before\:-bottom-3:before {
1912
+ content: var(--tw-content);
1913
+ bottom: calc(var(--spacing) * -3);
1914
+ }
1915
+
1916
+ .before\:left-3:before {
1917
+ content: var(--tw-content);
1918
+ left: calc(var(--spacing) * 3);
1919
+ }
1920
+
1921
+ .before\:border-l:before {
1922
+ content: var(--tw-content);
1923
+ border-left-style: var(--tw-border-style);
1924
+ border-left-width: 1px;
1925
+ }
1926
+
1927
+ .before\:border-border:before {
1928
+ content: var(--tw-content);
1929
+ border-color: var(--border);
1930
+ }
1931
+
1932
+ .last\:pb-0:last-child {
1933
+ padding-bottom: 0;
1934
+ }
1935
+
1936
+ .last\:before\:hidden:last-child:before {
1937
+ content: var(--tw-content);
1938
+ display: none;
1939
+ }
1940
+
3844
1941
  @media (hover: hover) {
3845
1942
  .hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover {
3846
1943
  background-color: var(--secondary);
@@ -3852,13 +1949,13 @@
3852
1949
  }
3853
1950
  }
3854
1951
 
3855
- .hover\:bg-destructive\/20:hover {
1952
+ .hover\:bg-destructive\/10:hover {
3856
1953
  background-color: var(--destructive);
3857
1954
  }
3858
1955
 
3859
1956
  @supports (color: color-mix(in lab, red, red)) {
3860
- .hover\:bg-destructive\/20:hover {
3861
- background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
1957
+ .hover\:bg-destructive\/10:hover {
1958
+ background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
3862
1959
  }
3863
1960
  }
3864
1961
 
@@ -3866,13 +1963,13 @@
3866
1963
  background-color: var(--muted);
3867
1964
  }
3868
1965
 
3869
- .hover\:bg-primary\/80:hover {
1966
+ .hover\:bg-primary\/90:hover {
3870
1967
  background-color: var(--primary);
3871
1968
  }
3872
1969
 
3873
1970
  @supports (color: color-mix(in lab, red, red)) {
3874
- .hover\:bg-primary\/80:hover {
3875
- background-color: color-mix(in oklab, var(--primary) 80%, transparent);
1971
+ .hover\:bg-primary\/90:hover {
1972
+ background-color: color-mix(in oklab, var(--primary) 90%, transparent);
3876
1973
  }
3877
1974
  }
3878
1975
 
@@ -3893,10 +1990,6 @@
3893
1990
  }
3894
1991
  }
3895
1992
 
3896
- .focus\:z-10:focus {
3897
- z-index: 10;
3898
- }
3899
-
3900
1993
  .focus\:bg-accent:focus {
3901
1994
  background-color: var(--accent);
3902
1995
  }
@@ -3905,10 +1998,6 @@
3905
1998
  color: var(--accent-foreground);
3906
1999
  }
3907
2000
 
3908
- .focus-visible\:z-10:focus-visible {
3909
- z-index: 10;
3910
- }
3911
-
3912
2001
  .focus-visible\:border-destructive\/40:focus-visible {
3913
2002
  border-color: var(--destructive);
3914
2003
  }
@@ -3923,10 +2012,6 @@
3923
2012
  border-color: var(--ring);
3924
2013
  }
3925
2014
 
3926
- .focus-visible\:text-destructive:focus-visible {
3927
- color: var(--destructive);
3928
- }
3929
-
3930
2015
  .focus-visible\:ring-3:focus-visible, .focus-visible\:ring-\[3px\]:focus-visible {
3931
2016
  --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
3932
2017
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -3979,10 +2064,6 @@
3979
2064
  opacity: .5;
3980
2065
  }
3981
2066
 
3982
- :where([data-slot="button-group"]) .in-data-\[slot\=button-group\]\:rounded-lg {
3983
- border-radius: calc(var(--radius) + 2px);
3984
- }
3985
-
3986
2067
  .has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon="inline-end"]) {
3987
2068
  padding-right: calc(var(--spacing) * 1.5);
3988
2069
  }
@@ -3991,10 +2072,6 @@
3991
2072
  padding-right: calc(var(--spacing) * 2);
3992
2073
  }
3993
2074
 
3994
- .group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon="inline-end"]) {
3995
- padding-right: calc(var(--spacing) * 1.5);
3996
- }
3997
-
3998
2075
  .has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon="inline-start"]) {
3999
2076
  padding-left: calc(var(--spacing) * 1.5);
4000
2077
  }
@@ -4003,10 +2080,6 @@
4003
2080
  padding-left: calc(var(--spacing) * 2);
4004
2081
  }
4005
2082
 
4006
- .group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon="inline-start"]) {
4007
- padding-left: calc(var(--spacing) * 1.5);
4008
- }
4009
-
4010
2083
  .has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot="alert-dialog-media"]) {
4011
2084
  grid-template-rows: auto auto 1fr;
4012
2085
  }
@@ -4019,6 +2092,16 @@
4019
2092
  opacity: .5;
4020
2093
  }
4021
2094
 
2095
+ .aria-expanded\:bg-destructive\/10[aria-expanded="true"] {
2096
+ background-color: var(--destructive);
2097
+ }
2098
+
2099
+ @supports (color: color-mix(in lab, red, red)) {
2100
+ .aria-expanded\:bg-destructive\/10[aria-expanded="true"] {
2101
+ background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
2102
+ }
2103
+ }
2104
+
4022
2105
  .aria-expanded\:bg-muted[aria-expanded="true"] {
4023
2106
  background-color: var(--muted);
4024
2107
  }
@@ -4027,8 +2110,8 @@
4027
2110
  background-color: var(--secondary);
4028
2111
  }
4029
2112
 
4030
- .aria-expanded\:bg-transparent[aria-expanded="true"] {
4031
- background-color: #0000;
2113
+ .aria-expanded\:text-destructive[aria-expanded="true"] {
2114
+ color: var(--destructive);
4032
2115
  }
4033
2116
 
4034
2117
  .aria-expanded\:text-foreground[aria-expanded="true"] {
@@ -4058,14 +2141,6 @@
4058
2141
  }
4059
2142
  }
4060
2143
 
4061
- .aria-pressed\:bg-accent[aria-pressed="true"] {
4062
- background-color: var(--accent);
4063
- }
4064
-
4065
- .aria-pressed\:text-accent-foreground[aria-pressed="true"] {
4066
- color: var(--accent-foreground);
4067
- }
4068
-
4069
2144
  .data-disabled\:pointer-events-none[data-disabled] {
4070
2145
  pointer-events: none;
4071
2146
  }
@@ -4114,42 +2189,18 @@
4114
2189
  padding-block: calc(var(--spacing) * .5);
4115
2190
  }
4116
2191
 
4117
- .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group)[data-orientation="horizontal"] *)[data-spacing="0"]:first-child {
4118
- border-top-left-radius: calc(var(--radius) + 2px);
4119
- border-bottom-left-radius: calc(var(--radius) + 2px);
4120
- }
4121
-
4122
- .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group)[data-orientation="vertical"] *)[data-spacing="0"]:first-child {
4123
- border-top-left-radius: calc(var(--radius) + 2px);
4124
- border-top-right-radius: calc(var(--radius) + 2px);
4125
- }
4126
-
4127
- .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group)[data-orientation="horizontal"] *)[data-spacing="0"]:last-child {
4128
- border-top-right-radius: calc(var(--radius) + 2px);
4129
- border-bottom-right-radius: calc(var(--radius) + 2px);
2192
+ .data-\[state\=checked\]\:border-primary[data-state="checked"] {
2193
+ border-color: var(--primary);
4130
2194
  }
4131
2195
 
4132
- .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group)[data-orientation="vertical"] *)[data-spacing="0"]:last-child {
4133
- border-bottom-right-radius: calc(var(--radius) + 2px);
4134
- border-bottom-left-radius: calc(var(--radius) + 2px);
2196
+ .data-\[state\=checked\]\:bg-primary[data-state="checked"] {
2197
+ background-color: var(--primary);
4135
2198
  }
4136
2199
 
4137
2200
  .data-\[state\=closed\]\:overflow-hidden[data-state="closed"] {
4138
2201
  overflow: hidden;
4139
2202
  }
4140
2203
 
4141
- .data-\[state\=on\]\:border-ring[data-state="on"] {
4142
- border-color: var(--ring);
4143
- }
4144
-
4145
- .data-\[state\=on\]\:bg-accent[data-state="on"] {
4146
- background-color: var(--accent);
4147
- }
4148
-
4149
- .data-\[state\=on\]\:text-accent-foreground[data-state="on"] {
4150
- color: var(--accent-foreground);
4151
- }
4152
-
4153
2204
  .data-\[variant\=destructive\]\:text-destructive[data-variant="destructive"] {
4154
2205
  color: var(--destructive);
4155
2206
  }
@@ -4168,31 +2219,7 @@
4168
2219
  color: var(--destructive);
4169
2220
  }
4170
2221
 
4171
- .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group)[data-orientation="horizontal"] *)[data-spacing="0"][data-variant="outline"] {
4172
- border-left-style: var(--tw-border-style);
4173
- border-left-width: 0;
4174
- }
4175
-
4176
- .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group)[data-orientation="vertical"] *)[data-spacing="0"][data-variant="outline"] {
4177
- border-top-style: var(--tw-border-style);
4178
- border-top-width: 0;
4179
- }
4180
-
4181
- .group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group)[data-orientation="horizontal"] *)[data-spacing="0"][data-variant="outline"]:first-child {
4182
- border-left-style: var(--tw-border-style);
4183
- border-left-width: 1px;
4184
- }
4185
-
4186
- .group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group)[data-orientation="vertical"] *)[data-spacing="0"][data-variant="outline"]:first-child {
4187
- border-top-style: var(--tw-border-style);
4188
- border-top-width: 1px;
4189
- }
4190
-
4191
2222
  @media (min-width: 40rem) {
4192
- .sm\:inline {
4193
- display: inline;
4194
- }
4195
-
4196
2223
  .sm\:grid-cols-2 {
4197
2224
  grid-template-columns: repeat(2, minmax(0, 1fr));
4198
2225
  }
@@ -4241,8 +2268,14 @@
4241
2268
  }
4242
2269
  }
4243
2270
 
4244
- .dark\:border-input:where([data-theme="dark"], [data-theme="dark"] *) {
4245
- border-color: var(--input);
2271
+ .dark\:bg-destructive\/10:where([data-theme="dark"], [data-theme="dark"] *) {
2272
+ background-color: var(--destructive);
2273
+ }
2274
+
2275
+ @supports (color: color-mix(in lab, red, red)) {
2276
+ .dark\:bg-destructive\/10:where([data-theme="dark"], [data-theme="dark"] *) {
2277
+ background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
2278
+ }
4246
2279
  }
4247
2280
 
4248
2281
  .dark\:bg-destructive\/20:where([data-theme="dark"], [data-theme="dark"] *) {
@@ -4266,13 +2299,13 @@
4266
2299
  }
4267
2300
 
4268
2301
  @media (hover: hover) {
4269
- .dark\:hover\:bg-destructive\/30:where([data-theme="dark"], [data-theme="dark"] *):hover {
2302
+ .dark\:hover\:bg-destructive\/20:where([data-theme="dark"], [data-theme="dark"] *):hover {
4270
2303
  background-color: var(--destructive);
4271
2304
  }
4272
2305
 
4273
2306
  @supports (color: color-mix(in lab, red, red)) {
4274
- .dark\:hover\:bg-destructive\/30:where([data-theme="dark"], [data-theme="dark"] *):hover {
4275
- background-color: color-mix(in oklab, var(--destructive) 30%, transparent);
2307
+ .dark\:hover\:bg-destructive\/20:where([data-theme="dark"], [data-theme="dark"] *):hover {
2308
+ background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
4276
2309
  }
4277
2310
  }
4278
2311
 
@@ -4351,14 +2384,6 @@
4351
2384
  animation: enter var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
4352
2385
  }
4353
2386
 
4354
- .data-open\:bg-accent[data-state="open"] {
4355
- background-color: var(--accent);
4356
- }
4357
-
4358
- .data-open\:text-accent-foreground[data-state="open"] {
4359
- color: var(--accent-foreground);
4360
- }
4361
-
4362
2387
  .data-open\:fade-in-0[data-state="open"] {
4363
2388
  --tw-enter-opacity: 0;
4364
2389
  }
@@ -4379,14 +2404,6 @@
4379
2404
  --tw-exit-scale: .95;
4380
2405
  }
4381
2406
 
4382
- .data-vertical\:flex-col[data-orientation="vertical"] {
4383
- flex-direction: column;
4384
- }
4385
-
4386
- .data-vertical\:items-stretch[data-orientation="vertical"] {
4387
- align-items: stretch;
4388
- }
4389
-
4390
2407
  .\[\&_svg\]\:pointer-events-none svg {
4391
2408
  pointer-events: none;
4392
2409
  }
@@ -4480,38 +2497,92 @@
4480
2497
  height: calc(var(--spacing) * 3) !important;
4481
2498
  }
4482
2499
 
4483
- .review-ui :where(button, select, input, textarea, [tabindex]):focus-visible {
2500
+ .review-ui :where(button, select, input, textarea, a[href], [tabindex]):focus-visible {
4484
2501
  outline: 2px solid var(--ring);
4485
2502
  outline-offset: 2px;
4486
2503
  box-shadow: none;
4487
2504
  }
4488
2505
 
4489
- .shell-destinations .segmented-control {
2506
+ .comparison-host .comparison-context-row {
2507
+ border-block: 1px solid var(--border);
2508
+ white-space: normal;
2509
+ border-radius: 0;
2510
+ width: 100%;
2511
+ height: auto;
2512
+ min-height: 44px;
2513
+ padding: 10px 16px;
2514
+ font-size: 12px;
2515
+ display: flex;
2516
+ }
2517
+
2518
+ .comparison-host .comparison-surface :focus-visible {
2519
+ outline: 2px solid var(--ring);
2520
+ outline-offset: -2px;
2521
+ }
2522
+
2523
+ .filter-button[aria-pressed="true"] {
2524
+ background: var(--accent);
2525
+ color: var(--accent-foreground);
2526
+ border-color: var(--border);
2527
+ }
2528
+
2529
+ .filter-button[aria-pressed="true"]:hover {
2530
+ background: var(--accent);
2531
+ }
2532
+
2533
+ @supports (color: color-mix(in lab, red, red)) {
2534
+ .filter-button[aria-pressed="true"]:hover {
2535
+ background: color-mix(in oklab, var(--accent) 80%, var(--card));
2536
+ }
2537
+ }
2538
+
2539
+ #toolbarCount {
2540
+ color: inherit;
2541
+ background: var(--muted);
2542
+ }
2543
+
2544
+ #commentsButton[aria-expanded="true"] #toolbarCount {
2545
+ background: var(--card);
2546
+ }
2547
+
2548
+ .segmented-control {
2549
+ border-radius: var(--radius);
4490
2550
  background: var(--card);
2551
+ width: fit-content;
4491
2552
  max-width: 100%;
4492
2553
  min-height: 32px;
4493
2554
  box-shadow: inset 0 0 0 1px var(--border);
4494
2555
  isolation: isolate;
4495
2556
  border: 0;
4496
- border-radius: 8px;
2557
+ flex-wrap: wrap;
4497
2558
  gap: 0;
4498
2559
  padding: 0;
2560
+ display: flex;
4499
2561
  }
4500
2562
 
4501
- .shell-destinations .segmented-control > button {
2563
+ .segmented-control > button {
4502
2564
  isolation: isolate;
2565
+ border-radius: var(--radius);
4503
2566
  height: auto;
4504
2567
  min-height: 32px;
4505
2568
  box-shadow: none;
4506
2569
  white-space: normal;
4507
2570
  background: none;
4508
2571
  border: 0;
4509
- border-radius: 8px;
4510
2572
  padding: 0 12px;
4511
2573
  position: relative;
4512
2574
  }
4513
2575
 
4514
- .shell-destinations .segmented-control > button:before {
2576
+ .segmented-control > button[data-size="sm"] {
2577
+ min-height: 28px;
2578
+ padding-inline: 8px;
2579
+ }
2580
+
2581
+ .segmented-control:has( > button[data-size="sm"]) {
2582
+ min-height: 28px;
2583
+ }
2584
+
2585
+ .segmented-control > button:before {
4515
2586
  content: "";
4516
2587
  z-index: -1;
4517
2588
  pointer-events: none;
@@ -4520,19 +2591,23 @@
4520
2591
  inset: 3px;
4521
2592
  }
4522
2593
 
4523
- .shell-destinations .segmented-control > button:hover:before {
2594
+ .segmented-control > button:hover, .segmented-control > button[data-state="open"] {
2595
+ background: none;
2596
+ }
2597
+
2598
+ .segmented-control > button:hover:before {
4524
2599
  background: var(--secondary);
4525
2600
  }
4526
2601
 
4527
- .shell-destinations .segmented-control > button[aria-pressed="true"] {
2602
+ .segmented-control > button[aria-pressed="true"] {
4528
2603
  color: var(--accent-foreground);
4529
2604
  }
4530
2605
 
4531
- .shell-destinations .segmented-control > button[aria-pressed="true"]:before {
2606
+ .segmented-control > button[aria-pressed="true"]:before {
4532
2607
  background: var(--accent);
4533
2608
  }
4534
2609
 
4535
- .shell-destinations .segmented-control > button:focus-visible {
2610
+ .segmented-control > button:focus-visible {
4536
2611
  outline: 2px solid var(--ring);
4537
2612
  outline-offset: 2px;
4538
2613
  z-index: 1;
@@ -4735,50 +2810,11 @@
4735
2810
  }
4736
2811
 
4737
2812
  :root, .review-ui {
4738
- --canvas: var(--background);
4739
- --panel: var(--card);
4740
- --card-border: var(--border);
4741
- --hair: var(--border);
4742
- --hair-2: var(--border);
4743
- --dash: var(--border);
4744
- --strong-border: var(--input);
4745
- --txt: var(--foreground);
4746
- --strong-txt: var(--foreground);
4747
- --mute: var(--muted-foreground);
4748
- --mute-2: var(--muted-foreground);
4749
- --faint: var(--muted-foreground);
4750
- --faint-2: var(--muted-foreground);
4751
- --soft: var(--muted);
4752
- --chip: var(--secondary);
4753
- --input-bg: var(--card);
4754
- --focus: var(--ring);
4755
- --danger: var(--destructive);
4756
- --danger-soft: var(--review-removed);
4757
- --amber: var(--annotation-border);
4758
- --green: var(--review-added-foreground);
4759
- --btn-bg: var(--primary);
4760
- --btn-fg: var(--primary-foreground);
4761
- --diff-paper: var(--card);
4762
- --diff-ink: var(--foreground);
4763
- --diff-muted: var(--muted-foreground);
4764
- --diff-line: var(--border);
4765
- --diff-removed: var(--review-removed);
4766
- --diff-added: var(--review-added);
4767
- --diff-delete: var(--review-delete);
4768
- --diff-insert: var(--review-insert);
4769
- --diff-delete-ink: var(--review-removed-foreground);
4770
- --diff-insert-ink: var(--review-added-foreground);
4771
- --diff-gap: var(--muted);
4772
- --diff-accent: var(--review-modified-foreground);
4773
- --focus-ring: 0 0 0 3px var(--ring);
4774
- --review-shadow: 0 8px 24px var(--review-shadow-color), 0 1px 3px var(--review-shadow-color);
4775
- }
4776
-
4777
- .review-ui {
4778
2813
  --radius: .5rem;
4779
2814
  --radius-md: var(--radius);
4780
2815
  --review-control-height: 2rem;
4781
- --review-control-height-touch: 2.5rem;
2816
+ --review-control-height-sm: 1.75rem;
2817
+ --review-control-height-xs: 1.5rem;
4782
2818
  --review-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
4783
2819
  --review-font-mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
4784
2820
  --review-text-xs: .75rem;
@@ -5057,6 +3093,12 @@
5057
3093
  inherits: false
5058
3094
  }
5059
3095
 
3096
+ @property --tw-content {
3097
+ syntax: "*";
3098
+ inherits: false;
3099
+ initial-value: "";
3100
+ }
3101
+
5060
3102
  @keyframes enter {
5061
3103
  from {
5062
3104
  opacity: var(--tw-enter-opacity, 1);
@@ -5072,4 +3114,259 @@
5072
3114
  filter: blur(var(--tw-exit-blur, 0));
5073
3115
  }
5074
3116
  }
3117
+ @layer components {
3118
+ .durable-review { --conversation-top: calc(var(--toolbar-h) + 8px); }
3119
+ .durable-review[data-conversation-docked="true"] .stage { margin-right: 380px; }
3120
+ .durable-review[data-conversation-docked="true"] .conversation-panel { box-shadow: none; }
3121
+ .durable-review .shell-toolbar { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-areas: "destinations status tools"; }
3122
+ .durable-review .shell-status { grid-area: status; justify-self: center; display: flex; align-items: center; }
3123
+ .durable-review .shell-tools { grid-area: tools; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
3124
+ .durable-review .shell-mode { justify-self: end; }
3125
+ .durable-review #reviewPage { max-width: min(14rem, 100%); }
3126
+ .conversation-global-status { grid-column: 1 / -1; min-width: 0; padding: 3px 0; max-height: min(25dvh, 10rem); overflow: auto; overflow-wrap: anywhere; color: var(--foreground); font-size: 12px; }
3127
+ .conversation-panel { --conversation-scrollbar: 0px; --conversation-rail: max(12px, var(--conversation-scrollbar)); position: fixed; inset: var(--toolbar-h) 0 0 auto; width: min(380px, calc(100vw - 32px)); z-index: 75; display: flex; flex-direction: column; min-height: 0; overflow: clip; border-left: 1px solid var(--border); background: var(--card); color: var(--foreground); box-shadow: -12px 0 34px var(--review-shadow-color); font-family: var(--review-font-sans); font-size: 13px; }
3128
+ .conversation-panel.is-adjacent { z-index: 40; border: 1px solid var(--border); border-radius: var(--radius); background: var(--background); box-shadow: var(--shadow-lg); }
3129
+ .conversation-panel.is-adjacent .conversation-inventory { padding: 0; background: var(--card); }
3130
+ .conversation-panel.is-adjacent .conversation-thread { border: 0; background: transparent; }
3131
+ .conversation-panel.is-adjacent .conversation-thread-title { border: 0; padding-left: 0; }
3132
+ .conversation-panel [hidden], .conversation-panel[hidden] { display: none !important; }
3133
+ .conversation-panel-header, .conversation-thread > header, .conversation-comparison > header { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 8px; border-bottom: 1px solid var(--border); }
3134
+ .conversation-comparison h2 { flex: 1; margin: 0; font-size: 16px; }
3135
+ .conversation-panel-header { flex-shrink: 0; padding: 12px var(--conversation-rail); }
3136
+ .conversation-panel-header .segmented-control { margin-right: auto; }
3137
+ .conversation-focus-navigation { flex: 0 0 auto; padding: 4px var(--conversation-rail); }
3138
+ .conversation-panel.is-adjacent .conversation-panel-header { padding: 8px; }
3139
+ .conversation-overview { flex: 0 1 auto; min-height: 0; overflow: auto; }
3140
+ .conversation-status { padding: 6px var(--conversation-rail); display: flex; flex-wrap: wrap; gap: 4px 8px; font-size: 12px; border-bottom: 1px solid var(--border); }
3141
+ .conversation-status span { color: var(--muted-foreground); }
3142
+ .conversation-notice { font-size: 12px; padding: 0 var(--conversation-rail); }
3143
+ .conversation-filters { display: flex; gap: 6px; padding: 6px var(--conversation-rail); flex-wrap: wrap; }
3144
+ .conversation-filter-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
3145
+ .conversation-filter-buttons button, .conversation-panel-header .segmented-control > button { height: var(--review-control-height); min-height: var(--review-control-height); }
3146
+ .conversation-panel-header .segmented-control { min-height: var(--review-control-height); }
3147
+ .conversation-toast-viewport { position: fixed; top: 8px; left: 16px; z-index: var(--review-layer-notice); width: max-content; max-width: calc(100vw - 32px); margin: 0; padding: 0; list-style: none; outline: none; }
3148
+ .conversation-toast { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); color: var(--foreground); box-shadow: var(--shadow-lg); font-size: 13px; overflow-wrap: anywhere; }
3149
+ .conversation-toast > :first-child { min-width: 0; flex: 1; }
3150
+ .conversation-toast:focus-visible, .conversation-toast-viewport:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
3151
+ .conversation-toast > [data-radix-toast-announce-exclude] { margin-left: auto; }
3152
+ .conversation-inventory { flex: 1; min-height: 50px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 12px max(0px, calc(var(--conversation-rail) - var(--conversation-scrollbar))) 18px; scrollbar-gutter: stable both-edges; background: var(--card); }
3153
+ .conversation-comments { display: contents; }
3154
+ .conversation-section-toggle { justify-content: flex-start; margin-bottom: 8px; font-weight: 600; }
3155
+ .conversation-thread { border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 12px; background: var(--card); min-width: 0; }
3156
+ .conversation-thread > header { display: flex; flex-direction: column; flex-wrap: nowrap; padding: 0 0 6px; border: 0; border-bottom: 1px solid var(--border); gap: 4px; align-items: stretch; margin-bottom: 6px; }
3157
+ .conversation-thread-toolbar { display: flex; align-items: center; gap: 6px; min-width: 0; }
3158
+ .conversation-thread-identity { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 0; }
3159
+ .conversation-thread-identity .conversation-source { flex: 0 1 auto; }
3160
+ .conversation-source { min-width: 0; flex: 1; font-size: 12px; line-height: 1.4; color: var(--muted-foreground); }
3161
+ .conversation-target-quote { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
3162
+ .conversation-thread-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
3163
+ .conversation-thread .conversation-activity { flex-shrink: 0; padding: 0; }
3164
+ .conversation-thread { padding: 8px; }
3165
+ .conversation-thread[data-status="resolved"] { background: color-mix(in oklab, var(--muted) 30%, var(--card)); }
3166
+ .conversation-thread[data-expanded="false"] > header { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
3167
+ .conversation-activity > span { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
3168
+ .conversation-pending { font-size: 11px; color: var(--muted-foreground); }
3169
+ .conversation-status-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 20px; width: 20px; height: 20px; vertical-align: middle; border-radius: 4px; color: var(--muted-foreground); }
3170
+ .conversation-status-icon[data-modified="true"] { color: var(--review-modified-foreground); }
3171
+ .conversation-delivery { margin-left: auto; }
3172
+ .conversation-thread .conversation-icon { padding: 0; }
3173
+ .conversation-jump { flex-shrink: 0; gap: 4px; }
3174
+ .conversation-author { display: inline-flex; align-items: center; gap: 6px; color: var(--foreground); font-size: 12px; }
3175
+ .conversation-avatar { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--muted); color: var(--muted-foreground); font-size: 11px; }
3176
+ .conversation-time:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; border-radius: 2px; }
3177
+ .conversation-peers { display: grid; gap: 4px; width: 100%; min-width: 0; font-size: 12px; color: var(--muted-foreground); }
3178
+ .conversation-peers .choice-trigger { width: 100%; }
3179
+ .conversation-target-details { margin-top: 8px; font-size: 11px; color: var(--muted-foreground); }
3180
+ .conversation-target-details summary { cursor: pointer; }
3181
+ .conversation-target-status { width: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 11px; color: var(--muted-foreground); }
3182
+ .is-adjacent .conversation-overview { max-height: 90px; }
3183
+ .conversation-reply { flex: 0 0 auto; padding-top: 4px; }
3184
+ .conversation-thread-content { min-height: 0; }
3185
+ .conversation-transcript { padding: 0; overflow-wrap: anywhere; }
3186
+ .conversation-earlier { color: var(--muted-foreground); margin-bottom: 8px; padding-inline: 0; }
3187
+ .conversation-context-error { color: var(--destructive); font-size: 12px; }
3188
+ .conversation-exchange { padding: 0 0 8px; margin-bottom: 8px; }
3189
+ .conversation-exchange:last-of-type { border-bottom: 0; padding-bottom: 4px; margin-bottom: 0; }
3190
+ .conversation-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; font-size: 11px; color: var(--muted-foreground); }
3191
+ .conversation-panel p { white-space: pre-wrap; overflow-wrap: anywhere; margin: 6px 0; line-height: 1.5; }
3192
+ .conversation-panel .conversation-body { margin: 4px 0 6px; font-size: 13px; }
3193
+ .conversation-thread .conversation-actions { gap: 4px; font-size: 12px; }
3194
+ .conversation-thread [data-reply] { padding-inline: 8px; height: var(--review-control-height-sm); }
3195
+ .conversation-thread .conversation-actions [data-reply] { margin-left: auto; }
3196
+ .conversation-response { margin-top: 14px; }
3197
+ .conversation-composer { padding: 10px 0 0; min-width: 0; display: grid; gap: 8px; background: transparent; }
3198
+ .conversation-thread .conversation-composer { border-top: 1px solid var(--border); }
3199
+ .conversation-thread .conversation-exchange .conversation-composer { border-top: 0; padding-top: 4px; }
3200
+ .conversation-composer textarea { background: var(--card); border-color: var(--input); }
3201
+ .conversation-composer-heading, .conversation-composer-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
3202
+ .conversation-composer-heading > label { font-weight: 600; }
3203
+ .conversation-composer > label:first-child { font-weight: 600; }
3204
+ .conversation-composer-actions > button { flex-shrink: 0; }
3205
+ .conversation-new-target { min-width: 0; }
3206
+ .conversation-panel.is-composing { border: 1px solid var(--border); border-radius: var(--radius); padding: 0; box-shadow: var(--shadow-lg); overflow: clip; }
3207
+ .is-composing .conversation-inventory { flex: none; min-height: 0; padding: 0; overflow: visible; scrollbar-gutter: auto; background: var(--card); }
3208
+ .conversation-new-message { padding: 12px; }
3209
+ .conversation-new-message .compose-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
3210
+ .conversation-new-message .quote { margin: 0 0 10px; font-size: 12px; color: var(--muted-foreground); }
3211
+ .conversation-new-message .conversation-composer { padding: 0; background: transparent; }
3212
+ .conversation-composer textarea { min-height: 56px; height: 72px; max-height: 24dvh; resize: vertical; font-size: 13px; }
3213
+ .conversation-intent { display: flex; align-items: center; gap: 6px; font-size: 12px; }
3214
+ .conversation-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
3215
+ .conversation-actions label, .conversation-edits label { display: inline-flex; align-items: center; gap: 6px; }
3216
+ .conversation-panel footer { flex: 0 0 auto; border-top: 1px solid var(--border); }
3217
+ .conversation-panel .conversation-footer { flex: 0 1 auto; min-height: 0; max-height: min(60dvh, 480px); display: flex; flex-direction: column; background: var(--card); }
3218
+ .conversation-footer-controls { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 4px; padding: 4px var(--conversation-rail); }
3219
+ .conversation-footer-controls > button { padding-inline: 6px; }
3220
+ .conversation-footer-details { min-height: 0; display: flex; flex-direction: column; overflow: auto; }
3221
+ .conversation-footer .conversation-composer { min-height: 0; overflow: auto; padding: 12px var(--conversation-rail); gap: 8px; background: var(--card); }
3222
+ .conversation-footer .conversation-composer textarea { min-height: 40px; height: 56px; max-height: min(18dvh, 120px); }
3223
+ .conversation-footer-support { flex-shrink: 0; min-height: 28px; max-height: 100px; overflow: auto; padding: 0 var(--conversation-rail) 8px; overflow-wrap: anywhere; }
3224
+ .conversation-footer .feedback-actions { flex-shrink: 0; padding-inline: var(--conversation-rail); }
3225
+ .conversation-footer .feedback-help { margin: 0; font-size: 12px; line-height: 1.5; }
3226
+ .conversation-note-content { flex: 0 0 auto; min-height: 0; }
3227
+ .conversation-bottom { padding: 0 8px 8px; justify-content: space-between; }
3228
+ .review-recovery { padding: 6px 10px; border-bottom: 1px solid var(--border); overflow-wrap: anywhere; color: var(--foreground); font-size: 12px; }
3229
+ .review-recovery-message { color: var(--destructive); }
3230
+ .review-recovery[data-tone="warning"] .review-recovery-message { color: var(--foreground); }
3231
+ .review-recovery p { margin-block: 4px; }
3232
+ .review-recovery code { font-size: 11px; }
3233
+ .review-recovery-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding-block: 4px; }
3234
+ .review-recovery-actions > button { max-width: 100%; height: auto; min-height: 28px; white-space: normal; text-align: start; }
3235
+ .conversation-history, .conversation-edits { padding: 8px 0; }
3236
+ .conversation-panel.has-history .conversation-new-message { display: none; }
3237
+ .conversation-capture-warning { font-size: 12px; color: var(--foreground); }
3238
+ .conversation-history h3, .conversation-edits h3 { font-size: 14px; margin: 6px 0; }
3239
+ .conversation-submission { min-width: 0; overflow-wrap: anywhere; }
3240
+ .conversation-submission > summary { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; list-style: none; font-weight: 600; border-radius: var(--radius); }
3241
+ .conversation-submission > summary::-webkit-details-marker { display: none; }
3242
+ .conversation-submission > summary:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
3243
+ .conversation-submission-heading { flex: 1; min-width: 0; }
3244
+ .conversation-submission > summary .conversation-time { display: block; width: fit-content; margin-top: 2px; font-weight: 400; color: var(--muted-foreground); font-size: 11px; }
3245
+ .conversation-submission-chevron { margin-top: 4px; color: var(--muted-foreground); }
3246
+ .conversation-submission[open] > summary .conversation-submission-chevron { transform: rotate(90deg); }
3247
+ .conversation-submission-content { font-size: 12px; }
3248
+ .conversation-abandon { margin-top: 6px; }
3249
+ .conversation-submission h4 { margin: 12px 0 6px; font-size: 13px; }
3250
+ .conversation-result { padding-block: 6px; }
3251
+ .conversation-edits pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; }
3252
+ .has-focus .conversation-inventory { overflow: hidden; display: flex; scrollbar-gutter: auto; padding-inline: var(--conversation-rail); }
3253
+ .has-focus .focused { flex: 1; display: flex; flex-direction: column; min-height: 0; margin: 0; padding-inline: max(8px, calc(var(--thread-scrollbar, 0px) + 4px)); }
3254
+ .has-focus .focused[data-expanded="false"] { flex: 0 0 auto; width: 100%; align-self: flex-start; }
3255
+ .has-focus .focused > header { flex-shrink: 0; }
3256
+ .has-focus .focused .conversation-thread-content { flex: 1; min-height: 0; display: flex; flex-direction: column; }
3257
+ .has-focus .focused .conversation-transcript { flex: 0 1 auto; min-height: 0; padding-inline: 4px; margin-inline: calc(-4px - var(--thread-scrollbar, 0px)); overflow: auto; scrollbar-gutter: stable both-edges; overscroll-behavior: contain; }
3258
+ .has-focus .focused .conversation-composer { flex: 0 0 auto; border-top: 1px solid var(--border); }
3259
+ .conversation-resolution-guard { padding-block: 8px; font-size: 12px; }
3260
+ .is-adjacent .conversation-inventory { min-height: 0; }
3261
+ .conversation-result-peek { padding: 8px; margin: 0 0 8px; }
3262
+ .conversation-result-peek-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
3263
+ .conversation-result-peek-heading h3 { margin: 0; font-size: 14px; }
3264
+ .conversation-result-peek-heading .inventory-meta { margin: 0; }
3265
+ .conversation-result-peek-heading time { font-size: 11px; color: var(--muted-foreground); }
3266
+ .conversation-result-preview { margin: 2px 0 8px; font-size: 13px; line-height: 20px; max-height: 80px; overflow: hidden; overflow-wrap: anywhere; }
3267
+ .conversation-result-preview.is-expanded { max-height: none; overflow: visible; }
3268
+ .conversation-result-peek .conversation-actions span { font-size: 12px; color: var(--muted-foreground); }
3269
+ .conversation-result-replies { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 4px; }
3270
+ .conversation-result-reply-label { display: grid; flex: 1; gap: 2px; min-width: 0; line-height: 1.5; }
3271
+ .conversation-result-reply-excerpt { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
3272
+ .conversation-reply-navigation { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 4px; padding: 6px 8px; border-bottom: 1px solid var(--border); }
3273
+ .conversation-reply-navigation > div { display: flex; align-items: center; gap: 4px; }
3274
+ .conversation-reply-navigation [role="status"] { white-space: nowrap; font-size: 11px; color: var(--muted-foreground); }
3275
+ .conversation-edit-list > li { display: block; padding: 8px 0; }
3276
+ .conversation-edit-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
3277
+ .conversation-edit-heading label { display: flex; align-items: center; gap: 6px; }
3278
+ .conversation-edit-preview { margin: 8px 0; font-size: 13px; }
3279
+ .conversation-edit-preview > div { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 6px; }
3280
+ .conversation-edit-preview dt { color: var(--muted-foreground); }
3281
+ .conversation-edit-preview dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
3282
+ .conversation-edit-details pre { white-space: pre-wrap; overflow-wrap: anywhere; }
3283
+ .conversation-result-note { padding: 12px; margin-bottom: 12px; font-size: 13px; }
3284
+ .conversation-result-note h2 { margin: 6px 0; font-size: 17px; }
3285
+ .conversation-result-note h3 { font-size: 14px; }
3286
+ .conversation-result-body { white-space: pre-wrap; overflow-wrap: anywhere; }
3287
+ .conversation-comparison { position: fixed; inset: var(--toolbar-h) 0 0; z-index: 50; overflow: auto; padding: 12px; scroll-padding-top: var(--comparison-header-height, 0px); background: var(--background); color: var(--foreground); font: 14px/1.55 var(--review-font-sans); }
3288
+ .conversation-comparison-sticky { position: sticky; top: -12px; z-index: 2; background: var(--background); }
3289
+ .conversation-comparison-title { display: flex; align-items: center; gap: 16px; padding-block: 8px; }
3290
+ .conversation-comparison-title h2 { margin: 0; font-size: 17px; }
3291
+ .conversation-comparison > .conversation-result-note { max-width: 72ch; margin-inline: auto; }
3292
+ .conversation-comparison:not(:has(.comparison-surface)) > :not(.conversation-comparison-sticky) { max-width: 72ch; margin-inline: auto; }
3293
+ .conversation-result-note :is(h2, h3, p) { margin-block: 8px; }
3294
+ .conversation-comparison-summary { font-size: 13px; overflow-wrap: anywhere; }
3295
+ .conversation-comparison > header { background: var(--background); }
3296
+ .conversation-comparison-tools { padding: 0; }
3297
+ .conversation-comparison[hidden] { display: none; }
3298
+ .conversation-comparison .changes-toolbar { width: 100%; }
3299
+ .message-markdown { min-width: 0; max-width: 100%; overflow-wrap: anywhere; white-space: normal; line-height: 1.5; }
3300
+ .message-markdown > :first-child { margin-top: 0; }
3301
+ .message-markdown > :last-child { margin-bottom: 0; }
3302
+ .message-markdown p { white-space: pre-wrap; margin: 6px 0; }
3303
+ .message-markdown :is(ul, ol) { margin: 6px 0; padding-left: 22px; }
3304
+ .message-markdown ul { list-style: disc; }
3305
+ .message-markdown ol { list-style: decimal; }
3306
+ .message-markdown li { margin-block: 3px; }
3307
+ .message-markdown h4 { font-size: 1em; font-weight: 600; margin: 10px 0 6px; }
3308
+ .message-markdown blockquote { border-left: 3px solid var(--border); margin: 8px 0; padding-left: 10px; }
3309
+ .message-markdown code { font-family: var(--review-font-mono); font-size: .92em; white-space: pre-wrap; }
3310
+ .message-markdown pre { max-width: 100%; overflow: auto; padding: 8px; background: var(--muted); border-radius: 4px; }
3311
+ .message-markdown pre code { white-space: pre; }
3312
+ .message-markdown a { color: var(--primary); text-decoration: underline; }
3313
+ .message-table { max-width: 100%; overflow: auto; }
3314
+ .message-table table { width: 100%; border-collapse: collapse; }
3315
+ .message-table :is(th, td) { border: 1px solid var(--border); padding: 4px 8px; text-align: left; }
3316
+ @media (max-width: 760px) {
3317
+ .durable-review .shell-toolbar, .durable-review.comparing .shell-toolbar { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-areas: "destinations status ." "tools tools tools"; }
3318
+ .durable-review .shell-tools { justify-content: space-between; flex-wrap: wrap; }
3319
+ }
3320
+ @media (max-width: 640px) {
3321
+ .durable-review .shell-toolbar, .durable-review.comparing .shell-toolbar { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "destinations status" "tools tools"; }
3322
+ }
3323
+ .durable-review[data-conversation-short="true"] .conversation-panel-header { padding-block: 4px; }
3324
+ .durable-review[data-conversation-short="true"] .conversation-composer { padding: 4px 0; gap: 3px; }
3325
+ .durable-review[data-conversation-short="true"] .conversation-composer textarea { min-height: 36px; height: 40px; }
3326
+ .durable-review[data-conversation-short="true"] .conversation-footer { max-height: calc(100dvh - var(--toolbar-h) - 64px); }
3327
+ .durable-review[data-conversation-short="true"] .conversation-footer .conversation-composer { padding: 4px var(--conversation-rail); gap: 3px; }
3328
+ .durable-review[data-conversation-short="true"] .conversation-footer textarea { height: 36px; max-height: 60px; }
3329
+ .durable-review[data-conversation-short="true"] .conversation-footer .feedback-actions { padding-bottom: 6px; }
3330
+ .durable-review[data-conversation-short="true"] .conversation-status { max-height: 50px; overflow: auto; }
3331
+ .durable-review[data-conversation-short="true"] .has-focus .conversation-status { max-height: 32px; }
3332
+ .durable-review[data-conversation-short="true"] .has-focus .focused:has(.conversation-composer) .conversation-thread-content { min-height: auto; }
3333
+ .durable-review[data-conversation-short="true"] .has-focus .focused:has(.conversation-composer) .conversation-transcript { min-height: 48px; flex-basis: 48px; }
3334
+ .durable-review[data-conversation-short="true"] .conversation-panel.has-focus:not(.is-adjacent) .focused .conversation-thread-content { min-height: 0; }
3335
+ .durable-review[data-conversation-short="true"] .conversation-panel.has-reply-navigation .focused .conversation-transcript { min-height: 32px; }
3336
+ .durable-review[data-conversation-short="true"] .has-focus .conversation-target-status { width: auto; flex: 1; }
3337
+ @media (max-width: 480px) and (max-height: 550px) {
3338
+ .durable-review #modeButton { padding-inline: 8px; gap: 4px; }
3339
+ .durable-review #modeButton > svg:first-child { display: none; }
3340
+ .conversation-panel-header { padding-block: 4px; flex-wrap: nowrap; }
3341
+ .conversation-footer .conversation-composer > label:first-child {
3342
+ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
3343
+ }
3344
+ .conversation-thread .conversation-composer > label:first-child {
3345
+ position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
3346
+ }
3347
+ .conversation-thread > header { margin-bottom: 4px; }
3348
+ .conversation-panel .conversation-body { margin-bottom: 4px; }
3349
+ .conversation-panel:not(.has-focus) .conversation-thread:has(.conversation-composer) > header {
3350
+ position: sticky; top: 0; z-index: 1; background: var(--card);
3351
+ }
3352
+ .conversation-overview { display: flex; flex-direction: column; flex-shrink: 0; max-height: 32%; }
3353
+ .conversation-filters { order: -1; padding-block: 4px; gap: 4px; flex-shrink: 0; }
3354
+ .conversation-inventory { padding-block: 8px; }
3355
+ .conversation-section-toggle { height: 24px; margin-bottom: 4px; }
3356
+ .conversation-empty-with-edits { display: none; }
3357
+ .conversation-edits { padding-block: 0; }
3358
+ .conversation-edits h3 { margin-block: 0; }
3359
+ .conversation-edit-list > li { padding-block: 4px; }
3360
+ }
3361
+ }
3362
+ @layer utilities {
3363
+ @media (max-width: 480px) {
3364
+ .durable-review #commentsButton { padding-inline: 8px; gap: 4px; }
3365
+ .durable-review #commentsButton [data-slot="badge"] { padding-inline: 6px; }
3366
+ }
3367
+ @media (max-width: 480px) and (max-height: 550px) {
3368
+ .conversation-filter-buttons button { padding-inline: 6px; }
3369
+ .conversation-panel-header [data-slot="badge"] { padding-inline: 2px; }
3370
+ }
3371
+ }
5075
3372
  /*$vite$:1*/