@erdemtuna/doc-review 0.10.0 → 0.11.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.
package/lib/chrome.css DELETED
@@ -1,652 +0,0 @@
1
- /* Chrome palette. The artifact never sees any of this. */
2
- :root {
3
- --canvas: #eceae4;
4
- --panel: #fbfaf7;
5
- --card: #fff;
6
- --card-border: #e9e7e0;
7
- --hair: #e4e2db;
8
- --hair-2: #eceae4;
9
- --dash: #e0ddd4;
10
- --strong-border: #d9d5c9;
11
- --txt: #26241e;
12
- --strong-txt: #1b1a16;
13
- --mute: #736e63;
14
- --mute-2: #6b6862;
15
- --faint: #b6b2a8;
16
- --faint-2: #a8a49a;
17
- --soft: #f2f0ea;
18
- --chip: #f4f2ec;
19
- --input-bg: #fdfcfa;
20
- --focus: #5a63d8;
21
- --danger: #b23b2e;
22
- --danger-soft: #f6ecea;
23
- --amber: #c99500;
24
- --green: #7d9370;
25
- --btn-bg: #1b1a16;
26
- --btn-fg: #fbfaf7;
27
- --toolbar-h: 48px;
28
- --drawer-w: 380px;
29
- --narrow: 720px;
30
- --overlay: 60;
31
- --focus-ring: 0 0 0 3px rgba(90, 99, 216, .28);
32
- --diff-paper: #fffefa;
33
- --diff-ink: #302f29;
34
- --diff-muted: #696459;
35
- --diff-line: #dedad0;
36
- --diff-removed: #fff2ee;
37
- --diff-added: #eff7ec;
38
- --diff-delete: #f6d3c9;
39
- --diff-insert: #cee8c8;
40
- --diff-delete-ink: #833f31;
41
- --diff-insert-ink: #386132;
42
- --diff-gap: #f7f5ef;
43
- --diff-accent: #426581;
44
- }
45
-
46
- :root[data-theme="dark"] {
47
- --canvas: #171614;
48
- --panel: #1f1e1b;
49
- --card: #262420;
50
- --card-border: #34322d;
51
- --hair: #2f2d29;
52
- --hair-2: #2a2825;
53
- --dash: #3a3833;
54
- --strong-border: #403d37;
55
- --txt: #eae7e0;
56
- --strong-txt: #f4f1ea;
57
- --mute: #9c968a;
58
- --mute-2: #a8a29a;
59
- --faint: #6e6961;
60
- --faint-2: #837d74;
61
- --soft: #2c2a26;
62
- --chip: #2e2c27;
63
- --input-bg: #1c1b18;
64
- --focus: #8d95ff;
65
- --danger: #d9705f;
66
- --danger-soft: #3a2320;
67
- --amber: #d9a520;
68
- --green: #8ea37f;
69
- --btn-bg: #f0ede6;
70
- --btn-fg: #1b1a16;
71
- --diff-paper: #24231f;
72
- --diff-ink: #eae7df;
73
- --diff-muted: #b8b1a5;
74
- --diff-line: #464239;
75
- --diff-removed: #372723;
76
- --diff-added: #263426;
77
- --diff-delete: #61382e;
78
- --diff-insert: #355735;
79
- --diff-delete-ink: #ffb6a5;
80
- --diff-insert-ink: #b1d9a7;
81
- --diff-gap: #2a2823;
82
- --diff-accent: #9bbad2;
83
- }
84
-
85
- * { box-sizing: border-box; }
86
- [hidden] { display: none !important; }
87
- html, body { height: 100%; margin: 0; overflow: hidden; }
88
- body {
89
- background: var(--canvas);
90
- color: var(--txt);
91
- font: 13px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, sans-serif;
92
- -webkit-font-smoothing: antialiased;
93
- }
94
- button, textarea { font: inherit; color: inherit; }
95
- button:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: none; box-shadow: var(--focus-ring); }
96
- .app { display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100dvh; }
97
- .icon { display: block; flex: none; }
98
- .sr-only {
99
- position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
100
- overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
101
- }
102
-
103
- .toolbar {
104
- position: relative;
105
- z-index: 20;
106
- display: grid;
107
- grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
108
- grid-template-areas: "versions controls actions";
109
- grid-template-rows: auto;
110
- align-items: center;
111
- gap: 2px 12px;
112
- padding: 8px 16px;
113
- border-bottom: 1px solid var(--hair);
114
- background: var(--panel);
115
- }
116
- .toolbar-product { grid-area: versions; min-width: 0; }
117
- .toolbar-actions { grid-area: actions; display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
118
- .review-details { position: relative; }
119
- .review-details summary {
120
- display: flex; align-items: center; justify-content: center; gap: 8px;
121
- min-height: 44px; min-width: 44px; padding: 8px 12px;
122
- color: var(--mute-2); border-radius: 8px; cursor: pointer; list-style: none;
123
- }
124
- .review-details summary::-webkit-details-marker { display: none; }
125
- .review-details summary:hover, .review-details[open] summary { background: var(--soft); color: var(--strong-txt); }
126
- .review-details summary:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
127
- .review-details-menu {
128
- position: absolute; top: calc(100% + 8px); right: 0; z-index: 80;
129
- width: min(280px, calc(100vw - 24px)); padding: 8px;
130
- border: 1px solid var(--strong-border); border-radius: 10px; background: var(--panel);
131
- box-shadow: 0 12px 32px #0002;
132
- }
133
- .review-details-menu > p { margin: 8px; font-size: 12px; }
134
- .review-details-menu > button {
135
- display: block; width: 100%; min-height: 44px; padding: 10px 12px; border: 0;
136
- border-radius: 6px; background: transparent; text-align: left; cursor: pointer;
137
- }
138
- .review-details-menu > button:hover { background: var(--soft); }
139
- .execution-notice {
140
- position: absolute; top: 12px; left: 12px; right: 12px; z-index: 94; margin: 0;
141
- padding: 12px 16px; border: 1px solid var(--strong-border); border-radius: 8px;
142
- background: var(--panel); box-shadow: 0 4px 16px #0001; overflow-wrap: anywhere;
143
- }
144
- #documentTrustControls { display: none !important; }
145
- .page-controls {
146
- grid-area: controls;
147
- justify-self: center;
148
- display: flex;
149
- align-items: center;
150
- max-width: 100%;
151
- min-width: 0;
152
- }
153
- .page-controls .mode-control { flex: none; }
154
- .document-trust { grid-area: scripts; flex: none; display: flex; align-items: center; gap: 2px; }
155
- .script-switch {
156
- display: flex; align-items: center; gap: 8px;
157
- height: 44px; padding: 5px 8px;
158
- border: 1px solid transparent; border-radius: 8px; background: transparent;
159
- font-weight: 550; cursor: pointer;
160
- }
161
- .script-switch:hover:not([aria-disabled="true"]) { background: var(--soft); border-color: var(--hair); }
162
- .script-switch:focus-visible, .script-retry:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
163
- .script-switch[aria-disabled="true"] { cursor: wait; }
164
- .script-switch-value { width: 20px; flex: none; text-align: center; color: var(--mute-2); font-size: 11px; font-weight: 400; }
165
- .script-switch-label { white-space: nowrap; }
166
- .script-switch-short-label { display: none; }
167
- .script-switch-track {
168
- position: relative; flex: none; width: 30px; height: 18px;
169
- border: 1px solid var(--mute-2); border-radius: 20px; background: var(--soft);
170
- }
171
- .script-switch-track::after {
172
- content: ""; position: absolute; top: 3px; left: 3px;
173
- width: 10px; height: 10px; border-radius: 50%; background: var(--mute-2);
174
- transition: transform 120ms ease;
175
- }
176
- .script-switch[aria-checked="true"] .script-switch-track { background: var(--btn-bg); border-color: var(--btn-bg); }
177
- .script-switch[aria-checked="true"] .script-switch-track::after { background: var(--btn-fg); transform: translateX(12px); }
178
- .script-help, .script-status, .script-error {
179
- margin: 0; padding: 0; color: var(--mute-2); overflow-wrap: anywhere;
180
- }
181
- .script-status { color: var(--txt); }
182
- .script-error { color: var(--danger); }
183
- .script-retry { flex: none; height: 24px; padding: 0; border: 0; background: transparent; text-decoration: underline; cursor: pointer; font-size: 11px; }
184
- .script-details { flex: none; }
185
- .script-details summary {
186
- display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%;
187
- cursor: pointer; color: var(--mute-2); font-size: 12px; list-style: none;
188
- }
189
- .script-details summary::-webkit-details-marker { display: none; }
190
- .script-details summary:hover { background: var(--soft); }
191
- .script-details summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
192
- .script-details-body {
193
- position: absolute; right: 8px; top: calc(100% + 4px); width: min(380px, calc(100vw - 16px));
194
- max-height: min(300px, 50vh); overflow: auto; padding: 12px 16px;
195
- border: 1px solid var(--strong-border); border-radius: 8px; background: var(--panel);
196
- box-shadow: 0 8px 24px #0002; color: var(--txt); font-size: 12px; line-height: 1.5;
197
- }
198
- .script-details-body p { margin: 0 0 8px; overflow-wrap: anywhere; }
199
- .script-details-body p:last-child { margin-bottom: 0; }
200
- @media (prefers-reduced-motion: reduce) {
201
- .script-switch-track::after { transition: none; }
202
- }
203
- .toolbar-btn {
204
- min-height: 44px;
205
- min-width: 44px;
206
- display: inline-flex;
207
- align-items: center;
208
- justify-content: center;
209
- gap: 7px;
210
- padding: 6px 10px;
211
- border: 1px solid transparent;
212
- border-radius: 8px;
213
- background: transparent;
214
- color: var(--mute-2);
215
- font-weight: 550;
216
- cursor: pointer;
217
- }
218
- .toolbar-btn:hover, .toolbar-btn[aria-expanded="true"] { border-color: var(--hair); background: var(--soft); color: var(--strong-txt); }
219
- .toolbar-btn:disabled { opacity: .55; cursor: wait; }
220
- #modeButton:disabled { opacity: 1; }
221
- .count-badge {
222
- min-width: 19px; height: 19px; display: inline-flex; align-items: center; justify-content: center;
223
- padding: 0 5px; border-radius: 999px; background: var(--chip); color: var(--mute-2); font-size: 11px;
224
- }
225
- .mode-control { position: relative; justify-self: center; }
226
- .mode-menu {
227
- position: absolute;
228
- top: calc(100% + 6px);
229
- left: 50%;
230
- transform: translateX(-50%);
231
- z-index: 80;
232
- width: 250px;
233
- padding: 6px;
234
- border: 1px solid var(--strong-border);
235
- border-radius: 10px;
236
- background: var(--panel);
237
- box-shadow: 0 14px 38px rgba(27, 26, 22, .18);
238
- }
239
- .mode-menu button {
240
- width: 100%;
241
- display: grid;
242
- grid-template-columns: 24px minmax(0, 1fr) 18px;
243
- align-items: center;
244
- gap: 8px;
245
- padding: 9px;
246
- border: 0;
247
- border-radius: 7px;
248
- background: transparent;
249
- text-align: left;
250
- cursor: pointer;
251
- }
252
- .mode-menu button:hover, .mode-menu button:focus-visible { background: var(--soft); }
253
- .mode-menu strong, .mode-menu small { display: block; }
254
- .mode-menu small { color: var(--mute); font-size: 11px; font-weight: 400; }
255
-
256
- .stage { min-width: 0; min-height: 0; background: var(--canvas); }
257
- .stage { position: relative; }
258
- .history-toggle { display: flex; width: fit-content; gap: 2px; padding: 3px; border: 1px solid var(--hair); border-radius: 11px; background: var(--soft); }
259
- .history-toggle .toolbar-btn { padding-inline: 14px; white-space: nowrap; }
260
- .history-toggle [aria-pressed="true"] { background: var(--card); border-color: var(--strong-border); color: var(--strong-txt); box-shadow: 0 1px 3px #0001; }
261
- .history-panel { position: absolute; inset: 0; z-index: 1; height: 100%; overflow: auto; padding: 18px clamp(12px, 2vw, 28px) 28px; background: var(--panel); scrollbar-gutter: stable; }
262
- .history-head, .history-controls, .history-navigation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
263
- .history-head h1 { margin: 0; font-size: 20px; letter-spacing: -.5px; }
264
- .history-head h1 .section { margin-left: 10px; vertical-align: middle; letter-spacing: .04em; }
265
- .history-summary { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; margin: 8px 0 14px; color: var(--mute-2); font-size: 12px; }
266
- .history-summary > p { margin: 0; overflow-wrap: anywhere; }
267
- .history-summary > :empty { display: none; }
268
- .history-panel label { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
269
- .history-panel select { max-width: 100%; min-width: 0; min-height: 44px; padding: 8px 10px; border: 1px solid var(--strong-border); border-radius: 7px; background: var(--card); color: var(--txt); font: inherit; text-overflow: ellipsis; }
270
- .history-panel select:focus-visible { outline: 2px solid var(--focus); }
271
- .history-controls { justify-content: flex-start; margin: 0; gap: 8px 16px; }
272
- .history-controls > label { flex-wrap: nowrap; color: var(--mute-2); font-size: 12px; }
273
- .history-round-label select { max-width: min(280px, 65vw); }
274
- #historyTargetLabel { flex: 1 1 200px; }
275
- #historyTarget { width: 100%; }
276
- #comparisonModes { display: flex; flex-wrap: wrap; gap: 2px; padding: 3px; border: 1px solid var(--hair); border-radius: 9px; }
277
- #comparisonModes:empty { display: none; }
278
- .history-controls button { min-height: 44px; min-width: 44px; }
279
- .history-controls [aria-pressed="true"] { background: var(--soft); color: var(--strong-txt); }
280
- .history-controls button:disabled { opacity: .55; cursor: default; }
281
- .history-counts { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; color: var(--mute-2); }
282
- .history-timing { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 14px 0; }
283
- .history-timing > div { min-width: 0; }
284
- .history-timing dt { font-size: 11px; text-transform: uppercase; color: var(--mute-2); letter-spacing: .04em; }
285
- .history-timing dd { margin: 2px 0 0; font-weight: 550; overflow-wrap: anywhere; }
286
- .history-context { color: var(--mute-2); overflow-wrap: anywhere; }
287
- .history-context p { margin: 6px 0; }
288
- .history-diagnostics { font-size: 12px; color: var(--mute-2); margin: 12px 0 0; }
289
- .history-diagnostics summary { cursor: pointer; min-height: 44px; padding-block: 12px; width: fit-content; }
290
- .history-diagnostics > p { max-width: 90ch; }
291
- .history-diagnostics > button { min-height: 44px; }
292
- .change-detail { border: 1px solid var(--diff-line); border-radius: 0 0 8px 8px; background: var(--card); overflow-wrap: anywhere; }
293
- .change-detail:empty { display: none; }
294
- .comparison-header { position: sticky; top: 0; z-index: 4; background: var(--panel); }
295
- .history-navigation { background: var(--panel); justify-content: flex-start; margin: 0; padding: 0 0 8px; gap: 8px; font-size: 12px; }
296
- .history-navigation button { min-height: 44px; min-width: 44px; }
297
- .history-navigation .change-jump-label { flex: 1; justify-content: flex-end; }
298
- .change-jump-label select { max-width: min(420px, 100%); }
299
- .comparison-headings, .comparison-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
300
- .comparison-headings { background: var(--soft); border: 1px solid var(--diff-line); border-radius: 8px 8px 0 0; color: var(--diff-muted); font-size: 12px; font-weight: 600; }
301
- .comparison-headings > div { padding: 12px 18px; }
302
- .comparison-headings > div + div, .comparison-after { border-left: 1px solid var(--diff-line); }
303
- .comparison-row + .comparison-row { border-top: 1px solid var(--hair-2); }
304
- .comparison-cell { display: flex; min-width: 0; padding: 16px 20px 16px 0; }
305
- .comparison-cell-body { flex: 1; min-width: 0; }
306
- .comparison-gutter { flex: 0 0 32px; padding-top: 2px; text-align: center; font: 12px/1.6 ui-monospace, monospace; color: var(--diff-muted); user-select: none; }
307
- .comparison-block { min-width: 0; font: 15px/1.7 system-ui, sans-serif; color: var(--diff-ink); }
308
- .comparison-block :is(p, h1, h2, h3, h4, h5, h6, pre, ul, ol, figure, blockquote) { margin: 0; }
309
- .comparison-block h1 { font-size: 25px; line-height: 1.3; letter-spacing: -.5px; }
310
- .comparison-block h2 { font-size: 21px; line-height: 1.4; letter-spacing: -.3px; }
311
- .comparison-block h3 { font-size: 18px; line-height: 1.4; }
312
- .comparison-block :is(h4, h5, h6) { font-size: 16px; line-height: 1.5; }
313
- .comparison-block pre { white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.7 ui-monospace, monospace; tab-size: 4; }
314
- .comparison-block blockquote { padding-left: 12px; border-left: 3px solid var(--strong-border); color: var(--diff-muted); }
315
- .comparison-block :is(code, kbd, samp) { font-family: ui-monospace, monospace; font-size: .9em; background: var(--soft); border-radius: 3px; padding: 1px 3px; }
316
- .comparison-removed { background: var(--diff-removed); }
317
- .comparison-added { background: var(--diff-added); }
318
- .comparison-gap { background: repeating-linear-gradient(135deg, var(--diff-paper) 0, var(--diff-paper) 5px, var(--diff-gap) 5px, var(--diff-gap) 7px); }
319
- .comparison-surface { background: var(--diff-paper); color: var(--diff-ink); }
320
- .comparison-surface del { background: var(--diff-delete); text-decoration: line-through; text-decoration-color: var(--diff-delete-ink); border-radius: 2px; }
321
- .comparison-surface ins { background: var(--diff-insert); text-decoration: underline; text-decoration-thickness: 2px; text-decoration-color: var(--diff-insert-ink); text-underline-offset: 3px; border-radius: 2px; }
322
- .comparison-current > .comparison-before { box-shadow: inset 3px 0 var(--diff-accent); }
323
- .comparison-mobile-label { display: none; }
324
- .comparison-change-label { display: block; color: var(--diff-muted); font-size: 11px; margin-bottom: 6px; }
325
- .comparison-expand { display: block; width: 100%; min-height: 44px; padding: 10px 16px; border: 0; border-block: 1px solid var(--diff-line); background: var(--soft); color: var(--diff-muted); cursor: pointer; text-align: center; font: 12px/1.5 system-ui, sans-serif; }
326
- .comparison-expand:hover { background: var(--chip); color: var(--strong-txt); }
327
- .comparison-surface :focus-visible, .history-panel summary:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
328
- .comparison-notice, .comparison-budget { padding: 14px 18px; margin: 0; font-size: 12px; color: var(--diff-muted); }
329
- .comparison-budget { color: var(--danger); }
330
- .comparison-block .metadata-note, .comparison-block .structure-note, .comparison-block .newline-note { display: block; margin-top: 5px; font: 12px/1.5 system-ui, sans-serif; color: var(--diff-muted); overflow-wrap: anywhere; }
331
- .saved-link { color: var(--diff-accent); text-decoration: underline; text-decoration-style: dotted; }
332
- .saved-image { padding: 12px; border: 1px dashed var(--diff-muted); border-radius: 5px; background: var(--diff-gap); }
333
- .saved-image small { display: block; color: var(--diff-muted); font-size: 12px; }
334
- .saved-list { padding-inline-start: 22px; }
335
- .saved-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
336
- .saved-table :is(th, td) { padding: 7px 10px; border: 1px solid var(--diff-line); text-align: left; vertical-align: top; }
337
- .saved-table th { background: var(--soft); }
338
- .saved-table .comparison-block { font-size: 13px; }
339
- .comparison-source .comparison-cell { padding-block: 0; padding-right: 8px; }
340
- .comparison-source .comparison-change-label { display: none; }
341
- .comparison-source .comparison-gutter { flex-basis: 60px; text-align: right; padding: 0 12px 0 4px; white-space: pre; }
342
- .comparison-source .comparison-block pre { line-height: 22px; min-height: 22px; }
343
- .comparison-source .comparison-block .newline-note { margin: 0; padding: 3px 0; }
344
- .capture-warning, .reload-notice { padding: 12px; border: 1px solid var(--strong-border); border-radius: 8px; background: var(--panel); overflow-wrap: anywhere; }
345
- .capture-warning p, .reload-notice p { margin: 0 0 8px; }
346
- .reload-notice { position: absolute; top: 8px; left: 8px; right: 8px; z-index: 95; box-shadow: 0 6px 24px #0002; }
347
- body.comparing :is(#compose, #alignedCard, .page-controls, #commentsButton, #reviewDetails, #executionStatus, #reloadNotice) { display: none !important; }
348
- body.comparing #frame { pointer-events: none; }
349
- @media (max-width: 600px) {
350
- .toolbar {
351
- grid-template-columns: minmax(0, 1fr) auto;
352
- grid-template-areas: "versions versions" "controls actions";
353
- grid-template-rows: auto auto; gap: 4px 6px; padding: 8px 10px;
354
- }
355
- .page-controls { justify-self: start; }
356
- .mode-menu { left: 0; transform: none; width: min(250px, calc(100vw - 24px)); }
357
- body.comparing .toolbar { grid-template-areas: "versions versions"; grid-template-rows: auto; }
358
- }
359
- @media (max-width: 540px) {
360
- .history-panel { padding: 12px 8px; }
361
- .history-head { align-items: flex-start; }
362
- }
363
- @media (max-width: 700px) {
364
- .comparison-headings { display: none; }
365
- .change-detail { border-radius: 8px; }
366
- .comparison-row { grid-template-columns: minmax(0, 1fr); border-bottom: 1px solid var(--diff-line); }
367
- .comparison-after { border-left: 0; border-top: 1px solid var(--diff-line); }
368
- .comparison-gap { display: none; }
369
- .comparison-unchanged > .comparison-after { display: none; }
370
- .comparison-cell { padding-right: 10px; }
371
- .comparison-mobile-label { display: block; color: var(--diff-muted); font: 600 12px/1.6 system-ui, sans-serif; margin-bottom: 8px; }
372
- .comparison-change-label { display: none; }
373
- .comparison-current > .comparison-after { box-shadow: inset 3px 0 var(--diff-accent); }
374
- .comparison-block { font-size: 14px; }
375
- .comparison-source .comparison-gutter { flex-basis: 48px; }
376
- .history-navigation { flex-wrap: nowrap; }
377
- .history-navigation .change-jump-label { flex: 1; }
378
- .change-jump-label > span { display: none; }
379
- .change-jump-label select { max-width: 100%; width: 100%; }
380
- .history-navigation button { font-size: 0; width: 44px; flex: 0 0 44px; padding: 4px; }
381
- .history-navigation button::before { font-size: 18px; }
382
- #previousChange::before { content: "←"; }
383
- #nextChange::before { content: "→"; }
384
- #changePosition { white-space: nowrap; }
385
- }
386
- #frame { width: 100%; height: 100%; border: 0; display: block; background: #fff; }
387
- #frame[data-replacing] { opacity: 0; pointer-events: none; }
388
- #previousFrame { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }
389
-
390
- .icon-btn {
391
- width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center;
392
- padding: 0; border: 1px solid var(--hair); border-radius: 7px; background: var(--soft);
393
- color: var(--mute-2); cursor: pointer;
394
- }
395
- .icon-btn:hover { border-color: var(--strong-border); color: var(--strong-txt); }
396
-
397
- .contextual-compose {
398
- position: fixed;
399
- z-index: 90;
400
- width: min(340px, calc(100vw - 24px));
401
- padding: 14px;
402
- border: 1px solid var(--strong-border);
403
- border-radius: 10px;
404
- background: var(--card);
405
- box-shadow: 0 16px 44px rgba(27, 26, 22, .24);
406
- max-height: calc(100dvh - var(--toolbar-h) - 12px);
407
- overflow-y: auto;
408
- animation: rise 130ms ease-out;
409
- }
410
- .contextual-compose.sheet {
411
- left: 0 !important;
412
- right: 0;
413
- bottom: 0;
414
- top: auto !important;
415
- width: 100%;
416
- max-height: min(70dvh, 420px);
417
- border-radius: 14px 14px 0 0;
418
- padding-bottom: max(14px, env(safe-area-inset-bottom));
419
- }
420
- .contextual-compose.edge-top, .contextual-compose.edge-bottom { border-color: var(--focus); }
421
- .contextual-compose.pass-through { pointer-events: none; opacity: .92; }
422
- .compose-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
423
- .compose-head > div { display: flex; align-items: center; gap: 8px; }
424
- .compose-head strong { font-size: 13px; }
425
- .chip {
426
- padding: 2px 8px; border-radius: 999px; background: var(--chip); color: var(--mute);
427
- font-size: 10px; font-weight: 600;
428
- }
429
- .compose-direction {
430
- display: flex; align-items: center; justify-content: space-between; gap: 10px;
431
- margin: -2px 0 9px; padding: 7px 9px; border-radius: 6px; background: var(--soft);
432
- color: var(--mute-2); font-size: 11.5px;
433
- }
434
- .link-action {
435
- flex: none; padding: 0; border: 0; background: none; color: var(--focus);
436
- font: inherit; font-weight: 600; cursor: pointer;
437
- }
438
- .compose-help {
439
- display: flex; justify-content: space-between; gap: 10px; margin: 5px 1px 0;
440
- color: var(--faint-2); font-size: 10.5px;
441
- }
442
- .quote {
443
- margin: 0 0 10px; padding-left: 9px; border-left: 2px solid rgba(245, 196, 0, .7);
444
- color: var(--mute); font-size: 12px; font-style: italic; line-height: 1.45;
445
- white-space: normal; overflow-wrap: anywhere;
446
- }
447
- .contextual-compose textarea, .send-section textarea {
448
- width: 100%; padding: 8px 10px; border: 1px solid var(--hair); border-radius: 6px;
449
- background: var(--input-bg); font-size: 13px; line-height: 1.5; resize: vertical; outline: none;
450
- }
451
- .contextual-compose textarea:focus, .send-section textarea:focus { border-color: var(--focus); background: var(--card); }
452
- .compose-actions { margin-top: 9px; display: flex; align-items: center; gap: 8px; }
453
- .compose-error { margin: 8px 0 0; color: var(--danger); font-size: 11.5px; }
454
- .btn-primary, .btn-ghost {
455
- min-height: 32px; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
456
- padding: 6px 11px; border-radius: 6px; font-size: 12px; font-weight: 500; cursor: pointer;
457
- }
458
- .btn-primary { border: 1px solid var(--btn-bg); background: var(--btn-bg); color: var(--btn-fg); }
459
- .btn-primary:disabled { opacity: .55; cursor: wait; }
460
- .btn-ghost { border: 0; background: transparent; color: var(--mute); }
461
- .btn-ghost:hover { background: var(--soft); color: var(--strong-txt); }
462
-
463
- .aligned-card {
464
- position: fixed;
465
- z-index: 55;
466
- width: 300px;
467
- max-height: min(280px, calc(100dvh - var(--toolbar-h) - 24px));
468
- overflow: auto;
469
- padding: 13px 14px;
470
- border: 1px solid var(--strong-border);
471
- border-radius: 9px;
472
- background: var(--card);
473
- box-shadow: 0 10px 30px rgba(27, 26, 22, .2);
474
- }
475
-
476
- .drawer {
477
- position: fixed;
478
- z-index: 75;
479
- top: var(--toolbar-h);
480
- right: 0;
481
- bottom: 0;
482
- width: min(var(--drawer-w), calc(100vw - 32px));
483
- display: grid;
484
- grid-template-rows: auto minmax(0, 1fr) minmax(0, auto);
485
- border-left: 1px solid var(--hair);
486
- background: var(--panel);
487
- box-shadow: -12px 0 34px rgba(27, 26, 22, .16);
488
- transform: translateX(102%);
489
- visibility: hidden;
490
- transition: transform 160ms ease-out, visibility 0s linear 160ms;
491
- }
492
- .drawer.open { transform: none; visibility: visible; transition-delay: 0s; }
493
- .drawer-head {
494
- display: flex; align-items: center; gap: 7px; padding: 12px;
495
- border-bottom: 1px solid var(--hair);
496
- }
497
- .drawer-head > div { flex: 1; min-width: 0; }
498
- .drawer-head h2 { margin: 1px 0 0; font-size: 17px; color: var(--strong-txt); }
499
- .drawer-inventory { min-width: 0; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 14px 12px 18px; }
500
- .drawer-backdrop {
501
- position: fixed; z-index: 70; inset: var(--toolbar-h) 0 0; background: rgba(20, 19, 17, .2);
502
- }
503
- .rail-head { display: flex; align-items: baseline; gap: 7px; padding: 0 4px 9px; }
504
- .rail-head.tight { padding-top: 0; }
505
- .section { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--mute); }
506
- .dim { color: var(--faint); font-size: 11px; }
507
- .link-btn { margin-left: auto; border: 0; padding: 0; background: none; color: var(--faint-2); font-size: 11px; cursor: pointer; }
508
- .link-btn:hover { color: var(--strong-txt); }
509
- .danger-hover:hover { color: var(--danger); }
510
-
511
- .cards { display: flex; flex-direction: column; gap: 8px; }
512
- .comment, .aligned-card {
513
- color: var(--txt);
514
- }
515
- .comment {
516
- position: relative;
517
- padding: 13px 14px; border: 1px solid var(--card-border); border-radius: 8px; background: var(--card);
518
- box-shadow: inset 2px 0 0 transparent; cursor: pointer;
519
- }
520
- .comment.active { box-shadow: inset 2px 0 0 #e0a800; }
521
- .comment-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
522
- .comment-head .who { margin-right: auto; }
523
- .who { color: var(--mute-2); font-size: 11px; font-weight: 500; }
524
- .who .sep { color: var(--faint); margin: 0 4px; }
525
- .who .when { color: var(--faint-2); }
526
- .jump {
527
- margin-left: auto; border: 0; padding: 0; background: none; color: var(--faint-2);
528
- font-size: 11px; white-space: nowrap; cursor: pointer;
529
- }
530
- .jump:hover { color: var(--strong-txt); }
531
- .edit-comment { margin-left: 0; }
532
- .remove { margin-left: 0; border: 0; background: transparent; color: var(--faint); cursor: pointer; border-radius: 4px; padding: 3px; }
533
- .remove:hover { background: var(--danger-soft); color: var(--danger); }
534
- .comment .quote, .aligned-card .quote { margin-bottom: 8px; }
535
- .comment .body, .aligned-card .body { margin: 0; font-size: 13px; line-height: 1.5; cursor: text; border-radius: 4px; white-space: pre-wrap; }
536
- .comment .body:hover { background: var(--input-bg); box-shadow: 0 0 0 4px var(--input-bg); }
537
- .card-action {
538
- display: inline-flex; align-items: center; gap: 4px; flex: none;
539
- border: 0; padding: 3px 4px; border-radius: 4px; background: transparent;
540
- color: var(--faint-2); font: inherit; font-size: 11px; cursor: pointer; white-space: nowrap;
541
- }
542
- .card-action:hover, .card-action:focus-visible { background: var(--soft); color: var(--strong-txt); }
543
- .more-trigger[aria-expanded="true"] { background: var(--soft); color: var(--strong-txt); }
544
- .comment-menu {
545
- position: absolute; z-index: 3; top: 38px; right: 12px; min-width: 132px; padding: 4px;
546
- border: 1px solid var(--strong-border); border-radius: 7px; background: var(--card);
547
- box-shadow: 0 8px 24px rgba(27, 26, 22, .2);
548
- }
549
- .aligned-card .comment-menu { top: 38px; right: 12px; }
550
- .comment-menu-item {
551
- width: 100%; display: flex; align-items: center; gap: 7px; padding: 7px 8px;
552
- border: 0; border-radius: 5px; background: transparent; color: var(--danger);
553
- font: inherit; font-size: 12px; text-align: left; cursor: pointer;
554
- }
555
- .comment-menu-item:hover, .comment-menu-item:focus-visible { background: var(--danger-soft); outline: none; }
556
- .body-edit {
557
- width: 100%; padding: 6px 8px; border: 1px solid var(--focus); border-radius: 6px;
558
- background: var(--card); color: var(--txt); font-size: 13px; line-height: 1.5; resize: vertical; outline: none;
559
- }
560
- .body-edit[readonly] { opacity: .75; }
561
- .edit-help { margin: 5px 0 0; color: var(--faint-2); font-size: 10.5px; }
562
- .comment-edit-actions, .delete-actions { display: flex; align-items: center; gap: 7px; margin-top: 8px; }
563
- .comment-validation { margin: 6px 0 0; color: var(--danger); font-size: 11.5px; }
564
- .delete-prompt { margin: 2px 0 0; font-size: 13px; font-weight: 600; }
565
- .btn-danger {
566
- min-height: 32px; padding: 6px 11px; border: 1px solid var(--danger); border-radius: 6px;
567
- background: var(--danger); color: #fff; font-size: 12px; font-weight: 500; cursor: pointer;
568
- }
569
- .btn-danger:disabled, .comment-edit-actions button:disabled, .delete-actions button:disabled { opacity: .55; cursor: wait; }
570
- .badge {
571
- display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px;
572
- background: var(--chip); color: var(--faint-2); font-size: 10px; font-weight: 600;
573
- }
574
- .badge.correction { background: var(--danger-soft); color: var(--danger); }
575
- .empty {
576
- padding: 16px 14px; border: 1px dashed var(--dash); border-radius: 8px; color: var(--faint);
577
- font-size: 11.5px; line-height: 1.5; text-align: center;
578
- }
579
-
580
- #othersBox, #editsBox { margin-top: 20px; }
581
- .save-line { display: flex; align-items: center; gap: 7px; padding: 0 4px 9px; color: var(--faint-2); font-size: 11px; }
582
- .save-line.failed { color: var(--danger); }
583
- .save-line.dynamic { color: var(--mute); }
584
- .dot { width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--green); }
585
- .save-line.saving .dot, .save-line.dynamic .dot, .dot.amber { background: var(--amber); }
586
- .save-line.failed .dot { background: var(--danger); }
587
- .edit-list { border: 1px solid var(--card-border); border-radius: 8px; background: var(--card); overflow: hidden; }
588
- .edit-row { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border-top: 1px solid var(--hair-2); }
589
- .edit-row:first-child { border-top: 0; }
590
- .edit-row .pip { width: 5px; height: 5px; flex: none; border-radius: 50%; background: var(--amber); }
591
- .edit-row.deleted .pip { background: var(--danger); }
592
- .edit-row .label { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
593
- .edit-row .kind { margin-left: auto; color: var(--faint-2); font-size: 11px; white-space: nowrap; }
594
- .edit-more {
595
- width: 100%; padding: 8px 12px; border: 0; border-top: 1px solid var(--hair-2);
596
- background: transparent; color: var(--faint-2); font-size: 11.5px; text-align: left; cursor: pointer;
597
- }
598
- .edit-more:hover, .other-row:hover { background: var(--soft); color: var(--strong-txt); }
599
- .other-row { width: 100%; border: 0; background: transparent; text-align: left; cursor: pointer; color: inherit; }
600
- .drawer-footer {
601
- min-width: 0; min-height: 0; max-height: min(55dvh, 430px);
602
- display: grid; grid-template-rows: auto minmax(44px, 1fr);
603
- border-top: 1px solid var(--hair); background: var(--panel);
604
- }
605
- .send-primary { flex: none; padding: 12px 12px 10px; }
606
- .send-secondary { min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 0 12px 12px; }
607
- .send-section textarea { min-height: 64px; max-height: min(24vh, 160px); margin-bottom: 9px; overflow-y: auto; }
608
- .send {
609
- width: 100%; min-height: 40px; padding: 9px 12px; display: flex; align-items: center; justify-content: center; gap: 8px;
610
- border: 1px solid var(--btn-bg); border-radius: 6px; background: var(--btn-bg); color: var(--btn-fg);
611
- font-size: 12.5px; font-weight: 500; cursor: pointer;
612
- }
613
- .send:disabled { border-color: var(--hair); background: var(--soft); color: var(--faint); cursor: default; }
614
- .agent-line { margin: 10px 2px 2px; display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--faint); font-size: 11px; }
615
- .handoff { padding: 11px 12px; border: 1px solid var(--strong-border); border-radius: 8px; background: var(--card); }
616
- .handoff-title { margin: 0 0 4px; font-size: 12px; font-weight: 600; }
617
- .handoff-body { margin: 0 0 8px; color: var(--mute); font-size: 11.5px; }
618
- .handoff-cmd { margin-bottom: 8px; padding: 8px 9px; border-radius: 6px; background: var(--input-bg); border: 1px solid var(--hair); overflow-x: auto; }
619
- .handoff-cmd code { font: 11.5px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: pre-wrap; word-break: break-word; }
620
- .end-review {
621
- margin-top: 9px; width: 100%; padding: 6px; background: none; border: none; color: var(--faint-2);
622
- font-size: 12px; cursor: pointer; border-radius: 6px;
623
- }
624
- .end-review:hover { color: var(--danger); background: var(--danger-soft); }
625
- .ended {
626
- position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; align-items: center;
627
- justify-content: center; gap: 4px; background: var(--panel); color: var(--txt);
628
- }
629
- .ended h2 { margin: 0; font-size: 17px; color: var(--strong-txt); }
630
- .ended p { margin: 0; font-size: 13px; color: var(--mute-2); }
631
- .toast {
632
- position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 110;
633
- padding: 8px 14px; border-radius: 8px; background: var(--btn-bg); color: var(--btn-fg);
634
- font-size: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.18); animation: rise 140ms ease-out;
635
- }
636
- @keyframes rise { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
637
-
638
- @media (max-width: 720px) {
639
- .toolbar { padding-inline: 7px; }
640
- .toolbar-btn { width: 36px; padding: 6px; position: relative; }
641
- .history-toggle .toolbar-btn { width: auto; padding-inline: 7px; }
642
- #modeButton { width: auto; padding-inline: 9px; }
643
- .toolbar-label { display: none; }
644
- .count-badge { position: absolute; top: -3px; right: -3px; min-width: 17px; height: 17px; padding: 0 4px; font-size: 10px; border: 2px solid var(--panel); }
645
- .drawer { top: var(--toolbar-h); width: 100%; border-left: 0; }
646
- .drawer-backdrop { display: none !important; }
647
- .aligned-card { display: none !important; }
648
- }
649
-
650
- @media (prefers-reduced-motion: reduce) {
651
- *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
652
- }