返回 ViMax
styles.css
根目录 / web / src / styles.css
1 :root {
2 font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display', 'Helvetica Neue', sans-serif;
3 color: #20242a;
4 background: #ffffff;
5 font-synthesis: none;
6 text-rendering: optimizeLegibility;
7 --canvas: #ffffff;
8 --sidebar: #f2f4f7;
9 --surface: #ffffff;
10 --surface-soft: #f7f8fa;
11 --ink: #20242a;
12 --muted: #737b85;
13 --faint: #a3a9b2;
14 --line: #e2e5e9;
15 --line-strong: #d3d8de;
16 --blue: #1769d2;
17 --cyan: #0b98a2;
18 --magenta: #a33b96;
19 --green: #27845a;
20 --amber: #a96d17;
21 --red: #c54444;
22 }
23
24 * {
25 box-sizing: border-box;
26 }
27
28 html,
29 body,
30 #root {
31 width: 100%;
32 height: 100%;
33 margin: 0;
34 }
35
36 body {
37 overflow: hidden;
38 background: var(--canvas);
39 }
40
41 button,
42 input,
43 textarea,
44 select {
45 font: inherit;
46 }
47
48 button {
49 color: inherit;
50 }
51
52 button:focus-visible,
53 textarea:focus-visible,
54 select:focus-visible,
55 a:focus-visible {
56 outline: 2px solid color-mix(in srgb, var(--blue) 58%, white);
57 outline-offset: 2px;
58 }
59
60 .app-shell {
61 display: flex;
62 width: 100%;
63 height: 100dvh;
64 min-height: 520px;
65 overflow: hidden;
66 }
67
68 .sidebar {
69 position: relative;
70 z-index: 20;
71 display: flex;
72 flex: 0 0 288px;
73 width: 288px;
74 min-width: 0;
75 height: 100%;
76 flex-direction: column;
77 overflow: hidden;
78 background: var(--sidebar);
79 border-right: 1px solid var(--line);
80 transition: width 180ms ease, flex-basis 180ms ease, transform 180ms ease;
81 }
82
83 .sidebar.is-collapsed {
84 width: 0;
85 flex-basis: 0;
86 transform: translateX(-100%);
87 border-right: 0;
88 }
89
90 .sidebar-brand {
91 display: flex;
92 align-items: center;
93 min-height: 68px;
94 padding: 0 14px 0 18px;
95 gap: 8px;
96 }
97
98 .sidebar-brand strong {
99 font-size: 16px;
100 font-weight: 720;
101 letter-spacing: 0;
102 }
103
104 .sidebar svg {
105 stroke-width: 1.55;
106 }
107
108 .sidebar-collapse {
109 margin-left: auto;
110 }
111
112 .icon-button {
113 position: relative;
114 display: inline-grid;
115 width: 34px;
116 height: 34px;
117 flex: 0 0 34px;
118 place-items: center;
119 padding: 0;
120 color: #656d77;
121 background: transparent;
122 border: 0;
123 border-radius: 6px;
124 cursor: pointer;
125 }
126
127 .icon-button:hover {
128 color: var(--ink);
129 background: #e8ebef;
130 }
131
132 .primary-nav {
133 display: flex;
134 flex-direction: column;
135 gap: 2px;
136 padding: 7px 10px 18px;
137 }
138
139 .primary-nav button {
140 display: flex;
141 width: 100%;
142 min-height: 38px;
143 align-items: center;
144 gap: 11px;
145 padding: 0 10px;
146 font-size: 14px;
147 font-weight: 560;
148 text-align: left;
149 background: transparent;
150 border: 0;
151 border-radius: 6px;
152 cursor: pointer;
153 }
154
155 .primary-nav button:hover,
156 .primary-nav button.is-active {
157 background: #e5e9ee;
158 }
159
160 .primary-nav button:first-child {
161 color: #124f9f;
162 }
163
164 .session-section {
165 display: flex;
166 min-height: 0;
167 flex: 1;
168 flex-direction: column;
169 }
170
171 .section-label {
172 display: flex;
173 justify-content: space-between;
174 padding: 8px 18px 8px;
175 color: #8c939d;
176 font-size: 11px;
177 font-weight: 680;
178 letter-spacing: 0.06em;
179 text-transform: uppercase;
180 }
181
182 .session-list {
183 min-height: 0;
184 padding: 0 9px 18px;
185 overflow: auto;
186 scrollbar-width: thin;
187 scrollbar-color: #d1d6dc transparent;
188 }
189
190 .session-item {
191 position: relative;
192 display: flex;
193 width: 100%;
194 min-height: 52px;
195 align-items: center;
196 background: transparent;
197 border-radius: 6px;
198 }
199
200 .session-item:hover {
201 background: #e9ecf0;
202 }
203
204 .session-item.is-selected {
205 background: #e2e6eb;
206 }
207
208 .session-open {
209 display: flex;
210 min-width: 0;
211 min-height: 52px;
212 flex: 1;
213 align-items: center;
214 padding: 7px 34px 7px 12px;
215 text-align: left;
216 background: transparent;
217 border: 0;
218 cursor: pointer;
219 }
220
221 .session-delete {
222 position: absolute;
223 right: 7px;
224 display: grid;
225 width: 27px;
226 height: 27px;
227 place-items: center;
228 padding: 0;
229 color: #79818c;
230 background: color-mix(in srgb, var(--sidebar) 86%, transparent);
231 border: 0;
232 border-radius: 5px;
233 cursor: pointer;
234 opacity: 0;
235 transition: color 120ms ease, background 120ms ease, opacity 120ms ease;
236 }
237
238 .session-item:hover .session-delete,
239 .session-delete:focus-visible {
240 opacity: 1;
241 }
242
243 .session-delete:hover {
244 color: var(--red);
245 background: #f5dfdc;
246 }
247
248 .session-copy {
249 display: flex;
250 min-width: 0;
251 flex-direction: column;
252 gap: 3px;
253 }
254
255 .session-copy strong,
256 .session-copy small {
257 overflow: hidden;
258 text-overflow: ellipsis;
259 white-space: nowrap;
260 }
261
262 .session-copy strong {
263 font-size: 13px;
264 font-weight: 590;
265 }
266
267 .session-copy small {
268 color: var(--muted);
269 font-size: 11px;
270 }
271
272 .empty-list {
273 display: block;
274 padding: 14px 10px;
275 color: var(--faint);
276 font-size: 12px;
277 }
278
279 .sidebar-footer {
280 display: flex;
281 min-height: 62px;
282 align-items: center;
283 gap: 10px;
284 padding: 10px 16px;
285 border-top: 1px solid var(--line);
286 }
287
288 .avatar {
289 display: grid;
290 width: 28px;
291 height: 28px;
292 place-items: center;
293 color: white;
294 font-size: 12px;
295 font-weight: 720;
296 background: #303740;
297 border-radius: 50%;
298 }
299
300 .sidebar-footer div {
301 display: flex;
302 min-width: 0;
303 flex-direction: column;
304 }
305
306 .sidebar-footer strong {
307 font-size: 12px;
308 font-weight: 620;
309 }
310
311 .sidebar-footer small {
312 color: var(--muted);
313 font-size: 10px;
314 }
315
316 .workspace-main {
317 position: relative;
318 display: flex;
319 min-width: 0;
320 flex: 1;
321 flex-direction: column;
322 background: var(--canvas);
323 }
324
325 .workspace-utility-bar {
326 position: absolute;
327 z-index: 16;
328 top: 14px;
329 right: 14px;
330 left: 14px;
331 display: flex;
332 align-items: center;
333 pointer-events: none;
334 }
335
336 .workspace-utility-bar .icon-button {
337 pointer-events: auto;
338 }
339
340 .workspace-utility-actions {
341 display: flex;
342 align-items: center;
343 gap: 2px;
344 pointer-events: auto;
345 }
346
347 .workspace-utility-spacer {
348 flex: 1;
349 }
350
351 .workspace-header {
352 display: flex;
353 min-height: 68px;
354 align-items: center;
355 justify-content: space-between;
356 gap: 24px;
357 padding: 0 20px;
358 border-bottom: 1px solid rgba(226, 229, 233, 0.82);
359 }
360
361 .workspace-title-row,
362 .workspace-actions {
363 display: flex;
364 min-width: 0;
365 align-items: center;
366 gap: 10px;
367 }
368
369 .workspace-title-copy {
370 display: flex;
371 min-width: 0;
372 flex-direction: column;
373 gap: 2px;
374 }
375
376 .workspace-title-copy strong,
377 .workspace-title-copy span {
378 overflow: hidden;
379 text-overflow: ellipsis;
380 white-space: nowrap;
381 }
382
383 .workspace-title-copy strong {
384 font-size: 14px;
385 font-weight: 660;
386 }
387
388 .workspace-title-copy span {
389 color: var(--muted);
390 font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
391 font-size: 10px;
392 }
393
394 .stage-badge {
395 display: inline-flex;
396 min-height: 24px;
397 align-items: center;
398 gap: 6px;
399 padding: 0 8px;
400 color: #676f79;
401 font-size: 10px;
402 font-weight: 650;
403 background: #f1f3f6;
404 border: 1px solid var(--line);
405 border-radius: 5px;
406 white-space: nowrap;
407 }
408
409 .stage-badge i {
410 width: 6px;
411 height: 6px;
412 background: #979fa9;
413 border-radius: 50%;
414 }
415
416 .stage-badge.stage-rendering i,
417 .stage-badge.stage-narrative_planning i,
418 .stage-badge.stage-novel_planning i {
419 background: var(--magenta);
420 }
421
422 .stage-badge.stage-rendered i,
423 .stage-badge.stage-narrative_planned i,
424 .stage-badge.stage-novel_planned i {
425 background: var(--green);
426 }
427
428 .stage-badge.stage-error i {
429 background: var(--red);
430 }
431
432 .count-badge {
433 position: absolute;
434 top: 0;
435 right: -2px;
436 display: grid;
437 min-width: 16px;
438 height: 16px;
439 place-items: center;
440 padding: 0 4px;
441 color: white;
442 font-size: 9px;
443 font-weight: 720;
444 background: var(--blue);
445 border: 2px solid var(--canvas);
446 border-radius: 8px;
447 }
448
449 .conversation {
450 min-height: 0;
451 flex: 1;
452 overflow: auto;
453 overscroll-behavior: contain;
454 scrollbar-width: thin;
455 scrollbar-color: #d5dae0 transparent;
456 }
457
458 .empty-state {
459 display: flex;
460 width: min(760px, calc(100% - 40px));
461 min-height: 100%;
462 align-items: center;
463 justify-content: center;
464 flex-direction: column;
465 margin: 0 auto;
466 padding: 32px 0 120px;
467 animation: empty-in 420ms ease both;
468 }
469
470 .empty-state-logo {
471 display: block;
472 width: 58px;
473 height: 58px;
474 margin: 0 0 18px;
475 object-fit: contain;
476 }
477
478 .empty-state h1 {
479 margin: 0;
480 font-size: 28px;
481 font-weight: 580;
482 letter-spacing: 0;
483 }
484
485 .message-stream {
486 width: min(860px, calc(100% - 40px));
487 margin: 0 auto;
488 padding: 76px 0 156px;
489 }
490
491 .message-row {
492 display: flex;
493 width: 100%;
494 margin-bottom: 26px;
495 animation: message-in 180ms ease both;
496 }
497
498 .message-body {
499 width: fit-content;
500 max-width: min(76%, 680px);
501 min-width: 42px;
502 padding: 1px 0;
503 color: #292f36;
504 font-size: 14px;
505 line-height: 1.72;
506 background: transparent;
507 border-radius: 0;
508 }
509
510 .role-user {
511 justify-content: flex-end;
512 }
513
514 .role-user .message-body {
515 padding: 12px 15px;
516 background: #f0f2f5;
517 border-radius: 22px;
518 }
519
520 .role-assistant,
521 .role-error {
522 justify-content: flex-start;
523 }
524
525 .message-body p {
526 margin: 0 0 12px;
527 }
528
529 .message-body p:last-child {
530 margin-bottom: 0;
531 }
532
533 .message-body h1,
534 .message-body h2,
535 .message-body h3 {
536 margin: 22px 0 8px;
537 font-size: 15px;
538 font-weight: 720;
539 letter-spacing: 0;
540 }
541
542 .message-body ul,
543 .message-body ol {
544 margin: 8px 0 12px;
545 padding-left: 21px;
546 }
547
548 .message-body li {
549 margin: 4px 0;
550 }
551
552 .message-body code {
553 padding: 2px 5px;
554 font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
555 font-size: 12px;
556 background: #eef0f3;
557 border-radius: 4px;
558 }
559
560 .message-body pre {
561 overflow: auto;
562 padding: 14px;
563 color: #e9edf2;
564 background: #262c33;
565 border-radius: 6px;
566 }
567
568 .message-body pre code {
569 padding: 0;
570 color: inherit;
571 background: none;
572 }
573
574 .message-body a {
575 color: var(--blue);
576 }
577
578 .role-error .message-body {
579 padding: 12px 15px;
580 color: #8f2d2d;
581 background: #fff0ef;
582 border: 1px solid #efcfcc;
583 border-radius: 22px;
584 }
585
586 .activity-row {
587 display: grid;
588 width: min(76%, 680px);
589 grid-template-columns: 22px minmax(0, 1fr);
590 align-items: start;
591 gap: 7px;
592 margin: -10px 0 22px;
593 color: #747b85;
594 font-size: 11px;
595 }
596
597 .activity-row > div {
598 display: flex;
599 min-width: 0;
600 flex-wrap: wrap;
601 gap: 4px 8px;
602 }
603
604 .activity-row strong {
605 color: #58616b;
606 font-weight: 650;
607 }
608
609 .activity-row span:last-child {
610 overflow: hidden;
611 text-overflow: ellipsis;
612 }
613
614 .activity-row.status-error,
615 .activity-row.status-error strong {
616 color: var(--red);
617 }
618
619 .activity-indicator {
620 display: grid;
621 width: 20px;
622 height: 20px;
623 place-items: center;
624 color: #626b76;
625 background: #eef1f4;
626 border: 1px solid #dfe3e8;
627 border-radius: 6px;
628 }
629
630 .status-running .activity-indicator {
631 border-color: #cbd2da;
632 }
633
634 .status-running .activity-indicator svg {
635 animation: pulse 1.2s ease-in-out infinite;
636 }
637
638 .status-error .activity-indicator {
639 color: var(--red);
640 background: #fff1f0;
641 border-color: #efcfcc;
642 }
643
644 .activity-indicator.tool-planning {
645 color: #7a5d83;
646 background: #f3eff5;
647 }
648
649 .activity-indicator.tool-render {
650 color: #4d6f91;
651 background: #edf3f8;
652 }
653
654 .activity-indicator.tool-image {
655 color: #4f7880;
656 background: #edf5f5;
657 }
658
659 .activity-indicator.tool-memory {
660 color: #7b684f;
661 background: #f5f2ed;
662 }
663
664 .activity-indicator.tool-todo {
665 color: #5c6d65;
666 background: #eff3f1;
667 }
668
669 .activity-indicator.tool-shell {
670 color: #555e6a;
671 background: #eceff3;
672 }
673
674 .activity-indicator.tool-time {
675 color: #687080;
676 background: #f0f1f5;
677 }
678
679 .status-error .activity-indicator[class*="tool-"] {
680 color: var(--red);
681 background: #fff1f0;
682 }
683
684 .thinking-row {
685 display: flex;
686 align-items: center;
687 gap: 9px;
688 margin: 0 0 24px;
689 color: #747c86;
690 font-size: 11px;
691 }
692
693 .thinking-mark {
694 display: flex;
695 gap: 3px;
696 }
697
698 .thinking-mark i {
699 width: 4px;
700 height: 4px;
701 background: #b9bec6;
702 border-radius: 50%;
703 animation: thinking 1.1s ease-in-out infinite;
704 }
705
706 .thinking-mark i:nth-child(2) {
707 animation-delay: 140ms;
708 }
709
710 .thinking-mark i:nth-child(3) {
711 animation-delay: 280ms;
712 }
713
714 .composer-zone {
715 position: absolute;
716 z-index: 10;
717 right: 0;
718 bottom: 0;
719 left: 0;
720 display: flex;
721 align-items: center;
722 flex-direction: column;
723 padding: 28px 20px 20px;
724 pointer-events: none;
725 background: transparent;
726 }
727
728 .composer,
729 .inline-error,
730 .slash-command-menu {
731 width: min(780px, 100%);
732 pointer-events: auto;
733 }
734
735 .slash-command-menu {
736 overflow: hidden;
737 margin-bottom: 7px;
738 background: rgba(255, 255, 255, 0.99);
739 border: 1px solid var(--line-strong);
740 border-radius: 7px;
741 box-shadow: 0 10px 30px rgba(35, 43, 52, 0.1);
742 animation: command-in 120ms ease both;
743 }
744
745 .slash-command-menu button {
746 display: grid;
747 width: 100%;
748 min-height: 46px;
749 grid-template-columns: 112px minmax(0, 1fr);
750 align-items: center;
751 gap: 12px;
752 padding: 7px 11px;
753 text-align: left;
754 background: transparent;
755 border: 0;
756 cursor: pointer;
757 }
758
759 .slash-command-menu button:hover {
760 background: #f0f2f5;
761 }
762
763 .slash-command-menu code {
764 display: inline-flex;
765 align-items: center;
766 gap: 7px;
767 font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
768 font-size: 12px;
769 }
770
771 .slash-command-menu code b {
772 color: var(--cyan);
773 font-weight: 700;
774 }
775
776 .slash-command-menu code span {
777 color: var(--blue);
778 }
779
780 .slash-command-menu code em {
781 color: #89919b;
782 font-size: 10px;
783 font-style: normal;
784 font-weight: 600;
785 }
786
787 .slash-command-menu small,
788 .slash-command-empty {
789 color: var(--muted);
790 font-size: 10px;
791 }
792
793 .slash-command-empty {
794 display: block;
795 padding: 13px 11px;
796 }
797
798 .inline-error {
799 display: flex;
800 align-items: center;
801 justify-content: space-between;
802 gap: 12px;
803 padding: 9px 11px;
804 margin-bottom: 7px;
805 color: #902e2e;
806 font-size: 11px;
807 background: #fff0ef;
808 border: 1px solid #efcfcc;
809 border-radius: 6px;
810 }
811
812 .inline-error button {
813 display: grid;
814 place-items: center;
815 padding: 0;
816 color: inherit;
817 background: transparent;
818 border: 0;
819 cursor: pointer;
820 }
821
822 .composer {
823 overflow: hidden;
824 background: rgba(255, 255, 255, 0.98);
825 border: 1px solid #d9dee4;
826 border-radius: 22px;
827 box-shadow: 0 12px 34px rgba(35, 43, 52, 0.09), 0 2px 7px rgba(35, 43, 52, 0.05);
828 transition: border-color 160ms ease, box-shadow 160ms ease;
829 }
830
831 .composer:focus-within {
832 border-color: #b6c8d8;
833 box-shadow: 0 14px 38px rgba(35, 43, 52, 0.11), 0 0 0 2px rgba(23, 105, 210, 0.07);
834 }
835
836 .composer textarea {
837 display: block;
838 width: 100%;
839 min-height: 60px;
840 max-height: 168px;
841 resize: none;
842 padding: 15px 14px 4px;
843 color: var(--ink);
844 font-size: 14px;
845 line-height: 1.5;
846 background: transparent;
847 border: 0;
848 outline: none;
849 }
850
851 .composer textarea::placeholder {
852 color: #a3a9b2;
853 }
854
855 .composer textarea:disabled {
856 color: #858c96;
857 }
858
859 .composer-attachments {
860 display: flex;
861 align-items: center;
862 flex-wrap: wrap;
863 gap: 6px;
864 padding: 6px 12px 2px;
865 }
866
867 .composer-attachment {
868 display: inline-flex;
869 max-width: min(260px, 100%);
870 height: 29px;
871 align-items: center;
872 gap: 6px;
873 padding: 0 7px 0 8px;
874 color: #4d5661;
875 font-size: 10px;
876 background: #f0f2f5;
877 border: 1px solid #e0e4e8;
878 border-radius: 7px;
879 }
880
881 .composer-attachment > span {
882 overflow: hidden;
883 text-overflow: ellipsis;
884 white-space: nowrap;
885 }
886
887 .composer-attachment button {
888 display: grid;
889 flex: 0 0 auto;
890 width: 18px;
891 height: 18px;
892 place-items: center;
893 padding: 0;
894 color: #8a929c;
895 background: transparent;
896 border: 0;
897 border-radius: 50%;
898 cursor: pointer;
899 }
900
901 .composer-attachment button:hover {
902 color: #333b44;
903 background: #dfe3e8;
904 }
905
906 .composer-uploading {
907 color: var(--muted);
908 font-size: 10px;
909 }
910
911 .composer-controls {
912 display: flex;
913 min-height: 47px;
914 align-items: center;
915 padding: 5px 8px 8px 10px;
916 }
917
918 .composer-file-input {
919 display: none;
920 }
921
922 .composer-add {
923 display: grid;
924 width: 34px;
925 height: 34px;
926 place-items: center;
927 padding: 0;
928 color: #555e68;
929 background: transparent;
930 border: 0;
931 border-radius: 50%;
932 cursor: pointer;
933 transition: color 120ms ease, background 120ms ease;
934 }
935
936 .composer-add:hover:not(:disabled) {
937 color: #1f2730;
938 background: #eef1f4;
939 }
940
941 .composer-add:disabled {
942 color: #c0c6cd;
943 cursor: default;
944 }
945
946 .composer-spacer {
947 flex: 1;
948 }
949
950 .settings-view {
951 min-height: 0;
952 flex: 1;
953 padding: 38px clamp(24px, 5vw, 72px) 56px;
954 overflow: auto;
955 scrollbar-width: thin;
956 scrollbar-color: #d5dae0 transparent;
957 }
958
959 .settings-view > header {
960 display: flex;
961 max-width: 980px;
962 align-items: flex-end;
963 justify-content: space-between;
964 gap: 20px;
965 margin: 0 auto 28px;
966 }
967
968 .settings-view > header span:first-child {
969 color: var(--muted);
970 font-size: 10px;
971 font-weight: 700;
972 letter-spacing: 0.08em;
973 text-transform: uppercase;
974 }
975
976 .settings-view h1 {
977 margin: 5px 0 0;
978 font-size: 24px;
979 font-weight: 650;
980 letter-spacing: 0;
981 }
982
983 .settings-save-group {
984 display: flex;
985 align-items: center;
986 gap: 10px;
987 }
988
989 .settings-save-group > span {
990 max-width: 320px;
991 overflow: hidden;
992 color: var(--red);
993 font-size: 10px;
994 text-overflow: ellipsis;
995 white-space: nowrap;
996 text-transform: none !important;
997 letter-spacing: 0 !important;
998 }
999
1000 .settings-save-group > span.is-saved {
1001 color: var(--green);
1002 }
1003
1004 .settings-save {
1005 display: inline-flex;
1006 height: 34px;
1007 align-items: center;
1008 gap: 7px;
1009 padding: 0 13px;
1010 color: white;
1011 font-size: 11px;
1012 font-weight: 650;
1013 background: #2c333b;
1014 border: 0;
1015 border-radius: 6px;
1016 cursor: pointer;
1017 }
1018
1019 .settings-save:hover:not(:disabled) {
1020 background: var(--blue);
1021 }
1022
1023 .settings-save:disabled {
1024 cursor: wait;
1025 opacity: 0.65;
1026 }
1027
1028 .settings-sections {
1029 max-width: 980px;
1030 margin: 0 auto;
1031 border-top: 1px solid var(--line);
1032 }
1033
1034 .config-section {
1035 display: grid;
1036 grid-template-columns: minmax(170px, 0.34fr) minmax(0, 1fr);
1037 gap: clamp(24px, 5vw, 72px);
1038 padding: 26px 0 30px;
1039 border-bottom: 1px solid var(--line);
1040 }
1041
1042 .config-section > header h2 {
1043 margin: 0 0 6px;
1044 font-size: 13px;
1045 font-weight: 680;
1046 letter-spacing: 0;
1047 }
1048
1049 .config-section > header p {
1050 margin: 0;
1051 color: var(--muted);
1052 font-size: 10px;
1053 line-height: 1.5;
1054 }
1055
1056 .config-fields {
1057 display: grid;
1058 grid-template-columns: repeat(2, minmax(0, 1fr));
1059 gap: 15px 12px;
1060 }
1061
1062 .config-fields label {
1063 display: flex;
1064 min-width: 0;
1065 flex-direction: column;
1066 gap: 6px;
1067 }
1068
1069 .config-fields label > span {
1070 display: flex;
1071 align-items: center;
1072 justify-content: space-between;
1073 color: #626a74;
1074 font-size: 10px;
1075 font-weight: 620;
1076 }
1077
1078 .config-fields label > span i {
1079 color: var(--faint);
1080 font-size: 9px;
1081 font-style: normal;
1082 font-weight: 520;
1083 }
1084
1085 .config-fields label > span i.is-configured {
1086 color: var(--green);
1087 }
1088
1089 .config-fields input {
1090 width: 100%;
1091 height: 35px;
1092 padding: 0 10px;
1093 color: var(--ink);
1094 font-size: 11px;
1095 background: var(--surface);
1096 border: 1px solid var(--line-strong);
1097 border-radius: 6px;
1098 outline: none;
1099 }
1100
1101 .config-fields input:focus {
1102 border-color: #9eb7cf;
1103 box-shadow: 0 0 0 2px rgba(23, 105, 210, 0.08);
1104 }
1105
1106 .config-fields input::placeholder {
1107 color: #a3a9b2;
1108 }
1109
1110 .config-field-wide {
1111 grid-column: 1 / -1;
1112 }
1113
1114 .settings-loading {
1115 display: grid;
1116 min-height: 0;
1117 flex: 1;
1118 place-items: center;
1119 color: var(--muted);
1120 font-size: 11px;
1121 }
1122
1123 .settings-loading.is-error {
1124 color: var(--red);
1125 }
1126
1127 .artifacts-view {
1128 min-height: 0;
1129 flex: 1;
1130 padding: 38px clamp(24px, 5vw, 72px) 56px;
1131 overflow: auto;
1132 scrollbar-width: thin;
1133 scrollbar-color: #d5dae0 transparent;
1134 }
1135
1136 .artifacts-view > header {
1137 display: flex;
1138 max-width: 1100px;
1139 align-items: flex-end;
1140 justify-content: space-between;
1141 gap: 20px;
1142 margin: 0 auto 28px;
1143 }
1144
1145 .artifacts-view > header > div > span,
1146 .artifact-document > header span {
1147 color: var(--muted);
1148 font-size: 10px;
1149 font-weight: 700;
1150 letter-spacing: 0.08em;
1151 text-transform: uppercase;
1152 }
1153
1154 .artifacts-view h1 {
1155 margin: 5px 0 0;
1156 font-size: 24px;
1157 font-weight: 650;
1158 letter-spacing: 0;
1159 }
1160
1161 .artifact-file-count {
1162 color: var(--muted);
1163 font-size: 10px;
1164 }
1165
1166 .artifact-view-switcher {
1167 display: flex;
1168 width: fit-content;
1169 max-width: 1100px;
1170 gap: 3px;
1171 margin: -10px auto 24px;
1172 padding: 3px;
1173 background: #edf0f3;
1174 border: 1px solid #e0e4e8;
1175 border-radius: 7px;
1176 }
1177
1178 .artifact-view-switcher button {
1179 height: 28px;
1180 padding: 0 12px;
1181 color: #68717b;
1182 font-size: 10px;
1183 font-weight: 620;
1184 background: transparent;
1185 border: 0;
1186 border-radius: 5px;
1187 cursor: pointer;
1188 }
1189
1190 .artifact-view-switcher button:hover {
1191 color: var(--ink);
1192 }
1193
1194 .artifact-view-switcher button.is-selected {
1195 color: #252c34;
1196 background: #fff;
1197 box-shadow: 0 1px 3px rgba(31, 39, 48, 0.1);
1198 }
1199
1200 .artifact-content-section,
1201 .artifact-visuals {
1202 max-width: 1100px;
1203 margin: 0 auto;
1204 }
1205
1206 .artifact-section-heading {
1207 display: flex;
1208 align-items: baseline;
1209 justify-content: space-between;
1210 margin-bottom: 12px;
1211 }
1212
1213 .artifact-section-heading h2 {
1214 margin: 0;
1215 color: #303842;
1216 font-size: 14px;
1217 font-weight: 660;
1218 }
1219
1220 .artifact-section-heading span {
1221 color: var(--muted);
1222 font-size: 9px;
1223 }
1224
1225 .artifact-content-section + .artifact-visuals {
1226 margin-top: 42px;
1227 padding-top: 28px;
1228 border-top: 1px solid var(--line);
1229 }
1230
1231 .artifact-visuals .render-grid {
1232 max-width: none;
1233 }
1234
1235 .artifact-visuals .renders-empty {
1236 min-height: 240px;
1237 }
1238
1239 .artifact-browser {
1240 display: grid;
1241 max-width: 1100px;
1242 min-height: 520px;
1243 grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
1244 margin: 0 auto;
1245 border-top: 1px solid var(--line);
1246 border-bottom: 1px solid var(--line);
1247 }
1248
1249 .artifact-document-list {
1250 min-width: 0;
1251 padding: 14px 14px 22px 0;
1252 border-right: 1px solid var(--line);
1253 }
1254
1255 .artifact-document-list-title {
1256 display: flex;
1257 align-items: center;
1258 justify-content: space-between;
1259 padding: 0 8px 10px;
1260 color: var(--muted);
1261 font-size: 9px;
1262 font-weight: 700;
1263 letter-spacing: 0.07em;
1264 text-transform: uppercase;
1265 }
1266
1267 .artifact-document-list button {
1268 display: grid;
1269 width: 100%;
1270 min-height: 54px;
1271 grid-template-columns: 18px minmax(0, 1fr);
1272 align-items: start;
1273 gap: 9px;
1274 padding: 10px 9px;
1275 color: #66707b;
1276 text-align: left;
1277 background: transparent;
1278 border: 0;
1279 border-radius: 6px;
1280 cursor: pointer;
1281 }
1282
1283 .artifact-document-list button:hover,
1284 .artifact-document-list button.is-selected {
1285 color: var(--ink);
1286 background: #e9edf2;
1287 }
1288
1289 .artifact-document-list button > span {
1290 display: flex;
1291 min-width: 0;
1292 flex-direction: column;
1293 gap: 4px;
1294 }
1295
1296 .artifact-document-list strong,
1297 .artifact-document-list small {
1298 overflow: hidden;
1299 text-overflow: ellipsis;
1300 white-space: nowrap;
1301 }
1302
1303 .artifact-document-list strong {
1304 color: inherit;
1305 font-size: 10px;
1306 font-weight: 650;
1307 }
1308
1309 .artifact-document-list small {
1310 color: var(--muted);
1311 font-size: 8px;
1312 }
1313
1314 .artifact-document {
1315 min-width: 0;
1316 padding: 23px 0 34px clamp(24px, 4vw, 52px);
1317 }
1318
1319 .artifact-document > header {
1320 display: flex;
1321 align-items: flex-end;
1322 justify-content: space-between;
1323 gap: 20px;
1324 padding-bottom: 20px;
1325 border-bottom: 1px solid var(--line);
1326 }
1327
1328 .artifact-document > header h2 {
1329 margin: 5px 0 0;
1330 font-size: 18px;
1331 font-weight: 650;
1332 }
1333
1334 .artifact-document > header small {
1335 max-width: 45%;
1336 overflow: hidden;
1337 color: var(--muted);
1338 font-size: 8px;
1339 text-overflow: ellipsis;
1340 white-space: nowrap;
1341 }
1342
1343 .artifact-document-layout {
1344 min-width: 0;
1345 }
1346
1347 .artifact-document.has-related-visuals .artifact-document-layout {
1348 display: grid;
1349 grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
1350 gap: clamp(24px, 3vw, 40px);
1351 }
1352
1353 .artifact-structured-content {
1354 min-width: 0;
1355 }
1356
1357 .artifact-related-visuals {
1358 min-width: 0;
1359 padding: 24px 0 32px clamp(20px, 2.5vw, 30px);
1360 border-left: 1px solid var(--line);
1361 }
1362
1363 .artifact-related-visuals > header {
1364 display: flex;
1365 align-items: flex-end;
1366 justify-content: space-between;
1367 gap: 12px;
1368 margin-bottom: 14px;
1369 }
1370
1371 .artifact-related-visuals > header > div {
1372 display: flex;
1373 align-items: baseline;
1374 gap: 7px;
1375 }
1376
1377 .artifact-related-visuals > header span {
1378 color: #48525d;
1379 font-size: 10px;
1380 font-weight: 680;
1381 }
1382
1383 .artifact-related-visuals > header strong,
1384 .artifact-related-visuals > header small {
1385 color: var(--muted);
1386 font-size: 8px;
1387 font-weight: 560;
1388 }
1389
1390 .related-visual-grid {
1391 display: grid;
1392 gap: 15px;
1393 }
1394
1395 .related-visual-grid > button {
1396 display: grid;
1397 min-width: 0;
1398 grid-template-columns: minmax(0, 1fr) auto;
1399 gap: 4px 8px;
1400 padding: 0 0 3px;
1401 color: var(--ink);
1402 text-align: left;
1403 background: transparent;
1404 border: 0;
1405 cursor: zoom-in;
1406 }
1407
1408 .related-visual-grid > button > span {
1409 position: relative;
1410 display: block;
1411 grid-column: 1 / -1;
1412 width: 100%;
1413 aspect-ratio: 16 / 9;
1414 overflow: hidden;
1415 background: #e8edf2;
1416 border: 1px solid #dce2e8;
1417 border-radius: 6px;
1418 }
1419
1420 .related-visual-grid img,
1421 .related-visual-grid video {
1422 width: 100%;
1423 height: 100%;
1424 object-fit: cover;
1425 transition: transform 180ms ease;
1426 }
1427
1428 .related-visual-grid > button:hover img,
1429 .related-visual-grid > button:hover video {
1430 transform: scale(1.015);
1431 }
1432
1433 .related-visual-grid > button i {
1434 position: absolute;
1435 right: 7px;
1436 bottom: 7px;
1437 display: grid;
1438 width: 25px;
1439 height: 25px;
1440 place-items: center;
1441 color: #f7f9fb;
1442 background: rgba(28, 34, 41, 0.68);
1443 border-radius: 5px;
1444 opacity: 0;
1445 transition: opacity 140ms ease;
1446 }
1447
1448 .related-visual-grid > button:hover i,
1449 .related-visual-grid > button:focus-visible i {
1450 opacity: 1;
1451 }
1452
1453 .related-visual-grid > button strong,
1454 .related-visual-grid > button small {
1455 overflow: hidden;
1456 text-overflow: ellipsis;
1457 white-space: nowrap;
1458 }
1459
1460 .related-visual-grid > button strong {
1461 font-size: 9px;
1462 font-weight: 650;
1463 }
1464
1465 .related-visual-grid > button small {
1466 color: var(--muted);
1467 font-size: 8px;
1468 }
1469
1470 .related-visual-empty {
1471 display: flex;
1472 min-height: 170px;
1473 align-items: center;
1474 justify-content: center;
1475 flex-direction: column;
1476 gap: 9px;
1477 padding: 20px;
1478 color: #959da6;
1479 text-align: center;
1480 background: #f5f7f9;
1481 border: 1px dashed #dce2e7;
1482 border-radius: 6px;
1483 }
1484
1485 .related-visual-empty span {
1486 max-width: 190px;
1487 font-size: 9px;
1488 line-height: 1.5;
1489 }
1490
1491 .artifact-document-state,
1492 .structured-empty {
1493 display: grid;
1494 min-height: 260px;
1495 place-items: center;
1496 color: var(--muted);
1497 font-size: 11px;
1498 }
1499
1500 .artifact-document-state.is-error {
1501 color: var(--red);
1502 }
1503
1504 .structured-records > .structured-record + .structured-record {
1505 border-top: 1px solid var(--line);
1506 }
1507
1508 .structured-record {
1509 padding: 24px 0 28px;
1510 }
1511
1512 .structured-record > header {
1513 margin-bottom: 16px;
1514 }
1515
1516 .structured-record h3,
1517 .structured-record h4 {
1518 margin: 0;
1519 font-size: 13px;
1520 font-weight: 680;
1521 }
1522
1523 .structured-fields {
1524 display: grid;
1525 grid-template-columns: repeat(2, minmax(0, 1fr));
1526 gap: 18px 28px;
1527 }
1528
1529 .structured-field {
1530 min-width: 0;
1531 }
1532
1533 .structured-field.is-long {
1534 grid-column: 1 / -1;
1535 }
1536
1537 .structured-field > span {
1538 display: block;
1539 margin-bottom: 6px;
1540 color: #69727d;
1541 font-size: 9px;
1542 font-weight: 650;
1543 }
1544
1545 .structured-field p {
1546 margin: 0;
1547 color: #262d35;
1548 font-size: 11px;
1549 line-height: 1.65;
1550 white-space: pre-wrap;
1551 overflow-wrap: anywhere;
1552 }
1553
1554 .structured-nested {
1555 margin-top: 24px;
1556 padding-top: 20px;
1557 border-top: 1px solid var(--line);
1558 }
1559
1560 .structured-nested > h4 {
1561 margin-bottom: 2px;
1562 color: #505963;
1563 }
1564
1565 .structured-nested > .structured-record {
1566 padding-left: 16px;
1567 border-left: 2px solid #e1e6eb;
1568 }
1569
1570 .artifacts-empty {
1571 display: flex;
1572 min-height: 360px;
1573 align-items: center;
1574 justify-content: center;
1575 flex-direction: column;
1576 gap: 7px;
1577 color: #9299a2;
1578 }
1579
1580 .artifacts-empty strong {
1581 margin-top: 4px;
1582 color: #5f6771;
1583 font-size: 13px;
1584 }
1585
1586 .artifacts-empty span {
1587 font-size: 10px;
1588 }
1589
1590 .renders-view {
1591 min-height: 0;
1592 flex: 1;
1593 padding: 42px clamp(24px, 5vw, 72px) 158px;
1594 overflow: auto;
1595 scrollbar-width: thin;
1596 scrollbar-color: #d5dae0 transparent;
1597 }
1598
1599 .renders-view > header {
1600 display: flex;
1601 max-width: 1080px;
1602 align-items: flex-end;
1603 justify-content: space-between;
1604 gap: 20px;
1605 margin: 0 auto 26px;
1606 }
1607
1608 .renders-view > header > div {
1609 min-width: 0;
1610 }
1611
1612 .renders-view > header span:first-child {
1613 color: var(--muted);
1614 font-size: 10px;
1615 font-weight: 700;
1616 letter-spacing: 0.08em;
1617 text-transform: uppercase;
1618 }
1619
1620 .renders-view h1 {
1621 overflow: hidden;
1622 margin: 5px 0 0;
1623 font-size: 23px;
1624 font-weight: 640;
1625 letter-spacing: 0;
1626 text-overflow: ellipsis;
1627 white-space: nowrap;
1628 }
1629
1630 .render-grid {
1631 display: grid;
1632 max-width: 1080px;
1633 grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
1634 gap: 18px;
1635 margin: 0 auto;
1636 }
1637
1638 .render-item {
1639 min-width: 0;
1640 padding: 0;
1641 overflow: hidden;
1642 text-align: left;
1643 background: var(--surface);
1644 border: 1px solid var(--line);
1645 border-radius: 7px;
1646 box-shadow: 0 2px 8px rgba(32, 40, 49, 0.04);
1647 }
1648
1649 .render-media {
1650 position: relative;
1651 display: block;
1652 width: 100%;
1653 aspect-ratio: 16 / 9;
1654 overflow: hidden;
1655 background: #e9edf1;
1656 padding: 0;
1657 border: 0;
1658 border-bottom: 1px solid var(--line);
1659 cursor: zoom-in;
1660 }
1661
1662 .render-media img,
1663 .render-media video {
1664 width: 100%;
1665 height: 100%;
1666 object-fit: cover;
1667 }
1668
1669 .render-media i {
1670 position: absolute;
1671 right: 8px;
1672 bottom: 8px;
1673 display: grid;
1674 width: 27px;
1675 height: 27px;
1676 place-items: center;
1677 color: white;
1678 background: rgba(30, 37, 45, 0.72);
1679 border-radius: 5px;
1680 backdrop-filter: blur(6px);
1681 }
1682
1683 .media-preview-backdrop {
1684 position: fixed;
1685 z-index: 70;
1686 inset: 0;
1687 display: grid;
1688 place-items: center;
1689 padding: 28px;
1690 background: rgba(20, 25, 31, 0.64);
1691 backdrop-filter: blur(7px);
1692 animation: dialog-backdrop-in 140ms ease both;
1693 }
1694
1695 .media-preview-dialog {
1696 display: flex;
1697 width: min(1120px, 100%);
1698 max-height: calc(100vh - 56px);
1699 overflow: hidden;
1700 flex-direction: column;
1701 background: #f8fafb;
1702 border: 1px solid rgba(255, 255, 255, 0.28);
1703 border-radius: 8px;
1704 box-shadow: 0 28px 90px rgba(8, 12, 16, 0.34);
1705 animation: dialog-in 160ms ease both;
1706 }
1707
1708 .media-preview-dialog > header {
1709 display: flex;
1710 min-height: 54px;
1711 align-items: center;
1712 justify-content: space-between;
1713 gap: 20px;
1714 padding: 0 13px 0 18px;
1715 border-bottom: 1px solid #dce2e7;
1716 }
1717
1718 .media-preview-dialog > header > div {
1719 display: flex;
1720 min-width: 0;
1721 flex-direction: column;
1722 gap: 3px;
1723 }
1724
1725 .media-preview-dialog > header strong,
1726 .media-preview-dialog > header span {
1727 overflow: hidden;
1728 text-overflow: ellipsis;
1729 white-space: nowrap;
1730 }
1731
1732 .media-preview-dialog > header strong {
1733 color: #252d35;
1734 font-size: 11px;
1735 font-weight: 660;
1736 }
1737
1738 .media-preview-dialog > header span {
1739 color: var(--muted);
1740 font-size: 8px;
1741 }
1742
1743 .media-preview-stage {
1744 display: grid;
1745 min-height: min(640px, calc(100vh - 110px));
1746 place-items: center;
1747 overflow: hidden;
1748 background: #15191e;
1749 }
1750
1751 .media-preview-stage img,
1752 .media-preview-stage video {
1753 display: block;
1754 max-width: 100%;
1755 max-height: calc(100vh - 110px);
1756 object-fit: contain;
1757 }
1758
1759 .render-copy {
1760 display: flex;
1761 min-width: 0;
1762 flex-direction: column;
1763 gap: 3px;
1764 padding: 10px 11px 11px;
1765 }
1766
1767 .render-copy strong,
1768 .render-copy small {
1769 overflow: hidden;
1770 text-overflow: ellipsis;
1771 white-space: nowrap;
1772 }
1773
1774 .render-copy strong {
1775 font-size: 11px;
1776 font-weight: 650;
1777 }
1778
1779 .render-copy small {
1780 color: var(--muted);
1781 font-size: 9px;
1782 }
1783
1784 .renders-empty {
1785 display: flex;
1786 min-height: 320px;
1787 align-items: center;
1788 justify-content: center;
1789 flex-direction: column;
1790 gap: 7px;
1791 color: #9299a2;
1792 }
1793
1794 .renders-empty strong {
1795 margin-top: 4px;
1796 color: #5f6771;
1797 font-size: 13px;
1798 }
1799
1800 .renders-empty span {
1801 font-size: 10px;
1802 }
1803
1804 .dialog-backdrop {
1805 position: fixed;
1806 z-index: 60;
1807 inset: 0;
1808 display: grid;
1809 place-items: center;
1810 padding: 20px;
1811 background: rgba(27, 34, 42, 0.26);
1812 backdrop-filter: blur(2px);
1813 animation: dialog-backdrop-in 140ms ease both;
1814 }
1815
1816 .delete-dialog,
1817 .project-dialog {
1818 display: grid;
1819 width: min(410px, 100%);
1820 grid-template-columns: 38px minmax(0, 1fr);
1821 gap: 12px;
1822 padding: 18px;
1823 background: var(--surface);
1824 border: 1px solid var(--line-strong);
1825 border-radius: 8px;
1826 box-shadow: 0 24px 70px rgba(27, 34, 42, 0.2);
1827 animation: dialog-in 160ms ease both;
1828 }
1829
1830 .dialog-icon {
1831 display: grid;
1832 width: 36px;
1833 height: 36px;
1834 place-items: center;
1835 color: var(--red);
1836 background: #f8e8e6;
1837 border-radius: 6px;
1838 }
1839
1840 .dialog-icon.is-create {
1841 color: var(--blue);
1842 background: #eaf2fc;
1843 }
1844
1845 .dialog-copy h2 {
1846 margin: 1px 0 6px;
1847 font-size: 15px;
1848 font-weight: 700;
1849 letter-spacing: 0;
1850 }
1851
1852 .dialog-copy p {
1853 margin: 0;
1854 color: var(--muted);
1855 font-size: 11px;
1856 line-height: 1.55;
1857 }
1858
1859 .dialog-copy p strong {
1860 color: var(--ink);
1861 }
1862
1863 .project-name-field {
1864 display: flex;
1865 grid-column: 1 / -1;
1866 flex-direction: column;
1867 gap: 7px;
1868 margin-top: 5px;
1869 }
1870
1871 .project-name-field > span {
1872 color: #626a74;
1873 font-size: 10px;
1874 font-weight: 650;
1875 }
1876
1877 .project-name-field input {
1878 width: 100%;
1879 height: 38px;
1880 padding: 0 11px;
1881 color: var(--ink);
1882 font-size: 12px;
1883 background: white;
1884 border: 1px solid var(--line-strong);
1885 border-radius: 7px;
1886 outline: none;
1887 }
1888
1889 .project-name-field input:focus {
1890 border-color: #9eb7cf;
1891 box-shadow: 0 0 0 2px rgba(23, 105, 210, 0.08);
1892 }
1893
1894 .project-name-field input::placeholder {
1895 color: var(--faint);
1896 }
1897
1898 .project-name-field small {
1899 color: var(--red);
1900 font-size: 10px;
1901 }
1902
1903 .dialog-actions {
1904 display: flex;
1905 grid-column: 1 / -1;
1906 justify-content: flex-end;
1907 gap: 8px;
1908 margin-top: 8px;
1909 }
1910
1911 .dialog-actions button {
1912 min-width: 72px;
1913 height: 32px;
1914 padding: 0 12px;
1915 font-size: 11px;
1916 font-weight: 650;
1917 background: #f2f4f7;
1918 border: 1px solid var(--line-strong);
1919 border-radius: 6px;
1920 cursor: pointer;
1921 }
1922
1923 .dialog-actions button:hover:not(:disabled) {
1924 background: #e7ebef;
1925 }
1926
1927 .dialog-actions button.danger {
1928 color: white;
1929 background: var(--red);
1930 border-color: var(--red);
1931 }
1932
1933 .dialog-actions button.primary {
1934 color: white;
1935 background: #2b323a;
1936 border-color: #2b323a;
1937 }
1938
1939 .dialog-actions button.primary:hover:not(:disabled) {
1940 background: var(--blue);
1941 border-color: var(--blue);
1942 }
1943
1944 .dialog-actions button.danger:hover:not(:disabled) {
1945 background: #aa3333;
1946 }
1947
1948 .dialog-actions button:disabled {
1949 cursor: wait;
1950 opacity: 0.64;
1951 }
1952
1953 .send-button {
1954 display: grid;
1955 width: 34px;
1956 height: 34px;
1957 place-items: center;
1958 padding: 0;
1959 color: white;
1960 background: #2b323a;
1961 border: 0;
1962 border-radius: 50%;
1963 cursor: pointer;
1964 transition: transform 120ms ease, background 120ms ease;
1965 }
1966
1967 .send-button:hover:not(:disabled) {
1968 background: var(--blue);
1969 transform: translateY(-1px);
1970 }
1971
1972 .send-button:disabled {
1973 color: #b2b8c0;
1974 background: #e9edf1;
1975 cursor: default;
1976 }
1977
1978 .send-button.stop {
1979 color: var(--ink);
1980 background: #e9edf1;
1981 }
1982
1983 .artifact-panel {
1984 position: relative;
1985 z-index: 18;
1986 display: flex;
1987 width: 0;
1988 flex: 0 0 0;
1989 height: 100%;
1990 flex-direction: column;
1991 overflow: hidden;
1992 background: #f6f8fa;
1993 border-left: 0 solid var(--line);
1994 transform: translateX(24px);
1995 opacity: 0;
1996 transition: width 200ms ease, flex-basis 200ms ease, transform 200ms ease, opacity 150ms ease;
1997 }
1998
1999 .artifact-panel.is-open {
2000 width: 352px;
2001 flex-basis: 352px;
2002 border-left-width: 1px;
2003 transform: translateX(0);
2004 opacity: 1;
2005 }
2006
2007 .artifact-panel > header {
2008 display: flex;
2009 min-height: 68px;
2010 align-items: center;
2011 justify-content: space-between;
2012 padding: 0 12px 0 16px;
2013 border-bottom: 1px solid var(--line);
2014 }
2015
2016 .artifact-panel > header > div {
2017 display: flex;
2018 flex-direction: column;
2019 gap: 2px;
2020 }
2021
2022 .artifact-panel > header strong {
2023 font-size: 13px;
2024 }
2025
2026 .artifact-panel > header span {
2027 color: var(--muted);
2028 font-size: 10px;
2029 }
2030
2031 .artifact-preview {
2032 padding: 14px;
2033 border-bottom: 1px solid var(--line);
2034 }
2035
2036 .artifact-preview > img,
2037 .artifact-preview > video,
2038 .document-preview {
2039 display: grid;
2040 width: 100%;
2041 aspect-ratio: 16 / 9;
2042 overflow: hidden;
2043 place-items: center;
2044 object-fit: contain;
2045 background: #e9edf1;
2046 border: 1px solid #d9dee4;
2047 border-radius: 6px;
2048 }
2049
2050 .document-preview {
2051 color: #717984;
2052 font-size: 11px;
2053 }
2054
2055 .artifact-preview-meta {
2056 display: flex;
2057 min-width: 0;
2058 flex-direction: column;
2059 gap: 3px;
2060 padding-top: 10px;
2061 }
2062
2063 .artifact-preview-meta strong,
2064 .artifact-preview-meta span {
2065 overflow: hidden;
2066 text-overflow: ellipsis;
2067 white-space: nowrap;
2068 }
2069
2070 .artifact-preview-meta strong {
2071 font-size: 11px;
2072 }
2073
2074 .artifact-preview-meta span {
2075 color: var(--muted);
2076 font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
2077 font-size: 9px;
2078 }
2079
2080 .artifact-empty {
2081 display: flex;
2082 min-height: 180px;
2083 align-items: center;
2084 justify-content: center;
2085 flex-direction: column;
2086 gap: 9px;
2087 color: #969da6;
2088 font-size: 11px;
2089 border-bottom: 1px solid var(--line);
2090 }
2091
2092 .artifact-list {
2093 min-height: 0;
2094 flex: 1;
2095 padding: 8px;
2096 overflow: auto;
2097 }
2098
2099 .artifact-list button {
2100 display: grid;
2101 width: 100%;
2102 min-height: 54px;
2103 grid-template-columns: 44px minmax(0, 1fr);
2104 align-items: center;
2105 gap: 9px;
2106 padding: 5px;
2107 text-align: left;
2108 background: transparent;
2109 border: 0;
2110 border-radius: 6px;
2111 cursor: pointer;
2112 }
2113
2114 .artifact-list button:hover,
2115 .artifact-list button.is-selected {
2116 background: #e7ebef;
2117 }
2118
2119 .artifact-thumb {
2120 display: grid;
2121 width: 44px;
2122 height: 42px;
2123 overflow: hidden;
2124 place-items: center;
2125 color: #767e88;
2126 background: #dce1e6;
2127 border-radius: 5px;
2128 }
2129
2130 .artifact-thumb img {
2131 width: 100%;
2132 height: 100%;
2133 object-fit: cover;
2134 }
2135
2136 .artifact-list button > span:last-child {
2137 display: flex;
2138 min-width: 0;
2139 flex-direction: column;
2140 gap: 3px;
2141 }
2142
2143 .artifact-list strong,
2144 .artifact-list small {
2145 overflow: hidden;
2146 text-overflow: ellipsis;
2147 white-space: nowrap;
2148 }
2149
2150 .artifact-list strong {
2151 font-size: 10px;
2152 font-weight: 650;
2153 }
2154
2155 .artifact-list small {
2156 color: var(--muted);
2157 font-size: 8px;
2158 }
2159
2160 .storyboard-panel {
2161 position: relative;
2162 z-index: 18;
2163 display: flex;
2164 width: 0;
2165 flex: 0 0 0;
2166 height: 100%;
2167 flex-direction: column;
2168 overflow: hidden;
2169 background: #f6f8fa;
2170 border-left: 0 solid var(--line);
2171 transform: translateX(24px);
2172 opacity: 0;
2173 transition: width 200ms ease, flex-basis 200ms ease, transform 200ms ease, opacity 150ms ease;
2174 }
2175
2176 .storyboard-panel.is-open {
2177 width: 352px;
2178 flex-basis: 352px;
2179 border-left-width: 1px;
2180 transform: translateX(0);
2181 opacity: 1;
2182 }
2183
2184 .storyboard-panel > header {
2185 display: flex;
2186 min-height: 68px;
2187 align-items: center;
2188 justify-content: space-between;
2189 padding: 0 12px 0 18px;
2190 border-bottom: 1px solid var(--line);
2191 }
2192
2193 .storyboard-panel > header > div {
2194 display: flex;
2195 flex-direction: column;
2196 gap: 2px;
2197 }
2198
2199 .storyboard-panel > header strong {
2200 font-size: 13px;
2201 }
2202
2203 .storyboard-panel > header span {
2204 color: var(--muted);
2205 font-size: 10px;
2206 }
2207
2208 .render-readiness {
2209 padding: 16px 18px 14px;
2210 background: #f9fafb;
2211 border-bottom: 1px solid var(--line);
2212 }
2213
2214 .render-readiness-summary {
2215 display: block;
2216 margin-bottom: 13px;
2217 }
2218
2219 .render-readiness-summary strong {
2220 color: #252c34;
2221 font-size: 11px;
2222 font-weight: 680;
2223 }
2224
2225 .render-checkpoint small {
2226 color: var(--muted);
2227 font-size: 9px;
2228 }
2229
2230 .render-checkpoints {
2231 display: grid;
2232 gap: 8px;
2233 }
2234
2235 .render-stage-heading {
2236 display: flex;
2237 align-items: center;
2238 justify-content: space-between;
2239 margin: 14px 0 9px;
2240 padding-top: 12px;
2241 color: #68727d;
2242 font-size: 9px;
2243 font-weight: 700;
2244 letter-spacing: 0.06em;
2245 text-transform: uppercase;
2246 border-top: 1px solid #e5e9ed;
2247 }
2248
2249 .render-stage-heading small {
2250 color: var(--muted);
2251 font-size: 8px;
2252 font-weight: 600;
2253 letter-spacing: 0;
2254 text-transform: none;
2255 }
2256
2257 .render-checkpoint {
2258 display: grid;
2259 grid-template-columns: 10px minmax(0, 1fr) auto;
2260 align-items: center;
2261 gap: 8px;
2262 color: #505964;
2263 font-size: 10px;
2264 }
2265
2266 .status-light {
2267 display: block;
2268 width: 7px;
2269 height: 7px;
2270 border-radius: 50%;
2271 box-shadow: 0 0 0 2px rgba(100, 110, 121, 0.08);
2272 }
2273
2274 .status-light.is-ready {
2275 background: #2f8f68;
2276 }
2277
2278 .status-light.is-partial,
2279 .status-light.is-missing,
2280 .status-light.is-inactive {
2281 background: #c8ced5;
2282 box-shadow: inset 0 0 0 1px #b9c1ca;
2283 }
2284
2285 .status-light.is-generating {
2286 background: #d49a2f;
2287 box-shadow: 0 0 0 2px rgba(212, 154, 47, 0.14);
2288 animation: render-light-pulse 1.25s ease-in-out infinite;
2289 }
2290
2291 .storyboard-description {
2292 min-height: 0;
2293 flex: 1;
2294 padding: 24px 20px;
2295 overflow: auto;
2296 color: #2a3139;
2297 scrollbar-width: thin;
2298 scrollbar-color: #d5dae0 transparent;
2299 }
2300
2301 .storyboard-description p {
2302 margin: 0;
2303 font-size: 13px;
2304 line-height: 1.85;
2305 white-space: pre-wrap;
2306 }
2307
2308 .storyboard-description > span {
2309 display: grid;
2310 min-height: 180px;
2311 place-items: center;
2312 color: var(--muted);
2313 font-size: 10px;
2314 text-align: center;
2315 }
2316
2317 .storyboard-description > span.is-error {
2318 color: var(--red);
2319 }
2320
2321 .storyboard-panel > footer {
2322 display: grid;
2323 grid-template-columns: 1fr 1fr;
2324 gap: 8px;
2325 padding: 12px;
2326 border-top: 1px solid var(--line);
2327 }
2328
2329 .storyboard-panel > footer button {
2330 display: inline-flex;
2331 height: 36px;
2332 align-items: center;
2333 justify-content: center;
2334 gap: 6px;
2335 color: #4d5661;
2336 font-size: 10px;
2337 font-weight: 620;
2338 background: #eef1f4;
2339 border: 1px solid #dce1e6;
2340 border-radius: 6px;
2341 cursor: pointer;
2342 }
2343
2344 .storyboard-panel > footer button:hover:not(:disabled) {
2345 color: var(--ink);
2346 background: #e5e9ed;
2347 }
2348
2349 .storyboard-panel > footer button:disabled {
2350 cursor: default;
2351 opacity: 0.42;
2352 }
2353
2354 html[data-theme='dark'] {
2355 color-scheme: dark;
2356 color: #eef1f4;
2357 background: #090a0c;
2358 --canvas: #090a0c;
2359 --sidebar: #121417;
2360 --surface: #17191d;
2361 --surface-soft: #14171b;
2362 --ink: #eef1f4;
2363 --muted: #9299a3;
2364 --faint: #69717c;
2365 --line: #292d33;
2366 --line-strong: #383d45;
2367 --blue: #72aaff;
2368 --cyan: #55c2c8;
2369 --magenta: #d184c7;
2370 --green: #55b889;
2371 --amber: #d6a454;
2372 --red: #ed7373;
2373 }
2374
2375 html[data-theme='dark'] body {
2376 background: var(--canvas);
2377 }
2378
2379 html[data-theme='dark'] .icon-button {
2380 color: #9da4ad;
2381 }
2382
2383 html[data-theme='dark'] .icon-button:hover,
2384 html[data-theme='dark'] .primary-nav button:hover,
2385 html[data-theme='dark'] .primary-nav button.is-active {
2386 color: var(--ink);
2387 background: #20242a;
2388 }
2389
2390 html[data-theme='dark'] .primary-nav button:first-child {
2391 color: #82b2ff;
2392 }
2393
2394 html[data-theme='dark'] .section-label {
2395 color: #747c86;
2396 }
2397
2398 html[data-theme='dark'] .session-list,
2399 html[data-theme='dark'] .conversation,
2400 html[data-theme='dark'] .settings-view,
2401 html[data-theme='dark'] .artifacts-view,
2402 html[data-theme='dark'] .storyboard-description {
2403 scrollbar-color: #343a42 transparent;
2404 }
2405
2406 html[data-theme='dark'] .session-item:hover {
2407 background: #1a1e23;
2408 }
2409
2410 html[data-theme='dark'] .session-item.is-selected {
2411 background: #23272d;
2412 }
2413
2414 html[data-theme='dark'] .session-delete {
2415 color: #838b95;
2416 }
2417
2418 html[data-theme='dark'] .session-delete:hover {
2419 color: var(--red);
2420 background: #3a2426;
2421 }
2422
2423 html[data-theme='dark'] .avatar {
2424 color: #101216;
2425 background: #e6e9ed;
2426 }
2427
2428 html[data-theme='dark'] .workspace-header {
2429 border-bottom-color: var(--line);
2430 }
2431
2432 html[data-theme='dark'] .stage-badge {
2433 color: #a0a7b0;
2434 background: #1b1f24;
2435 }
2436
2437 html[data-theme='dark'] .count-badge {
2438 border-color: var(--canvas);
2439 }
2440
2441 html[data-theme='dark'] .message-body {
2442 color: #e4e7eb;
2443 }
2444
2445 html[data-theme='dark'] .role-user .message-body {
2446 background: #202329;
2447 }
2448
2449 html[data-theme='dark'] .message-body code {
2450 background: #20242a;
2451 }
2452
2453 html[data-theme='dark'] .message-body pre {
2454 color: #e8ebef;
2455 background: #111318;
2456 border: 1px solid #2b3037;
2457 }
2458
2459 html[data-theme='dark'] .role-error .message-body,
2460 html[data-theme='dark'] .inline-error {
2461 color: #f08a8a;
2462 background: #2c1b1d;
2463 border-color: #553034;
2464 }
2465
2466 html[data-theme='dark'] .activity-row,
2467 html[data-theme='dark'] .thinking-row {
2468 color: #969da7;
2469 }
2470
2471 html[data-theme='dark'] .activity-row strong {
2472 color: #bec4cb;
2473 }
2474
2475 html[data-theme='dark'] .activity-indicator {
2476 color: #adb4bd;
2477 background: #20242a;
2478 border-color: #343941;
2479 }
2480
2481 html[data-theme='dark'] .activity-indicator.tool-planning {
2482 color: #d0a4d0;
2483 background: #2b2230;
2484 }
2485
2486 html[data-theme='dark'] .activity-indicator.tool-render {
2487 color: #9ebfe2;
2488 background: #1e2934;
2489 }
2490
2491 html[data-theme='dark'] .activity-indicator.tool-image {
2492 color: #99c9cd;
2493 background: #1d2b2c;
2494 }
2495
2496 html[data-theme='dark'] .activity-indicator.tool-memory,
2497 html[data-theme='dark'] .activity-indicator.tool-todo,
2498 html[data-theme='dark'] .activity-indicator.tool-shell,
2499 html[data-theme='dark'] .activity-indicator.tool-time {
2500 color: #b6bdc5;
2501 background: #24282d;
2502 }
2503
2504 html[data-theme='dark'] .thinking-mark i {
2505 background: #6f7680;
2506 }
2507
2508 html[data-theme='dark'] .slash-command-menu {
2509 background: rgba(22, 24, 28, 0.99);
2510 }
2511
2512 html[data-theme='dark'] .slash-command-menu button:hover {
2513 background: #22262c;
2514 }
2515
2516 html[data-theme='dark'] .composer {
2517 background: rgba(20, 22, 25, 0.98);
2518 border-color: #343a42;
2519 box-shadow: 0 14px 38px rgba(0, 0, 0, 0.34), 0 2px 8px rgba(0, 0, 0, 0.24);
2520 }
2521
2522 html[data-theme='dark'] .composer:focus-within {
2523 border-color: #566675;
2524 box-shadow: 0 16px 42px rgba(0, 0, 0, 0.4), 0 0 0 2px rgba(114, 170, 255, 0.11);
2525 }
2526
2527 html[data-theme='dark'] .composer textarea {
2528 color: var(--ink);
2529 }
2530
2531 html[data-theme='dark'] .composer textarea::placeholder {
2532 color: #737b85;
2533 }
2534
2535 html[data-theme='dark'] .composer-attachment {
2536 color: #c2c7ce;
2537 background: #22262c;
2538 border-color: #343a42;
2539 }
2540
2541 html[data-theme='dark'] .composer-attachment button:hover,
2542 html[data-theme='dark'] .composer-add:hover:not(:disabled) {
2543 color: #f0f2f4;
2544 background: #30353c;
2545 }
2546
2547 html[data-theme='dark'] .composer-add {
2548 color: #aab0b8;
2549 }
2550
2551 html[data-theme='dark'] .send-button:disabled,
2552 html[data-theme='dark'] .send-button.stop {
2553 color: #6e7680;
2554 background: #252a30;
2555 }
2556
2557 html[data-theme='dark'] .settings-save,
2558 html[data-theme='dark'] .send-button:not(.stop):not(:disabled),
2559 html[data-theme='dark'] .dialog-actions button.primary {
2560 color: #111318;
2561 background: #eef1f4;
2562 border-color: #eef1f4;
2563 }
2564
2565 html[data-theme='dark'] .config-fields label > span,
2566 html[data-theme='dark'] .project-name-field > span {
2567 color: #aab0b8;
2568 }
2569
2570 html[data-theme='dark'] .config-fields input,
2571 html[data-theme='dark'] .project-name-field input {
2572 color: var(--ink);
2573 background: #14171b;
2574 }
2575
2576 html[data-theme='dark'] .artifact-view-switcher {
2577 background: #15181c;
2578 border-color: #2a2f35;
2579 }
2580
2581 html[data-theme='dark'] .artifact-view-switcher button {
2582 color: #9299a3;
2583 }
2584
2585 html[data-theme='dark'] .artifact-view-switcher button.is-selected {
2586 color: var(--ink);
2587 background: #292e34;
2588 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
2589 }
2590
2591 html[data-theme='dark'] .artifact-section-heading h2,
2592 html[data-theme='dark'] .artifact-related-visuals > header span,
2593 html[data-theme='dark'] .structured-field p,
2594 html[data-theme='dark'] .render-readiness-summary strong,
2595 html[data-theme='dark'] .storyboard-description,
2596 html[data-theme='dark'] .media-preview-dialog > header strong {
2597 color: #e3e7eb;
2598 }
2599
2600 html[data-theme='dark'] .artifact-document-list button {
2601 color: #9da5af;
2602 }
2603
2604 html[data-theme='dark'] .artifact-document-list button:hover,
2605 html[data-theme='dark'] .artifact-document-list button.is-selected {
2606 color: var(--ink);
2607 background: #20242a;
2608 }
2609
2610 html[data-theme='dark'] .structured-field > span,
2611 html[data-theme='dark'] .structured-nested > h4 {
2612 color: #9ba3ad;
2613 }
2614
2615 html[data-theme='dark'] .structured-nested > .structured-record {
2616 border-left-color: #343a42;
2617 }
2618
2619 html[data-theme='dark'] .related-visual-grid > button > span,
2620 html[data-theme='dark'] .render-media,
2621 html[data-theme='dark'] .artifact-preview > img,
2622 html[data-theme='dark'] .artifact-preview > video,
2623 html[data-theme='dark'] .document-preview {
2624 background: #171b20;
2625 border-color: #30363d;
2626 }
2627
2628 html[data-theme='dark'] .related-visual-empty {
2629 color: #808892;
2630 background: #14171b;
2631 border-color: #343a42;
2632 }
2633
2634 html[data-theme='dark'] .artifacts-empty strong,
2635 html[data-theme='dark'] .renders-empty strong {
2636 color: #c0c6cd;
2637 }
2638
2639 html[data-theme='dark'] .render-item {
2640 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
2641 }
2642
2643 html[data-theme='dark'] .media-preview-dialog {
2644 background: #15181c;
2645 border-color: #3b4149;
2646 }
2647
2648 html[data-theme='dark'] .media-preview-dialog > header {
2649 border-bottom-color: var(--line);
2650 }
2651
2652 html[data-theme='dark'] .dialog-backdrop {
2653 background: rgba(0, 0, 0, 0.58);
2654 }
2655
2656 html[data-theme='dark'] .dialog-icon {
2657 background: #342124;
2658 }
2659
2660 html[data-theme='dark'] .dialog-icon.is-create {
2661 background: #1c2a3a;
2662 }
2663
2664 html[data-theme='dark'] .dialog-actions button {
2665 background: #24282e;
2666 border-color: #3a4048;
2667 }
2668
2669 html[data-theme='dark'] .dialog-actions button:hover:not(:disabled) {
2670 background: #30353c;
2671 }
2672
2673 html[data-theme='dark'] .artifact-panel,
2674 html[data-theme='dark'] .storyboard-panel {
2675 background: #111419;
2676 }
2677
2678 html[data-theme='dark'] .render-readiness {
2679 background: #15181d;
2680 }
2681
2682 html[data-theme='dark'] .render-stage-heading {
2683 color: #89919b;
2684 border-top-color: #2d3239;
2685 }
2686
2687 html[data-theme='dark'] .render-checkpoint {
2688 color: #b4bac2;
2689 }
2690
2691 html[data-theme='dark'] .status-light.is-partial,
2692 html[data-theme='dark'] .status-light.is-missing,
2693 html[data-theme='dark'] .status-light.is-inactive {
2694 background: #525a64;
2695 box-shadow: inset 0 0 0 1px #656e79;
2696 }
2697
2698 html[data-theme='dark'] .storyboard-panel > footer button {
2699 color: #b6bcc4;
2700 background: #20242a;
2701 border-color: #343a42;
2702 }
2703
2704 html[data-theme='dark'] .storyboard-panel > footer button:hover:not(:disabled) {
2705 color: var(--ink);
2706 background: #2a2f36;
2707 }
2708
2709 .sidebar-scrim,
2710 .mobile-only {
2711 display: none;
2712 }
2713
2714 @keyframes empty-in {
2715 from {opacity: 0; transform: translateY(8px);}
2716 to {opacity: 1; transform: translateY(0);}
2717 }
2718
2719 @keyframes message-in {
2720 from {opacity: 0; transform: translateY(4px);}
2721 to {opacity: 1; transform: translateY(0);}
2722 }
2723
2724 @keyframes pulse {
2725 0%, 100% {opacity: 0.42; transform: scale(0.78);}
2726 50% {opacity: 1; transform: scale(1);}
2727 }
2728
2729 @keyframes thinking {
2730 0%, 65%, 100% {opacity: 0.28; transform: translateY(0);}
2731 30% {opacity: 1; transform: translateY(-2px);}
2732 }
2733
2734 @keyframes render-light-pulse {
2735 0%, 100% {opacity: 0.52; background: #d49a2f; box-shadow: 0 0 0 1px rgba(212, 154, 47, 0.08);}
2736 50% {opacity: 1; background: #e0aa40; box-shadow: 0 0 0 4px rgba(212, 154, 47, 0.2);}
2737 }
2738
2739 @keyframes command-in {
2740 from {opacity: 0; transform: translateY(3px);}
2741 to {opacity: 1; transform: translateY(0);}
2742 }
2743
2744 @keyframes dialog-backdrop-in {
2745 from {opacity: 0;}
2746 to {opacity: 1;}
2747 }
2748
2749 @keyframes dialog-in {
2750 from {opacity: 0; transform: translateY(5px) scale(0.99);}
2751 to {opacity: 1; transform: translateY(0) scale(1);}
2752 }
2753
2754 @media (max-width: 1040px) {
2755 .artifact-panel,
2756 .storyboard-panel {
2757 position: absolute;
2758 top: 0;
2759 right: 0;
2760 bottom: 0;
2761 width: 0;
2762 flex-basis: 0;
2763 box-shadow: none;
2764 pointer-events: none;
2765 }
2766
2767 .artifact-panel.is-open,
2768 .storyboard-panel.is-open {
2769 width: min(352px, calc(100vw - 48px));
2770 flex-basis: auto;
2771 box-shadow: -18px 0 48px rgba(28, 35, 44, 0.12);
2772 pointer-events: auto;
2773 }
2774 }
2775
2776 @media (max-width: 760px) {
2777 .app-shell {
2778 min-height: 420px;
2779 }
2780
2781 .desktop-only {
2782 display: none !important;
2783 }
2784
2785 .mobile-only {
2786 display: inline-grid;
2787 }
2788
2789 .sidebar,
2790 .sidebar.is-collapsed {
2791 position: absolute;
2792 top: 0;
2793 bottom: 0;
2794 left: 0;
2795 width: min(296px, calc(100vw - 48px));
2796 flex-basis: auto;
2797 transform: translateX(-102%);
2798 box-shadow: 18px 0 50px rgba(33, 41, 50, 0.14);
2799 }
2800
2801 .sidebar.is-mobile-open {
2802 transform: translateX(0);
2803 }
2804
2805 .sidebar-scrim {
2806 position: absolute;
2807 z-index: 19;
2808 inset: 0;
2809 display: block;
2810 padding: 0;
2811 background: rgba(30, 37, 45, 0.18);
2812 border: 0;
2813 }
2814
2815 .workspace-header {
2816 min-height: 60px;
2817 gap: 8px;
2818 padding: 0 10px;
2819 }
2820
2821 .workspace-title-copy span,
2822 .stage-badge {
2823 display: none;
2824 }
2825
2826 .workspace-utility-bar {
2827 top: 10px;
2828 right: 8px;
2829 left: 8px;
2830 }
2831
2832 .workspace-title-copy strong {
2833 max-width: 48vw;
2834 }
2835
2836 .message-stream {
2837 width: calc(100% - 28px);
2838 padding-top: 64px;
2839 padding-bottom: 150px;
2840 }
2841
2842 .message-row {
2843 margin-bottom: 26px;
2844 }
2845
2846 .message-body {
2847 max-width: 88%;
2848 font-size: 13px;
2849 line-height: 1.65;
2850 }
2851
2852 .activity-row {
2853 width: 88%;
2854 }
2855
2856 .thinking-row {
2857 margin-left: 0;
2858 }
2859
2860 .empty-state {
2861 width: calc(100% - 32px);
2862 padding-bottom: 148px;
2863 }
2864
2865 .empty-state-logo {
2866 width: 50px;
2867 height: 50px;
2868 }
2869
2870 .empty-state h1 {
2871 font-size: 23px;
2872 }
2873
2874 .composer-zone {
2875 padding: 24px 10px 10px;
2876 }
2877
2878 .artifact-panel.is-open,
2879 .storyboard-panel.is-open {
2880 width: min(360px, calc(100vw - 24px));
2881 }
2882
2883 .session-delete {
2884 opacity: 1;
2885 }
2886
2887 .renders-view {
2888 padding: 28px 14px 148px;
2889 }
2890
2891 .artifacts-view {
2892 padding: 26px 14px 40px;
2893 }
2894
2895 .artifacts-view > header {
2896 align-items: flex-start;
2897 }
2898
2899 .artifacts-view h1 {
2900 font-size: 21px;
2901 }
2902
2903 .artifact-file-count {
2904 padding-top: 5px;
2905 }
2906
2907 .artifact-browser {
2908 grid-template-columns: 1fr;
2909 }
2910
2911 .artifact-document-list {
2912 max-height: 220px;
2913 padding: 12px 0;
2914 overflow: auto;
2915 border-right: 0;
2916 border-bottom: 1px solid var(--line);
2917 }
2918
2919 .artifact-document {
2920 padding: 20px 0 30px;
2921 }
2922
2923 .artifact-document > header {
2924 align-items: flex-start;
2925 flex-direction: column;
2926 gap: 7px;
2927 }
2928
2929 .artifact-document > header small {
2930 max-width: 100%;
2931 }
2932
2933 .artifact-document.has-related-visuals .artifact-document-layout {
2934 grid-template-columns: 1fr;
2935 gap: 0;
2936 }
2937
2938 .artifact-related-visuals {
2939 padding: 22px 0 4px;
2940 border-top: 1px solid var(--line);
2941 border-left: 0;
2942 }
2943
2944 .related-visual-grid {
2945 grid-template-columns: repeat(2, minmax(0, 1fr));
2946 }
2947
2948 .media-preview-backdrop {
2949 padding: 10px;
2950 }
2951
2952 .media-preview-dialog {
2953 max-height: calc(100vh - 20px);
2954 }
2955
2956 .media-preview-stage {
2957 min-height: 0;
2958 height: calc(100vh - 76px);
2959 }
2960
2961 .media-preview-stage img,
2962 .media-preview-stage video {
2963 max-height: calc(100vh - 76px);
2964 }
2965
2966 .structured-fields {
2967 grid-template-columns: 1fr;
2968 }
2969
2970 .structured-field.is-long {
2971 grid-column: auto;
2972 }
2973
2974 .renders-view h1 {
2975 font-size: 20px;
2976 }
2977
2978 .render-grid {
2979 grid-template-columns: 1fr;
2980 }
2981
2982 .settings-view {
2983 padding: 26px 16px 40px;
2984 }
2985
2986 .settings-view > header {
2987 align-items: flex-start;
2988 }
2989
2990 .settings-view h1 {
2991 font-size: 21px;
2992 }
2993
2994 .settings-save-group > span {
2995 display: none;
2996 }
2997
2998 .config-section {
2999 grid-template-columns: 1fr;
3000 gap: 18px;
3001 }
3002
3003 .config-fields {
3004 grid-template-columns: 1fr;
3005 }
3006
3007 .config-field-wide {
3008 grid-column: auto;
3009 }
3010
3011 .slash-command-menu button {
3012 grid-template-columns: 94px minmax(0, 1fr);
3013 }
3014 }
3015
3016 @media (prefers-reduced-motion: reduce) {
3017 *,
3018 *::before,
3019 *::after {
3020 scroll-behavior: auto !important;
3021 animation-duration: 0.01ms !important;
3022 animation-iteration-count: 1 !important;
3023 transition-duration: 0.01ms !important;
3024 }
3025 }
3026
3026 lines CSS