blob: 2928c447688b4421cf952818999ceb0c79643c52 [file] [log] [blame]
Earl Lee2e463fb2025-04-17 11:22:22 -07001body {
2 font-family:
3 system-ui,
4 -apple-system,
5 BlinkMacSystemFont,
6 "Segoe UI",
7 Roboto,
8 sans-serif;
9 margin: 0;
10 padding: 20px;
11 padding-top: 80px; /* Added padding to account for the fixed top banner */
12 padding-bottom: 100px; /* Adjusted padding for chat container */
13 color: #333;
14 line-height: 1.4; /* Reduced line height for more compact text */
15}
16
17.timeline-container {
18 max-width: 1200px;
19 margin: 0 auto;
20 position: relative;
21}
22
23/* When diff view is active, allow timeline container to expand to full width */
24.timeline-container.diff-active {
25 max-width: 100%;
26}
27
28/* Top banner with combined elements */
29.top-banner {
30 display: flex;
31 justify-content: space-between;
32 align-items: center;
33 padding: 5px 20px;
34 margin-bottom: 0;
35 border-bottom: 1px solid #eee;
36 flex-wrap: wrap;
37 gap: 10px;
38 position: fixed;
39 top: 0;
40 left: 0;
41 right: 0;
42 background: white;
43 z-index: 100;
44 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
45 max-width: 100%;
46}
47
48.banner-title {
49 font-size: 18px;
50 font-weight: 600;
51 margin: 0;
52 white-space: nowrap;
53 overflow: hidden;
54 text-overflow: ellipsis;
55}
56
57.chat-title {
58 margin: 0;
59 padding: 0;
60 color: rgba(82, 82, 82, 0.85);
61 font-size: 16px;
62 font-weight: normal;
63 font-style: italic;
64 white-space: nowrap;
65 overflow: hidden;
66 text-overflow: ellipsis;
67 max-width: 100%;
68}
69
70/* Original header styles kept for compatibility */
71header {
72 display: none; /* Hidden since we're using top-banner instead */
73}
74
75/* Ensure the container starts below the fixed top banner */
76.timeline-container {
77 padding-top: 10px;
78}
79
80h1 {
81 margin: 0;
82 font-size: 24px;
83 font-weight: 600;
84}
85
86.info-card {
87 background: #f9f9f9;
88 border-radius: 8px;
89 padding: 15px;
90 margin-bottom: 20px;
91 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
92 display: none; /* Hidden in the combined layout */
93}
94
95.info-grid {
96 display: flex;
97 flex-wrap: wrap;
98 gap: 8px;
99 background: #f9f9f9;
100 border-radius: 4px;
101 padding: 4px 10px;
102 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
103 flex: 1;
104}
105
106.info-item {
107 display: flex;
108 align-items: center;
109 white-space: nowrap;
110 margin-right: 10px;
111 font-size: 13px;
112}
113
114.info-label {
115 font-size: 11px;
116 color: #555;
117 margin-right: 3px;
118 font-weight: 500;
119}
120
121.info-value {
122 font-size: 11px;
123 font-weight: 600;
124}
125
126.cost {
127 color: #2e7d32;
128}
129
130.refresh-control {
131 display: flex;
132 align-items: center;
133 margin-bottom: 0;
134 flex-wrap: nowrap;
135 white-space: nowrap;
136 flex-shrink: 0;
137}
138
139.refresh-button {
140 background: #4caf50;
141 color: white;
142 border: none;
143 padding: 4px 10px;
144 border-radius: 4px;
145 cursor: pointer;
146 font-size: 12px;
147 margin: 5px;
148}
149
150.poll-updates {
151 display: flex;
152 align-items: center;
153 margin: 0 5px;
154 font-size: 12px;
155}
156
157.status-container {
158 display: flex;
159 align-items: center;
160}
161
162.polling-indicator {
163 display: inline-block;
164 width: 8px;
165 height: 8px;
166 border-radius: 50%;
167 margin-right: 4px;
168 background-color: #ccc;
169}
170
171.polling-indicator.active {
172 background-color: #4caf50;
173 animation: pulse 1.5s infinite;
174}
175
176.polling-indicator.error {
177 background-color: #f44336;
178 animation: pulse 1.5s infinite;
179}
180
181@keyframes pulse {
182 0% {
183 opacity: 1;
184 }
185 50% {
186 opacity: 0.5;
187 }
188 100% {
189 opacity: 1;
190 }
191}
192
193.status-text {
194 font-size: 11px;
195 color: #666;
196}
197
198/* Timeline styles that should remain unchanged */
199.timeline {
200 position: relative;
201 margin: 10px 0;
202 scroll-behavior: smooth;
203}
204
205.timeline::before {
206 content: "";
207 position: absolute;
208 top: 0;
209 bottom: 0;
210 left: 15px;
211 width: 2px;
212 background: #e0e0e0;
213 border-radius: 1px;
214}
215
216/* Hide the timeline vertical line when there are no messages */
217.timeline.empty::before {
218 display: none;
219}
220
221.message {
222 position: relative;
223 margin-bottom: 5px;
224 padding-left: 30px;
225}
226
227.message-icon {
228 position: absolute;
229 left: 10px;
230 top: 0;
231 transform: translateX(-50%);
232 width: 16px;
233 height: 16px;
234 border-radius: 3px;
235 text-align: center;
236 line-height: 16px;
237 color: #fff;
238 font-size: 10px;
239}
240
241.message-content {
242 position: relative;
243 padding: 5px 10px;
244 background: #fff;
245 border-radius: 3px;
246 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
247 border-left: 3px solid transparent;
248}
249
250/* Removed arrow decoration for a more compact look */
251
252.message-header {
253 display: flex;
254 flex-wrap: wrap;
255 gap: 5px;
256 margin-bottom: 3px;
257 font-size: 12px;
258}
259
260.message-timestamp {
261 font-size: 10px;
262 color: #888;
263 font-style: italic;
264 margin-left: 3px;
265}
266
267.conversation-id {
268 font-family: monospace;
269 font-size: 12px;
270 padding: 2px 4px;
271 background-color: #f0f0f0;
272 border-radius: 3px;
273 margin-left: auto;
274}
275
276.parent-info {
277 font-size: 11px;
278 opacity: 0.8;
279}
280
281.subconversation {
282 border-left: 2px solid transparent;
283 padding-left: 5px;
284 margin-left: 20px;
285 transition: margin-left 0.3s ease;
286}
287
288.message-text {
289 overflow-x: auto;
290 margin-bottom: 3px;
291 font-family: monospace;
292 padding: 3px 5px;
293 background: #f7f7f7;
294 border-radius: 2px;
295 user-select: text;
296 cursor: text;
297 -webkit-user-select: text;
298 -moz-user-select: text;
299 -ms-user-select: text;
300 font-size: 13px;
301 line-height: 1.3;
302}
303
304.tool-details {
305 margin-top: 3px;
306 padding-top: 3px;
307 border-top: 1px dashed #e0e0e0;
308 font-size: 12px;
309}
310
311.tool-name {
312 font-size: 12px;
313 font-weight: bold;
314 margin-bottom: 2px;
315 background: #f0f0f0;
316 padding: 2px 4px;
317 border-radius: 2px;
318 display: flex;
319 align-items: center;
320 gap: 3px;
321}
322
323.tool-input,
324.tool-result {
325 margin-top: 2px;
326 padding: 3px 5px;
327 background: #f7f7f7;
328 border-radius: 2px;
329 font-family: monospace;
330 font-size: 12px;
331 overflow-x: auto;
332 white-space: pre;
333 line-height: 1.3;
334 user-select: text;
335 cursor: text;
336 -webkit-user-select: text;
337 -moz-user-select: text;
338 -ms-user-select: text;
339}
340
341.tool-result {
342 max-height: 300px;
343 overflow-y: auto;
344}
345
346.usage-info {
347 margin-top: 10px;
348 padding-top: 10px;
349 border-top: 1px dashed #e0e0e0;
350 font-size: 12px;
351 color: #666;
352}
353
354/* Message type styles */
355.user .message-icon {
356 background-color: #2196f3;
357}
358
359.agent .message-icon {
360 background-color: #4caf50;
361}
362
363.tool .message-icon {
364 background-color: #ff9800;
365}
366
367.error .message-icon {
368 background-color: #f44336;
369}
370
371.end-of-turn {
372 margin-bottom: 15px;
373}
374
375.end-of-turn::after {
376 content: "End of Turn";
377 position: absolute;
378 left: 15px;
379 bottom: -10px;
380 transform: translateX(-50%);
381 font-size: 10px;
382 color: #666;
383 background: #f0f0f0;
384 padding: 1px 4px;
385 border-radius: 3px;
386}
387
388.collapsible {
389 cursor: pointer;
390 background-color: #f0f0f0;
391 padding: 5px 10px;
392 border: none;
393 border-radius: 4px;
394 text-align: left;
395 font-size: 12px;
396 margin-top: 5px;
397}
398
399.collapsed {
400 max-height: 50px;
401 overflow-y: hidden;
402 position: relative;
403 text-overflow: ellipsis;
404}
405
406/* Removed the gradient effect */
407
408.loader {
409 display: flex;
410 justify-content: center;
411 padding: 20px;
412}
413
414.loader::after {
415 content: "";
416 width: 30px;
417 height: 30px;
418 border: 3px solid #f3f3f3;
419 border-top: 3px solid #3498db;
420 border-radius: 50%;
421 animation: spin 1s linear infinite;
422}
423
424@keyframes spin {
425 0% {
426 transform: rotate(0deg);
427 }
428 100% {
429 transform: rotate(360deg);
430 }
431}
432
433/* Chat styles */
434.chat-container {
435 position: fixed;
436 bottom: 0;
437 left: 0;
438 width: 100%;
439 background: #f0f0f0;
440 padding: 15px;
441 box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
442 z-index: 1000;
443}
444
445.chat-input-wrapper {
446 display: flex;
447 max-width: 1200px;
448 margin: 0 auto;
449 gap: 10px;
450}
451
452#chatInput {
453 flex: 1;
454 padding: 12px;
455 border: 1px solid #ddd;
456 border-radius: 4px;
457 resize: none;
458 font-family: monospace;
459 font-size: 12px;
460 min-height: 40px;
461 max-height: 120px;
462 background: #f7f7f7;
463}
464
465#sendChatButton {
466 background-color: #2196f3;
467 color: white;
468 border: none;
469 border-radius: 4px;
470 padding: 0 20px;
471 cursor: pointer;
472 font-weight: 600;
473}
474
475#sendChatButton:hover {
476 background-color: #0d8bf2;
477}
478
479/* Copy button styles */
480.message-text-container,
481.tool-result-container {
482 position: relative;
483}
484
485.message-actions {
486 position: absolute;
487 top: 5px;
488 right: 5px;
489 z-index: 10;
490 opacity: 0;
491 transition: opacity 0.2s ease;
492}
493
494.message-text-container:hover .message-actions,
495.tool-result-container:hover .message-actions {
496 opacity: 1;
497}
498
499.copy-button {
500 background-color: rgba(255, 255, 255, 0.9);
501 border: 1px solid #ddd;
502 border-radius: 4px;
503 color: #555;
504 cursor: pointer;
505 font-size: 12px;
506 padding: 2px 8px;
507 transition: all 0.2s ease;
508}
509
510.copy-button:hover {
511 background-color: #f0f0f0;
512 color: #333;
513}
514
515/* Diff View Styles */
516.diff-view {
517 width: 100%;
518 background-color: #f5f5f5;
519 border-radius: 8px;
520 overflow: hidden;
521 margin-bottom: 20px;
522 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
523 display: flex;
524 flex-direction: column;
525}
526
527.diff-tabs {
528 display: flex;
529 background-color: #e0e0e0;
530 border-bottom: 1px solid #ccc;
531}
532
533.diff-tab-button {
534 padding: 8px 16px;
535 border: none;
536 background: none;
537 font-size: 14px;
538 cursor: pointer;
539 outline: none;
540 transition: background-color 0.2s;
541}
542
543.diff-tab-button:hover {
544 background-color: #d0d0d0;
545}
546
547.diff-tab-button.active {
548 background-color: #fff;
549 border-bottom: 2px solid #3498db;
550}
551
552.diff-container {
553 flex: 1;
554 overflow: hidden;
555}
556
557/* Removed diff-header for more space */
558
559.diff-content {
560 padding: 15px;
561 margin: 0;
562 max-height: 70vh;
563 overflow-y: auto;
564 font-family: Consolas, Monaco, "Andale Mono", monospace;
565 font-size: 14px;
566 line-height: 1.5;
567 white-space: pre;
568 tab-size: 4;
569 background-color: #fff;
570}
571
572.diff-content .diff-line {
573 padding: 0 5px;
574 white-space: pre;
575 cursor: pointer;
576 transition: background-color 0.2s;
577}
578
579.diff-content .diff-line:hover {
580 background-color: #e6f7ff;
581}
582
583.diff-content .diff-add {
584 background-color: #e6ffed;
585 color: #22863a;
586}
587
588.diff-content .diff-remove {
589 background-color: #ffeef0;
590 color: #cb2431;
591}
592
593.diff-content .diff-info {
594 color: #6a737d;
595 background-color: #f0f0f0;
596}
597
598.diff-comment-box {
599 position: fixed;
600 left: 50%;
601 top: 50%;
602 transform: translate(-50%, -50%);
603 width: 80%;
604 max-width: 600px;
605 background-color: #fff;
606 padding: 20px;
607 border-radius: 8px;
608 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
609 z-index: 1000;
610}
611
612.diff-comment-box h3 {
613 margin-top: 0;
614 margin-bottom: 15px;
615 font-size: 18px;
616}
617
618.selected-line {
619 background-color: #f5f5f5;
620 padding: 10px;
621 margin-bottom: 15px;
622 border-radius: 4px;
623 border-left: 3px solid #0366d6;
624}
625
626.selected-line pre {
627 margin: 5px 0 0 0;
628 white-space: pre-wrap;
629 word-wrap: break-word;
630 font-family: Consolas, Monaco, "Andale Mono", monospace;
631 font-size: 14px;
632}
633
634#diffCommentInput {
635 width: 100%;
636 min-height: 100px;
637 padding: 10px;
638 margin-bottom: 15px;
639 border: 1px solid #ccc;
640 border-radius: 4px;
641 resize: vertical;
642 font-family: Arial, sans-serif;
643}
644
645.diff-comment-buttons {
646 display: flex;
647 justify-content: flex-end;
648 gap: 10px;
649}
650
651.diff-comment-buttons button {
652 padding: 8px 15px;
653 border: none;
654 border-radius: 4px;
655 cursor: pointer;
656 font-weight: 500;
657}
658
659#submitDiffComment {
660 background-color: #0366d6;
661 color: white;
662}
663
664#submitDiffComment:hover {
665 background-color: #0256bd;
666}
667
668#cancelDiffComment {
669 background-color: #e1e4e8;
670 color: #24292e;
671}
672
673#cancelDiffComment:hover {
674 background-color: #d1d5da;
675}
676
677/* View Mode Button Styles */
678.view-mode-buttons {
679 display: flex;
680 gap: 8px;
681 margin-right: 10px;
682}
683
684.emoji-button {
685 font-size: 18px;
686 width: 32px;
687 height: 32px;
688 display: flex;
689 align-items: center;
690 justify-content: center;
691 background: white;
692 border: 1px solid #ddd;
693 border-radius: 4px;
694 cursor: pointer;
695 transition: all 0.2s ease;
696 padding: 0;
697 line-height: 1;
698}
699
700.emoji-button:hover {
701 background-color: #f0f0f0;
702 transform: translateY(-2px);
703 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
704}
705
706.emoji-button.active {
707 background-color: #e6f7ff;
708 border-color: #1890ff;
709 color: #1890ff;
710}
711
712#showConversationButton.active {
713 background-color: #e6f7ff;
714 border-color: #1890ff;
715}
716
717#showDiffButton.active {
718 background-color: #f6ffed;
719 border-color: #52c41a;
720}
721
722#showChartsButton.active {
723 background-color: #fff2e8;
724 border-color: #fa8c16;
725}
726
727.stop-button:hover {
728 background-color: #c82333 !important;
729}
730
731/* Chart View Styles */
732.chart-view {
733 width: 100%;
734 background-color: #ffffff;
735 border-radius: 8px;
736 overflow: hidden;
737 margin-bottom: 20px;
738 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
739 padding: 15px;
740}
741
742.chart-container {
743 width: 100%;
744 height: auto;
745 overflow: auto;
746}
747
748.chart-section {
749 margin-bottom: 30px;
750 border-bottom: 1px solid #eee;
751 padding-bottom: 20px;
752}
753
754/* Terminal View Styles */
755.terminal-view {
756 width: 100%;
757 background-color: #f5f5f5;
758 border-radius: 8px;
759 overflow: hidden;
760 margin-bottom: 20px;
761 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
762 padding: 15px;
763 height: 70vh;
764}
765
766.terminal-container {
767 width: 100%;
768 height: 100%;
769 overflow: hidden;
770}
771
772#showTerminalButton.active {
773 background-color: #fef0f0;
774 border-color: #ff4d4f;
775}
776
777.chart-section:last-child {
778 border-bottom: none;
779 margin-bottom: 0;
780}
781
782.chart-section h3 {
783 margin-top: 0;
784 margin-bottom: 15px;
785 font-size: 18px;
786 color: #333;
787}
788
789#costChart,
790#messagesChart {
791 width: 100%;
792 min-height: 300px;
793 margin-bottom: 10px;
794}
795
796/* Tool calls container styles */
797.tool-calls-container {
798 /* Removed dotted border */
799}
800
801.tool-calls-toggle {
802 cursor: pointer;
803 background-color: #f0f0f0;
804 padding: 5px 10px;
805 border: none;
806 border-radius: 4px;
807 text-align: left;
808 font-size: 12px;
809 margin-top: 5px;
810 color: #555;
811 font-weight: 500;
812}
813
814.tool-calls-toggle:hover {
815 background-color: #e0e0e0;
816}
817
818.tool-calls-details {
819 margin-top: 10px;
820 transition: max-height 0.3s ease;
821}
822
823.tool-calls-details.collapsed {
824 max-height: 0;
825 overflow: hidden;
826 margin-top: 0;
827}
828
829.tool-call {
830 background: #f9f9f9;
831 border-radius: 4px;
832 padding: 10px;
833 margin-bottom: 10px;
834 border-left: 3px solid #4caf50;
835}
836
837.tool-call-header {
838 margin-bottom: 8px;
839 font-size: 14px;
840 padding: 2px 0;
841}
842
843/* Compact tool display styles */
844.tool-compact-line {
845 font-family: monospace;
846 font-size: 12px;
847 line-height: 1.4;
848 padding: 4px 6px;
849 background: #f8f8f8;
850 border-radius: 3px;
851 position: relative;
852 white-space: nowrap;
853 overflow: hidden;
854 text-overflow: ellipsis;
855 max-width: 100%;
856 display: flex;
857 align-items: center;
858}
859
860.tool-result-inline {
861 font-family: monospace;
862 color: #0066bb;
863 white-space: nowrap;
864 overflow: hidden;
865 text-overflow: ellipsis;
866 max-width: 400px;
867 display: inline-block;
868 vertical-align: middle;
869}
870
871.copy-inline-button {
872 font-size: 10px;
873 padding: 2px 4px;
874 margin-left: 8px;
875 background: #eee;
876 border: none;
877 border-radius: 3px;
878 cursor: pointer;
879 opacity: 0.7;
880}
881
882.copy-inline-button:hover {
883 opacity: 1;
884 background: #ddd;
885}
886
887.tool-input.compact,
888.tool-result.compact {
889 margin: 2px 0;
890 padding: 4px;
891 font-size: 12px;
892}
893
894/* Removed old compact container CSS */
895
896/* Ultra-compact tool call box styles */
897.tool-calls-header {
898 /* Empty header - just small spacing */
899}
900
901.tool-call-boxes-row {
902 display: flex;
903 flex-wrap: wrap;
904 gap: 8px;
905 margin-bottom: 8px;
906}
907
908.tool-call-wrapper {
909 display: flex;
910 flex-direction: column;
911 margin-bottom: 4px;
912}
913
914.tool-call-box {
915 display: inline-flex;
916 align-items: center;
917 background: #f0f0f0;
918 border-radius: 4px;
919 padding: 3px 8px;
920 font-size: 12px;
921 cursor: pointer;
922 max-width: 320px;
923 position: relative;
924 border: 1px solid #ddd;
925 transition: background-color 0.2s;
926}
927
928.tool-call-box:hover {
929 background-color: #e8e8e8;
930}
931
932.tool-call-box.expanded {
933 background-color: #e0e0e0;
934 border-bottom-left-radius: 0;
935 border-bottom-right-radius: 0;
936 border-bottom: 1px solid #ccc;
937}
938
939.tool-call-name {
940 font-weight: bold;
941 margin-right: 6px;
942 color: #444;
943}
944
945.tool-call-input {
946 color: #666;
947 white-space: nowrap;
948 overflow: hidden;
949 text-overflow: ellipsis;
950 font-family: monospace;
951 font-size: 11px;
952}
953
954/* Removed old expanded view CSS */
955
956/* Custom styles for IRC-like experience */
957.user .message-content {
958 border-left-color: #2196f3;
959}
960
961.agent .message-content {
962 border-left-color: #4caf50;
963}
964
965.tool .message-content {
966 border-left-color: #ff9800;
967}
968
969.error .message-content {
970 border-left-color: #f44336;
971}
972
973/* Make message type display bold but without the IRC-style markers */
974.message-type {
975 font-weight: bold;
976}
977
978/* Tool call cards */
979.tool-call-cards-container {
980 display: flex;
981 flex-direction: column;
982 gap: 8px;
983 margin-top: 8px;
984}
985
986/* Commit message styling */
987.message.commit {
988 background-color: #f0f7ff;
989 border-left: 4px solid #0366d6;
990}
991
992.commits-container {
993 margin-top: 10px;
994 padding: 5px;
995}
996
997.commits-header {
998 font-weight: bold;
999 margin-bottom: 5px;
1000 color: #24292e;
1001}
1002
1003.commit-boxes-row {
1004 display: flex;
1005 flex-wrap: wrap;
1006 gap: 8px;
1007 margin-top: 8px;
1008}
1009
1010.tool-call-card {
1011 display: flex;
1012 flex-direction: column;
1013 border: 1px solid #ddd;
1014 border-radius: 6px;
1015 background-color: #f9f9f9;
1016 overflow: hidden;
1017 cursor: pointer;
1018}
1019
1020/* Compact view (default) */
1021.tool-call-compact-view {
1022 display: flex;
1023 align-items: center;
1024 padding: 0px 6px;
1025 gap: 8px;
1026 background-color: #f9f9f9;
1027 font-size: 0.9em;
1028 white-space: nowrap;
1029 overflow: visible; /* Don't hide overflow, we'll handle text truncation per element */
1030 position: relative; /* For positioning the expand icon */
1031}
1032
1033/* Expanded view (hidden by default) */
1034.tool-call-card.collapsed .tool-call-expanded-view {
1035 display: none;
1036}
1037
1038.tool-call-expanded-view {
1039 display: flex;
1040 flex-direction: column;
1041 border-top: 1px solid #eee;
1042}
1043
1044.tool-call-header {
1045 display: flex;
1046 align-items: center;
1047 justify-content: space-between;
1048 padding: 6px 10px;
1049 background-color: #f0f0f0;
1050 border-bottom: 1px solid #ddd;
1051 font-weight: bold;
1052}
1053
1054.tool-call-name {
1055 font-family: var(--monospace-font);
1056 color: #0066cc;
1057 font-weight: bold;
1058}
1059
1060.tool-call-status {
1061 margin-right: 4px;
1062 min-width: 1em;
1063 text-align: center;
1064}
1065
1066.tool-call-status.spinner {
1067 animation: spin 1s infinite linear;
1068 display: inline-block;
1069 width: 1em;
1070}
1071
1072.tool-call-time {
1073 margin-left: 8px;
1074 font-size: 0.85em;
1075 color: #666;
1076 font-weight: normal;
1077}
1078
1079.tool-call-input-preview {
1080 color: #555;
1081 font-family: var(--monospace-font);
1082 overflow: hidden;
1083 text-overflow: ellipsis;
1084 white-space: nowrap;
1085 max-width: 30%;
1086 background-color: rgba(240, 240, 240, 0.5);
1087 padding: 2px 5px;
1088 border-radius: 3px;
1089 font-size: 0.9em;
1090}
1091
1092.tool-call-result-preview {
1093 color: #28a745;
1094 font-family: var(--monospace-font);
1095 overflow: hidden;
1096 text-overflow: ellipsis;
1097 white-space: nowrap;
1098 max-width: 40%;
1099 background-color: rgba(240, 248, 240, 0.5);
1100 padding: 2px 5px;
1101 border-radius: 3px;
1102 font-size: 0.9em;
1103}
1104
1105.tool-call-expand-icon {
1106 position: absolute;
1107 right: 10px;
1108 font-size: 0.8em;
1109 color: #888;
1110}
1111
1112.tool-call-input {
1113 padding: 6px 10px;
1114 border-bottom: 1px solid #eee;
1115 font-family: var(--monospace-font);
1116 font-size: 0.9em;
1117 white-space: pre-wrap;
1118 word-break: break-all;
1119 background-color: #f5f5f5;
1120}
1121
1122.tool-call-result {
1123 padding: 6px 10px;
1124 font-family: var(--monospace-font);
1125 font-size: 0.9em;
1126 white-space: pre-wrap;
1127 max-height: 300px;
1128 overflow-y: auto;
1129}
1130
1131.tool-call-result pre {
1132 margin: 0;
1133 white-space: pre-wrap;
1134}
1135
1136@keyframes spin {
1137 0% {
1138 transform: rotate(0deg);
1139 }
1140 100% {
1141 transform: rotate(360deg);
1142 }
1143}
1144
1145/* Standalone tool messages (legacy/disconnected) */
1146.tool-details.standalone .tool-header {
1147 border-radius: 4px;
1148 background-color: #fff3cd;
1149 border-color: #ffeeba;
1150}
1151
1152.tool-details.standalone .tool-warning {
1153 margin-left: 10px;
1154 font-size: 0.85em;
1155 color: #856404;
1156 font-style: italic;
1157}
1158
1159/* Tool call expanded view with sections */
1160.tool-call-section {
1161 border-bottom: 1px solid #eee;
1162}
1163
1164.tool-call-section:last-child {
1165 border-bottom: none;
1166}
1167
1168.tool-call-section-label {
1169 display: flex;
1170 justify-content: space-between;
1171 align-items: center;
1172 padding: 8px 10px;
1173 background-color: #f5f5f5;
1174 font-weight: bold;
1175 font-size: 0.9em;
1176}
1177
1178.tool-call-section-content {
1179 padding: 0;
1180}
1181
1182.tool-call-copy-btn {
1183 background-color: #f0f0f0;
1184 border: 1px solid #ddd;
1185 border-radius: 4px;
1186 padding: 2px 8px;
1187 font-size: 0.8em;
1188 cursor: pointer;
1189 transition: background-color 0.2s;
1190}
1191
1192.tool-call-copy-btn:hover {
1193 background-color: #e0e0e0;
1194}
1195
1196/* Override for tool call input in expanded view */
1197.tool-call-section-content .tool-call-input {
1198 margin: 0;
1199 padding: 8px 10px;
1200 border: none;
1201 background-color: #fff;
1202 max-height: 300px;
1203 overflow-y: auto;
1204}
1205
1206.title-container {
1207 display: flex;
1208 flex-direction: column;
1209 max-width: 33%;
1210 overflow: hidden;
1211}
1212
1213.commit-box {
1214 border: 1px solid #d1d5da;
1215 border-radius: 4px;
1216 overflow: hidden;
1217 background-color: #ffffff;
1218 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1219 max-width: 100%;
1220 display: flex;
1221 flex-direction: column;
1222}
1223
1224.commit-preview {
1225 padding: 8px 12px;
1226 cursor: pointer;
1227 font-family: monospace;
1228 background-color: #f6f8fa;
1229 border-bottom: 1px dashed #d1d5da;
1230}
1231
1232.commit-preview:hover {
1233 background-color: #eef2f6;
1234}
1235
1236.commit-hash {
1237 color: #0366d6;
1238 font-weight: bold;
1239}
1240
1241.commit-details {
1242 padding: 8px 12px;
1243 max-height: 200px;
1244 overflow-y: auto;
1245}
1246
1247.commit-details pre {
1248 margin: 0;
1249 white-space: pre-wrap;
1250 word-break: break-word;
1251}
1252
1253.commit-details.is-hidden {
1254 display: none;
1255}
1256
1257.pushed-branch {
1258 color: #28a745;
1259 font-weight: 500;
1260 margin-left: 6px;
1261}
1262
1263.commit-diff-button {
1264 padding: 6px 12px;
1265 border: 1px solid #ccc;
1266 border-radius: 3px;
1267 background-color: #f7f7f7;
1268 color: #24292e;
1269 font-size: 12px;
1270 cursor: pointer;
1271 transition: all 0.2s ease;
1272 margin: 8px 12px;
1273 display: block;
1274}
1275
1276.commit-diff-button:hover {
1277 background-color: #e7e7e7;
1278 border-color: #aaa;
1279}
1280
1281/* Hide views initially to prevent flash of content */
1282.timeline-container .timeline,
1283.timeline-container .diff-view,
1284.timeline-container .chart-view,
1285.timeline-container .terminal-view {
1286 visibility: hidden;
1287}
1288
1289/* Will be set by JavaScript once we know which view to display */
1290.timeline-container.view-initialized .timeline,
1291.timeline-container.view-initialized .diff-view,
1292.timeline-container.view-initialized .chart-view,
1293.timeline-container.view-initialized .terminal-view {
1294 visibility: visible;
1295}
1296
1297.markdown-content {
1298 box-sizing: border-box;
1299 min-width: 200px;
1300 margin: 0 auto;
1301}
1302
1303.markdown-content p {
1304 margin-block-start: 0.5em;
1305 margin-block-end: 0.5em
1306}