codex-context-map 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/site/style.css ADDED
@@ -0,0 +1,1226 @@
1
+ :root {
2
+ color-scheme: light;
3
+ --bg: #f7f9f8;
4
+ --surface: #fff;
5
+ --ink: #172b28;
6
+ --muted: #6d7c77;
7
+ --line: #dfe7e3;
8
+ --accent: #087f6b;
9
+ --accent-soft: #e6f5ef;
10
+ --amber: #b37712;
11
+ --amber-soft: #fff7e4;
12
+ --red: #c44d41;
13
+ --mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
14
+ --sans:
15
+ Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei",
16
+ sans-serif;
17
+ font-family: var(--sans);
18
+ color: var(--ink);
19
+ background: var(--bg);
20
+ font-size: 14px;
21
+ }
22
+ * {
23
+ box-sizing: border-box;
24
+ }
25
+ body {
26
+ margin: 0;
27
+ }
28
+ button,
29
+ input,
30
+ select {
31
+ font: inherit;
32
+ }
33
+ button,
34
+ a,
35
+ input,
36
+ summary,
37
+ select {
38
+ -webkit-tap-highlight-color: transparent;
39
+ }
40
+ button,
41
+ a,
42
+ summary {
43
+ touch-action: manipulation;
44
+ }
45
+ button {
46
+ cursor: pointer;
47
+ border: 0;
48
+ }
49
+ a {
50
+ color: var(--accent);
51
+ text-decoration: none;
52
+ }
53
+ a:hover {
54
+ text-decoration: underline;
55
+ }
56
+ button {
57
+ transition:
58
+ background 0.15s,
59
+ color 0.15s;
60
+ }
61
+ button:hover {
62
+ filter: brightness(0.97);
63
+ }
64
+ button:focus-visible,
65
+ a:focus-visible,
66
+ summary:focus-visible,
67
+ select:focus-visible,
68
+ input:focus-visible,
69
+ [tabindex]:focus-visible {
70
+ outline: 3px solid #65b9a5;
71
+ outline-offset: 3px;
72
+ }
73
+ button:disabled {
74
+ opacity: 0.5;
75
+ cursor: default;
76
+ }
77
+ [hidden] {
78
+ display: none !important;
79
+ }
80
+ .skip-link {
81
+ position: absolute;
82
+ left: 16px;
83
+ top: -100px;
84
+ background: var(--surface);
85
+ padding: 12px;
86
+ z-index: 10;
87
+ }
88
+ .skip-link:focus {
89
+ top: 10px;
90
+ }
91
+ .topbar {
92
+ height: 76px;
93
+ border-bottom: 1px solid var(--line);
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: space-between;
97
+ padding: 0 4%;
98
+ background: var(--surface);
99
+ }
100
+ .brand {
101
+ display: flex;
102
+ gap: 10px;
103
+ align-items: center;
104
+ color: var(--ink);
105
+ font-size: 18px;
106
+ letter-spacing: -0.5px;
107
+ }
108
+ .brand:hover {
109
+ text-decoration: none;
110
+ }
111
+ .brand-icon {
112
+ display: grid;
113
+ place-items: center;
114
+ width: 34px;
115
+ height: 34px;
116
+ border-radius: 10px;
117
+ background: var(--ink);
118
+ color: #b2e8d6;
119
+ font-size: 25px;
120
+ }
121
+ .brand b {
122
+ font-weight: 650;
123
+ }
124
+ .version {
125
+ align-self: center;
126
+ font: 11px var(--mono);
127
+ color: var(--muted);
128
+ padding: 4px 6px;
129
+ background: var(--bg);
130
+ border: 1px solid var(--line);
131
+ border-radius: 4px;
132
+ margin-left: 4px;
133
+ }
134
+ .topbar nav {
135
+ display: flex;
136
+ align-items: center;
137
+ gap: 22px;
138
+ }
139
+ .local-badge {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: 7px;
143
+ color: var(--muted);
144
+ font-size: 12px;
145
+ }
146
+ .local-badge i {
147
+ width: 6px;
148
+ height: 6px;
149
+ border-radius: 50%;
150
+ background: #20a282;
151
+ }
152
+ .github-link {
153
+ color: var(--ink);
154
+ font-size: 13px;
155
+ font-weight: 600;
156
+ }
157
+ .intro {
158
+ max-width: 1480px;
159
+ margin: auto;
160
+ padding: 43px 4% 35px;
161
+ display: flex;
162
+ justify-content: space-between;
163
+ align-items: center;
164
+ gap: 30px;
165
+ }
166
+ .eyebrow {
167
+ font: 10px var(--mono);
168
+ letter-spacing: 1.6px;
169
+ color: var(--accent);
170
+ font-weight: 700;
171
+ }
172
+ h1 {
173
+ font-size: clamp(28px, 3.1vw, 44px);
174
+ line-height: 1.15;
175
+ letter-spacing: -1.9px;
176
+ font-weight: 650;
177
+ margin: 12px 0;
178
+ }
179
+ h1 span {
180
+ color: var(--accent);
181
+ }
182
+ .intro p {
183
+ color: var(--muted);
184
+ margin: 0;
185
+ font-size: 14px;
186
+ }
187
+ .quickstart {
188
+ display: grid;
189
+ gap: 10px;
190
+ }
191
+ .quickstart > span {
192
+ font: 9px var(--mono);
193
+ letter-spacing: 1.4px;
194
+ color: var(--muted);
195
+ }
196
+ .quickstart button {
197
+ display: flex;
198
+ gap: 20px;
199
+ justify-content: space-between;
200
+ background: #eaf0ed;
201
+ padding: 13px 15px;
202
+ border-radius: 7px;
203
+ color: var(--ink);
204
+ border: 1px solid var(--line);
205
+ }
206
+ code {
207
+ font-family: var(--mono);
208
+ font-size: 11px;
209
+ }
210
+ .quickstart small {
211
+ color: var(--muted);
212
+ font-size: 11px;
213
+ }
214
+ .workspace-toolbar {
215
+ border: 1px solid var(--line);
216
+ border-bottom: 0;
217
+ border-radius: 12px 12px 0 0;
218
+ background: var(--surface);
219
+ margin: 0 4%;
220
+ padding: 14px 20px;
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: space-between;
224
+ gap: 16px;
225
+ }
226
+ .workspace-toolbar > div {
227
+ display: flex;
228
+ align-items: center;
229
+ gap: 12px;
230
+ }
231
+ .workspace-symbol {
232
+ font-size: 20px;
233
+ color: var(--muted);
234
+ }
235
+ #project-name {
236
+ font-size: 14px;
237
+ max-width: 200px;
238
+ overflow: hidden;
239
+ text-overflow: ellipsis;
240
+ }
241
+ .tag {
242
+ font: 10px var(--mono);
243
+ color: var(--muted);
244
+ border: 1px solid var(--line);
245
+ background: var(--bg);
246
+ border-radius: 4px;
247
+ padding: 4px 7px;
248
+ }
249
+ .quiet {
250
+ background: transparent;
251
+ border: 1px solid transparent;
252
+ color: var(--muted);
253
+ font-size: 12px;
254
+ padding: 8px 10px;
255
+ border-radius: 5px;
256
+ }
257
+ .quiet:hover {
258
+ background: var(--bg);
259
+ color: var(--ink);
260
+ }
261
+ .primary {
262
+ background: var(--accent);
263
+ color: white;
264
+ font-size: 12px;
265
+ font-weight: 600;
266
+ padding: 10px 14px;
267
+ border-radius: 6px;
268
+ white-space: nowrap;
269
+ }
270
+ .status-message {
271
+ display: none;
272
+ padding: 12px 20px;
273
+ margin: 0 4%;
274
+ background: var(--accent-soft);
275
+ border: 1px solid var(--line);
276
+ font-size: 12px;
277
+ overflow-wrap: anywhere;
278
+ }
279
+ .status-message.visible {
280
+ display: block;
281
+ }
282
+ .status-message.error {
283
+ background: #ffefe9;
284
+ color: #a83d2d;
285
+ }
286
+ .workspace {
287
+ margin: 0 4%;
288
+ border: 1px solid var(--line);
289
+ border-radius: 0 0 12px 12px;
290
+ display: grid;
291
+ grid-template-columns: 240px minmax(0, 1fr);
292
+ background: var(--surface);
293
+ overflow: hidden;
294
+ min-height: 740px;
295
+ }
296
+ .sidebar {
297
+ border-right: 1px solid var(--line);
298
+ background: #fbfcfb;
299
+ padding: 22px 14px;
300
+ display: flex;
301
+ flex-direction: column;
302
+ align-self: stretch;
303
+ min-width: 0;
304
+ }
305
+ .side-label {
306
+ display: flex;
307
+ justify-content: space-between;
308
+ align-items: center;
309
+ padding: 0 10px 15px;
310
+ font: 10px var(--mono);
311
+ letter-spacing: 1px;
312
+ color: var(--muted);
313
+ }
314
+ #dir-count {
315
+ letter-spacing: 0;
316
+ color: #95a49e;
317
+ }
318
+ .search-wrap {
319
+ position: relative;
320
+ display: flex;
321
+ align-items: center;
322
+ padding: 0 9px;
323
+ margin-bottom: 14px;
324
+ }
325
+ .search-wrap > span {
326
+ position: absolute;
327
+ left: 19px;
328
+ font-size: 21px;
329
+ color: #81928a;
330
+ }
331
+ .search-wrap input {
332
+ width: 100%;
333
+ min-width: 0;
334
+ font-size: 11px;
335
+ padding: 9px 10px 9px 29px;
336
+ border: 1px solid var(--line);
337
+ border-radius: 5px;
338
+ background: var(--surface);
339
+ color: var(--ink);
340
+ }
341
+ .tree {
342
+ max-height: 480px;
343
+ overflow: auto;
344
+ }
345
+ .tree-button {
346
+ display: flex;
347
+ align-items: center;
348
+ gap: 8px;
349
+ width: 100%;
350
+ text-align: left;
351
+ padding: 10px 10px 10px var(--indent, 10px);
352
+ font: 11px var(--mono);
353
+ border-radius: 5px;
354
+ background: transparent;
355
+ color: #52665e;
356
+ min-width: 0;
357
+ margin: 2px 0;
358
+ }
359
+ .tree-button .dir-name {
360
+ overflow: hidden;
361
+ text-overflow: ellipsis;
362
+ white-space: nowrap;
363
+ }
364
+ .tree-button .dir-icon {
365
+ color: #a2afa9;
366
+ font-size: 13px;
367
+ flex-shrink: 0;
368
+ }
369
+ .tree-button .dot {
370
+ margin-left: auto;
371
+ flex-shrink: 0;
372
+ }
373
+ .tree-button:hover {
374
+ background: #eff4f1;
375
+ }
376
+ .tree-button.active {
377
+ background: var(--accent-soft);
378
+ color: var(--accent);
379
+ font-weight: 700;
380
+ box-shadow: inset 2px 0 var(--accent);
381
+ }
382
+ .tree-button.active .dir-icon {
383
+ color: var(--accent);
384
+ }
385
+ .dot {
386
+ display: inline-block;
387
+ width: 6px;
388
+ height: 6px;
389
+ border-radius: 50%;
390
+ flex-shrink: 0;
391
+ }
392
+ .dot.teal {
393
+ background: var(--accent);
394
+ }
395
+ .dot.amber {
396
+ background: var(--amber);
397
+ }
398
+ .dot.gray {
399
+ background: #cbd6d0;
400
+ }
401
+ .small-note {
402
+ font-size: 10px;
403
+ color: var(--muted);
404
+ padding: 0 10px;
405
+ }
406
+ .legend {
407
+ display: grid;
408
+ gap: 10px;
409
+ padding: 22px 10px;
410
+ border-top: 1px solid var(--line);
411
+ margin-top: 22px;
412
+ }
413
+ .legend > span {
414
+ display: flex;
415
+ align-items: center;
416
+ gap: 9px;
417
+ font-size: 10px;
418
+ color: var(--muted);
419
+ }
420
+ .privacy-note {
421
+ margin-top: auto;
422
+ padding: 28px 10px 2px;
423
+ display: flex;
424
+ gap: 10px;
425
+ color: var(--muted);
426
+ }
427
+ .privacy-note > span {
428
+ font-size: 18px;
429
+ color: var(--accent);
430
+ }
431
+ .privacy-note b {
432
+ font-size: 11px;
433
+ color: #53675e;
434
+ font-weight: 600;
435
+ }
436
+ .privacy-note p {
437
+ font-size: 10px;
438
+ line-height: 1.7;
439
+ margin: 6px 0 0;
440
+ }
441
+ main {
442
+ padding: 28px 32px;
443
+ min-width: 0;
444
+ }
445
+ .path-row {
446
+ display: flex;
447
+ align-items: center;
448
+ justify-content: space-between;
449
+ gap: 12px;
450
+ margin-bottom: 22px;
451
+ }
452
+ .section-kicker {
453
+ font: 9px var(--mono);
454
+ letter-spacing: 1px;
455
+ color: var(--muted);
456
+ }
457
+ h2 {
458
+ font: 18px var(--mono);
459
+ margin: 10px 0 0;
460
+ letter-spacing: -0.8px;
461
+ overflow-wrap: anywhere;
462
+ }
463
+ .path-slash {
464
+ color: #9caaa4;
465
+ margin: 0 5px;
466
+ }
467
+ .view-toggle {
468
+ padding: 3px;
469
+ display: flex;
470
+ gap: 3px;
471
+ border: 1px solid var(--line);
472
+ border-radius: 7px;
473
+ background: var(--bg);
474
+ flex-shrink: 0;
475
+ }
476
+ .view-toggle button {
477
+ padding: 7px 10px;
478
+ background: transparent;
479
+ color: var(--muted);
480
+ border-radius: 4px;
481
+ font-size: 11px;
482
+ }
483
+ .view-toggle button.selected {
484
+ background: var(--surface);
485
+ box-shadow: 0 1px 4px #1a463515;
486
+ color: var(--ink);
487
+ font-weight: 600;
488
+ }
489
+ .scenarios {
490
+ display: flex;
491
+ align-items: center;
492
+ gap: 8px;
493
+ padding: 0 0 20px;
494
+ flex-wrap: wrap;
495
+ }
496
+ .scenarios > span {
497
+ font: 9px var(--mono);
498
+ letter-spacing: 0.6px;
499
+ color: #8e9c95;
500
+ margin-right: 5px;
501
+ }
502
+ .scenarios button {
503
+ font-size: 10px;
504
+ color: #66796f;
505
+ border: 1px solid var(--line);
506
+ border-radius: 20px;
507
+ padding: 6px 10px;
508
+ background: var(--surface);
509
+ }
510
+ .scenarios button:hover {
511
+ border-color: #89b9a6;
512
+ background: var(--accent-soft);
513
+ }
514
+ .metrics {
515
+ display: grid;
516
+ grid-template-columns: 1fr 1fr 1.7fr;
517
+ border: 1px solid var(--line);
518
+ border-radius: 8px;
519
+ overflow: hidden;
520
+ }
521
+ .metrics > div {
522
+ padding: 18px 22px;
523
+ display: flex;
524
+ flex-direction: column;
525
+ border-right: 1px solid var(--line);
526
+ min-width: 0;
527
+ }
528
+ .metrics > div:last-child {
529
+ border: 0;
530
+ }
531
+ .metrics span {
532
+ font: 9px var(--mono);
533
+ color: var(--muted);
534
+ letter-spacing: 0.8px;
535
+ }
536
+ .metrics strong {
537
+ font-size: 28px;
538
+ font-weight: 550;
539
+ line-height: 1.15;
540
+ margin: 10px 0 4px;
541
+ letter-spacing: -1px;
542
+ }
543
+ .metrics small {
544
+ font-size: 10px;
545
+ color: var(--muted);
546
+ }
547
+ .metrics .budget-metric strong {
548
+ font: 20px var(--mono);
549
+ margin: 14px 0 11px;
550
+ letter-spacing: -0.7px;
551
+ white-space: nowrap;
552
+ }
553
+ .budget-metric strong span {
554
+ font: 12px var(--mono);
555
+ letter-spacing: 0;
556
+ }
557
+ .meter {
558
+ height: 5px;
559
+ border-radius: 4px;
560
+ background: #edf2ef;
561
+ overflow: hidden;
562
+ }
563
+ .meter > div {
564
+ height: 100%;
565
+ background: var(--accent);
566
+ min-width: 0;
567
+ border-radius: 4px;
568
+ transition: width 0.25s;
569
+ }
570
+ .meter > div.cutoff {
571
+ background: var(--amber);
572
+ }
573
+ .config-row {
574
+ display: flex;
575
+ align-items: center;
576
+ gap: 10px;
577
+ padding: 14px 0 20px;
578
+ flex-wrap: wrap;
579
+ }
580
+ .config-row > label {
581
+ font-size: 10px;
582
+ display: flex;
583
+ align-items: center;
584
+ gap: 7px;
585
+ color: var(--muted);
586
+ }
587
+ .config-row input {
588
+ border: 1px solid var(--line);
589
+ border-radius: 4px;
590
+ padding: 5px 7px;
591
+ color: var(--ink);
592
+ background: var(--surface);
593
+ font: 11px var(--mono);
594
+ }
595
+ #budget {
596
+ width: 90px;
597
+ }
598
+ .text-button {
599
+ padding: 5px 0;
600
+ color: var(--accent);
601
+ background: transparent;
602
+ font-size: 10px;
603
+ }
604
+ .model-hint {
605
+ margin-left: auto;
606
+ font-size: 9px;
607
+ color: #8e9c95;
608
+ }
609
+ .settings {
610
+ position: relative;
611
+ font-size: 10px;
612
+ color: var(--muted);
613
+ margin-left: 5px;
614
+ }
615
+ .settings summary {
616
+ cursor: pointer;
617
+ }
618
+ .settings > div {
619
+ position: absolute;
620
+ z-index: 3;
621
+ right: 0;
622
+ top: 25px;
623
+ width: 300px;
624
+ box-shadow: 0 10px 40px #183c2920;
625
+ border: 1px solid var(--line);
626
+ background: var(--surface);
627
+ border-radius: 8px;
628
+ padding: 16px;
629
+ }
630
+ .settings label {
631
+ display: block;
632
+ margin-bottom: 7px;
633
+ }
634
+ .settings input {
635
+ width: 100%;
636
+ margin: 2px 0 10px;
637
+ }
638
+ .settings .primary {
639
+ padding: 6px 10px;
640
+ font-size: 10px;
641
+ }
642
+ .settings p {
643
+ line-height: 1.6;
644
+ }
645
+ .finding {
646
+ display: flex;
647
+ gap: 10px;
648
+ padding: 13px 15px;
649
+ background: var(--amber-soft);
650
+ border: 1px solid #ead7a8;
651
+ border-radius: 6px;
652
+ color: #825b16;
653
+ margin-bottom: 16px;
654
+ line-height: 1.6;
655
+ font-size: 11px;
656
+ }
657
+ .finding code {
658
+ font-size: 10px;
659
+ overflow-wrap: anywhere;
660
+ }
661
+ .finding.info {
662
+ background: #f1f7f4;
663
+ border-color: #d4e8de;
664
+ color: #587064;
665
+ }
666
+ .section-heading {
667
+ display: flex;
668
+ align-items: center;
669
+ justify-content: space-between;
670
+ gap: 10px;
671
+ margin: 5px 0 16px;
672
+ }
673
+ h3 {
674
+ font-size: 12px;
675
+ font-weight: 600;
676
+ margin: 0;
677
+ }
678
+ .section-heading > span {
679
+ color: var(--muted);
680
+ font-size: 10px;
681
+ }
682
+ .chain {
683
+ display: grid;
684
+ gap: 0;
685
+ }
686
+ .chain-entry {
687
+ position: relative;
688
+ padding: 0 0 13px 32px;
689
+ min-width: 0;
690
+ }
691
+ .chain-entry:not(:last-child):before {
692
+ content: "";
693
+ position: absolute;
694
+ left: 10px;
695
+ top: 24px;
696
+ bottom: -2px;
697
+ width: 1px;
698
+ background: #d5e5dc;
699
+ }
700
+ .chain-number {
701
+ position: absolute;
702
+ left: 0;
703
+ top: 16px;
704
+ width: 21px;
705
+ height: 21px;
706
+ display: grid;
707
+ place-items: center;
708
+ background: var(--accent-soft);
709
+ border: 1px solid #c8e3d7;
710
+ border-radius: 50%;
711
+ font: 9px var(--mono);
712
+ color: var(--accent);
713
+ z-index: 1;
714
+ }
715
+ .chain-number.warn {
716
+ background: var(--amber-soft);
717
+ border-color: #ead7a8;
718
+ color: var(--amber);
719
+ }
720
+ .file-card {
721
+ border: 1px solid var(--line);
722
+ border-radius: 7px;
723
+ background: var(--surface);
724
+ overflow: hidden;
725
+ }
726
+ .file-top {
727
+ display: flex;
728
+ gap: 10px;
729
+ align-items: center;
730
+ padding: 14px 15px;
731
+ flex-wrap: wrap;
732
+ }
733
+ .file-icon {
734
+ font: 15px var(--mono);
735
+ color: #92a39a;
736
+ }
737
+ .file-name {
738
+ font: 11px var(--mono);
739
+ font-weight: 550;
740
+ overflow-wrap: anywhere;
741
+ flex: 1;
742
+ min-width: 80px;
743
+ }
744
+ .chip {
745
+ font: 9px var(--mono);
746
+ border-radius: 4px;
747
+ padding: 4px 6px;
748
+ white-space: nowrap;
749
+ }
750
+ .chip.loaded {
751
+ background: var(--accent-soft);
752
+ color: var(--accent);
753
+ }
754
+ .chip.partial,
755
+ .chip.empty {
756
+ background: var(--amber-soft);
757
+ color: var(--amber);
758
+ }
759
+ .chip.excluded,
760
+ .chip.shadowed,
761
+ .chip.outside,
762
+ .chip.unrecognized {
763
+ background: #f0f2f1;
764
+ color: #849189;
765
+ }
766
+ .file-bytes {
767
+ color: var(--muted);
768
+ font: 9px var(--mono);
769
+ white-space: nowrap;
770
+ }
771
+ .file-summary {
772
+ padding: 0 15px 12px 40px;
773
+ color: var(--muted);
774
+ font-size: 10px;
775
+ line-height: 1.6;
776
+ }
777
+ .file-source {
778
+ border-top: 1px solid var(--line);
779
+ padding: 9px 15px;
780
+ background: #fbfcfb;
781
+ font-size: 10px;
782
+ }
783
+ .file-source summary {
784
+ cursor: pointer;
785
+ color: var(--muted);
786
+ }
787
+ .file-source pre {
788
+ font: 11px/1.7 var(--mono);
789
+ white-space: pre-wrap;
790
+ overflow-wrap: anywhere;
791
+ max-height: 260px;
792
+ overflow: auto;
793
+ color: #445b50;
794
+ padding: 8px 0;
795
+ margin-bottom: 0;
796
+ }
797
+ .ignored-panel {
798
+ margin: 0 0 22px 32px;
799
+ font-size: 10px;
800
+ color: var(--muted);
801
+ }
802
+ .ignored-panel summary {
803
+ cursor: pointer;
804
+ padding: 7px 0;
805
+ }
806
+ .ignored-item {
807
+ display: flex;
808
+ justify-content: space-between;
809
+ gap: 15px;
810
+ padding: 10px 0;
811
+ border-top: 1px solid #edf1ef;
812
+ }
813
+ .ignored-item span:first-child {
814
+ font-family: var(--mono);
815
+ overflow-wrap: anywhere;
816
+ }
817
+ .ignored-item span:last-child {
818
+ text-align: right;
819
+ font-size: 9px;
820
+ }
821
+ .preview {
822
+ border: 1px solid #cfded6;
823
+ border-radius: 8px;
824
+ overflow: hidden;
825
+ margin-top: 18px;
826
+ }
827
+ .preview-toolbar {
828
+ padding: 9px 15px;
829
+ display: flex;
830
+ align-items: center;
831
+ justify-content: space-between;
832
+ background: #eff5f1;
833
+ border-bottom: 1px solid #dbe6df;
834
+ gap: 10px;
835
+ }
836
+ .preview-toolbar > div {
837
+ display: flex;
838
+ gap: 9px;
839
+ align-items: center;
840
+ }
841
+ .code-symbol {
842
+ font: 11px var(--mono);
843
+ color: #718c7d;
844
+ }
845
+ .preview-toolbar h3 {
846
+ font-size: 11px;
847
+ }
848
+ .preview-toolbar button {
849
+ font-size: 10px;
850
+ padding: 5px 8px;
851
+ }
852
+ .code-preview {
853
+ font: 11px/1.8 var(--mono);
854
+ background: #f9fcfa;
855
+ max-height: 320px;
856
+ overflow: auto;
857
+ padding: 14px 0;
858
+ min-height: 100px;
859
+ }
860
+ .code-line {
861
+ display: grid;
862
+ grid-template-columns: 45px minmax(0, 1fr);
863
+ padding-right: 18px;
864
+ }
865
+ .line-number {
866
+ color: #a1b2a7;
867
+ text-align: right;
868
+ padding-right: 14px;
869
+ user-select: none;
870
+ font-size: 9px;
871
+ }
872
+ .line-text {
873
+ white-space: pre-wrap;
874
+ overflow-wrap: anywhere;
875
+ color: #486153;
876
+ }
877
+ .code-line.heading .line-text {
878
+ color: var(--accent);
879
+ font-weight: 600;
880
+ }
881
+ .preview-footer {
882
+ display: flex;
883
+ justify-content: space-between;
884
+ gap: 10px;
885
+ padding: 9px 15px;
886
+ background: #f0f6f2;
887
+ border-top: 1px solid #deebe2;
888
+ font: 9px var(--mono);
889
+ color: #859a8c;
890
+ }
891
+ .preview-footer span:last-child {
892
+ letter-spacing: 1px;
893
+ flex-shrink: 0;
894
+ }
895
+ .boundaries {
896
+ margin-top: 22px;
897
+ color: var(--muted);
898
+ font-size: 10px;
899
+ line-height: 1.8;
900
+ }
901
+ .boundaries summary {
902
+ cursor: pointer;
903
+ color: #74877b;
904
+ }
905
+ .boundaries p {
906
+ max-width: 920px;
907
+ }
908
+ .page-footer {
909
+ margin: 20px 4% 30px;
910
+ display: flex;
911
+ justify-content: space-between;
912
+ gap: 15px;
913
+ color: var(--muted);
914
+ font-size: 10px;
915
+ line-height: 1.7;
916
+ }
917
+ .footer-dot {
918
+ margin: 0 10px;
919
+ color: #b4c1ba;
920
+ }
921
+ .page-footer a {
922
+ color: var(--muted);
923
+ }
924
+ .compare-heading {
925
+ display: flex;
926
+ gap: 15px;
927
+ align-items: center;
928
+ margin-bottom: 18px;
929
+ }
930
+ .compare-heading select {
931
+ padding: 8px 12px;
932
+ border: 1px solid var(--line);
933
+ border-radius: 5px;
934
+ background: var(--bg);
935
+ font: 11px var(--mono);
936
+ color: var(--ink);
937
+ max-width: 75%;
938
+ }
939
+ .compare-grid {
940
+ display: grid;
941
+ grid-template-columns: 1fr 1fr;
942
+ gap: 12px;
943
+ }
944
+ .compare-card {
945
+ padding: 18px;
946
+ border: 1px solid var(--line);
947
+ border-radius: 7px;
948
+ background: var(--bg);
949
+ min-width: 0;
950
+ }
951
+ .compare-card h4 {
952
+ margin: 0 0 12px;
953
+ font-size: 11px;
954
+ font-weight: 600;
955
+ }
956
+ .compare-card ul {
957
+ padding: 0;
958
+ list-style: none;
959
+ font: 10px/1.8 var(--mono);
960
+ overflow-wrap: anywhere;
961
+ margin: 0;
962
+ }
963
+ .compare-card li {
964
+ padding: 5px 0;
965
+ }
966
+ .compare-card.added {
967
+ background: #f0faf5;
968
+ border-color: #d6eadf;
969
+ }
970
+ .compare-card.removed {
971
+ background: #fff9f4;
972
+ border-color: #eadfd4;
973
+ }
974
+ .compare-delta {
975
+ font-size: 11px;
976
+ color: var(--muted);
977
+ margin: 15px 0;
978
+ }
979
+ .empty-state {
980
+ padding: 28px;
981
+ border: 1px dashed var(--line);
982
+ border-radius: 7px;
983
+ color: var(--muted);
984
+ font-size: 12px;
985
+ line-height: 1.8;
986
+ margin-bottom: 18px;
987
+ }
988
+ @media (min-width: 1600px) {
989
+ .workspace,
990
+ .workspace-toolbar,
991
+ .status-message {
992
+ max-width: 1480px;
993
+ margin-left: auto;
994
+ margin-right: auto;
995
+ }
996
+ .intro {
997
+ padding-left: 0;
998
+ padding-right: 0;
999
+ }
1000
+ .page-footer {
1001
+ max-width: 1480px;
1002
+ margin-left: auto;
1003
+ margin-right: auto;
1004
+ }
1005
+ }
1006
+ @media (max-width: 1180px) {
1007
+ .intro {
1008
+ gap: 20px;
1009
+ }
1010
+ .quickstart code {
1011
+ font-size: 9px;
1012
+ }
1013
+ .workspace {
1014
+ grid-template-columns: 205px minmax(0, 1fr);
1015
+ }
1016
+ main {
1017
+ padding: 25px 22px;
1018
+ }
1019
+ .path-row {
1020
+ align-items: flex-start;
1021
+ flex-direction: column;
1022
+ }
1023
+ .view-toggle {
1024
+ align-self: flex-end;
1025
+ }
1026
+ .metrics > div {
1027
+ padding: 16px;
1028
+ }
1029
+ .model-hint {
1030
+ display: none;
1031
+ }
1032
+ .brand {
1033
+ font-size: 16px;
1034
+ }
1035
+ .topbar nav {
1036
+ gap: 12px;
1037
+ }
1038
+ }
1039
+ @media (max-width: 800px) {
1040
+ .intro {
1041
+ flex-direction: column;
1042
+ align-items: flex-start;
1043
+ padding-top: 28px;
1044
+ }
1045
+ .quickstart {
1046
+ width: 100%;
1047
+ }
1048
+ .quickstart code {
1049
+ font-size: 11px;
1050
+ }
1051
+ .workspace {
1052
+ grid-template-columns: 1fr;
1053
+ }
1054
+ .sidebar {
1055
+ border-right: 0;
1056
+ border-bottom: 1px solid var(--line);
1057
+ padding: 16px;
1058
+ }
1059
+ .tree {
1060
+ max-height: 190px;
1061
+ }
1062
+ .privacy-note,
1063
+ .legend,
1064
+ .side-label {
1065
+ display: none;
1066
+ }
1067
+ .sidebar .search-wrap {
1068
+ margin-bottom: 8px;
1069
+ padding: 0;
1070
+ }
1071
+ .search-wrap > span {
1072
+ left: 10px;
1073
+ }
1074
+ .tree-button {
1075
+ padding-top: 8px;
1076
+ padding-bottom: 8px;
1077
+ }
1078
+ .workspace-toolbar {
1079
+ align-items: flex-start;
1080
+ flex-direction: column;
1081
+ padding: 14px 16px;
1082
+ }
1083
+ .workspace-toolbar .toolbar-actions {
1084
+ width: 100%;
1085
+ justify-content: space-between;
1086
+ gap: 3px;
1087
+ }
1088
+ .toolbar-actions button {
1089
+ font-size: 10px;
1090
+ padding: 8px;
1091
+ }
1092
+ .toolbar-actions .primary {
1093
+ margin-left: auto;
1094
+ }
1095
+ main {
1096
+ padding: 23px 18px;
1097
+ }
1098
+ .metrics {
1099
+ grid-template-columns: 1fr 1fr;
1100
+ }
1101
+ .metrics .budget-metric {
1102
+ grid-column: span 2;
1103
+ border-top: 1px solid var(--line);
1104
+ padding: 16px;
1105
+ }
1106
+ .metrics > div:nth-child(2) {
1107
+ border-right: 0;
1108
+ }
1109
+ .metrics strong {
1110
+ font-size: 25px;
1111
+ }
1112
+ .metrics span {
1113
+ font-size: 8px;
1114
+ }
1115
+ .topbar {
1116
+ height: 64px;
1117
+ }
1118
+ .brand {
1119
+ font-size: 14px;
1120
+ gap: 7px;
1121
+ }
1122
+ .brand-icon {
1123
+ width: 29px;
1124
+ height: 29px;
1125
+ font-size: 20px;
1126
+ }
1127
+ .version,
1128
+ .local-badge {
1129
+ display: none;
1130
+ }
1131
+ .topbar nav {
1132
+ gap: 4px;
1133
+ }
1134
+ .github-link {
1135
+ font-size: 11px;
1136
+ }
1137
+ .topbar nav button {
1138
+ font-size: 10px;
1139
+ }
1140
+ .path-row .view-toggle {
1141
+ align-self: stretch;
1142
+ }
1143
+ .view-toggle button {
1144
+ flex: 1;
1145
+ }
1146
+ .path-row h2 {
1147
+ font-size: 16px;
1148
+ }
1149
+ .scenarios {
1150
+ gap: 5px;
1151
+ }
1152
+ .scenarios > span {
1153
+ width: 100%;
1154
+ }
1155
+ .scenarios button {
1156
+ font-size: 9px;
1157
+ padding: 6px 8px;
1158
+ }
1159
+ .config-row {
1160
+ gap: 8px;
1161
+ }
1162
+ .settings {
1163
+ margin-left: auto;
1164
+ }
1165
+ .settings > div {
1166
+ right: 0;
1167
+ width: 270px;
1168
+ }
1169
+ .section-heading > span {
1170
+ font-size: 8px;
1171
+ }
1172
+ .chain-entry {
1173
+ padding-left: 28px;
1174
+ }
1175
+ .file-top {
1176
+ padding: 12px 11px;
1177
+ gap: 8px;
1178
+ }
1179
+ .file-name {
1180
+ font-size: 10px;
1181
+ flex-basis: 60%;
1182
+ }
1183
+ .file-bytes {
1184
+ margin-left: auto;
1185
+ }
1186
+ .file-summary {
1187
+ padding-left: 11px;
1188
+ }
1189
+ .file-icon {
1190
+ display: none;
1191
+ }
1192
+ .ignored-panel {
1193
+ margin-left: 28px;
1194
+ }
1195
+ .preview-toolbar h3 {
1196
+ font-size: 10px;
1197
+ }
1198
+ .page-footer {
1199
+ flex-direction: column;
1200
+ font-size: 9px;
1201
+ }
1202
+ .compare-grid {
1203
+ grid-template-columns: 1fr;
1204
+ }
1205
+ .preview-footer {
1206
+ font-size: 8px;
1207
+ }
1208
+ .section-kicker {
1209
+ font-size: 8px;
1210
+ }
1211
+ h1 {
1212
+ letter-spacing: -1.2px;
1213
+ }
1214
+ .code-line {
1215
+ grid-template-columns: 32px minmax(0, 1fr);
1216
+ }
1217
+ .line-number {
1218
+ padding-right: 8px;
1219
+ }
1220
+ }
1221
+ @media (prefers-reduced-motion: reduce) {
1222
+ * {
1223
+ transition: none !important;
1224
+ scroll-behavior: auto !important;
1225
+ }
1226
+ }