Krolyxon
Commit ce0f374

ferreniumassetscssrepo.css

1183 lines · 20.6 KB · CSS

1/* Repository pages: nav, ref picker, summary, tree, blob, refs, Markdown. */
2
3.mono {
4 font-family: var(--font-mono);
5}
6
7.icon {
8 width: 16px;
9 height: 16px;
10 flex: none;
11}
12
13/* ---- Repository bar: [ SUMMARY ] TREE REFS · ref picker ------------- */
14
15.repo-bar {
16 display: flex;
17 flex-wrap: wrap;
18 align-items: center;
19 justify-content: space-between;
20 gap: var(--space-sm) var(--space-md);
21 padding-top: var(--space-sm);
22}
23
24.bracket-nav {
25 overflow-x: auto;
26 scrollbar-width: none;
27}
28
29.bracket-nav a {
30 white-space: nowrap;
31}
32
33/* margin-left: auto keeps the picker at the right edge when the bar wraps
34 (narrow screens), so the right-anchored menu opens on screen. */
35.ref-picker {
36 position: relative;
37 margin-left: auto;
38}
39
40.ref-picker summary {
41 display: inline-flex;
42 align-items: center;
43 gap: var(--space-sm);
44 min-height: 44px;
45 padding: 0 var(--space-md);
46 border: 1px solid var(--border-visible);
47 border-radius: 999px;
48 list-style: none;
49 cursor: pointer;
50 color: var(--text-secondary);
51 transition: border-color var(--dur-micro) var(--ease);
52}
53
54.ref-picker summary::-webkit-details-marker {
55 display: none;
56}
57
58.ref-picker summary:hover,
59.ref-picker[open] summary {
60 border-color: var(--text-secondary);
61}
62
63.ref-current {
64 max-width: 24ch;
65 overflow: hidden;
66 text-overflow: ellipsis;
67 white-space: nowrap;
68 font-family: var(--font-mono);
69 font-size: var(--caption);
70 color: var(--text-primary);
71}
72
73.ref-picker[open] .chevron {
74 transform: rotate(180deg);
75}
76
77.ref-menu {
78 position: absolute;
79 z-index: 10;
80 right: 0;
81 top: calc(100% + var(--space-xs));
82 width: max-content;
83 min-width: 240px;
84 max-width: min(360px, calc(100vw - 2 * var(--gutter)));
85 max-height: 60vh;
86 overflow-y: auto;
87 padding: var(--space-sm) 0;
88 border: 1px solid var(--border-visible);
89 border-radius: 8px;
90 background: var(--surface-raised);
91}
92
93.ref-group {
94 padding: var(--space-sm) var(--space-md) var(--space-xs);
95 color: var(--text-disabled);
96}
97
98.ref-menu ul {
99 list-style: none;
100}
101
102.ref-menu li a {
103 display: flex;
104 align-items: center;
105 min-height: 44px;
106 padding: 0 var(--space-md);
107 border-left: 2px solid transparent;
108 font-family: var(--font-mono);
109 font-size: var(--caption);
110 color: var(--text-primary);
111 overflow-wrap: anywhere;
112}
113
114.ref-menu li a:hover {
115 color: var(--text-display);
116 text-decoration: none;
117}
118
119.ref-menu li a.active {
120 border-left-color: var(--accent);
121 color: var(--text-display);
122}
123
124.ref-all {
125 display: flex;
126 align-items: center;
127 min-height: 44px;
128 padding: 0 var(--space-md);
129 margin-top: var(--space-xs);
130 border-top: 1px solid var(--border);
131}
132
133/* ---- Breadcrumb: secondary path, current segment in display ------------ */
134
135.crumbs {
136 padding-top: var(--space-2xl);
137 font-size: var(--heading);
138 font-weight: 400;
139 line-height: 1.25;
140 color: var(--text-secondary);
141 overflow-wrap: anywhere;
142}
143
144.crumbs a {
145 color: var(--text-secondary);
146}
147
148.crumbs a:hover {
149 color: var(--text-display);
150}
151
152.crumb-sep {
153 padding: 0 var(--space-sm);
154 color: var(--text-disabled);
155}
156
157.crumb-here {
158 color: var(--text-display);
159}
160
161/* ---- Summary ------------------------------------------------------------ */
162
163.repo-hero {
164 padding-top: var(--space-2xl);
165}
166
167.repo-title {
168 font-weight: 500;
169 overflow-wrap: anywhere;
170}
171
172.repo-about {
173 margin-top: var(--space-sm);
174 max-width: 60ch;
175 color: var(--text-secondary);
176}
177
178.repo-grid {
179 display: grid;
180 grid-template-columns: minmax(0, 1fr);
181 gap: var(--space-2xl);
182 margin-top: var(--space-xl);
183}
184
185@media (min-width: 768px) {
186 .repo-grid {
187 grid-template-columns: minmax(0, 1fr) var(--rail);
188 gap: var(--space-xl);
189 }
190}
191
192@media (min-width: 1200px) {
193 .repo-grid {
194 gap: var(--space-2xl);
195 }
196}
197
198.rail {
199 display: flex;
200 flex-direction: column;
201 gap: var(--space-xl);
202 min-width: 0;
203}
204
205.stats {
206 border-top: 1px solid var(--border);
207}
208
209.stat {
210 display: flex;
211 align-items: baseline;
212 justify-content: space-between;
213 gap: var(--space-md);
214 padding-block: 12px;
215 border-bottom: 1px solid var(--border);
216}
217
218.stat dd {
219 margin: 0;
220 font-family: var(--font-mono);
221 font-size: var(--body-sm);
222 color: var(--text-primary);
223 text-align: right;
224 overflow-wrap: anywhere;
225}
226
227.rail-head {
228 display: flex;
229 align-items: center;
230 justify-content: space-between;
231 gap: var(--space-sm);
232 min-height: 30px;
233}
234
235.rail-block > .label {
236 display: block;
237}
238
239.clone-row {
240 display: flex;
241 align-items: center;
242 gap: var(--space-xs);
243 margin-top: var(--space-sm);
244}
245
246.clone-input {
247 flex: 1;
248 min-width: 0;
249 min-height: 44px;
250 padding: 0;
251 border: 0;
252 border-bottom: 1px solid var(--border-visible);
253 border-radius: 0;
254 background: transparent;
255 font-family: var(--font-mono);
256 font-size: var(--caption);
257 color: var(--text-primary);
258 outline: none;
259 text-overflow: ellipsis;
260}
261
262.clone-input:focus {
263 border-bottom-color: var(--text-primary);
264}
265
266.icon-btn {
267 display: inline-flex;
268 align-items: center;
269 justify-content: center;
270 width: 44px;
271 height: 44px;
272 flex: none;
273 padding: 0;
274 border: 0;
275 background: none;
276 color: var(--text-secondary);
277 transition: color var(--dur-micro) var(--ease);
278}
279
280.icon-btn:hover {
281 color: var(--text-display);
282}
283
284/* Copying and switching protocols need JS; without it every URL shows. */
285html:not(.js) .clone-switch,
286html:not(.js) [data-copy],
287html:not(.js) .copy-status {
288 display: none;
289}
290
291.copy-status {
292 min-height: 1.4em;
293 margin-top: var(--space-xs);
294}
295
296/* The one break on the summary: a segmented language bar. */
297.lang-bar {
298 display: grid;
299 grid-template-columns: repeat(40, 1fr);
300 gap: 2px;
301 margin-top: var(--space-sm);
302}
303
304.lang-bar i {
305 aspect-ratio: 1;
306}
307
308.lang-bar i,
309.lang-legend i {
310 background: var(--text-display);
311}
312
313.lang-bar .o1,
314.lang-legend .o1 {
315 opacity: 0.7;
316}
317
318.lang-bar .o2,
319.lang-legend .o2 {
320 opacity: 0.45;
321}
322
323.lang-bar .o3,
324.lang-legend .o3 {
325 opacity: 0.25;
326}
327
328.lang-legend {
329 list-style: none;
330 margin-top: var(--space-sm);
331}
332
333.lang-legend li {
334 display: flex;
335 align-items: center;
336 gap: var(--space-sm);
337 padding-block: 2px;
338}
339
340.lang-legend i {
341 width: 8px;
342 height: 8px;
343 flex: none;
344}
345
346.lang-legend .label {
347 flex: 1;
348}
349
350.lang-pct {
351 font-family: var(--font-mono);
352 font-size: var(--caption);
353 color: var(--text-secondary);
354}
355
356.latest-subject {
357 margin-top: var(--space-sm);
358 color: var(--text-primary);
359 overflow-wrap: anywhere;
360}
361
362.latest-meta {
363 margin-top: var(--space-xs);
364 font-family: var(--font-mono);
365 font-size: var(--caption);
366 color: var(--text-secondary);
367}
368
369.sha {
370 font-family: var(--font-mono);
371}
372
373/* ---- Tree listing --------------------------------------------------------- */
374
375.tree {
376 list-style: none;
377 margin-top: var(--space-lg);
378 border-top: 1px solid var(--border);
379}
380
381.repo-main > .tree:first-child {
382 margin-top: 0;
383}
384
385.tree-row {
386 display: flex;
387 align-items: center;
388 justify-content: space-between;
389 gap: var(--space-md);
390 min-height: 44px;
391 border-bottom: 1px solid var(--border);
392}
393
394.tree-name {
395 display: flex;
396 align-items: center;
397 gap: var(--space-sm);
398 flex: 1;
399 min-width: 0;
400 min-height: 44px;
401 color: var(--text-primary);
402 overflow-wrap: anywhere;
403}
404
405.tree-name .icon {
406 color: var(--text-disabled);
407}
408
409.tree-name .icon-folder {
410 color: var(--text-secondary);
411}
412
413.tree-meta {
414 flex: none;
415 font-family: var(--font-mono);
416 font-size: var(--caption);
417 color: var(--text-disabled);
418 white-space: nowrap;
419}
420
421.tree-foot {
422 margin-top: var(--space-md);
423}
424
425/* ---- README ------------------------------------------------------------- */
426
427.readme {
428 margin-top: var(--space-2xl);
429}
430
431.readme-name {
432 display: inline-block;
433 margin-bottom: var(--space-md);
434 color: var(--text-secondary);
435}
436
437/* ---- Blob --------------------------------------------------------------- */
438
439.blob-bar {
440 display: flex;
441 flex-wrap: wrap;
442 align-items: center;
443 justify-content: space-between;
444 gap: var(--space-sm) var(--space-md);
445 margin-top: var(--space-md);
446}
447
448.blob-actions {
449 display: flex;
450 flex-wrap: wrap;
451 align-items: center;
452 gap: var(--space-md);
453}
454
455.blob-note {
456 padding-block: var(--space-2xl);
457 border-top: 1px solid var(--border);
458 overflow-wrap: anywhere;
459}
460
461.code-wrap {
462 margin-top: var(--space-sm);
463 border-top: 1px solid var(--border);
464 border-bottom: 1px solid var(--border);
465 overflow-x: auto;
466}
467
468.code {
469 width: 100%;
470 border-collapse: collapse;
471 font-family: var(--font-code);
472 font-size: 13px;
473 line-height: 20px;
474 tab-size: 4;
475}
476
477.code td {
478 padding: 0;
479 vertical-align: top;
480}
481
482.code .ln {
483 width: 1%;
484 border-left: 2px solid transparent;
485 text-align: right;
486 user-select: none;
487 -webkit-user-select: none;
488}
489
490.code .ln a {
491 display: block;
492 padding: 0 var(--space-md) 0 var(--space-sm);
493 color: var(--text-disabled);
494}
495
496.code .ln a:hover {
497 color: var(--text-secondary);
498 text-decoration: none;
499}
500
501.code .lc {
502 padding: 0 var(--space-md);
503 white-space: pre;
504 color: var(--text-primary);
505}
506
507.code tr:first-child td {
508 padding-top: var(--space-sm);
509}
510
511.code tr:last-child td {
512 padding-bottom: var(--space-sm);
513}
514
515/* Selected lines: #L12 (CSS) or #L12-L20 (JS). */
516.code tr:target,
517.code tr.selected {
518 background: var(--surface-raised);
519}
520
521.code tr:target .ln,
522.code tr.selected .ln {
523 border-left-color: var(--accent);
524}
525
526.code tr:target .ln a,
527.code tr.selected .ln a {
528 color: var(--text-display);
529}
530
531/* The one break on the blob page: images float on a dot grid. */
532.image-view {
533 display: flex;
534 justify-content: center;
535 margin-top: var(--space-sm);
536 padding: var(--space-xl) var(--space-md);
537 border: 1px solid var(--border);
538 border-radius: 4px;
539 background-image: radial-gradient(circle, var(--border-visible) 1px, transparent 1px);
540 background-size: 16px 16px;
541}
542
543.image-view img {
544 max-height: 70vh;
545 object-fit: contain;
546}
547
548.blob-markdown {
549 margin-top: var(--space-xl);
550}
551
552/* ---- Refs --------------------------------------------------------------- */
553
554.refs-section {
555 margin-top: var(--space-2xl);
556}
557
558.table-wrap {
559 overflow-x: auto;
560}
561
562.data-table {
563 width: 100%;
564 border-collapse: collapse;
565}
566
567.data-table th {
568 padding: 12px 16px 12px 0;
569 border-bottom: 1px solid var(--border-visible);
570 text-align: left;
571 font-weight: 400;
572 white-space: nowrap;
573}
574
575.data-table td {
576 padding: 12px 16px 12px 0;
577 border-bottom: 1px solid var(--border);
578 vertical-align: baseline;
579}
580
581.data-table .num {
582 padding-right: 0;
583 text-align: right;
584 white-space: nowrap;
585 font-family: var(--font-mono);
586 font-size: var(--caption);
587 color: var(--text-disabled);
588}
589
590.data-table th.num {
591 font-size: var(--label);
592 color: var(--text-secondary);
593}
594
595.ref-name {
596 font-family: var(--font-mono);
597 font-size: var(--body-sm);
598 overflow-wrap: anywhere;
599}
600
601.ref-subject {
602 color: var(--text-secondary);
603 overflow-wrap: anywhere;
604}
605
606.ref-archives {
607 display: flex;
608 gap: var(--space-md);
609 margin-top: var(--space-xs);
610}
611
612.ref-archives a {
613 color: var(--text-secondary);
614}
615
616.ref-archives a:hover {
617 color: var(--text-display);
618}
619
620.chip {
621 display: inline-block;
622 margin-left: var(--space-sm);
623 padding: 2px var(--space-sm);
624 border: 1px solid var(--border-visible);
625 border-radius: 999px;
626 font-family: var(--font-mono);
627 font-size: var(--label);
628 letter-spacing: 0.08em;
629 text-transform: uppercase;
630 color: var(--text-secondary);
631 white-space: nowrap;
632}
633
634/* ---- Log ------------------------------------------------------------------ */
635
636.log-tools {
637 margin-top: var(--space-lg);
638 max-width: 420px;
639}
640
641.log-day {
642 margin-top: var(--space-xl);
643}
644
645.log {
646 list-style: none;
647 border-top: 1px solid var(--border);
648}
649
650.log-row {
651 display: flex;
652 align-items: baseline;
653 justify-content: space-between;
654 gap: var(--space-md);
655 padding-block: 12px;
656 border-bottom: 1px solid var(--border);
657}
658
659.log-main {
660 min-width: 0;
661}
662
663.log-subject {
664 color: var(--text-primary);
665 overflow-wrap: anywhere;
666}
667
668.log-meta {
669 margin-top: var(--space-2xs);
670 font-family: var(--font-mono);
671 font-size: var(--caption);
672 color: var(--text-secondary);
673}
674
675.log-sha {
676 flex: none;
677 font-size: var(--caption);
678 color: var(--interactive);
679}
680
681.log-note {
682 margin-top: var(--space-lg);
683}
684
685.pager {
686 display: flex;
687 justify-content: space-between;
688 gap: var(--space-md);
689 margin-top: var(--space-xl);
690}
691
692.pager a,
693.pager span {
694 display: inline-flex;
695 align-items: center;
696 min-height: 44px;
697}
698
699/* ---- Commit --------------------------------------------------------------- */
700
701.commit-head {
702 margin-top: var(--space-lg);
703}
704
705.commit-subject {
706 font-size: var(--heading);
707 font-weight: 400;
708 line-height: 1.25;
709 color: var(--text-display);
710 overflow-wrap: anywhere;
711}
712
713.commit-body {
714 max-width: 72ch;
715 margin-top: var(--space-md);
716 font-family: var(--font-body);
717 font-size: var(--body);
718 white-space: pre-wrap;
719 overflow-wrap: anywhere;
720 color: var(--text-secondary);
721}
722
723.commit-grid {
724 display: grid;
725 gap: var(--space-xl);
726 margin-top: var(--space-xl);
727}
728
729@media (min-width: 768px) {
730 .commit-grid {
731 grid-template-columns: minmax(0, 1fr) auto;
732 align-items: end;
733 }
734}
735
736/* The one break on the commit page: a hero diffstat. */
737.diffstat-hero {
738 text-align: right;
739}
740
741.diffstat-num {
742 font-family: var(--font-mono);
743 font-size: 48px;
744 line-height: 1;
745 letter-spacing: -0.02em;
746 color: var(--text-display);
747 white-space: nowrap;
748}
749
750.diffstat-hero .label {
751 margin-top: var(--space-sm);
752}
753
754.add {
755 color: var(--success);
756}
757
758.del {
759 color: var(--accent);
760}
761
762.commit-actions {
763 display: flex;
764 flex-wrap: wrap;
765 align-items: center;
766 justify-content: space-between;
767 gap: var(--space-md);
768 margin-top: var(--space-xl);
769}
770
771.context-ctl {
772 display: inline-flex;
773 align-items: center;
774 gap: var(--space-sm);
775}
776
777.context-ctl a,
778.context-ctl > span:first-child,
779.context-ctl > span:last-child {
780 display: inline-flex;
781 align-items: center;
782 justify-content: center;
783 min-width: 28px;
784 min-height: 28px;
785}
786
787.file-list {
788 list-style: none;
789 margin-top: var(--space-lg);
790 border-top: 1px solid var(--border);
791}
792
793.file-row {
794 display: flex;
795 align-items: center;
796 gap: var(--space-md);
797 min-height: 40px;
798 padding-block: var(--space-xs);
799 border-bottom: 1px solid var(--border);
800}
801
802.file-status {
803 flex: none;
804 width: 1.5em;
805 font-family: var(--font-mono);
806 font-size: var(--caption);
807 color: var(--text-secondary);
808}
809
810.file-path {
811 flex: 1;
812 min-width: 0;
813 font-family: var(--font-mono);
814 font-size: var(--body-sm);
815 color: var(--text-primary);
816 overflow-wrap: anywhere;
817}
818
819.file-path .dim,
820.diff-path .dim {
821 color: var(--text-disabled);
822}
823
824.file-counts {
825 flex: none;
826 font-family: var(--font-mono);
827 font-size: var(--caption);
828 white-space: nowrap;
829}
830
831.blocks {
832 display: inline-flex;
833 flex: none;
834 gap: 2px;
835}
836
837.blocks i {
838 width: 8px;
839 height: 8px;
840 background: var(--segment-empty);
841}
842
843.blocks i.add {
844 background: var(--success);
845}
846
847.blocks i.del {
848 background: var(--accent);
849}
850
851.diff-file {
852 margin-top: var(--space-2xl);
853}
854
855.diff-head {
856 position: sticky;
857 top: 0;
858 z-index: 1;
859 display: flex;
860 align-items: center;
861 gap: var(--space-md);
862 min-height: 44px;
863 background: var(--black);
864 border-bottom: 1px solid var(--border-visible);
865}
866
867.diff-path {
868 flex: 1;
869 min-width: 0;
870 font-family: var(--font-mono);
871 font-size: var(--body-sm);
872 color: var(--text-display);
873 overflow-wrap: anywhere;
874}
875
876.diff-view {
877 flex: none;
878}
879
880.diff-note {
881 padding-block: var(--space-md);
882 border-bottom: 1px solid var(--border);
883 overflow-wrap: anywhere;
884}
885
886.diff-file .code-wrap {
887 margin-top: 0;
888 border-top: 0;
889}
890
891.code.diff .ln {
892 padding: 0 var(--space-sm);
893 color: var(--text-disabled);
894 font-size: 12px;
895}
896
897.code.diff .ln + .ln {
898 border-left: 0;
899}
900
901.code.diff .sign {
902 width: 1%;
903 padding: 0 var(--space-xs) 0 var(--space-sm);
904 color: var(--text-disabled);
905 user-select: none;
906 -webkit-user-select: none;
907}
908
909.code.diff .lc {
910 padding-left: 0;
911}
912
913.code.diff tr.add .ln:first-child {
914 border-left-color: var(--success);
915}
916
917.code.diff tr.add .sign {
918 color: var(--success);
919}
920
921.code.diff tr.del .ln:first-child {
922 border-left-color: var(--accent);
923}
924
925.code.diff tr.del .sign {
926 color: var(--accent);
927}
928
929.code.diff tr.del .lc {
930 opacity: 0.55;
931}
932
933.code.diff tr.hunk td {
934 padding-block: var(--space-xs);
935 color: var(--text-disabled);
936}
937
938.code.diff tr.hunk .lc {
939 font-family: var(--font-mono);
940 font-size: 12px;
941}
942
943.code.diff tr.hunk:not(:first-child) td {
944 border-top: 1px solid var(--border);
945}
946
947/* ---- Find ----------------------------------------------------------------- */
948
949.find-count {
950 margin-top: var(--space-lg);
951}
952
953.find-list {
954 margin-top: var(--space-sm);
955}
956
957.find-dir {
958 color: var(--text-disabled);
959}
960
961/* ---- Blame ---------------------------------------------------------------- */
962
963.code.blame .blame-meta {
964 width: 1%;
965 max-width: 320px;
966 padding: 0 var(--space-md) 0 var(--space-sm);
967 border-left: 2px solid transparent;
968 font-family: var(--font-mono);
969 font-size: var(--caption);
970 line-height: 20px;
971 color: var(--text-secondary);
972 white-space: nowrap;
973 vertical-align: top;
974 overflow: hidden;
975 text-overflow: ellipsis;
976}
977
978.code.blame .blame-meta .sha {
979 color: var(--interactive);
980}
981
982.code.blame .blame-meta time {
983 color: var(--text-disabled);
984}
985
986.code.blame tr.hunk-start td {
987 border-top: 1px solid var(--border);
988}
989
990.code.blame tr:first-child td {
991 border-top: 0;
992}
993
994/* The one break on the blame page: heat by opacity, newest to oldest. */
995.code.blame .age-8 {
996 border-left-color: var(--text-display);
997}
998
999.code.blame .age-7 {
1000 border-left-color: color-mix(in srgb, var(--text-display) 90%, transparent);
1001}
1002
1003.code.blame .age-6 {
1004 border-left-color: color-mix(in srgb, var(--text-display) 80%, transparent);
1005}
1006
1007.code.blame .age-5 {
1008 border-left-color: color-mix(in srgb, var(--text-display) 70%, transparent);
1009}
1010
1011.code.blame .age-4 {
1012 border-left-color: color-mix(in srgb, var(--text-display) 60%, transparent);
1013}
1014
1015.code.blame .age-3 {
1016 border-left-color: color-mix(in srgb, var(--text-display) 50%, transparent);
1017}
1018
1019.code.blame .age-2 {
1020 border-left-color: color-mix(in srgb, var(--text-display) 40%, transparent);
1021}
1022
1023.code.blame .age-1 {
1024 border-left-color: color-mix(in srgb, var(--text-display) 30%, transparent);
1025}
1026
1027.code.blame .age-0 {
1028 border-left-color: color-mix(in srgb, var(--text-display) 20%, transparent);
1029}
1030
1031/* ---- Markdown ------------------------------------------------------------ */
1032
1033.markdown {
1034 max-width: 72ch;
1035 overflow-wrap: break-word;
1036 color: var(--text-primary);
1037}
1038
1039.markdown > * + * {
1040 margin-top: var(--space-md);
1041}
1042
1043.markdown h1,
1044.markdown h2,
1045.markdown h3,
1046.markdown h4,
1047.markdown h5,
1048.markdown h6 {
1049 margin-top: var(--space-xl);
1050 line-height: 1.25;
1051}
1052
1053.markdown > :first-child {
1054 margin-top: 0;
1055}
1056
1057.markdown h1 {
1058 font-size: var(--heading);
1059}
1060
1061.markdown h2 {
1062 font-size: var(--subheading);
1063}
1064
1065.markdown h3,
1066.markdown h4,
1067.markdown h5,
1068.markdown h6 {
1069 font-size: var(--body);
1070}
1071
1072.markdown a.anchor {
1073 display: none;
1074}
1075
1076.markdown ul,
1077.markdown ol {
1078 padding-left: var(--space-lg);
1079}
1080
1081.markdown li + li,
1082.markdown li > ul,
1083.markdown li > ol {
1084 margin-top: var(--space-xs);
1085}
1086
1087.markdown .contains-task-list {
1088 list-style: none;
1089 padding-left: var(--space-xs);
1090}
1091
1092.markdown input[type="checkbox"] {
1093 margin: 0 var(--space-sm) 0 0;
1094 vertical-align: middle;
1095 accent-color: var(--text-display);
1096}
1097
1098.markdown code {
1099 padding: 1px var(--space-xs);
1100 border-radius: 4px;
1101 background: var(--surface-raised);
1102 font-size: 0.875em;
1103}
1104
1105.markdown pre {
1106 padding: var(--space-md);
1107 border: 1px solid var(--border);
1108 border-radius: 8px;
1109 background: var(--surface);
1110 overflow-x: auto;
1111 line-height: 20px;
1112 tab-size: 4;
1113}
1114
1115.markdown pre code {
1116 padding: 0;
1117 background: none;
1118 font-size: 13px;
1119}
1120
1121.markdown pre.plain {
1122 max-width: none;
1123 white-space: pre-wrap;
1124}
1125
1126.markdown blockquote {
1127 padding-left: var(--space-md);
1128 border-left: 2px solid var(--border-visible);
1129 color: var(--text-secondary);
1130}
1131
1132.markdown hr {
1133 border: 0;
1134 border-top: 1px solid var(--border);
1135}
1136
1137.markdown img {
1138 display: inline-block;
1139}
1140
1141.markdown table {
1142 display: block;
1143 max-width: 100%;
1144 overflow-x: auto;
1145 border-collapse: collapse;
1146}
1147
1148.markdown th,
1149.markdown td {
1150 padding: var(--space-sm) var(--space-md) var(--space-sm) 0;
1151 border-bottom: 1px solid var(--border);
1152}
1153
1154.markdown th {
1155 border-bottom-color: var(--border-visible);
1156 font-weight: 500;
1157 text-align: left;
1158}
1159
1160.markdown .markdown-alert {
1161 padding-left: var(--space-md);
1162 border-left: 2px solid var(--border-visible);
1163}
1164
1165.markdown .markdown-alert-warning,
1166.markdown .markdown-alert-caution {
1167 border-left-color: var(--accent);
1168}
1169
1170.markdown .markdown-alert-title {
1171 font-family: var(--font-mono);
1172 font-size: var(--label);
1173 letter-spacing: 0.08em;
1174 text-transform: uppercase;
1175 color: var(--text-secondary);
1176}
1177
1178.markdown .footnotes {
1179 font-size: var(--body-sm);
1180 color: var(--text-secondary);
1181 border-top: 1px solid var(--border);
1182 padding-top: var(--space-md);
1183}