@ash-qw/dsh-theme-prts 0.1.91

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 (50) hide show
  1. package/LICENSE +24 -0
  2. package/README.en.md +103 -0
  3. package/README.md +107 -0
  4. package/THIRD_PARTY_NOTICES.md +48 -0
  5. package/cordis.patch.yml +4 -0
  6. package/lib/client.js +7466 -0
  7. package/lib/index.js +3 -0
  8. package/package.json +64 -0
  9. package/src/assets/faction-emblems/lungmen.png +0 -0
  10. package/src/assets/faction-emblems/penguin-logistics.png +0 -0
  11. package/src/assets/faction-emblems/reunion.png +0 -0
  12. package/src/assets/faction-emblems/rhine-lab.png +0 -0
  13. package/src/assets/faction-emblems/rhodes-island.png +0 -0
  14. package/src/assets/prts-original-avatar.png +0 -0
  15. package/src/assets/rhodes-dsh.svg +6 -0
  16. package/src/assets/topographic-map.svg +72 -0
  17. package/src/assets/topographic-tech.svg +19 -0
  18. package/src/client/assistant-glass-adapter.js +231 -0
  19. package/src/client/composer-glass-adapter.js +210 -0
  20. package/src/client/conversation-control-adapter.js +109 -0
  21. package/src/client/conversation-scale-adapter.js +2243 -0
  22. package/src/client/facility-geometry.js +60 -0
  23. package/src/client/facility-vector.js +230 -0
  24. package/src/client/floating-glass-adapter.js +177 -0
  25. package/src/client/host-geometry-adapter.js +123 -0
  26. package/src/client/index.js +359 -0
  27. package/src/client/layout-stability-diagnostics.js +162 -0
  28. package/src/client/operations-shell-v2.js +248 -0
  29. package/src/client/particle-field-adapter.js +1840 -0
  30. package/src/client/preferences.js +239 -0
  31. package/src/client/rc7-adapter.js +83 -0
  32. package/src/client/resize-shield-adapter.js +64 -0
  33. package/src/client/settings-page.js +62 -0
  34. package/src/client/sidebar-control-adapter.js +317 -0
  35. package/src/client/startup-sequence.js +366 -0
  36. package/src/client/status-projection.js +79 -0
  37. package/src/client/terrain-motion-adapter.js +188 -0
  38. package/src/client/theme-controller-v2.js +134 -0
  39. package/src/client/theme-controller.js +119 -0
  40. package/src/client/theme-settings-workbench.js +583 -0
  41. package/src/client/to-bottom-adapter.js +85 -0
  42. package/src/client/ui-store.js +23 -0
  43. package/src/index.js +4 -0
  44. package/src/styles/conversation-scale.css +471 -0
  45. package/src/styles/facility-vector.css +292 -0
  46. package/src/styles/prts.css +1223 -0
  47. package/src/styles/refinement.css +429 -0
  48. package/src/styles/stabilization.css +161 -0
  49. package/src/styles/startup-sequence.css +496 -0
  50. package/src/styles/theme-settings-workbench.css +803 -0
