@openprd/cli 0.1.18 → 0.1.19

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.
@@ -0,0 +1,898 @@
1
+ /*
2
+ * Core purpose
3
+ * Hold the CSS for the `openprd canvas` browser shell.
4
+ *
5
+ * Positioning
6
+ * Extracted from canvas-app.html.js so the HTML renderer stays small.
7
+ * This is a raw <style> payload; keep it dependency-free.
8
+ */
9
+ export const CANVAS_APP_STYLES = `
10
+ :root {
11
+ color-scheme: light;
12
+ --paper: #ffffff;
13
+ --ink: #111827;
14
+ --muted: #64748b;
15
+ --line: #e5e7eb;
16
+ --rail: #ffffff;
17
+ --accent: #2563eb;
18
+ --accent-hover: #1d4ed8;
19
+ --accent-soft: #eff6ff;
20
+ --warn: #b45309;
21
+ }
22
+
23
+ * {
24
+ box-sizing: border-box;
25
+ }
26
+
27
+ html,
28
+ body,
29
+ #root {
30
+ width: 100%;
31
+ height: 100%;
32
+ margin: 0;
33
+ }
34
+
35
+ body {
36
+ font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
37
+ background: var(--paper);
38
+ color: var(--ink);
39
+ letter-spacing: 0;
40
+ overflow: hidden;
41
+ }
42
+
43
+ button,
44
+ input,
45
+ select,
46
+ textarea {
47
+ font: inherit;
48
+ }
49
+
50
+ .shell {
51
+ display: grid;
52
+ grid-template-rows: 48px minmax(0, 1fr);
53
+ width: 100%;
54
+ height: 100%;
55
+ background: var(--paper);
56
+ }
57
+
58
+ .topbar {
59
+ display: flex;
60
+ align-items: center;
61
+ gap: 12px;
62
+ min-width: 0;
63
+ padding: 0 16px;
64
+ border-bottom: 1px solid var(--line);
65
+ background: rgba(255, 255, 255, 0.96);
66
+ }
67
+
68
+ .brand {
69
+ display: flex;
70
+ align-items: baseline;
71
+ gap: 8px;
72
+ min-width: 220px;
73
+ white-space: nowrap;
74
+ }
75
+
76
+ .brand strong {
77
+ font-size: 14px;
78
+ line-height: 1;
79
+ }
80
+
81
+ .brand span {
82
+ color: var(--muted);
83
+ font-size: 12px;
84
+ }
85
+
86
+ .chipbar {
87
+ display: flex;
88
+ flex-wrap: nowrap;
89
+ gap: 8px;
90
+ min-width: 0;
91
+ overflow: hidden;
92
+ }
93
+
94
+ .chip {
95
+ display: inline-flex;
96
+ align-items: center;
97
+ min-width: 0;
98
+ height: 26px;
99
+ max-width: min(30vw, 360px);
100
+ padding: 0 9px;
101
+ border: 1px solid var(--line);
102
+ border-radius: 6px;
103
+ color: var(--muted);
104
+ background: #ffffff;
105
+ font-size: 12px;
106
+ white-space: nowrap;
107
+ }
108
+
109
+ .chip span {
110
+ overflow: hidden;
111
+ text-overflow: ellipsis;
112
+ }
113
+
114
+ .actions {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: 8px;
118
+ margin-left: auto;
119
+ white-space: nowrap;
120
+ }
121
+
122
+ .icon-button,
123
+ .text-button {
124
+ display: inline-flex;
125
+ align-items: center;
126
+ justify-content: center;
127
+ height: 32px;
128
+ border: 1px solid var(--line);
129
+ border-radius: 6px;
130
+ color: var(--ink);
131
+ background: #ffffff;
132
+ cursor: pointer;
133
+ }
134
+
135
+ .icon-button {
136
+ width: 34px;
137
+ }
138
+
139
+ .text-button {
140
+ gap: 7px;
141
+ padding: 0 10px;
142
+ }
143
+
144
+ .icon-button:hover,
145
+ .text-button:hover {
146
+ border-color: #bfdbfe;
147
+ background: var(--accent-soft);
148
+ }
149
+
150
+ .primary-button {
151
+ border-color: var(--accent);
152
+ color: #ffffff;
153
+ background: var(--accent);
154
+ }
155
+
156
+ .primary-button:hover {
157
+ border-color: var(--accent-hover);
158
+ background: var(--accent-hover);
159
+ }
160
+
161
+ .subtle-button {
162
+ border-color: #e2e8f0;
163
+ color: #334155;
164
+ background: #f1f5f9;
165
+ }
166
+
167
+ .subtle-button:hover {
168
+ border-color: #cbd5e1;
169
+ color: #1f2937;
170
+ background: #e5e7eb;
171
+ }
172
+
173
+ .text-button:disabled {
174
+ cursor: default;
175
+ }
176
+
177
+ .primary-button:disabled {
178
+ opacity: 1;
179
+ border-color: var(--accent);
180
+ color: #ffffff;
181
+ background: var(--accent);
182
+ box-shadow: none;
183
+ }
184
+
185
+ .text-button:disabled:not(.primary-button) {
186
+ opacity: 0.6;
187
+ border-color: var(--line);
188
+ color: #9ca3af;
189
+ background: #f8fafc;
190
+ }
191
+
192
+ .language-select {
193
+ height: 32px;
194
+ min-width: 84px;
195
+ padding: 0 8px;
196
+ border: 1px solid var(--line);
197
+ border-radius: 6px;
198
+ color: var(--ink);
199
+ background: #ffffff;
200
+ cursor: pointer;
201
+ }
202
+
203
+ .language-select:focus,
204
+ .language-select:focus-visible {
205
+ outline: none;
206
+ border-color: #cbd5e1;
207
+ box-shadow: none;
208
+ }
209
+
210
+ .layout {
211
+ display: grid;
212
+ grid-template-columns: minmax(0, 1fr) 232px;
213
+ min-height: 0;
214
+ }
215
+
216
+ .rail {
217
+ min-width: 0;
218
+ border-left: 1px solid var(--line);
219
+ background: var(--rail);
220
+ padding: 18px 16px;
221
+ overflow: auto;
222
+ }
223
+
224
+ .rail-section {
225
+ margin-bottom: 18px;
226
+ }
227
+
228
+ .rail-title {
229
+ margin: 0 0 8px;
230
+ color: var(--muted);
231
+ font-size: 11px;
232
+ font-weight: 700;
233
+ letter-spacing: 0.08em;
234
+ text-transform: uppercase;
235
+ }
236
+
237
+ .rail-value {
238
+ margin: 0;
239
+ color: var(--ink);
240
+ font-size: 13px;
241
+ line-height: 1.45;
242
+ overflow-wrap: anywhere;
243
+ }
244
+
245
+ .thread-summary {
246
+ display: grid;
247
+ gap: 6px;
248
+ padding: 0;
249
+ }
250
+
251
+ .thread-title {
252
+ margin: 0;
253
+ color: var(--ink);
254
+ font-size: 14px;
255
+ font-weight: 700;
256
+ line-height: 1.35;
257
+ overflow-wrap: anywhere;
258
+ }
259
+
260
+ .thread-id {
261
+ margin: 0;
262
+ color: var(--muted);
263
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
264
+ font-size: 11px;
265
+ line-height: 1.45;
266
+ overflow-wrap: anywhere;
267
+ }
268
+
269
+ .thread-id-row {
270
+ display: grid;
271
+ grid-template-columns: minmax(0, 1fr) 28px;
272
+ align-items: start;
273
+ gap: 6px;
274
+ }
275
+
276
+ .thread-copy-button {
277
+ display: inline-flex;
278
+ align-items: center;
279
+ justify-content: center;
280
+ width: 28px;
281
+ height: 28px;
282
+ border: 1px solid #dbeafe;
283
+ border-radius: 6px;
284
+ color: var(--accent);
285
+ background: var(--accent-soft);
286
+ cursor: pointer;
287
+ }
288
+
289
+ .thread-copy-button svg {
290
+ width: 15px;
291
+ height: 15px;
292
+ }
293
+
294
+ .thread-copy-button:hover {
295
+ border-color: #bfdbfe;
296
+ background: #dbeafe;
297
+ }
298
+
299
+ .thread-copy-button:focus,
300
+ .thread-copy-button:focus-visible {
301
+ outline: none;
302
+ border-color: var(--accent);
303
+ box-shadow: 0 0 0 2px #dbeafe;
304
+ }
305
+
306
+ .rail-actions {
307
+ display: grid;
308
+ gap: 8px;
309
+ margin-top: 20px;
310
+ padding-top: 16px;
311
+ border-top: 1px solid var(--line);
312
+ }
313
+
314
+ .rail-heading {
315
+ margin: 0 0 2px;
316
+ color: var(--muted);
317
+ font-size: 11px;
318
+ font-weight: 700;
319
+ letter-spacing: 0.08em;
320
+ text-transform: uppercase;
321
+ }
322
+
323
+ .rail-action-group {
324
+ display: grid;
325
+ gap: 7px;
326
+ margin-bottom: 10px;
327
+ }
328
+
329
+ .guide-strip {
330
+ display: grid;
331
+ gap: 4px;
332
+ padding: 9px 11px;
333
+ border: 1px solid #c7d2fe;
334
+ border-radius: 8px;
335
+ background: #eef2ff;
336
+ }
337
+
338
+ .guide-strip strong {
339
+ color: #3730a3;
340
+ font-size: 12px;
341
+ line-height: 1.4;
342
+ }
343
+
344
+ .guide-strip span {
345
+ color: #52525b;
346
+ font-size: 11px;
347
+ line-height: 1.45;
348
+ }
349
+
350
+ .rail-action-grid {
351
+ display: grid;
352
+ grid-template-columns: repeat(3, minmax(0, 1fr));
353
+ gap: 6px;
354
+ }
355
+
356
+ .rail-action-button {
357
+ display: grid;
358
+ grid-template-rows: auto auto;
359
+ place-items: center;
360
+ gap: 5px;
361
+ width: 100%;
362
+ min-height: 58px;
363
+ padding: 7px 4px;
364
+ border: 1px solid var(--line);
365
+ border-radius: 6px;
366
+ color: var(--ink);
367
+ background: #ffffff;
368
+ font-size: 12px;
369
+ line-height: 1.15;
370
+ cursor: pointer;
371
+ text-align: center;
372
+ }
373
+
374
+ .rail-action-button svg {
375
+ width: 18px;
376
+ height: 18px;
377
+ }
378
+
379
+ .rail-action-button span {
380
+ display: block;
381
+ max-width: 100%;
382
+ overflow: hidden;
383
+ text-overflow: ellipsis;
384
+ white-space: nowrap;
385
+ }
386
+
387
+ .rail-action-button:hover {
388
+ border-color: #bfdbfe;
389
+ background: var(--accent-soft);
390
+ }
391
+
392
+ .rail-action-button.primary {
393
+ border-color: var(--accent);
394
+ color: #ffffff;
395
+ background: var(--accent);
396
+ }
397
+
398
+ .rail-action-button.primary:hover {
399
+ border-color: var(--accent-hover);
400
+ background: var(--accent-hover);
401
+ }
402
+
403
+ .rail-action-button.danger {
404
+ border-color: #fecaca;
405
+ color: #b91c1c;
406
+ }
407
+
408
+ .rail-action-button.danger:hover {
409
+ border-color: #fca5a5;
410
+ background: #fef2f2;
411
+ }
412
+
413
+ .rail-action-button:disabled {
414
+ cursor: default;
415
+ }
416
+
417
+ .rail-action-button:disabled:not(.primary) {
418
+ opacity: 0.6;
419
+ color: #9ca3af;
420
+ background: #f8fafc;
421
+ }
422
+
423
+ .rail-action-button.primary:disabled {
424
+ opacity: 1;
425
+ border-color: var(--accent);
426
+ color: #ffffff;
427
+ background: var(--accent);
428
+ }
429
+
430
+ .action-status {
431
+ display: grid;
432
+ gap: 8px;
433
+ margin: 2px 0 8px;
434
+ padding: 8px 9px;
435
+ border: 1px solid #bbf7d0;
436
+ border-radius: 6px;
437
+ color: #333333;
438
+ background: #ecfdf5;
439
+ font-size: 12px;
440
+ line-height: 1.4;
441
+ overflow-wrap: anywhere;
442
+ }
443
+
444
+ .action-status.busy {
445
+ border-color: #bfdbfe;
446
+ color: #1e3a8a;
447
+ background: #eff6ff;
448
+ }
449
+
450
+ .action-status.error {
451
+ border-color: #fecaca;
452
+ color: #991b1b;
453
+ background: #fef2f2;
454
+ }
455
+
456
+ .status-folder-button {
457
+ justify-self: start;
458
+ min-height: 28px;
459
+ padding: 5px 9px;
460
+ border: 1px solid var(--accent);
461
+ border-radius: 6px;
462
+ color: #ffffff;
463
+ background: var(--accent);
464
+ font-size: 12px;
465
+ font-weight: 600;
466
+ cursor: pointer;
467
+ }
468
+
469
+ .status-folder-button:hover {
470
+ border-color: var(--accent-hover);
471
+ background: var(--accent-hover);
472
+ }
473
+
474
+ .status-folder-button:disabled {
475
+ cursor: default;
476
+ opacity: 0.75;
477
+ }
478
+
479
+ .library-grid {
480
+ display: grid;
481
+ grid-template-columns: repeat(2, minmax(0, 1fr));
482
+ gap: 8px;
483
+ }
484
+
485
+ .library-tile {
486
+ display: grid;
487
+ gap: 6px;
488
+ min-width: 0;
489
+ padding: 8px;
490
+ border: 1px solid var(--line);
491
+ border-radius: 6px;
492
+ color: var(--ink);
493
+ background: #ffffff;
494
+ cursor: pointer;
495
+ text-align: left;
496
+ }
497
+
498
+ .library-tile:hover {
499
+ border-color: #bfdbfe;
500
+ background: var(--accent-soft);
501
+ }
502
+
503
+ .library-card-preview {
504
+ position: relative;
505
+ width: 100%;
506
+ aspect-ratio: 4 / 3;
507
+ border: 1px solid #94a3b8;
508
+ border-radius: 5px;
509
+ background: #ffffff;
510
+ }
511
+
512
+ .library-card-preview::after {
513
+ content: "";
514
+ position: absolute;
515
+ inset: 38% 18%;
516
+ border-top: 2px solid #cbd5e1;
517
+ border-bottom: 2px solid #e2e8f0;
518
+ }
519
+
520
+ .library-item-preview {
521
+ display: grid;
522
+ place-items: center;
523
+ width: 100%;
524
+ aspect-ratio: 4 / 3;
525
+ overflow: hidden;
526
+ border: 1px solid #cbd5e1;
527
+ border-radius: 5px;
528
+ background: #ffffff;
529
+ }
530
+
531
+ .library-item-preview img {
532
+ width: 100%;
533
+ height: 100%;
534
+ object-fit: contain;
535
+ }
536
+
537
+ .library-item-preview span {
538
+ color: var(--muted);
539
+ font-size: 11px;
540
+ font-weight: 600;
541
+ }
542
+
543
+ .library-tile span {
544
+ color: var(--ink);
545
+ font-size: 12px;
546
+ font-weight: 600;
547
+ line-height: 1.25;
548
+ overflow-wrap: anywhere;
549
+ }
550
+
551
+ .template-grid {
552
+ display: grid;
553
+ grid-template-columns: repeat(2, minmax(0, 1fr));
554
+ gap: 8px;
555
+ }
556
+
557
+ .template-tile {
558
+ display: grid;
559
+ gap: 6px;
560
+ min-width: 0;
561
+ padding: 8px;
562
+ border: 1px solid var(--line);
563
+ border-radius: 6px;
564
+ color: var(--ink);
565
+ background: #ffffff;
566
+ cursor: pointer;
567
+ text-align: left;
568
+ }
569
+
570
+ .template-tile:hover {
571
+ border-color: #bfdbfe;
572
+ background: var(--accent-soft);
573
+ }
574
+
575
+ .template-preview {
576
+ position: relative;
577
+ display: grid;
578
+ place-items: center;
579
+ width: 100%;
580
+ min-height: 42px;
581
+ max-height: 86px;
582
+ overflow: hidden;
583
+ border: 1px dashed #93c5fd;
584
+ border-radius: 5px;
585
+ background: #eff6ff;
586
+ }
587
+
588
+ .template-preview::before {
589
+ content: "AI";
590
+ display: inline-grid;
591
+ place-items: center;
592
+ width: 30px;
593
+ height: 20px;
594
+ border-radius: 5px;
595
+ color: #ffffff;
596
+ background: var(--accent);
597
+ font-size: 11px;
598
+ font-weight: 800;
599
+ letter-spacing: 0;
600
+ }
601
+
602
+ .template-tile strong,
603
+ .template-tile span {
604
+ color: var(--ink);
605
+ font-size: 12px;
606
+ line-height: 1.25;
607
+ overflow-wrap: anywhere;
608
+ }
609
+
610
+ .template-tile strong {
611
+ font-weight: 700;
612
+ }
613
+
614
+ .template-tile span {
615
+ color: var(--muted);
616
+ font-weight: 600;
617
+ }
618
+
619
+ .template-compose-preview {
620
+ display: grid;
621
+ place-items: center;
622
+ padding: 14px;
623
+ border: 1px solid var(--line);
624
+ border-radius: 6px;
625
+ background: #f8fafc;
626
+ }
627
+
628
+ .template-compose-frame {
629
+ position: relative;
630
+ display: grid;
631
+ place-items: center;
632
+ width: min(100%, 320px);
633
+ max-height: 240px;
634
+ border: 1px dashed #93c5fd;
635
+ border-radius: 6px;
636
+ background: #eff6ff;
637
+ color: #1e3a8a;
638
+ font-size: 13px;
639
+ font-weight: 700;
640
+ }
641
+
642
+ .template-compose-frame::before {
643
+ content: "AI";
644
+ position: absolute;
645
+ top: 10px;
646
+ left: 10px;
647
+ display: inline-grid;
648
+ place-items: center;
649
+ width: 34px;
650
+ height: 22px;
651
+ border-radius: 5px;
652
+ color: #ffffff;
653
+ background: var(--accent);
654
+ font-size: 12px;
655
+ font-weight: 800;
656
+ letter-spacing: 0;
657
+ }
658
+
659
+ .rail-note {
660
+ margin: 6px 0 0;
661
+ color: var(--muted);
662
+ font-size: 12px;
663
+ line-height: 1.45;
664
+ }
665
+
666
+ .path {
667
+ padding: 8px;
668
+ border: 1px solid var(--line);
669
+ border-radius: 6px;
670
+ background: #ffffff;
671
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
672
+ font-size: 11px;
673
+ line-height: 1.4;
674
+ overflow-wrap: anywhere;
675
+ }
676
+
677
+ .canvas-wrap {
678
+ position: relative;
679
+ min-width: 0;
680
+ min-height: 0;
681
+ background: #f8fafc;
682
+ }
683
+
684
+ .canvas-wrap .excalidraw {
685
+ --color-primary: #2563eb;
686
+ --color-primary-darker: #1d4ed8;
687
+ --color-primary-light: #eff6ff;
688
+ --border-radius-md: 6px;
689
+ --border-radius-lg: 8px;
690
+ height: 100%;
691
+ }
692
+
693
+ .canvas-wrap .excalidraw [data-testid="main-menu-trigger"],
694
+ .canvas-wrap .excalidraw .main-menu-trigger,
695
+ .canvas-wrap .excalidraw [data-testid="library-button"],
696
+ .canvas-wrap .excalidraw .library-button,
697
+ .canvas-wrap .excalidraw .default-sidebar-trigger,
698
+ .canvas-wrap .excalidraw .sidebar-trigger__label-element,
699
+ .canvas-wrap .excalidraw button[aria-label="Library"],
700
+ .canvas-wrap .excalidraw button[aria-label="素材库"],
701
+ .canvas-wrap .excalidraw button[title="Library"],
702
+ .canvas-wrap .excalidraw button[title="素材库"] {
703
+ display: none !important;
704
+ }
705
+
706
+ .fallback {
707
+ display: grid;
708
+ place-items: center;
709
+ height: 100%;
710
+ padding: 32px;
711
+ color: var(--muted);
712
+ text-align: center;
713
+ }
714
+
715
+ .fallback strong {
716
+ display: block;
717
+ margin-bottom: 8px;
718
+ color: var(--ink);
719
+ }
720
+
721
+ .fallback pre {
722
+ max-width: min(760px, calc(100vw - 48px));
723
+ max-height: 220px;
724
+ margin: 14px 0 0;
725
+ padding: 10px 12px;
726
+ overflow: auto;
727
+ border: 1px solid var(--line);
728
+ border-radius: 6px;
729
+ background: #ffffff;
730
+ color: var(--warn);
731
+ font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
732
+ font-size: 11px;
733
+ line-height: 1.5;
734
+ text-align: left;
735
+ white-space: pre-wrap;
736
+ }
737
+
738
+ .selection-sendbar {
739
+ position: absolute;
740
+ z-index: 20;
741
+ left: 50%;
742
+ bottom: 20px;
743
+ display: flex;
744
+ align-items: center;
745
+ gap: 12px;
746
+ max-width: calc(100% - 40px);
747
+ padding: 8px;
748
+ border: 1px solid var(--line);
749
+ border-radius: 8px;
750
+ background: rgba(255, 255, 255, 0.98);
751
+ box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
752
+ transform: translateX(-50%);
753
+ }
754
+
755
+ .selection-sendbar strong {
756
+ font-size: 12px;
757
+ white-space: nowrap;
758
+ }
759
+
760
+ .selection-sendbar .text-button {
761
+ min-width: 118px;
762
+ flex: 0 0 auto;
763
+ white-space: nowrap;
764
+ }
765
+
766
+ .selection-sendbar .primary-button {
767
+ min-width: 136px;
768
+ }
769
+
770
+ .selection-sendbar .text-button span {
771
+ white-space: nowrap;
772
+ }
773
+
774
+ .composer-backdrop {
775
+ position: absolute;
776
+ inset: 0;
777
+ z-index: 30;
778
+ display: grid;
779
+ place-items: center;
780
+ padding: 24px;
781
+ background: rgba(15, 23, 42, 0.28);
782
+ }
783
+
784
+ .composer-modal {
785
+ width: min(560px, calc(100vw - 48px));
786
+ max-height: calc(100vh - 96px);
787
+ overflow: auto;
788
+ border: 1px solid var(--line);
789
+ border-radius: 8px;
790
+ background: #ffffff;
791
+ box-shadow: 0 20px 48px rgba(15, 23, 42, 0.22);
792
+ }
793
+
794
+ .composer-header,
795
+ .composer-body,
796
+ .composer-actions {
797
+ padding: 16px;
798
+ }
799
+
800
+ .composer-header {
801
+ display: flex;
802
+ align-items: center;
803
+ justify-content: space-between;
804
+ gap: 12px;
805
+ border-bottom: 1px solid var(--line);
806
+ }
807
+
808
+ .composer-header h2 {
809
+ margin: 0;
810
+ color: var(--ink);
811
+ font-size: 16px;
812
+ line-height: 1.3;
813
+ }
814
+
815
+ .composer-body {
816
+ display: grid;
817
+ gap: 12px;
818
+ }
819
+
820
+ .composer-label {
821
+ margin: 0;
822
+ color: var(--muted);
823
+ font-size: 12px;
824
+ font-weight: 700;
825
+ line-height: 1.35;
826
+ }
827
+
828
+ .composer-preview {
829
+ width: 100%;
830
+ min-height: 180px;
831
+ max-height: 340px;
832
+ border: 1px solid var(--line);
833
+ border-radius: 6px;
834
+ background: #f8fafc;
835
+ object-fit: contain;
836
+ }
837
+
838
+ .composer-input {
839
+ width: 100%;
840
+ min-height: 110px;
841
+ padding: 10px 12px;
842
+ border: 1px solid var(--line);
843
+ border-radius: 6px;
844
+ color: var(--ink);
845
+ background: #ffffff;
846
+ font: inherit;
847
+ line-height: 1.5;
848
+ resize: vertical;
849
+ }
850
+
851
+ .composer-input:focus {
852
+ outline: 2px solid #bfdbfe;
853
+ border-color: var(--accent);
854
+ }
855
+
856
+ .composer-status {
857
+ margin: 0;
858
+ color: var(--muted);
859
+ font-size: 12px;
860
+ line-height: 1.45;
861
+ }
862
+
863
+ .composer-error {
864
+ margin: 0;
865
+ color: #b91c1c;
866
+ font-size: 12px;
867
+ line-height: 1.45;
868
+ }
869
+
870
+ .composer-actions {
871
+ display: flex;
872
+ justify-content: flex-end;
873
+ gap: 8px;
874
+ border-top: 1px solid var(--line);
875
+ }
876
+
877
+ @media (max-width: 860px) {
878
+ .layout {
879
+ grid-template-columns: 1fr;
880
+ }
881
+
882
+ .rail {
883
+ display: none;
884
+ }
885
+
886
+ .brand {
887
+ min-width: 150px;
888
+ }
889
+
890
+ .chipbar {
891
+ display: none;
892
+ }
893
+
894
+ .text-button span {
895
+ display: none;
896
+ }
897
+ }
898
+ `;