dsh-synapse 0.4.0 → 0.4.2

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/styles.css CHANGED
@@ -27,7 +27,8 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
27
27
  .view-switch button.active { background: #111827; color: #fff; }
28
28
  .view-switch button:focus-visible { outline: 2px solid #111827; outline-offset: 2px; }
29
29
  .canvas-controls { position: fixed; z-index: 80; top: 14px; right: 16px; display: flex; align-items: center; gap: 5px; }
30
- .canvas-controls button { min-width: 32px; padding: 0 8px; font-size: 12px; }
30
+ .canvas-controls button { min-width: 32px; padding: 0 8px; font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
31
+ .canvas-controls button svg { width: 14px; height: 14px; flex: none; }
31
32
  .canvas-controls span { min-width: 42px; color: #64748b; font-size: 12px; text-align: center; }
32
33
  .sidebar { grid-row: 1 / -1; display: flex; flex-direction: column; gap: 0; min-height: 0; padding: 6px 12px; border-right: 1px solid #e5e7eb; background: #f8f9fa; }
33
34
  .new-workspace { display: flex; width: calc(100% - 4px); min-height: auto; height: 38px; align-items: center; justify-content: center; gap: 6px; margin: 0 2px 8px; border-color: rgba(0,0,0,.1); border-radius: 12px; background: #fff; padding: 8px 16px; color: #111827; font-size: 14px; font-weight: 500; }
@@ -66,17 +67,26 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
66
67
  .canvas-tabs button:hover { background: transparent; color: #3478f6; }
67
68
  .canvas-tabs button.active { border-bottom-color: #3478f6; color: #3478f6; }
68
69
  .canvas-tabs button:disabled { cursor: default; opacity: .4; }
69
- .canvas-view { display: flex; min-height: 0; flex: 1; }
70
- .canvas-viewport { position: relative; width: 100%; height: 100%; min-height: 0; flex: 1; overflow: hidden; background: #fff; cursor: grab; }
71
- .canvas-viewport.is-panning { cursor: grabbing; user-select: none; }
70
+ .canvas-view { position: relative; display: flex; min-height: 0; flex: 1; }
71
+ /* The canvas void is light gray (matching the DSH main stage) instead of pure
72
+ white, and the pan cursor is a custom dark hand with a light outline so it
73
+ stays visible on both light and dark canvases (system light-theme pointers
74
+ vanish on a white void). */
75
+ .canvas-viewport { position: relative; width: 100%; height: 100%; min-height: 0; flex: 1; overflow: hidden; background: #f5f7fa; cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'><g fill='none' stroke='%23ffffff' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'><path d='M18 11V6a2 2 0 0 0-4 0v5M14 10V4a2 2 0 0 0-4 0v2M10 10.5V6a2 2 0 0 0-4 0v8M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/></g><g fill='none' stroke='%23374151' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 11V6a2 2 0 0 0-4 0v5M14 10V4a2 2 0 0 0-4 0v2M10 10.5V6a2 2 0 0 0-4 0v8M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/></g></svg>") 11 12, grab; }
76
+ .canvas-viewport.is-panning { cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'><g fill='none' stroke='%23ffffff' stroke-width='4.5' stroke-linecap='round' stroke-linejoin='round'><path d='M18 11V6a2 2 0 0 0-4 0v5M14 10V4a2 2 0 0 0-4 0v2M10 10.5V6a2 2 0 0 0-4 0v8M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/></g><g fill='none' stroke='%231f2937' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 11V6a2 2 0 0 0-4 0v5M14 10V4a2 2 0 0 0-4 0v2M10 10.5V6a2 2 0 0 0-4 0v8M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15'/></g></svg>") 11 12, grabbing; user-select: none; }
77
+ /* While panning, promote the canvas to its own composited layer so the
78
+ browser GPU-transforms the whole subtree instead of repainting every card
79
+ and connector per frame. Zoom drops the layer to avoid upscaling a stale
80
+ raster (see zoomCanvas in app.js). */
81
+ .canvas-viewport.is-panning .canvas-content { will-change: transform; }
72
82
  .canvas-content { position: absolute; inset: 0; transform-origin: 0 0; }
73
83
  .connectors { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
74
84
  .connectors path { fill: none; stroke: #aebbc9; stroke-width: 1.5; }
85
+ .connectors path.active-connector { stroke: #3478f6; }
75
86
  .connectors .draft-connector { stroke: #3478f6; stroke-dasharray: 5 4; }
76
87
  .cards-layer { position: absolute; inset: 0; }
77
88
  .thread-card { position: absolute; display: grid; width: 310px; height: 276px; grid-template-rows: auto auto minmax(0, 1fr) auto; border: 1px solid #d8e0e8; border-radius: 7px; background: #fff; box-shadow: 0 3px 11px rgba(33,48,67,.08); overflow: visible; }
78
89
  .thread-card:hover { border-color: #9ca3af; box-shadow: 0 8px 20px rgba(33,48,67,.13); }
79
- .thread-card.active { outline: 2px solid rgba(17,24,39,.2); border-color: #6b7280; }
80
90
  .thread-card.selected { box-shadow: 0 0 0 2px rgba(17,24,39,.16), 0 8px 20px rgba(33,48,67,.13); }
81
91
  .node-handle { position: absolute; top: -8px; left: 50%; display: grid; width: 28px; height: 15px; min-height: 15px; place-items: center; transform: translateX(-50%); border: 1px solid #d8e0e8; border-radius: 4px; background: #fff; cursor: grab; padding: 0; }
82
92
  .node-handle::after { content: '...'; display: block; margin: -5px 0 0 2px; color: #94a3b8; font-size: 11px; letter-spacing: 1.5px; line-height: 1; }
@@ -92,8 +102,15 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
92
102
  .graph-branch-button svg { fill: currentColor; }
93
103
  .graph-continue-button:hover, .graph-fold-button:hover, .graph-branch-button:hover { border-color: #111827; background: #f3f4f6; }
94
104
  .graph-continue-button:focus-visible, .graph-fold-button:focus-visible, .graph-branch-button:focus-visible { outline: 2px solid #3478f6; outline-offset: 2px; }
105
+ .selection-followup { position: fixed; z-index: 90; display: inline-flex; min-height: 30px; align-items: center; gap: 4px; transform: translateX(-100%); border-color: #3478f6; border-radius: 6px; background: #3478f6; padding: 0 8px; color: #fff; font-size: 12px; font-weight: 650; line-height: 1; box-shadow: 0 4px 12px rgba(37,99,235,.24); user-select: none; }
106
+ .selection-followup:hover { border-color: #2563eb; background: #2563eb; color: #fff; }
107
+ .selection-followup svg { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
108
+ .selection-followup[hidden] { display: none; }
95
109
  .thread-meta { gap: 7px; padding: 0 12px; color: #94a3b8; font-size: 10px; }
96
110
  .thread-meta span + span::before { content: '·'; margin-right: 7px; }
111
+ .thread-meta .card-process-count { display: inline-flex; align-items: center; min-height: 18px; margin-left: auto; border-radius: 9px; background: #eef4ff; padding: 0 6px; color: #3478f6; font-size: 10px; font-weight: 650; white-space: nowrap; }
112
+ .thread-meta .card-process-count::before { content: none; }
113
+ .thread-meta .card-error-status { color: #b42318; font-weight: 650; }
97
114
  .thread-answer { min-width: 0; min-height: 0; margin: 10px 14px; overflow-x: hidden; overflow-y: auto; color: #526174; font-size: 12px; line-height: 1.58; overflow-wrap: anywhere; overscroll-behavior: contain; scrollbar-color: #9ca3af transparent; scrollbar-width: thin; }
98
115
  .thread-answer::-webkit-scrollbar { width: 6px; height: 0; }
99
116
  .thread-answer::-webkit-scrollbar-track { background: transparent; }
@@ -111,14 +128,69 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
111
128
  .thread-answer th { background: #f5f7fa; font-weight: 720; }
112
129
  .thread-answer-empty { color: #94a3b8; }
113
130
  .thread-answer-pending, .message-pending p { color: #374151; font-style: italic; }
131
+ .thread-answer-error { display: -webkit-box; margin: 8px 0 0; overflow: hidden; color: #b42318; font-weight: 620; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
114
132
  .thread-card footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; padding: 7px; border-top: 1px solid #edf0f3; }
115
- .thread-card footer button { min-height: 26px; padding: 0 6px; border: 0; color: #526174; font-size: 11px; }
116
- .thread-card footer button:hover { background: #f3f4f6; color: #111827; }
133
+ .thread-card footer button { min-height: 26px; padding: 0 7px; border: 0; display: inline-flex; align-items: center; gap: 4px; color: #526174; font-size: 11px; }
134
+ .thread-card footer button svg { width: 13px; height: 13px; flex: none; }
135
+ .thread-card footer button:hover { background: #f3f4f6; color: #111827; border-radius: 6px; }
117
136
  .thread-card footer .compare-button { margin-right: auto; color: #374151; }
118
137
  .thread-card footer .compare-button.selected { background: #e5e7eb; color: #111827; }
138
+ .card-inspector { position: absolute; z-index: 30; top: 0; right: 0; bottom: 0; display: flex; width: min(460px, calc(100% - 48px)); min-width: 360px; flex-direction: column; border-left: 1px solid #dbe3ec; background: #fff; opacity: 1; transform: translateX(0); transition: transform 180ms cubic-bezier(.23,1,.32,1), opacity 150ms ease-out; }
139
+ .card-inspector.is-opening, .card-inspector.is-closing { opacity: 0; transform: translateX(28px); }
140
+ .card-inspector-head { display: grid; grid-template-columns: minmax(0, 1fr) 32px; gap: 12px; align-items: start; padding: 18px 20px 12px; background: #fff; }
141
+ .card-inspector-meta { display: flex; align-items: center; gap: 7px; color: #8390a0; font-size: 11px; }
142
+ .card-inspector-meta span + span::before { content: '·'; margin-right: 7px; color: #bdc7d2; }
143
+ .card-inspector-meta span:last-child { color: inherit; font-weight: inherit; }
144
+ .card-inspector-meta .card-inspector-error-status { color: #b42318; font-weight: 650; }
145
+ .card-inspector-head h2 { margin: 8px 0 0; overflow-wrap: anywhere; color: #172033; font-size: 15px; font-weight: 680; line-height: 1.5; }
146
+ .card-inspector-close { display: grid; width: 32px; height: 32px; min-height: 32px; place-items: center; border: 0; border-radius: 50%; background: transparent; padding: 0; color: #718096; }
147
+ .card-inspector-close:hover { background: #eef2f6; color: #1f2937; }
148
+ .card-inspector-close:active, .card-inspector-actions button:active { transform: scale(.97); }
149
+ .card-inspector-close svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
150
+ .card-inspector-scroll { display: flex; min-height: 0; flex: 1; flex-direction: column; overflow-y: auto; padding: 24px 20px 20px; overscroll-behavior: contain; }
151
+ .card-inspector-answer { color: #314057; font-size: 13px; line-height: 1.75; }
152
+ .card-inspector-answer > * + * { margin-top: 12px; }
153
+ .card-inspector-answer p { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
154
+ .card-inspector-answer ul, .card-inspector-answer ol { margin: 0; padding-left: 20px; }
155
+ .card-inspector-answer li + li { margin-top: 5px; }
156
+ .card-inspector-answer h1, .card-inspector-answer h2, .card-inspector-answer h3 { margin: 0; color: #1e293b; font-size: 15px; line-height: 1.45; }
157
+ .card-inspector-answer blockquote { margin: 0; border-left: 3px solid #dbe3ec; padding-left: 10px; color: #64748b; }
158
+ .card-inspector-answer code { overflow-wrap: anywhere; border-radius: 3px; background: #eef2f5; padding: 1px 3px; color: #334155; font-family: "Cascadia Code", Consolas, monospace; font-size: 12px; }
159
+ .card-inspector-answer pre { max-width: 100%; margin: 0; overflow-x: auto; border: 1px solid #e0e7ee; border-radius: 6px; background: #f8fafc; padding: 10px 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
160
+ .card-inspector-answer pre code { background: transparent; padding: 0; }
161
+ .card-inspector-answer table { display: block; max-width: 100%; margin: 0; overflow-x: auto; border-collapse: collapse; font-size: 12px; }
162
+ .card-inspector-answer th, .card-inspector-answer td { border: 1px solid #d8e0e8; padding: 5px 8px; text-align: left; overflow-wrap: anywhere; white-space: normal; }
163
+ .card-inspector-answer th { background: #f5f7fa; font-weight: 720; }
164
+ .card-inspector-pending { margin: 0; color: #7b8794; font-size: 13px; font-style: italic; }
165
+ .card-inspector-error { margin: 0; border-left: 3px solid #d92d20; padding: 3px 0 3px 10px; color: #7a271a; font-size: 13px; line-height: 1.65; }
166
+ .card-inspector-error strong { display: block; color: #b42318; font-size: 12px; }
167
+ .card-inspector-error p { margin: 5px 0 0; overflow-wrap: anywhere; white-space: pre-wrap; }
168
+ .card-inspector .process-records { margin-top: 22px; border-top-style: solid; padding-top: 12px; }
169
+ .card-inspector .process-records-fold { border-radius: 0; background: transparent; padding: 4px 0; }
170
+ .card-inspector .process-records-fold:hover { background: transparent; }
171
+ .card-inspector-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; padding: 11px 14px; border-top: 1px solid #e7edf3; background: #fff; }
172
+ .card-inspector-actions button { display: inline-flex; min-height: 30px; align-items: center; gap: 4px; padding: 0 9px; font-size: 11px; font-weight: 600; transition: transform 140ms ease-out, border-color 150ms ease, background 150ms ease, color 150ms ease; }
173
+ .card-inspector-actions button svg { width: 13px; height: 13px; flex: none; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4; }
174
+ .card-inspector-actions .primary { border-color: #3478f6; background: #3478f6; color: #fff; }
175
+ .card-inspector-actions .primary:hover { border-color: #2563eb; background: #2563eb; }
119
176
  .draft-card { z-index: 2; height: auto; min-height: 228px; border-style: dashed; border-color: #9ca3af; box-shadow: 0 7px 19px rgba(17,24,39,.1); }
120
177
  .draft-card strong { color: #1f2937; font-size: 13px; }
121
178
  .draft-branch-form { display: grid; justify-items: center; gap: 10px; padding: 10px 12px 12px; }
179
+ .draft-quick-phrases { display: flex; width: 100%; flex-wrap: wrap; gap: 6px; }
180
+ .draft-quick-phrase, .draft-quick-phrase-add-button { min-height: 26px; border-color: #d8e0e8; border-radius: 999px; background: #f8fafc; padding: 0 9px; color: #526174; font-size: 11px; font-weight: 600; }
181
+ .draft-quick-phrase:hover, .draft-quick-phrase-add-button:hover { border-color: #9bbcf7; background: #eef4ff; color: #2563eb; }
182
+ .draft-quick-phrase-add-button { display: grid; width: 26px; place-items: center; padding: 0; }
183
+ .draft-quick-phrase-add-button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.6; }
184
+ .draft-quick-editor { display: grid; width: 100%; gap: 7px; padding-bottom: 2px; }
185
+ .draft-quick-editor-list { display: grid; gap: 5px; }
186
+ .draft-quick-phrase-editor-row, .draft-quick-phrase-add { display: grid; grid-template-columns: minmax(0, 1fr) 28px; gap: 6px; }
187
+ .draft-quick-phrase-editor-row input, .draft-quick-phrase-add input { min-width: 0; height: 28px; border: 1px solid #cbd8e3; border-radius: 5px; background: #fff; padding: 0 8px; color: #334155; font-size: 11px; outline-color: #3478f6; }
188
+ .draft-quick-phrase-editor-row button, .draft-quick-phrase-add button { display: grid; width: 28px; min-height: 28px; place-items: center; border-radius: 5px; padding: 0; }
189
+ .draft-quick-phrase-editor-row button { border-color: #d8e0e8; color: #64748b; }
190
+ .draft-quick-phrase-editor-row button:hover { border-color: #f0b4b4; background: #fef2f2; color: #b91c1c; }
191
+ .draft-quick-phrase-editor-row svg, .draft-quick-phrase-add svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
192
+ .draft-quick-editor-close { justify-self: end; min-height: 26px; border: 0; background: transparent; padding: 0 6px; color: #64748b; font-size: 11px; }
193
+ .draft-quick-editor-close:hover { background: #f3f4f6; color: #111827; }
122
194
  .draft-branch-form textarea { width: 100%; min-height: 104px; resize: vertical; border: 1px solid #cbd8e3; border-radius: 5px; padding: 8px 12px; color: #334155; outline-color: #3478f6; }
123
195
  .draft-actions { display: flex; width: 100%; justify-content: flex-end; gap: 8px; }
124
196
  .draft-actions button { display: grid; width: 32px; height: 32px; min-height: 32px; place-items: center; border-radius: 50%; background: #fff; padding: 0; color: #64748b; line-height: 0; }
@@ -212,8 +284,9 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
212
284
  .compare-meta { margin: 12px 16px; color: #94a3b8; font-size: 11px; }
213
285
  .compare-notes { display: grid; gap: 1px; padding: 0 16px 16px; }
214
286
  .compare-notes p { margin: 0; padding: 11px 0; border-top: 1px solid #eef2f5; color: #475569; font-size: 13px; line-height: 1.6; white-space: pre-wrap; }
215
- @media (max-width: 760px) { .synapse-shell { --sidebar-width: 200px; --sidebar-half: 100px; } .synapse-shell.sidebar-collapsed { --sidebar-width: 56px; --sidebar-half: 28px; } .sidebar { padding: 6px 10px; } .detail-head { display: grid; gap: 12px; padding: 22px 18px 14px; } .detail-scroll { padding: 16px 18px 20px; } .message-composer { padding: 12px 18px 16px; } .message-user { max-width: 92%; } .compare-view { padding: 26px 18px; } .compare-columns { grid-template-columns: 1fr; } .topbar { padding: 0 10px; } .brand strong { display: none; } }
287
+ @media (max-width: 760px) { .synapse-shell { --sidebar-width: 200px; --sidebar-half: 100px; } .synapse-shell.sidebar-collapsed { --sidebar-width: 56px; --sidebar-half: 28px; } .sidebar { padding: 6px 10px; } .detail-head { display: grid; gap: 12px; padding: 22px 18px 14px; } .detail-scroll { padding: 16px 18px 20px; } .message-composer { padding: 12px 18px 16px; } .message-user { max-width: 92%; } .compare-view { padding: 26px 18px; } .compare-columns { grid-template-columns: 1fr; } .topbar { padding: 0 10px; } .brand strong { display: none; } .card-inspector { top: auto; width: 100%; min-width: 0; max-height: 78%; border-top: 1px solid #dbe3ec; border-left: 0; } .card-inspector.is-opening, .card-inspector.is-closing { transform: translateY(24px); } }
216
288
  @media (max-width: 560px) { .synapse-shell { min-width: 0; grid-template-columns: 1fr; } .sidebar { display: none; } .topbar, .main-stage { grid-column: 1; } .view-switch { left: 50%; } .view-switch button { padding: 0 7px; } .top-actions > button { font-size: 11px; padding: 0 7px; } .thread-card { width: 280px; } }
289
+ @media (prefers-reduced-motion: reduce) { .card-inspector { transition: opacity 120ms ease; } .card-inspector.is-opening, .card-inspector.is-closing { transform: none; } }
217
290
 
218
291
  /* ── Dark theme: follows DSH's body[data-ds-dark-theme] via synapse:theme ── */
219
292
  [data-theme="dark"] { color-scheme: dark; }
@@ -228,10 +301,10 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
228
301
  [data-theme="dark"] .canvas-viewport { background: #0f1115; }
229
302
  [data-theme="dark"] .canvas-content { background: #0f1115; }
230
303
  [data-theme="dark"] .connectors path { stroke: #3a3f47; }
304
+ [data-theme="dark"] .connectors path.active-connector { stroke: #5b8def; }
231
305
  [data-theme="dark"] .connectors .draft-connector { stroke: #5b8def; }
232
306
  [data-theme="dark"] .thread-card { border-color: #2a2d33; background: #1b1c1f; box-shadow: 0 3px 11px rgba(0,0,0,.35); }
233
307
  [data-theme="dark"] .thread-card:hover { border-color: #4a4f57; box-shadow: 0 8px 20px rgba(0,0,0,.45); }
234
- [data-theme="dark"] .thread-card.active { outline-color: rgba(255,255,255,.25); border-color: #6b7280; }
235
308
  [data-theme="dark"] .thread-card.selected { box-shadow: 0 0 0 2px rgba(91,141,239,.4), 0 8px 20px rgba(0,0,0,.45); }
236
309
  [data-theme="dark"] .node-handle { border-color: #2a2d33; background: #1b1c1f; }
237
310
  [data-theme="dark"] .node-handle::after { color: #737a83; }
@@ -240,7 +313,10 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
240
313
  [data-theme="dark"] .graph-continue-button, [data-theme="dark"] .graph-fold-button, [data-theme="dark"] .graph-branch-button { border-color: #4a4f57; background: #1b1c1f; color: #e6e8eb; }
241
314
  [data-theme="dark"] .graph-continue-button:hover, [data-theme="dark"] .graph-fold-button:hover, [data-theme="dark"] .graph-branch-button:hover { border-color: #9ca3af; background: #26282d; }
242
315
  [data-theme="dark"] .graph-continue-button:focus-visible, [data-theme="dark"] .graph-fold-button:focus-visible, [data-theme="dark"] .graph-branch-button:focus-visible { outline-color: #7ea6f5; }
316
+ [data-theme="dark"] .selection-followup { border-color: #5b8def; background: #5b8def; color: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
317
+ [data-theme="dark"] .selection-followup:hover { border-color: #7ea6f5; background: #7ea6f5; color: #fff; }
243
318
  [data-theme="dark"] .thread-meta { color: #737a83; }
319
+ [data-theme="dark"] .thread-meta .card-process-count { background: #1e2a44; color: #7ea6f5; }
244
320
  [data-theme="dark"] .thread-answer { color: #a7adb5; }
245
321
  [data-theme="dark"] .thread-answer h1, [data-theme="dark"] .thread-answer h2, [data-theme="dark"] .thread-answer h3 { color: #d7dae0; }
246
322
  [data-theme="dark"] .thread-answer code { background: #26282d; color: #d7dae0; }
@@ -254,8 +330,41 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
254
330
  [data-theme="dark"] .thread-card footer button:hover { background: #26282d; color: #e6e8eb; }
255
331
  [data-theme="dark"] .thread-card footer .compare-button { color: #d7dae0; }
256
332
  [data-theme="dark"] .thread-card footer .compare-button.selected { background: #2a2d33; color: #fff; }
333
+ [data-theme="dark"] .card-inspector { border-left-color: #2a2d33; background: #15171b; }
334
+ [data-theme="dark"] .card-inspector-head, [data-theme="dark"] .card-inspector-actions { border-color: #2a2d33; background: #1b1c1f; }
335
+ [data-theme="dark"] .card-inspector-meta { color: #737a83; }
336
+ [data-theme="dark"] .card-inspector-meta span + span::before { color: #4a4f57; }
337
+ [data-theme="dark"] .card-inspector-meta span:last-child { color: inherit; }
338
+ [data-theme="dark"] .thread-meta .card-error-status, [data-theme="dark"] .card-inspector-meta .card-inspector-error-status { color: #f87171; }
339
+ [data-theme="dark"] .card-inspector-head h2 { color: #e6e8eb; }
340
+ [data-theme="dark"] .card-inspector-answer { color: #d7dae0; }
341
+ [data-theme="dark"] .card-inspector-answer h1, [data-theme="dark"] .card-inspector-answer h2, [data-theme="dark"] .card-inspector-answer h3 { color: #e6e8eb; }
342
+ [data-theme="dark"] .card-inspector-answer blockquote { border-left-color: #3a3f47; color: #8f959e; }
343
+ [data-theme="dark"] .card-inspector-answer code { background: #26282d; color: #d7dae0; }
344
+ [data-theme="dark"] .card-inspector-answer pre { border-color: #2a2d33; background: #15171b; }
345
+ [data-theme="dark"] .card-inspector-answer th, [data-theme="dark"] .card-inspector-answer td { border-color: #2a2d33; }
346
+ [data-theme="dark"] .card-inspector-answer th { background: #222428; }
347
+ [data-theme="dark"] .card-inspector-pending { color: #8f959e; }
348
+ [data-theme="dark"] .thread-answer-error { color: #f87171; }
349
+ [data-theme="dark"] .card-inspector-error { border-left-color: #f87171; color: #f0a3a3; }
350
+ [data-theme="dark"] .card-inspector-error strong { color: #f87171; }
351
+ [data-theme="dark"] .card-inspector .process-records-fold { color: #a7adb5; }
352
+ [data-theme="dark"] .card-inspector .process-records-fold:hover { color: #7ea6f5; }
353
+ [data-theme="dark"] .card-inspector-close { color: #8f959e; }
354
+ [data-theme="dark"] .card-inspector-close:hover { background: #26282d; color: #e6e8eb; }
355
+ [data-theme="dark"] .card-inspector-actions button { border-color: #3a3f47; background: #222428; color: #c6cbd2; }
356
+ [data-theme="dark"] .card-inspector-actions button:hover { border-color: #4a4f57; background: #26282d; color: #fff; }
357
+ [data-theme="dark"] .card-inspector-actions .primary { border-color: #5b8def; background: #5b8def; color: #fff; }
358
+ [data-theme="dark"] .card-inspector-actions .primary:hover { border-color: #7ea6f5; background: #7ea6f5; }
257
359
  [data-theme="dark"] .draft-card { border-color: #4a4f57; box-shadow: 0 7px 19px rgba(0,0,0,.4); }
258
360
  [data-theme="dark"] .draft-card strong { color: #e6e8eb; }
361
+ [data-theme="dark"] .draft-quick-phrase, [data-theme="dark"] .draft-quick-phrase-add-button { border-color: #3a3f47; background: #222428; color: #a7adb5; }
362
+ [data-theme="dark"] .draft-quick-phrase:hover, [data-theme="dark"] .draft-quick-phrase-add-button:hover { border-color: #5b8def; background: #1e2a44; color: #7ea6f5; }
363
+ [data-theme="dark"] .draft-quick-phrase-editor-row input, [data-theme="dark"] .draft-quick-phrase-add input { border-color: #2a2d33; background: #15171b; color: #e6e8eb; }
364
+ [data-theme="dark"] .draft-quick-phrase-editor-row button { border-color: #3a3f47; background: #222428; color: #a7adb5; }
365
+ [data-theme="dark"] .draft-quick-phrase-editor-row button:hover { border-color: #b75f5f; background: #2b1a1c; color: #f0a3a3; }
366
+ [data-theme="dark"] .draft-quick-editor-close { color: #a7adb5; }
367
+ [data-theme="dark"] .draft-quick-editor-close:hover { background: #26282d; color: #e6e8eb; }
259
368
  [data-theme="dark"] .draft-branch-form textarea { border-color: #2a2d33; background: #15171b; color: #e6e8eb; }
260
369
  [data-theme="dark"] .draft-actions button { background: #1b1c1f; color: #a7adb5; }
261
370
  [data-theme="dark"] .draft-actions button.primary { background: #3478f6; color: #fff; }
@@ -335,3 +444,4 @@ button.primary:hover { border-color: #000; background: #000; color: #fff; }
335
444
  [data-theme="dark"] button:hover { border-color: #4a4f57; background: #26282d; color: #fff; }
336
445
  [data-theme="dark"] button.primary { border-color: #3478f6; background: #3478f6; color: #fff; }
337
446
  [data-theme="dark"] button.primary:hover { border-color: #2563eb; background: #2563eb; color: #fff; }
447
+ @media (max-width: 760px) { [data-theme="dark"] .card-inspector { border-top-color: #2a2d33; border-left: 0; } }
Binary file
Binary file