@@ -0,0 +1,1223 @@
1
+ /* DSH P.R.T.S. // RHODES ISLAND DAILY OPERATIONS TERMINAL */
2
+ html[data-dsh-prts] {
3
+ --prts-canvas: #080a0c;
4
+ --prts-canvas-elevated: #0d1114;
5
+ --prts-rail: #060809;
6
+ --prts-panel: #11161a;
7
+ --prts-panel-raised: #171d21;
8
+ --prts-panel-muted: #20272c;
9
+ --prts-ink: #edf1f2;
10
+ --prts-muted: #98a3a9;
11
+ --prts-dim: #68747a;
12
+ --prts-line: #38434a;
13
+ --prts-line-strong: #5e6a70;
14
+ --prts-yellow: #f0c800;
15
+ --prts-yellow-ink: #161300;
16
+ --prts-cyan: #5ccddb;
17
+ --prts-red: #ee625a;
18
+ --prts-green: #8fcf79;
19
+ --prts-host-top-inset: 0px;
20
+ --prts-rail-width: 52px;
21
+ --prts-nav-width: 52px;
22
+ --prts-sessions-width: 286px;
23
+ --prts-sessions-compact: 54px;
24
+ --prts-workspace-height: 38px;
25
+ --prts-session-height: 36px;
26
+ --prts-facility-gap: 7px;
27
+ --prts-facility-height: var(--prts-workspace-height);
28
+ --prts-spine-width: 8px;
29
+ --prts-spine-rest: .25;
30
+ --prts-spine-travel: 6px;
31
+ --prts-chamfer: 3px;
32
+ --prts-radius-control: 3px;
33
+ --prts-radius-card: 3px;
34
+ --prts-radius-overlay: 4px;
35
+ --prts-body: 'Noto Sans SC', 'Microsoft YaHei UI', 'Segoe UI', sans-serif;
36
+ --prts-display: 'Arial Narrow', 'Noto Sans SC', sans-serif;
37
+ --prts-mono: 'Roboto Mono', 'Noto Sans Mono CJK SC', Consolas, monospace;
38
+ --prts-ease-spring: cubic-bezier(.2, .86, .28, 1.16);
39
+ --prts-ease-snap: cubic-bezier(.22, 1, .36, 1);
40
+ --prts-shadow-glass-overlay: 0 18px 48px rgba(0, 0, 0, .32), inset 0 1px rgba(255, 255, 255, .06);
41
+ --prts-glass-border: rgba(119, 140, 150, .52);
42
+ --prts-glass-soft-surface: rgba(15, 21, 25, .82);
43
+ --prts-glass-standard-surface: rgba(15, 21, 25, .9);
44
+ --prts-glass-clear-surface: rgba(15, 21, 25, .72);
45
+ --prts-glass-dense: rgba(7, 10, 12, .94);
46
+ --prts-active-glass: var(--prts-glass-standard-surface);
47
+ --prts-active-glass-filter: blur(18px) saturate(145%);
48
+ color-scheme: dark;
49
+ accent-color: var(--prts-yellow);
50
+ }
51
+
52
+ html[data-dsh-prts][data-prts-scheme="dark"] {
53
+ color-scheme: dark;
54
+ }
55
+
56
+ html[data-dsh-prts][data-prts-scheme="light"] {
57
+ --prts-canvas: #eef1f3;
58
+ --prts-canvas-elevated: #e5eaed;
59
+ --prts-rail: #111518;
60
+ --prts-panel: #f7f9fa;
61
+ --prts-panel-raised: #e5eaed;
62
+ --prts-panel-muted: #d5dde1;
63
+ --prts-ink: #15191c;
64
+ --prts-muted: #4f5c63;
65
+ --prts-dim: #738087;
66
+ --prts-line: #9eabb1;
67
+ --prts-line-strong: #65727a;
68
+ --prts-glass-border: rgba(62, 82, 92, .48);
69
+ --prts-glass-soft-surface: rgba(247, 250, 251, .9);
70
+ --prts-glass-standard-surface: rgba(244, 249, 251, .94);
71
+ --prts-glass-clear-surface: rgba(244, 249, 251, .78);
72
+ --prts-glass-dense: rgba(249, 251, 252, .97);
73
+ --prts-shadow-glass-overlay: 0 18px 44px rgba(48, 63, 70, .18), inset 0 1px rgba(255, 255, 255, .86);
74
+ color-scheme: light;
75
+ }
76
+
77
+ html[data-dsh-prts][data-prts-glass="soft"] {
78
+ --prts-active-glass: var(--prts-glass-soft-surface);
79
+ --prts-active-glass-filter: blur(18px) saturate(145%);
80
+ }
81
+
82
+ html[data-dsh-prts][data-prts-glass="standard"] {
83
+ --prts-active-glass: var(--prts-glass-standard-surface);
84
+ --prts-active-glass-filter: blur(22px) saturate(155%);
85
+ }
86
+
87
+ html[data-dsh-prts][data-prts-glass="clear"] {
88
+ --prts-active-glass: var(--prts-glass-clear-surface);
89
+ --prts-active-glass-filter: blur(28px) saturate(180%);
90
+ }
91
+
92
+ html[data-dsh-prts][data-prts-glass="off"] {
93
+ --prts-active-glass: var(--prts-panel);
94
+ --prts-active-glass-filter: none;
95
+ }
96
+
97
+ html[data-dsh-prts] :is(
98
+ [data-prts-shell],
99
+ [data-prts-shell] *,
100
+ [data-prts-particle-layer],
101
+ [data-prts-ambient-layer],
102
+ [data-prts-conversation-scale],
103
+ [data-prts-conversation-scale] *,
104
+ [data-prts-conversation-preview],
105
+ [data-prts-conversation-preview] *,
106
+ [data-prts-facility-face],
107
+ [data-composer-card],
108
+ [data-prts-composer-fallback],
109
+ [data-prts-conversation-control],
110
+ [data-prts-to-bottom]
111
+ ),
112
+ html[data-dsh-prts] :is(
113
+ [data-prts-shell],
114
+ [data-prts-shell] *,
115
+ [data-prts-particle-layer],
116
+ [data-prts-ambient-layer],
117
+ [data-prts-conversation-scale],
118
+ [data-prts-conversation-scale] *,
119
+ [data-prts-conversation-preview],
120
+ [data-prts-conversation-preview] *,
121
+ [data-prts-facility-face],
122
+ [data-composer-card],
123
+ [data-prts-composer-fallback],
124
+ [data-prts-conversation-control],
125
+ [data-prts-to-bottom]
126
+ )::before,
127
+ html[data-dsh-prts] :is(
128
+ [data-prts-shell],
129
+ [data-prts-shell] *,
130
+ [data-prts-particle-layer],
131
+ [data-prts-ambient-layer],
132
+ [data-prts-conversation-scale],
133
+ [data-prts-conversation-scale] *,
134
+ [data-prts-conversation-preview],
135
+ [data-prts-conversation-preview] *,
136
+ [data-prts-facility-face],
137
+ [data-composer-card],
138
+ [data-prts-composer-fallback],
139
+ [data-prts-conversation-control],
140
+ [data-prts-to-bottom]
141
+ )::after {
142
+ box-sizing: border-box;
143
+ }
144
+
145
+ html[data-dsh-prts] body {
146
+ --dsw-alias-bg-base: var(--prts-canvas);
147
+ --dsw-alias-bg-layer-1: var(--prts-panel);
148
+ --dsw-alias-bg-layer-2: var(--prts-panel-raised);
149
+ --dsw-alias-bg-layer-3: var(--prts-panel-muted);
150
+ --dsw-alias-label-primary: var(--prts-ink);
151
+ --dsw-alias-label-secondary: var(--prts-muted);
152
+ --dsw-alias-border-l2: var(--prts-line);
153
+ min-height: 100dvh;
154
+ margin: 0;
155
+ overflow: hidden;
156
+ background: var(--prts-canvas);
157
+ color: var(--prts-ink);
158
+ font-family: var(--prts-body);
159
+ }
160
+
161
+ html[data-dsh-prts] ::selection {
162
+ background: var(--prts-yellow);
163
+ color: var(--prts-yellow-ink);
164
+ }
165
+
166
+ html[data-dsh-prts] a {
167
+ color: var(--prts-cyan);
168
+ text-underline-offset: 3px;
169
+ }
170
+
171
+ /* Keep the host application's control metrics intact. Only controls owned by
172
+ the P.R.T.S. shell and settings overlay inherit the theme typography. */
173
+ html[data-dsh-prts] [data-prts-shell] :is(button, input, textarea, select),
174
+ html[data-dsh-prts] [data-prts-theme-settings] :is(button, input, textarea, select) {
175
+ font: inherit;
176
+ }
177
+
178
+ /* Host controls inherit the active scheme, while Settings content keeps
179
+ paired semantic foreground and fill from each registered section. */
180
+ html[data-dsh-prts] button:not([data-slot="sidebar.settings"] button) {
181
+ color: inherit;
182
+ }
183
+
184
+ html[data-dsh-prts] :focus-visible {
185
+ outline: 2px solid var(--prts-yellow) !important;
186
+ outline-offset: 2px !important;
187
+ }
188
+
189
+ html[data-dsh-prts] [hidden] {
190
+ display: none !important;
191
+ }
192
+
193
+ /* RC.7 COMPATIBILITY FALLBACKS */
194
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] {
195
+ --prts-nav-width: 0px;
196
+ }
197
+
198
+ html[data-dsh-prts] [data-prts-shell] {
199
+ position: fixed;
200
+ z-index: 124;
201
+ inset: var(--prts-host-top-inset) auto 0 0;
202
+ width: var(--prts-nav-width);
203
+ pointer-events: none;
204
+ font-family: var(--prts-mono);
205
+ }
206
+
207
+ html[data-dsh-prts] [data-prts-shell] button,
208
+ html[data-dsh-prts] [data-prts-nav-rail] {
209
+ pointer-events: auto;
210
+ }
211
+
212
+ html[data-dsh-prts] [data-prts-topbar] {
213
+ display: none;
214
+ }
215
+
216
+ html[data-dsh-prts] [data-prts-nav-rail] {
217
+ position: fixed;
218
+ z-index: 120;
219
+ inset: var(--prts-host-top-inset) auto 0 0;
220
+ width: var(--prts-rail-width);
221
+ display: flex;
222
+ flex-direction: column;
223
+ align-items: stretch;
224
+ border-right: 1px solid #30383d;
225
+ background: var(--prts-rail);
226
+ color: #e8edef;
227
+ box-shadow: 4px 0 18px rgba(0, 0, 0, .18);
228
+ }
229
+
230
+ html[data-dsh-prts] [data-prts-rail-launcher] {
231
+ display: none;
232
+ }
233
+
234
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-nav-rail] {
235
+ opacity: 0;
236
+ visibility: hidden;
237
+ transform: translate3d(-100%, 0, 0);
238
+ transition: transform 180ms var(--prts-ease-snap), opacity 120ms ease, visibility 0s linear 180ms;
239
+ pointer-events: none;
240
+ }
241
+
242
+ html[data-dsh-prts][data-prts-rail-mode="overlay"][data-prts-rail-open] [data-prts-nav-rail] {
243
+ opacity: 1;
244
+ visibility: visible;
245
+ transform: translate3d(0, 0, 0);
246
+ transition-delay: 0s;
247
+ pointer-events: auto;
248
+ }
249
+
250
+ html[data-dsh-prts][data-prts-rail-mode="overlay"][data-prts-rail-open] [data-prts-rail-launcher] {
251
+ opacity: 0;
252
+ visibility: hidden;
253
+ pointer-events: none;
254
+ }
255
+
256
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-rail-launcher] {
257
+ position: fixed;
258
+ z-index: 121;
259
+ top: 50%;
260
+ left: 0;
261
+ width: 12px;
262
+ height: 96px;
263
+ display: grid;
264
+ place-items: center;
265
+ padding: 0;
266
+ overflow: hidden;
267
+ border: 1px solid color-mix(in srgb, var(--prts-yellow) 40%, transparent);
268
+ border-left: 0;
269
+ border-radius: 0 3px 3px 0;
270
+ opacity: .34;
271
+ background: color-mix(in srgb, var(--prts-rail) 86%, transparent);
272
+ color: var(--prts-yellow);
273
+ font: 700 8px/1 var(--prts-mono);
274
+ letter-spacing: .08em;
275
+ transform: translateY(-50%);
276
+ transition: width 140ms var(--prts-ease-snap), opacity 120ms ease, background-color 120ms ease;
277
+ cursor: pointer;
278
+ }
279
+
280
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-rail-launcher] > span {
281
+ opacity: 0;
282
+ writing-mode: vertical-rl;
283
+ transition: opacity 100ms ease;
284
+ }
285
+
286
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-rail-launcher]:is(:hover, :focus-visible) {
287
+ width: 40px;
288
+ opacity: 1;
289
+ background: var(--prts-rail);
290
+ }
291
+
292
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-rail-launcher]:is(:hover, :focus-visible) > span {
293
+ opacity: 1;
294
+ }
295
+
296
+ @media (hover: none), (pointer: coarse) {
297
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-rail-launcher] {
298
+ top: calc(var(--prts-host-top-inset) + 12px);
299
+ width: 40px;
300
+ height: 40px;
301
+ opacity: .92;
302
+ transform: none;
303
+ }
304
+
305
+ html[data-dsh-prts][data-prts-rail-mode="overlay"] [data-prts-rail-launcher] > span {
306
+ opacity: 1;
307
+ }
308
+ }
309
+
310
+ html[data-dsh-prts] [data-prts-rail-brand] {
311
+ height: 64px;
312
+ display: grid;
313
+ place-items: center;
314
+ padding: 8px 5px;
315
+ border-bottom: 1px solid #30383d;
316
+ overflow: hidden;
317
+ }
318
+
319
+ html[data-dsh-prts] [data-prts-rail-brand] svg {
320
+ width: 38px;
321
+ height: 38px;
322
+ color: #edf1f2;
323
+ }
324
+
325
+ html[data-dsh-prts] [data-prts-rail-brand] > span {
326
+ position: absolute;
327
+ width: 1px;
328
+ height: 1px;
329
+ overflow: hidden;
330
+ clip: rect(0 0 0 0);
331
+ }
332
+
333
+ html[data-dsh-prts] [data-prts-nav-rail] > button {
334
+ position: relative;
335
+ width: 100%;
336
+ min-height: 52px;
337
+ display: grid;
338
+ place-items: center;
339
+ gap: 2px;
340
+ padding: 7px 2px 6px;
341
+ border: 0;
342
+ border-bottom: 1px solid #242b2f;
343
+ background: transparent;
344
+ color: #9fa9ae;
345
+ cursor: pointer;
346
+ clip-path: polygon(0 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 0 100%);
347
+ }
348
+
349
+ html[data-dsh-prts] [data-prts-nav-rail] > button::after {
350
+ content: "";
351
+ position: absolute;
352
+ inset: 8px auto 8px 0;
353
+ width: 2px;
354
+ background: transparent;
355
+ }
356
+
357
+ html[data-dsh-prts] [data-prts-nav-rail] > button:is(:hover, :focus-visible),
358
+ html[data-dsh-prts] [data-prts-nav-rail] > button[aria-expanded="true"] {
359
+ background: #151a1d;
360
+ color: #f0f3f4;
361
+ }
362
+
363
+ html[data-dsh-prts] [data-prts-nav-rail] > button[aria-expanded="true"]::after {
364
+ background: var(--prts-yellow);
365
+ }
366
+
367
+ html[data-dsh-prts] [data-prts-nav-rail] > button:active {
368
+ transform: translateY(1px) scale(.98);
369
+ }
370
+
371
+ html[data-dsh-prts] [data-prts-nav-rail] b {
372
+ font-size: 15px;
373
+ line-height: 1;
374
+ }
375
+
376
+ html[data-dsh-prts] [data-prts-nav-rail] small {
377
+ font-size: 8px;
378
+ letter-spacing: .04em;
379
+ }
380
+
381
+ html[data-dsh-prts] [data-prts-nav-bottom] {
382
+ display: grid;
383
+ margin-top: auto;
384
+ border-top: 1px solid #30383d;
385
+ }
386
+
387
+ html[data-dsh-prts] [data-prts-connection-indicator] {
388
+ min-height: 40px;
389
+ display: grid;
390
+ place-items: center;
391
+ gap: 3px;
392
+ padding: 6px 2px;
393
+ color: #8c969b;
394
+ font-size: 7px;
395
+ text-align: center;
396
+ }
397
+
398
+ html[data-dsh-prts] [data-prts-connection-indicator] i {
399
+ width: 6px;
400
+ height: 6px;
401
+ border: 1px solid currentColor;
402
+ background: currentColor;
403
+ transform: rotate(45deg);
404
+ }
405
+
406
+ html[data-dsh-prts] [data-prts-connection-indicator][data-state="connected"] {
407
+ color: var(--prts-cyan);
408
+ }
409
+
410
+ html[data-dsh-prts] [data-prts-connection-indicator][data-state="disconnected"] {
411
+ color: var(--prts-red);
412
+ }
413
+
414
+ html[data-dsh-prts] [data-prts-scheme-toggle] svg {
415
+ width: 17px;
416
+ height: 17px;
417
+ fill: none;
418
+ stroke: currentColor;
419
+ stroke-width: 1.7;
420
+ }
421
+
422
+ html[data-dsh-prts] [data-prts-scheme-current="dark"] [data-prts-scheme-icon="light"],
423
+ html[data-dsh-prts] [data-prts-scheme-current="light"] [data-prts-scheme-icon="dark"] {
424
+ display: none;
425
+ }
426
+
427
+ /* FIVE REGION FRAME */
428
+ html[data-dsh-prts] [data-prts-region="frame"] {
429
+ width: calc(100vw - var(--prts-nav-width));
430
+ height: calc(100dvh - var(--prts-host-top-inset));
431
+ min-height: 0;
432
+ margin-left: var(--prts-nav-width);
433
+ display: grid !important;
434
+ background: var(--prts-canvas);
435
+ }
436
+
437
+ html[data-dsh-prts] [data-prts-region="sessions"],
438
+ html[data-dsh-prts] [data-prts-region="operation"] {
439
+ min-width: 0;
440
+ min-height: 0;
441
+ }
442
+
443
+ html[data-dsh-prts] [data-prts-region="sessions"] {
444
+ box-sizing: border-box;
445
+ position: relative;
446
+ z-index: 4;
447
+ overflow: hidden;
448
+ border-right: 1px solid var(--prts-line);
449
+ background: var(--prts-panel);
450
+ transition: opacity 180ms ease;
451
+ }
452
+
453
+ html[data-dsh-prts] [data-prts-region="operation"] {
454
+ position: relative;
455
+ z-index: 1;
456
+ overflow: hidden;
457
+ background: var(--prts-canvas);
458
+ color: var(--prts-ink);
459
+ }
460
+
461
+ html[data-dsh-prts][data-prts-sessions-collapsed] [data-prts-region="sessions"] [data-slot="sidebar.workspaces"],
462
+ html[data-dsh-prts][data-prts-sessions-collapsed] [data-prts-region="sessions"] [data-slot="sidebar.settings"] {
463
+ opacity: 0;
464
+ pointer-events: none;
465
+ }
466
+
467
+ html[data-dsh-prts] [data-prts-region="sessions"] > *,
468
+ html[data-dsh-prts] [data-prts-region="sessions"] [data-slot="sidebar"] {
469
+ height: 100%;
470
+ }
471
+
472
+ html[data-dsh-prts] [data-prts-region="sessions"] [data-rc7-sidebar-root] {
473
+ box-sizing: border-box;
474
+ width: 100% !important;
475
+ min-width: var(--prts-sessions-width);
476
+ padding: 14px 10px;
477
+ overflow-y: auto;
478
+ background: transparent !important;
479
+ color: var(--prts-ink);
480
+ }
481
+
482
+ html[data-dsh-prts] [data-prts-region="sessions"] > * > [data-slot="sidebar"] > :first-child > button[aria-label*="new session" i] {
483
+ display: none !important;
484
+ }
485
+
486
+ /* FACILITY CARD GEOMETRY */
487
+ html[data-dsh-prts] [data-prts-workspace-row],
488
+ html[data-dsh-prts] [data-prts-session-row] {
489
+ --prts-row-shift: 0px;
490
+ --prts-row-end-reserve: 29px;
491
+ --prts-facility-height: var(--prts-workspace-height);
492
+ position: relative;
493
+ width: calc(100% - 20px);
494
+ height: var(--prts-facility-height) !important;
495
+ min-height: var(--prts-facility-height);
496
+ display: flex;
497
+ align-items: center;
498
+ gap: 0 !important;
499
+ margin: 0 0 var(--prts-facility-gap) 0;
500
+ padding: 0 !important;
501
+ overflow: visible;
502
+ border: 0 !important;
503
+ background: transparent !important;
504
+ color: var(--prts-ink);
505
+ isolation: isolate;
506
+ }
507
+
508
+ html[data-dsh-prts] [data-prts-session-row] {
509
+ --prts-facility-height: var(--prts-session-height);
510
+ margin-left: 8px;
511
+ }
512
+
513
+ @media (max-height: 820px) and (hover: hover) and (pointer: fine) {
514
+ html[data-dsh-prts] {
515
+ --prts-workspace-height: 34px;
516
+ --prts-session-height: 32px;
517
+ --prts-facility-gap: 5px;
518
+ }
519
+ }
520
+
521
+ html[data-dsh-prts] [data-prts-workspace-row]::before {
522
+ background: var(--prts-cyan) !important;
523
+ }
524
+
525
+ html[data-dsh-prts] [data-prts-workspace-row][aria-expanded="true"],
526
+ html[data-dsh-prts] [data-prts-workspace-row]:is(:hover, :focus-within, [data-prts-row-menu-open]),
527
+ html[data-dsh-prts] [data-prts-session-row]:is(:hover, :focus-within, [data-prts-row-menu-open]) {
528
+ --prts-row-shift: var(--prts-spine-travel);
529
+ }
530
+
531
+ html[data-dsh-prts] [data-prts-workspace-row]::before,
532
+ html[data-dsh-prts] [data-prts-session-row]::before {
533
+ content: "";
534
+ position: absolute;
535
+ z-index: 2;
536
+ inset: 0 auto 0 0;
537
+ width: var(--prts-spine-width);
538
+ background: var(--prts-line-strong);
539
+ clip-path: polygon(
540
+ 3px 0, calc(100% - 3px) 0, 100% 3px,
541
+ 100% calc(50% - 5px), calc(100% - 2px) calc(50% - 3px), calc(100% - 2px) calc(50% + 3px), 100% calc(50% + 5px),
542
+ 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px),
543
+ 0 calc(50% + 5px), 2px calc(50% + 3px), 2px calc(50% - 3px), 0 calc(50% - 5px), 0 3px
544
+ );
545
+ transform: scaleX(var(--prts-spine-rest));
546
+ transform-origin: left center;
547
+ transition: transform 220ms var(--prts-ease-spring), background-color 160ms ease;
548
+ }
549
+
550
+ html[data-dsh-prts] [data-prts-workspace-row][aria-expanded="true"]::before,
551
+ html[data-dsh-prts] [data-prts-workspace-row]:is(:hover, :focus-within, [data-prts-row-menu-open])::before,
552
+ html[data-dsh-prts] [data-prts-session-row]:is(:hover, :focus-within, [data-prts-row-menu-open])::before {
553
+ transform: scaleX(1);
554
+ }
555
+
556
+ html[data-dsh-prts] [data-prts-session-row][aria-selected="true"]::before {
557
+ background: var(--prts-yellow);
558
+ }
559
+
560
+ html[data-dsh-prts] [data-prts-facility-face] {
561
+ position: absolute;
562
+ z-index: -1;
563
+ inset: 0 0 0 5px;
564
+ border: 1px solid var(--prts-line);
565
+ background: var(--prts-panel-raised);
566
+ clip-path: polygon(
567
+ 3px 0,
568
+ calc(50% - 25px) 0, calc(50% - 20px) 3.333px, calc(50% + 20px) 3.333px, calc(50% + 25px) 0,
569
+ calc(100% - 3px) 0, 100% 3px,
570
+ 100% calc(50% - 5px), calc(100% - 2px) calc(50% - 3px), calc(100% - 2px) calc(50% + 3px), 100% calc(50% + 5px),
571
+ 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px),
572
+ 0 calc(50% + 5px), 2px calc(50% + 3px), 2px calc(50% - 3px), 0 calc(50% - 5px), 0 3px
573
+ );
574
+ transform: translate3d(var(--prts-row-shift), 0, 0);
575
+ transition: transform 220ms var(--prts-ease-spring), border-color 160ms ease, background-color 160ms ease;
576
+ pointer-events: none;
577
+ }
578
+
579
+ html[data-dsh-prts] :is([data-prts-workspace-row], [data-prts-session-row]) [data-prts-facility-face] {
580
+ right: var(--prts-row-end-reserve);
581
+ }
582
+
583
+ html[data-dsh-prts] [data-prts-row-title],
584
+ html[data-dsh-prts] [data-prts-session-row] > span:not([data-prts-facility-face]):not([data-prts-row-projection]):not([data-prts-session-actions]),
585
+ html[data-dsh-prts] [data-prts-workspace-row] > span:not([data-prts-facility-face]):not([data-prts-row-projection]):not([data-prts-workspace-actions]) {
586
+ position: relative;
587
+ z-index: 3;
588
+ min-width: 0;
589
+ transform: translate3d(var(--prts-row-shift), 0, 0);
590
+ transition: transform 220ms var(--prts-ease-spring), color 160ms ease;
591
+ }
592
+
593
+ html[data-dsh-prts] [data-prts-row-title] {
594
+ flex: 1;
595
+ overflow: hidden;
596
+ padding: 0 10px 0 13px;
597
+ font-size: 12px;
598
+ font-weight: 650;
599
+ line-height: var(--prts-facility-height);
600
+ text-overflow: ellipsis;
601
+ white-space: nowrap;
602
+ }
603
+
604
+ html[data-dsh-prts] [data-prts-session-row] [data-prts-row-title]::before {
605
+ content: attr(data-prts-session-index);
606
+ margin-right: 8px;
607
+ color: var(--prts-dim);
608
+ font-family: var(--prts-mono);
609
+ font-size: 9px;
610
+ letter-spacing: .08em;
611
+ }
612
+
613
+ html[data-dsh-prts] [data-prts-workspace-actions],
614
+ html[data-dsh-prts] [data-prts-session-actions] {
615
+ position: absolute;
616
+ z-index: 5;
617
+ inset: 0 0 auto auto;
618
+ height: var(--prts-facility-height) !important;
619
+ align-items: stretch !important;
620
+ gap: 1px !important;
621
+ margin: 0 !important;
622
+ transform: translate3d(var(--prts-row-shift), 0, 0);
623
+ }
624
+
625
+ html[data-dsh-prts] [data-prts-workspace-actions] {
626
+ width: 57px;
627
+ }
628
+
629
+ html[data-dsh-prts] [data-prts-session-actions] {
630
+ width: 28px;
631
+ }
632
+
633
+ html[data-dsh-prts] [data-prts-workspace-actions] > *,
634
+ html[data-dsh-prts] [data-prts-session-actions] > * {
635
+ height: 100% !important;
636
+ }
637
+
638
+ html[data-dsh-prts] [data-prts-workspace-actions] button,
639
+ html[data-dsh-prts] [data-prts-session-actions] button {
640
+ width: 28px !important;
641
+ min-width: 28px !important;
642
+ height: var(--prts-facility-height) !important;
643
+ min-height: var(--prts-facility-height) !important;
644
+ display: grid !important;
645
+ place-items: center;
646
+ padding: 0 !important;
647
+ border: 1px solid var(--prts-line) !important;
648
+ border-radius: 0 !important;
649
+ background: var(--prts-panel-raised) !important;
650
+ color: var(--prts-muted) !important;
651
+ clip-path: polygon(3px 0, calc(100% - 3px) 0, 100% 3px, 100% calc(50% - 5px), calc(100% - 2px) calc(50% - 3px), calc(100% - 2px) calc(50% + 3px), 100% calc(50% + 5px), 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px), 0 calc(50% + 5px), 2px calc(50% + 3px), 2px calc(50% - 3px), 0 calc(50% - 5px), 0 3px);
652
+ cursor: pointer;
653
+ }
654
+
655
+ html[data-dsh-prts] [data-prts-workspace-actions] button:is(:hover, :focus-visible),
656
+ html[data-dsh-prts] [data-prts-session-actions] button:is(:hover, :focus-visible) {
657
+ border-color: var(--prts-yellow) !important;
658
+ color: var(--prts-yellow) !important;
659
+ }
660
+
661
+ @media (prefers-reduced-motion: no-preference) {
662
+ html[data-dsh-prts] [data-prts-workspace-row]:is(:hover, :focus-within, [data-prts-row-menu-open]) [data-prts-workspace-actions] button,
663
+ html[data-dsh-prts] [data-prts-session-row]:is(:hover, :focus-within, [data-prts-row-menu-open]) [data-prts-session-actions] button {
664
+ animation: prts-facility-button-dock 520ms both;
665
+ }
666
+
667
+ html[data-dsh-prts] [data-prts-workspace-row]:is(:hover, :focus-within, [data-prts-row-menu-open]) [data-prts-workspace-actions] > :nth-child(1) button {
668
+ animation-delay: 55ms;
669
+ }
670
+
671
+ html[data-dsh-prts] [data-prts-workspace-row]:is(:hover, :focus-within, [data-prts-row-menu-open]) [data-prts-workspace-actions] > :nth-child(2) {
672
+ animation-delay: 125ms;
673
+ }
674
+ }
675
+
676
+ @keyframes prts-facility-button-dock {
677
+ 0% { opacity: 0; transform: translate3d(34px, 0, 0) scaleX(.94); }
678
+ 52% { opacity: 1; transform: translate3d(-4px, 0, 0) scaleX(.96); }
679
+ 72% { transform: translate3d(3px, 0, 0) scaleX(1.035); }
680
+ 88% { transform: translate3d(-1px, 0, 0) scaleX(.99); }
681
+ 100% { opacity: 1; transform: translate3d(0, 0, 0) scaleX(1); }
682
+ }
683
+
684
+ /* OPERATION AREA */
685
+ html[data-dsh-prts] [data-slot="conversation"] {
686
+ min-width: 0;
687
+ height: 100%;
688
+ background: transparent;
689
+ }
690
+
691
+ html[data-dsh-prts] [data-slot="conversation.session.header"] {
692
+ border-bottom: 1px solid var(--prts-line);
693
+ background: color-mix(in srgb, var(--prts-canvas-elevated) 92%, transparent);
694
+ font-family: var(--prts-mono);
695
+ }
696
+
697
+ html[data-dsh-prts] [data-session-code] {
698
+ color: var(--prts-yellow);
699
+ font-size: 11px;
700
+ letter-spacing: .12em;
701
+ }
702
+
703
+ html[data-dsh-prts] [data-prts-conversation-control="header"] {
704
+ margin-left: auto;
705
+ }
706
+
707
+ html[data-dsh-prts] [data-conversation-scroll] {
708
+ position: relative;
709
+ z-index: 2;
710
+ }
711
+
712
+ html[data-dsh-prts] [data-conversation-scroll]::before {
713
+ content: "";
714
+ position: absolute;
715
+ z-index: -1;
716
+ top: 28px;
717
+ bottom: 140px;
718
+ left: clamp(30px, 3.6vw, 52px);
719
+ width: 1px;
720
+ background: linear-gradient(var(--prts-line-strong), var(--prts-line), transparent);
721
+ }
722
+
723
+ html[data-dsh-prts] [data-message-role="user"],
724
+ html[data-dsh-prts] [data-chat-flow-kind="user"] {
725
+ position: relative;
726
+ color: var(--prts-ink);
727
+ }
728
+
729
+ html[data-dsh-prts] [data-message-role="user"]::before,
730
+ html[data-dsh-prts] [data-chat-flow-kind="user"]::before {
731
+ content: "";
732
+ position: absolute;
733
+ top: 8px;
734
+ left: calc(clamp(-66px, -4vw, -42px));
735
+ width: 11px;
736
+ height: 11px;
737
+ border: 2px solid var(--prts-canvas);
738
+ background: var(--prts-yellow);
739
+ box-shadow: 0 0 0 1px var(--prts-yellow);
740
+ transform: rotate(45deg);
741
+ }
742
+
743
+
744
+ html[data-dsh-prts] [data-message-role="user"],
745
+ html[data-dsh-prts] [data-chat-flow-kind="user"] [class$="_bubble"] {
746
+ border: 1px solid var(--prts-line-strong) !important;
747
+ border-left: 4px solid var(--prts-yellow) !important;
748
+ border-radius: var(--prts-radius-card) !important;
749
+ background: var(--prts-panel-raised) !important;
750
+ color: var(--prts-ink) !important;
751
+ clip-path: polygon(3px 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 0 100%, 0 3px);
752
+ box-shadow: none !important;
753
+ }
754
+
755
+
756
+ html[data-dsh-prts] [data-message-role="user"] :is([data-markdown], [class*="markdown" i]),
757
+ html[data-dsh-prts] [data-chat-flow-kind="user"] [class$="_bubble"] :is([data-markdown], [class*="markdown" i]) {
758
+ background: transparent !important;
759
+ }
760
+
761
+ html[data-dsh-prts] [data-message-role="user"] :is(pre, table, blockquote),
762
+ html[data-dsh-prts] [data-chat-flow-kind="user"] [class$="_bubble"] :is(pre, table, blockquote) {
763
+ border: 1px solid var(--prts-line);
764
+ background: var(--prts-glass-dense);
765
+ }
766
+
767
+ html[data-dsh-prts] [data-message-role="user"] :is(pre, code),
768
+ html[data-dsh-prts] [data-chat-flow-kind="user"] [class$="_bubble"] :is(pre, code) {
769
+ font-family: var(--prts-mono) !important;
770
+ }
771
+
772
+ html[data-dsh-prts] [data-message-role="user"] pre,
773
+ html[data-dsh-prts] [data-chat-flow-kind="user"] [class$="_bubble"] pre {
774
+ max-width: 100%;
775
+ overflow: auto;
776
+ padding: 14px;
777
+ border-left: 3px solid var(--prts-cyan) !important;
778
+ color: var(--prts-ink) !important;
779
+ }
780
+
781
+
782
+ html[data-dsh-prts] [aria-invalid="true"],
783
+ html[data-dsh-prts] [data-status="error"],
784
+ html[data-dsh-prts] [data-status="denied"] {
785
+ border-color: var(--prts-red) !important;
786
+ color: var(--prts-red) !important;
787
+ }
788
+
789
+ /* AMBIENT AND PARTICLE EMBLEMS */
790
+ html[data-dsh-prts] [data-prts-ambient-layer] {
791
+ position: absolute;
792
+ z-index: 0;
793
+ inset: 0;
794
+ overflow: hidden;
795
+ opacity: .86;
796
+ background:
797
+ radial-gradient(circle at 48% 35%, color-mix(in srgb, var(--prts-cyan) 7%, transparent), transparent 32%),
798
+ linear-gradient(115deg, transparent 0 42%, color-mix(in srgb, var(--prts-line) 18%, transparent) 42.2% 42.5%, transparent 42.7%),
799
+ repeating-linear-gradient(0deg, transparent 0 27px, color-mix(in srgb, var(--prts-line) 12%, transparent) 27px 28px);
800
+ pointer-events: none;
801
+ }
802
+
803
+ html[data-dsh-prts][data-prts-texture="restrained"] [data-prts-ambient-layer] {
804
+ opacity: .56;
805
+ }
806
+
807
+ html[data-dsh-prts][data-prts-texture="off"] [data-prts-ambient-layer] {
808
+ display: none;
809
+ }
810
+
811
+ html[data-dsh-prts] [data-prts-particle-layer] {
812
+ position: absolute;
813
+ z-index: 1;
814
+ inset: 0;
815
+ width: 100%;
816
+ height: 100%;
817
+ pointer-events: none;
818
+ }
819
+
820
+
821
+ html[data-dsh-prts] [data-prts-particle-layer] {
822
+ opacity: 1;
823
+ transition: opacity 120ms ease-out;
824
+ }
825
+
826
+ /* Keep the host frame measurable while pruning the expensive operation subtree
827
+ during a viewport resize burst. Navigation and the native sessions sidebar
828
+ remain rendered; the shield is removed after the viewport settles. */
829
+ html[data-dsh-prts] [data-prts-resize-shield] {
830
+ content-visibility: hidden !important;
831
+ contain-intrinsic-size: auto 800px;
832
+ }
833
+
834
+ /* Resize state lives on the small visual surfaces that need it, never on the root tree. */
835
+ html[data-dsh-prts] [data-prts-particle-layer][data-prts-resizing] {
836
+ opacity: .78;
837
+ transition: none;
838
+ }
839
+
840
+ html[data-dsh-prts] [data-prts-particle-layer][data-prts-resize-restoring] {
841
+ opacity: 1;
842
+ transition: opacity 120ms ease-out;
843
+ }
844
+
845
+ html[data-dsh-prts] [data-prts-ambient-layer][data-prts-resizing] {
846
+ opacity: .42;
847
+ background: color-mix(in srgb, var(--prts-panel) 92%, var(--prts-canvas));
848
+ transition: none;
849
+ }
850
+
851
+ html[data-dsh-prts] [data-prts-ambient-layer][data-prts-resizing] :is(
852
+ [data-prts-ambient-glow],
853
+ [data-prts-session-pickup]
854
+ ) {
855
+ animation-play-state: paused !important;
856
+ }
857
+
858
+ html[data-dsh-prts] :is(
859
+ [data-prts-conversation-preview][data-prts-resizing],
860
+ [data-prts-conversation-history-hint][data-prts-resizing],
861
+ [data-prts-conversation-history-status][data-prts-resizing],
862
+ [data-prts-theme-settings][data-prts-resizing],
863
+ [data-prts-settings-backdrop][data-prts-resizing]
864
+ ),
865
+ html[data-dsh-prts] [data-prts-resizing] > [data-composer-card] {
866
+ backdrop-filter: none !important;
867
+ -webkit-backdrop-filter: none !important;
868
+ transition: none !important;
869
+ }
870
+ html[data-dsh-prts] [data-prts-hero-active]::before {
871
+ content: "";
872
+ position: absolute;
873
+ inset: 0;
874
+ pointer-events: none;
875
+ }
876
+
877
+ html[data-dsh-prts] {
878
+ --prts-hero-mark-base: clamp(380px, 46%, 720px);
879
+ --prts-hero-mark-size: min(var(--prts-hero-mark-base), 42dvh);
880
+ }
881
+
882
+ /* COMPOSER AND CONTROLS */
883
+ html[data-dsh-prts] [data-prts-hero-active] [data-composer-seat],
884
+ html[data-dsh-prts] [data-prts-hero-active] [data-slot="conversation.composer"] {
885
+ position: relative;
886
+ z-index: 5;
887
+ }
888
+
889
+ html[data-dsh-prts] [data-composer-card],
890
+ html[data-dsh-prts] [data-prts-composer-fallback] {
891
+ position: relative;
892
+ border: 1px solid var(--prts-line-strong) !important;
893
+ border-bottom: 3px solid var(--prts-yellow) !important;
894
+ border-radius: var(--prts-radius-card) !important;
895
+ background: var(--prts-active-glass) !important;
896
+ clip-path: polygon(3px 0, calc(50% - 42px) 0, calc(50% - 37px) 5px, calc(50% + 37px) 5px, calc(50% + 42px) 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px), 0 3px);
897
+ box-shadow: 0 14px 34px rgba(0, 0, 0, .18);
898
+ backdrop-filter: var(--prts-active-glass-filter);
899
+ -webkit-backdrop-filter: var(--prts-active-glass-filter);
900
+ }
901
+
902
+ html[data-dsh-prts] [data-composer-card] textarea,
903
+ html[data-dsh-prts] [data-prts-composer-fallback] textarea {
904
+ border: 0 !important;
905
+ background: transparent !important;
906
+ color: var(--prts-ink) !important;
907
+ caret-color: var(--prts-yellow);
908
+ }
909
+
910
+ html[data-dsh-prts] [data-composer-card] button,
911
+ html[data-dsh-prts] [data-prts-conversation-control] {
912
+ border: 1px solid var(--prts-line) !important;
913
+ border-radius: var(--prts-radius-control) !important;
914
+ background: var(--prts-panel-raised) !important;
915
+ color: var(--prts-ink) !important;
916
+ clip-path: polygon(3px 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px), 0 3px);
917
+ }
918
+
919
+
920
+ html[data-dsh-prts] [data-composer-card] button:is(:hover, :focus-visible),
921
+ html[data-dsh-prts] [data-prts-conversation-control]:is(:hover, :focus-visible) {
922
+ border-color: var(--prts-yellow) !important;
923
+ }
924
+
925
+ html[data-dsh-prts] [data-composer-card] button[aria-label*="send" i],
926
+ html[data-dsh-prts] [data-composer-card] button[type="submit"] {
927
+ background: var(--prts-yellow) !important;
928
+ color: var(--prts-yellow-ink) !important;
929
+ }
930
+
931
+ html[data-dsh-prts] [data-composer-card] button:active,
932
+ html[data-dsh-prts] [data-prts-conversation-control]:active {
933
+ transform: translateY(1px) scale(.98);
934
+ }
935
+
936
+ html[data-dsh-prts] [data-produced-files-row] > button[type="button"],
937
+ html[data-dsh-prts] [data-prts-to-bottom] {
938
+ min-height: 36px;
939
+ border: 1px solid var(--prts-line) !important;
940
+ background: var(--prts-active-glass) !important;
941
+ color: var(--prts-ink) !important;
942
+ clip-path: polygon(3px 0, calc(100% - 3px) 0, 100% 3px, 100% calc(100% - 3px), calc(100% - 3px) 100%, 3px 100%, 0 calc(100% - 3px), 0 3px);
943
+ }
944
+
945
+ /* FLOATING MATERIALS */
946
+ html[data-dsh-prts] [data-prts-glass-control="model"],
947
+ html[data-dsh-prts] [data-prts-glass-control="permission"],
948
+ html[data-dsh-prts] [data-prts-glass-control="preset"] {
949
+ border: 1px solid var(--prts-line) !important;
950
+ border-radius: var(--prts-radius-control) !important;
951
+ background: var(--prts-active-glass) !important;
952
+ color: var(--prts-ink) !important;
953
+ }
954
+
955
+ html[data-dsh-prts] [data-prts-glass-menu],
956
+ html[data-dsh-prts] [data-prts-floating-glass="menu"],
957
+ html[data-dsh-prts] [data-prts-floating-glass="listbox"],
958
+ html[data-dsh-prts] [data-prts-floating-glass="popover"] {
959
+ border: 1px solid var(--prts-glass-border) !important;
960
+ border-radius: var(--prts-radius-overlay) !important;
961
+ background: var(--prts-active-glass) !important;
962
+ color: var(--prts-ink) !important;
963
+ box-shadow: var(--prts-shadow-glass-overlay) !important;
964
+ backdrop-filter: var(--prts-active-glass-filter);
965
+ -webkit-backdrop-filter: var(--prts-active-glass-filter);
966
+ }
967
+
968
+ html[data-dsh-prts] [data-prts-floating-glass="dialog"] {
969
+ border: 1px solid var(--prts-glass-border) !important;
970
+ border-radius: var(--prts-radius-overlay) !important;
971
+ background: var(--prts-panel) !important;
972
+ color: var(--prts-ink) !important;
973
+ box-shadow: var(--prts-shadow-glass-overlay) !important;
974
+ backdrop-filter: none;
975
+ -webkit-backdrop-filter: none;
976
+ }
977
+
978
+ html[data-dsh-prts] [data-prts-floating-item] {
979
+ min-height: 38px;
980
+ border-radius: var(--prts-radius-control) !important;
981
+ color: var(--prts-ink) !important;
982
+ }
983
+
984
+ html[data-dsh-prts] [data-prts-floating-item]:is(:hover, [data-highlighted]) {
985
+ background: var(--prts-panel-muted) !important;
986
+ }
987
+
988
+ html[data-dsh-prts] [data-prts-floating-input] {
989
+ min-height: 44px;
990
+ border: 1px solid var(--prts-line) !important;
991
+ background: var(--prts-panel) !important;
992
+ color: var(--prts-ink) !important;
993
+ }
994
+
995
+ html[data-dsh-prts] [data-prts-floating-danger] {
996
+ color: var(--prts-red) !important;
997
+ }
998
+
999
+ html[data-dsh-prts] [data-prts-floating-scrim] {
1000
+ background: rgba(3, 5, 6, .62) !important;
1001
+ }
1002
+
1003
+ /* SETTINGS → PLUGINS / P.R.T.S. */
1004
+ html[data-dsh-prts-settings] .prts-plugin-settings {
1005
+ width: 100%;
1006
+ display: grid;
1007
+ gap: 16px;
1008
+ color: inherit;
1009
+ font: inherit;
1010
+ }
1011
+
1012
+ html[data-dsh-prts-settings] .prts-plugin-settings__header {
1013
+ display: grid;
1014
+ gap: 5px;
1015
+ padding-bottom: 14px;
1016
+ border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent);
1017
+ }
1018
+
1019
+ html[data-dsh-prts-settings] .prts-plugin-settings__header h3,
1020
+ html[data-dsh-prts-settings] .prts-plugin-settings__header p {
1021
+ margin: 0;
1022
+ }
1023
+
1024
+ html[data-dsh-prts-settings] .prts-plugin-settings__header h3 {
1025
+ font-size: 18px;
1026
+ font-weight: 650;
1027
+ }
1028
+
1029
+ html[data-dsh-prts-settings] .prts-plugin-settings__header p,
1030
+ html[data-dsh-prts-settings] .prts-plugin-settings__copy small {
1031
+ color: color-mix(in srgb, currentColor 62%, transparent);
1032
+ font-size: 12px;
1033
+ line-height: 1.5;
1034
+ }
1035
+
1036
+ html[data-dsh-prts-settings] .prts-plugin-settings__safe {
1037
+ margin: 0;
1038
+ padding: 10px 12px;
1039
+ border: 1px solid color-mix(in srgb, #df5750 42%, transparent);
1040
+ border-radius: 8px;
1041
+ background: color-mix(in srgb, #df5750 8%, transparent);
1042
+ color: inherit;
1043
+ font-size: 12px;
1044
+ }
1045
+
1046
+ html[data-dsh-prts-settings] .prts-plugin-settings__list {
1047
+ overflow: hidden;
1048
+ border: 1px solid color-mix(in srgb, currentColor 16%, transparent);
1049
+ border-radius: 10px;
1050
+ }
1051
+
1052
+ html[data-dsh-prts-settings] .prts-plugin-settings__row {
1053
+ min-height: 64px;
1054
+ display: flex;
1055
+ align-items: center;
1056
+ justify-content: space-between;
1057
+ gap: 20px;
1058
+ padding: 12px 14px;
1059
+ }
1060
+
1061
+ html[data-dsh-prts-settings] .prts-plugin-settings__row + .prts-plugin-settings__row {
1062
+ border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent);
1063
+ }
1064
+
1065
+ html[data-dsh-prts-settings] .prts-plugin-settings__copy {
1066
+ min-width: 0;
1067
+ display: grid;
1068
+ gap: 3px;
1069
+ }
1070
+
1071
+ html[data-dsh-prts-settings] .prts-plugin-settings__copy strong {
1072
+ font-size: 13px;
1073
+ font-weight: 600;
1074
+ }
1075
+
1076
+ html[data-dsh-prts-settings] .prts-plugin-settings button[role='switch'] {
1077
+ position: relative;
1078
+ width: 42px;
1079
+ height: 24px;
1080
+ flex: 0 0 auto;
1081
+ padding: 0;
1082
+ border: 0;
1083
+ border-radius: 999px;
1084
+ background: color-mix(in srgb, currentColor 18%, transparent);
1085
+ color: inherit;
1086
+ cursor: pointer;
1087
+ }
1088
+
1089
+ html[data-dsh-prts-settings] .prts-plugin-settings button[role='switch'] > span {
1090
+ position: absolute;
1091
+ top: 3px;
1092
+ left: 3px;
1093
+ width: 18px;
1094
+ height: 18px;
1095
+ border-radius: 50%;
1096
+ background: currentColor;
1097
+ transition: transform 120ms ease;
1098
+ }
1099
+
1100
+ html[data-dsh-prts-settings] .prts-plugin-settings button[role='switch'].is-active {
1101
+ background: var(--color-primary, #d9b800);
1102
+ color: #111;
1103
+ }
1104
+
1105
+ html[data-dsh-prts-settings] .prts-plugin-settings button[role='switch'].is-active > span {
1106
+ transform: translateX(18px);
1107
+ }
1108
+
1109
+ html[data-dsh-prts-settings] .prts-plugin-settings button[role='switch']:disabled {
1110
+ cursor: not-allowed;
1111
+ opacity: .45;
1112
+ }
1113
+
1114
+ @media (prefers-reduced-motion: reduce) {
1115
+ html[data-dsh-prts-settings] .prts-plugin-settings button[role='switch'] > span {
1116
+ transition: none;
1117
+ }
1118
+ }
1119
+
1120
+
1121
+ @media (max-width: 640px) {
1122
+ html[data-dsh-prts] {
1123
+ --prts-nav-width: 52px;
1124
+ }
1125
+
1126
+ html[data-dsh-prts] [data-conversation-scroll]::before {
1127
+ left: 18px;
1128
+ }
1129
+
1130
+ html[data-dsh-prts] [data-message-role]::before,
1131
+ html[data-dsh-prts] [data-chat-flow-kind]::before {
1132
+ left: -25px;
1133
+ }
1134
+
1135
+ html[data-dsh-prts] [data-slot="conversation.session.header"] {
1136
+ padding-inline: 12px;
1137
+ }
1138
+
1139
+ html[data-dsh-prts-settings] .prts-settings {
1140
+ padding: 12px;
1141
+ }
1142
+ }
1143
+
1144
+ @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
1145
+ html[data-dsh-prts] [data-prts-floating-glass],
1146
+ html[data-dsh-prts] [data-composer-card],
1147
+ html[data-dsh-prts] [data-prts-glass-menu] {
1148
+ background: var(--prts-panel) !important;
1149
+ }
1150
+ }
1151
+
1152
+ @media (hover: hover) and (pointer: fine) {
1153
+ html[data-dsh-prts] [data-prts-nav-rail] > button:hover b {
1154
+ transform: translateY(-1px);
1155
+ }
1156
+ }
1157
+
1158
+ @media (prefers-reduced-transparency: reduce) {
1159
+ html[data-dsh-prts] {
1160
+ --prts-active-glass: var(--prts-panel);
1161
+ --prts-active-glass-filter: none;
1162
+ }
1163
+ }
1164
+
1165
+ @media (prefers-contrast: more) {
1166
+ html[data-dsh-prts] {
1167
+ --prts-line: currentColor;
1168
+ --prts-line-strong: currentColor;
1169
+ }
1170
+ }
1171
+
1172
+ @media (prefers-reduced-motion: reduce) {
1173
+ html[data-dsh-prts] :is(
1174
+ [data-prts-shell],
1175
+ [data-prts-shell] *,
1176
+ [data-prts-particle-layer],
1177
+ [data-prts-ambient-layer],
1178
+ [data-prts-conversation-scale],
1179
+ [data-prts-conversation-scale] *,
1180
+ [data-prts-conversation-preview],
1181
+ [data-prts-conversation-preview] *,
1182
+ [data-prts-facility-face],
1183
+ [data-composer-card],
1184
+ [data-prts-composer-fallback],
1185
+ [data-prts-conversation-control],
1186
+ [data-prts-to-bottom]
1187
+ ),
1188
+ html[data-dsh-prts] :is(
1189
+ [data-prts-shell],
1190
+ [data-prts-shell] *,
1191
+ [data-prts-particle-layer],
1192
+ [data-prts-ambient-layer],
1193
+ [data-prts-conversation-scale],
1194
+ [data-prts-conversation-scale] *,
1195
+ [data-prts-conversation-preview],
1196
+ [data-prts-conversation-preview] *,
1197
+ [data-prts-facility-face],
1198
+ [data-composer-card],
1199
+ [data-prts-composer-fallback],
1200
+ [data-prts-conversation-control],
1201
+ [data-prts-to-bottom]
1202
+ )::before,
1203
+ html[data-dsh-prts] :is(
1204
+ [data-prts-shell],
1205
+ [data-prts-shell] *,
1206
+ [data-prts-particle-layer],
1207
+ [data-prts-ambient-layer],
1208
+ [data-prts-conversation-scale],
1209
+ [data-prts-conversation-scale] *,
1210
+ [data-prts-conversation-preview],
1211
+ [data-prts-conversation-preview] *,
1212
+ [data-prts-facility-face],
1213
+ [data-composer-card],
1214
+ [data-prts-composer-fallback],
1215
+ [data-prts-conversation-control],
1216
+ [data-prts-to-bottom]
1217
+ )::after {
1218
+ scroll-behavior: auto !important;
1219
+ animation-duration: .01ms !important;
1220
+ animation-iteration-count: 1 !important;
1221
+ transition-duration: .01ms !important;
1222
+ }
1223
+ }