@kage-core/kage-graph-mcp 1.2.0 → 1.4.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/viewer/styles.css DELETED
@@ -1,2781 +0,0 @@
1
- :root {
2
- color-scheme: dark;
3
- --bg: #050806;
4
- --surface: #08110d;
5
- --surface-soft: #0d1913;
6
- --surface-strong: #12251b;
7
- --surface-overlay: rgba(20, 26, 38, 0.92);
8
- --accent: #6ad7ff;
9
- --accent-strong: #8be4ff;
10
- --accent-soft: rgba(106, 215, 255, 0.10);
11
- --terminal: #b9fbc0;
12
- --terminal-strong: #41ff8f;
13
- --terminal-dim: #6ea77d;
14
- --text: #d7f9df;
15
- --muted: #7fa88a;
16
- --line: #1c3b29;
17
- --line-strong: #2f6f48;
18
- --brand: #41ff8f;
19
- --brand-soft: rgba(65, 255, 143, 0.10);
20
- --brand-glow: 0 0 18px rgba(65, 255, 143, 0.32), 0 0 44px rgba(65, 255, 143, 0.16);
21
- --brand-glow-strong: 0 0 22px rgba(65, 255, 143, 0.48), 0 0 64px rgba(65, 255, 143, 0.22);
22
- --memory: #41ff8f;
23
- --memory-soft: #071d10;
24
- --code: #6ad7ff;
25
- --code-soft: #102633;
26
- --warn: #ffd166;
27
- --warn-soft: rgba(255, 209, 102, 0.12);
28
- --danger: #ff6b6b;
29
- --danger-soft: rgba(255, 107, 107, 0.12);
30
- --ok: #6dd58c;
31
- --ok-soft: rgba(109, 213, 140, 0.12);
32
- --edge: #6d8f79;
33
- --shadow: 0 12px 36px rgba(0, 0, 0, 0.45);
34
- }
35
-
36
- * { box-sizing: border-box; }
37
-
38
- body {
39
- margin: 0;
40
- min-width: 320px;
41
- background: #050806;
42
- color: var(--text);
43
- font: 14px/1.55 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
44
- }
45
-
46
- button, input, select { font: inherit; }
47
- h1, h2, p { margin: 0; }
48
- h1 { font-size: clamp(20px, 2vw, 28px); line-height: 1; letter-spacing: 0; }
49
- h2 {
50
- color: var(--terminal);
51
- font-size: 14px;
52
- letter-spacing: 0;
53
- text-shadow: 0 0 10px rgba(65, 255, 143, 0.18);
54
- text-transform: none;
55
- }
56
-
57
- .viewer-shell {
58
- min-height: 100vh;
59
- display: grid;
60
- grid-template-columns: 236px minmax(0, 1fr);
61
- background:
62
- radial-gradient(circle at 0 0, rgba(65, 255, 143, 0.15), transparent 320px),
63
- linear-gradient(180deg, rgba(65, 255, 143, 0.06), transparent 300px),
64
- #050806;
65
- }
66
-
67
- .repo-sidebar {
68
- position: sticky;
69
- top: 0;
70
- height: 100vh;
71
- display: grid;
72
- grid-template-rows: auto auto minmax(0, 1fr) auto;
73
- gap: 22px;
74
- padding: 22px 16px;
75
- border-right: 1px solid rgba(65, 255, 143, 0.13);
76
- background:
77
- radial-gradient(circle at 0 0, rgba(65, 255, 143, 0.12), transparent 230px),
78
- #070d0a;
79
- box-shadow: inset -1px 0 0 rgba(65, 255, 143, 0.12), 12px 0 48px rgba(65, 255, 143, 0.045);
80
- }
81
-
82
- .sidebar-brand {
83
- display: inline-flex;
84
- align-items: center;
85
- gap: 10px;
86
- color: var(--text);
87
- font-size: 17px;
88
- font-weight: 850;
89
- text-decoration: none;
90
- }
91
-
92
- .brand-mark {
93
- width: 32px;
94
- height: 32px;
95
- display: inline-flex;
96
- align-items: center;
97
- justify-content: center;
98
- border-radius: 8px;
99
- background: rgba(65, 255, 143, 0.13);
100
- border: 1px solid rgba(65, 255, 143, 0.26);
101
- color: var(--terminal-strong);
102
- box-shadow: var(--brand-glow);
103
- text-shadow: 0 0 12px rgba(65, 255, 143, 0.70);
104
- }
105
-
106
- .repo-card {
107
- display: grid;
108
- gap: 7px;
109
- padding: 14px;
110
- border: 1px solid rgba(65, 255, 143, 0.12);
111
- border-radius: 10px;
112
- background: rgba(13, 25, 19, 0.62);
113
- }
114
-
115
- .repo-card span,
116
- .repo-card em {
117
- color: var(--terminal-dim);
118
- font-size: 11px;
119
- font-style: normal;
120
- }
121
-
122
- .repo-card span {
123
- font-weight: 800;
124
- text-transform: uppercase;
125
- }
126
-
127
- .repo-card strong {
128
- color: var(--text);
129
- font-size: 14px;
130
- overflow-wrap: anywhere;
131
- }
132
-
133
- .viewer-main {
134
- min-width: 0;
135
- }
136
-
137
- .app-header {
138
- display: grid;
139
- grid-template-columns: minmax(320px, 1fr) auto;
140
- grid-template-areas:
141
- "brand status"
142
- "brand autoload";
143
- gap: 10px 20px;
144
- align-items: center;
145
- padding: 24px 32px;
146
- border-bottom: 1px solid var(--line);
147
- background: rgba(5, 8, 6, 0.84);
148
- backdrop-filter: blur(16px);
149
- position: sticky;
150
- top: 0;
151
- z-index: 10;
152
- }
153
-
154
- .brand-block {
155
- grid-area: brand;
156
- min-width: 280px;
157
- max-width: 780px;
158
- }
159
- .eyebrow {
160
- display: inline-flex;
161
- margin-bottom: 4px;
162
- color: var(--terminal-strong);
163
- font-size: 10px;
164
- font-weight: 800;
165
- letter-spacing: 0.08em;
166
- text-transform: uppercase;
167
- }
168
- .brand-block h1::before {
169
- content: "";
170
- }
171
- .brand-block h1 {
172
- color: var(--terminal-strong);
173
- text-shadow: 0 0 18px rgba(65, 255, 143, 0.46), 0 0 42px rgba(65, 255, 143, 0.18);
174
- }
175
- .app-header p {
176
- margin-top: 8px;
177
- color: var(--muted);
178
- font-size: 13px;
179
- overflow-wrap: anywhere;
180
- }
181
-
182
- .viewer-sections {
183
- display: grid;
184
- gap: 8px;
185
- align-content: start;
186
- }
187
-
188
- .viewer-section {
189
- display: inline-flex;
190
- align-items: center;
191
- justify-content: flex-start;
192
- min-height: 40px;
193
- padding: 0 12px;
194
- border: 1px solid transparent;
195
- border-radius: 8px;
196
- background: transparent;
197
- box-shadow: none;
198
- color: var(--terminal-dim);
199
- font-size: 14px;
200
- font-weight: 720;
201
- text-decoration: none;
202
- }
203
-
204
- .sidebar-secondary {
205
- display: none;
206
- }
207
- .viewer-section:hover {
208
- border-color: rgba(65, 255, 143, 0.30);
209
- color: var(--terminal-strong);
210
- }
211
- .viewer-section.active,
212
- .viewer-section[aria-selected="true"],
213
- .viewer-section[aria-current="page"] {
214
- border-color: var(--terminal-strong);
215
- background: rgba(65, 255, 143, 0.10);
216
- color: var(--brand);
217
- box-shadow: inset 0 0 0 1px rgba(65, 255, 143, 0.20), var(--brand-glow);
218
- text-shadow: 0 0 10px rgba(65, 255, 143, 0.45);
219
- }
220
-
221
- .sidebar-links {
222
- display: grid;
223
- gap: 6px;
224
- padding-top: 14px;
225
- border-top: 1px solid rgba(65, 255, 143, 0.10);
226
- }
227
- .sidebar-links a {
228
- color: var(--terminal-dim);
229
- font-size: 12px;
230
- font-weight: 700;
231
- text-decoration: none;
232
- }
233
- .sidebar-links a:hover { color: var(--terminal-strong); }
234
-
235
- .status-strip {
236
- grid-area: status;
237
- display: none;
238
- flex-wrap: wrap;
239
- gap: 8px;
240
- justify-content: flex-start;
241
- }
242
-
243
- .autoload-status {
244
- grid-area: autoload;
245
- display: none;
246
- align-items: center;
247
- min-height: 26px;
248
- padding: 3px 9px;
249
- border: 1px solid var(--line);
250
- border-radius: 4px;
251
- background: #040805;
252
- color: var(--warn);
253
- font-size: 11px;
254
- font-weight: 760;
255
- white-space: nowrap;
256
- }
257
- .autoload-status.ok {
258
- border-color: var(--line-strong);
259
- color: var(--terminal-strong);
260
- }
261
-
262
- .status-pill, .detail-kind {
263
- display: inline-flex;
264
- align-items: center;
265
- gap: 7px;
266
- min-height: 24px;
267
- padding: 3px 8px;
268
- border: 1px solid var(--line-strong);
269
- border-radius: 4px;
270
- background: rgba(13, 25, 19, 0.92);
271
- color: var(--muted);
272
- font-size: 11px;
273
- font-weight: 750;
274
- white-space: nowrap;
275
- }
276
- .status-pill strong { color: var(--brand); }
277
- .status-pill.warn strong { color: var(--warn); }
278
- .status-pill.code strong { color: var(--code); }
279
- .status-pill.memory strong { color: var(--memory); }
280
- .status-pill.memory {
281
- border-color: rgba(65, 255, 143, 0.35);
282
- box-shadow: 0 0 18px rgba(65, 255, 143, 0.10);
283
- }
284
-
285
- .file-picker, button {
286
- display: inline-flex;
287
- align-items: center;
288
- justify-content: center;
289
- min-height: 34px;
290
- padding: 0 13px;
291
- border: 1px solid var(--terminal-strong);
292
- border-radius: 4px;
293
- background: #07130d;
294
- color: var(--terminal-strong);
295
- cursor: pointer;
296
- white-space: nowrap;
297
- font-weight: 780;
298
- box-shadow: inset 0 0 0 1px rgba(65, 255, 143, 0.10);
299
- }
300
- .file-picker { grid-area: picker; }
301
- .app-header .file-picker { display: none; }
302
- .file-picker:hover, button:hover { background: #0d1f15; }
303
- .file-picker input {
304
- position: absolute;
305
- width: 1px;
306
- height: 1px;
307
- overflow: hidden;
308
- clip: rect(0, 0, 0, 0);
309
- }
310
- .file-picker > span {
311
- display: inline;
312
- margin: 0;
313
- color: var(--terminal-strong) !important;
314
- font-size: inherit;
315
- font-weight: inherit;
316
- }
317
-
318
- .layout {
319
- position: relative;
320
- display: grid;
321
- grid-template-columns: minmax(0, 1fr);
322
- grid-template-areas: "dashboard";
323
- gap: 24px;
324
- padding: 32px;
325
- min-height: calc(100vh - 78px);
326
- align-items: start;
327
- }
328
-
329
- .layout > * { min-width: 0; }
330
-
331
- .dashboard-panel {
332
- grid-area: dashboard;
333
- display: none;
334
- min-height: calc(100vh - 134px);
335
- padding: 0;
336
- border: 0;
337
- border-radius: 0;
338
- background: transparent;
339
- box-shadow: none;
340
- overflow: visible;
341
- }
342
-
343
- body.viewer-section-overview .dashboard-panel { display: block; }
344
- body.viewer-section-overview .graph-panel { display: none; }
345
- body.viewer-section-overview .workspace-shell { display: none; }
346
- body.viewer-section-graph .dashboard-panel { display: none; }
347
- body.viewer-page-overview .layout { grid-template-areas: "dashboard"; }
348
- body.viewer-page-graph .layout {
349
- grid-template-columns: minmax(0, 1fr) minmax(320px, 360px);
350
- grid-template-areas: "graph workspace";
351
- align-items: stretch;
352
- }
353
- body.viewer-page-memory .layout,
354
- body.viewer-page-owners .layout,
355
- body.viewer-page-intel .layout,
356
- body.viewer-page-review .layout,
357
- body.viewer-page-data .layout {
358
- grid-template-areas: "workspace";
359
- }
360
- body.viewer-page-memory .graph-panel,
361
- body.viewer-page-owners .graph-panel,
362
- body.viewer-page-intel .graph-panel,
363
- body.viewer-page-review .graph-panel,
364
- body.viewer-page-data .graph-panel {
365
- display: none;
366
- }
367
-
368
- .dashboard-hero {
369
- display: grid;
370
- grid-template-columns: minmax(0, 1fr) auto;
371
- gap: 20px;
372
- align-items: start;
373
- margin-bottom: 18px;
374
- padding: 24px;
375
- border: 1px solid rgba(65, 255, 143, 0.12);
376
- border-radius: 14px;
377
- background: linear-gradient(135deg, rgba(13, 25, 19, 0.94), rgba(8, 17, 13, 0.72));
378
- }
379
- .dashboard-kicker {
380
- display: inline-flex;
381
- margin-bottom: 8px;
382
- color: var(--terminal-dim);
383
- font-size: 11px;
384
- font-weight: 820;
385
- text-transform: uppercase;
386
- }
387
- .dashboard-hero h2 {
388
- max-width: 880px;
389
- color: var(--text);
390
- font-size: clamp(28px, 3.6vw, 48px);
391
- line-height: 1.04;
392
- text-transform: none;
393
- letter-spacing: 0;
394
- }
395
- .dashboard-hero p {
396
- max-width: 760px;
397
- margin-top: 10px;
398
- color: var(--muted);
399
- font-size: 14px;
400
- }
401
- .dashboard-actions {
402
- display: flex;
403
- flex-wrap: wrap;
404
- justify-content: flex-end;
405
- gap: 8px;
406
- }
407
- .dashboard-actions button,
408
- .dashboard-actions a,
409
- .dashboard-card button,
410
- .dashboard-card a {
411
- display: inline-flex;
412
- align-items: center;
413
- justify-content: center;
414
- min-height: 32px;
415
- padding: 0 13px;
416
- border: 1px solid rgba(65, 255, 143, 0.22);
417
- border-radius: 4px;
418
- border-color: rgba(65, 255, 143, 0.22);
419
- background: rgba(65, 255, 143, 0.08);
420
- box-shadow: none;
421
- color: var(--terminal-strong);
422
- font-weight: 780;
423
- text-decoration: none;
424
- white-space: nowrap;
425
- }
426
-
427
- .dashboard-stats {
428
- display: grid;
429
- grid-template-columns: repeat(3, minmax(0, 1fr));
430
- gap: 18px;
431
- margin-bottom: 22px;
432
- }
433
- .dashboard-stat {
434
- min-height: 142px;
435
- padding: 22px;
436
- border: 1px solid rgba(65, 255, 143, 0.12);
437
- border-radius: 10px;
438
- background: rgba(8, 17, 13, 0.82);
439
- }
440
- .dashboard-stat strong {
441
- display: block;
442
- color: var(--terminal-strong);
443
- margin-top: 12px;
444
- font-size: 28px;
445
- line-height: 1.05;
446
- }
447
- .dashboard-stat span {
448
- display: block;
449
- color: var(--terminal-dim);
450
- font-size: 12px;
451
- font-weight: 760;
452
- text-transform: uppercase;
453
- }
454
- .dashboard-stat em {
455
- display: block;
456
- margin-top: 12px;
457
- color: var(--muted);
458
- font-size: 13px;
459
- font-style: normal;
460
- line-height: 1.35;
461
- }
462
- .dashboard-stat-ok { border-color: rgba(65, 255, 143, 0.22); }
463
- .dashboard-stat-warn { border-color: rgba(255, 209, 102, 0.28); }
464
- .dashboard-stat-warn strong { color: var(--warn); }
465
- .dashboard-stat-code strong { color: var(--code); }
466
-
467
- .repo-xray {
468
- margin-bottom: 22px;
469
- padding: 22px;
470
- border: 1px solid rgba(106, 215, 255, 0.20);
471
- border-radius: 10px;
472
- background:
473
- linear-gradient(135deg, rgba(7, 19, 18, 0.92), rgba(10, 14, 24, 0.76));
474
- }
475
-
476
- .repo-xray-head {
477
- display: flex;
478
- align-items: start;
479
- justify-content: space-between;
480
- gap: 18px;
481
- margin-bottom: 10px;
482
- }
483
-
484
- .repo-xray-head span {
485
- display: block;
486
- color: var(--code);
487
- font-size: 11px;
488
- font-weight: 820;
489
- text-transform: uppercase;
490
- }
491
-
492
- .repo-xray-head h2 {
493
- margin-top: 5px;
494
- color: var(--text);
495
- font-size: 24px;
496
- line-height: 1.12;
497
- }
498
-
499
- .repo-xray-head strong {
500
- flex: 0 0 auto;
501
- color: var(--terminal-strong);
502
- font-size: 12px;
503
- text-transform: uppercase;
504
- }
505
-
506
- .repo-xray > p {
507
- max-width: 900px;
508
- color: var(--muted);
509
- font-size: 13px;
510
- line-height: 1.45;
511
- }
512
-
513
- .repo-xray-layers {
514
- display: grid;
515
- grid-template-columns: repeat(3, minmax(0, 1fr));
516
- gap: 12px;
517
- margin-top: 16px;
518
- }
519
-
520
- .repo-xray-layer {
521
- min-height: 190px;
522
- padding: 14px;
523
- border: 1px solid rgba(65, 255, 143, 0.12);
524
- border-radius: 8px;
525
- background: rgba(6, 16, 11, 0.76);
526
- }
527
-
528
- .repo-xray-layer-head {
529
- display: flex;
530
- justify-content: space-between;
531
- gap: 10px;
532
- margin-bottom: 12px;
533
- }
534
-
535
- .repo-xray-layer-head strong {
536
- display: block;
537
- color: var(--terminal-strong);
538
- font-size: 13px;
539
- }
540
-
541
- .repo-xray-layer-head span {
542
- display: block;
543
- margin-top: 4px;
544
- color: var(--terminal-dim);
545
- font-size: 11px;
546
- line-height: 1.35;
547
- }
548
-
549
- .repo-xray-layer-head em {
550
- color: var(--code);
551
- font-size: 16px;
552
- font-style: normal;
553
- font-weight: 820;
554
- }
555
-
556
- .repo-xray-items {
557
- display: grid;
558
- gap: 8px;
559
- }
560
-
561
- .repo-xray-item {
562
- width: 100%;
563
- min-width: 0;
564
- display: grid;
565
- align-items: stretch;
566
- justify-content: stretch;
567
- gap: 8px;
568
- padding: 10px;
569
- border: 1px solid rgba(65, 255, 143, 0.10);
570
- border-radius: 6px;
571
- background: rgba(1, 8, 6, 0.56);
572
- color: var(--muted);
573
- text-align: left;
574
- white-space: normal;
575
- }
576
-
577
- .repo-xray-item span { min-width: 0; }
578
-
579
- .repo-xray-item strong {
580
- display: block;
581
- color: var(--text);
582
- font-size: 12px;
583
- overflow-wrap: anywhere;
584
- }
585
-
586
- .repo-xray-item em {
587
- display: block;
588
- margin-top: 3px;
589
- color: var(--terminal-dim);
590
- font-size: 10px;
591
- font-style: normal;
592
- line-height: 1.35;
593
- overflow-wrap: anywhere;
594
- }
595
-
596
- .repo-xray-item i {
597
- display: block;
598
- height: 4px;
599
- border-radius: 999px;
600
- background: var(--terminal-strong);
601
- }
602
-
603
- .repo-xray-item-watch i { background: var(--warn); }
604
- .repo-xray-item-risk i { background: var(--danger); }
605
-
606
- .dashboard-charts {
607
- display: grid;
608
- grid-template-columns: repeat(3, minmax(0, 1fr));
609
- gap: 18px;
610
- margin-bottom: 22px;
611
- }
612
-
613
- .metric-card {
614
- min-height: 178px;
615
- padding: 18px;
616
- border: 1px solid rgba(65, 255, 143, 0.13);
617
- border-radius: 8px;
618
- background: rgba(6, 16, 11, 0.86);
619
- overflow: hidden;
620
- }
621
-
622
- .metric-card-ok { border-color: rgba(65, 255, 143, 0.24); }
623
- .metric-card-code { border-color: rgba(106, 215, 255, 0.24); }
624
- .metric-card-warn { border-color: rgba(255, 209, 102, 0.28); }
625
- .metric-card-danger { border-color: rgba(255, 91, 91, 0.28); }
626
-
627
- .metric-card-head {
628
- display: flex;
629
- justify-content: space-between;
630
- gap: 10px;
631
- color: var(--terminal-dim);
632
- font-size: 10px;
633
- font-weight: 820;
634
- text-transform: uppercase;
635
- }
636
-
637
- .metric-card-head strong {
638
- color: var(--terminal-strong);
639
- text-align: right;
640
- overflow-wrap: anywhere;
641
- }
642
-
643
- .metric-card-warn .metric-card-head strong { color: var(--warn); }
644
- .metric-card-danger .metric-card-head strong { color: var(--danger); }
645
-
646
- .metric-visual {
647
- display: grid;
648
- grid-template-columns: 72px minmax(0, 1fr);
649
- gap: 12px;
650
- align-items: center;
651
- margin-top: 12px;
652
- }
653
-
654
- .metric-donut {
655
- --value: 0;
656
- width: 70px;
657
- height: 70px;
658
- display: grid;
659
- place-items: center;
660
- border-radius: 50%;
661
- background:
662
- radial-gradient(circle at center, #06100b 0 58%, transparent 59%),
663
- conic-gradient(var(--terminal-strong) calc(var(--value) * 1%), rgba(65, 255, 143, 0.12) 0);
664
- }
665
-
666
- .metric-card-warn .metric-donut {
667
- background:
668
- radial-gradient(circle at center, #06100b 0 58%, transparent 59%),
669
- conic-gradient(var(--warn) calc(var(--value) * 1%), rgba(255, 209, 102, 0.12) 0);
670
- }
671
-
672
- .metric-donut span {
673
- color: var(--text);
674
- font-size: 13px;
675
- font-weight: 840;
676
- }
677
-
678
- .metric-visual p,
679
- .metric-card em {
680
- margin: 0;
681
- color: var(--muted);
682
- font-size: 11px;
683
- font-style: normal;
684
- line-height: 1.4;
685
- }
686
-
687
- .metric-card em {
688
- display: block;
689
- margin-top: 10px;
690
- color: var(--terminal-dim);
691
- }
692
-
693
- .metric-bars {
694
- display: grid;
695
- gap: 9px;
696
- margin-top: 12px;
697
- }
698
-
699
- .metric-bar {
700
- display: grid;
701
- grid-template-columns: minmax(0, 1fr) auto;
702
- gap: 8px;
703
- color: var(--muted);
704
- font-size: 11px;
705
- }
706
-
707
- .metric-bar strong {
708
- color: var(--text);
709
- font-size: 11px;
710
- overflow-wrap: anywhere;
711
- }
712
-
713
- .metric-bar i {
714
- grid-column: 1 / -1;
715
- display: block;
716
- height: 5px;
717
- border-radius: 999px;
718
- background: var(--terminal-strong);
719
- }
720
-
721
- .metric-bar-warn i { background: var(--warn); }
722
- .metric-bar-danger i { background: var(--danger); }
723
-
724
- .dashboard-grid {
725
- display: grid;
726
- grid-template-columns: repeat(3, minmax(0, 1fr));
727
- gap: 18px;
728
- }
729
- .dashboard-card {
730
- min-height: 238px;
731
- display: flex;
732
- flex-direction: column;
733
- gap: 13px;
734
- padding: 22px;
735
- border: 1px solid rgba(65, 255, 143, 0.12);
736
- border-radius: 10px;
737
- background: rgba(8, 17, 13, 0.78);
738
- }
739
- .dashboard-card-head {
740
- display: flex;
741
- align-items: center;
742
- justify-content: space-between;
743
- gap: 10px;
744
- color: var(--terminal-dim);
745
- font-size: 11px;
746
- font-weight: 820;
747
- text-transform: uppercase;
748
- }
749
- .dashboard-card-head strong {
750
- color: var(--code);
751
- font-size: 10px;
752
- }
753
- .dashboard-card h3 {
754
- color: var(--terminal);
755
- font-size: 19px;
756
- line-height: 1.2;
757
- text-shadow: 0 0 9px rgba(65, 255, 143, 0.16);
758
- }
759
- .dashboard-card p {
760
- color: var(--muted);
761
- font-size: 12px;
762
- }
763
- .dashboard-card ul {
764
- flex: 1;
765
- display: grid;
766
- align-content: start;
767
- gap: 7px;
768
- margin: 0;
769
- padding: 0;
770
- list-style: none;
771
- }
772
- .dashboard-card li {
773
- display: flex;
774
- justify-content: space-between;
775
- gap: 10px;
776
- padding-top: 9px;
777
- border-top: 1px solid rgba(65, 255, 143, 0.10);
778
- color: var(--muted);
779
- font-size: 12px;
780
- }
781
- .dashboard-card li strong {
782
- color: var(--terminal);
783
- overflow-wrap: anywhere;
784
- }
785
- .dashboard-card li span {
786
- color: var(--terminal-dim);
787
- text-align: right;
788
- overflow-wrap: anywhere;
789
- }
790
-
791
- #dashboardReview {
792
- display: none;
793
- }
794
-
795
- .workspace-shell {
796
- grid-area: workspace;
797
- position: relative;
798
- z-index: 1;
799
- width: 100%;
800
- min-height: calc(100vh - 134px);
801
- display: grid;
802
- grid-template-rows: minmax(0, 1fr);
803
- gap: 14px;
804
- opacity: 1;
805
- pointer-events: auto;
806
- transform: none;
807
- transition: none;
808
- }
809
-
810
- .workspace-body {
811
- min-height: 0;
812
- height: 100%;
813
- display: grid;
814
- gap: 14px;
815
- }
816
-
817
- .workspace-body > * {
818
- grid-area: auto;
819
- min-height: 0;
820
- display: none;
821
- }
822
-
823
- .control-panel, .graph-panel, .details-panel, .graph-insights-panel, .table-panel, .review-panel, .proof-panel, .intelligence-panel, .memory-panel, .owners-panel {
824
- border: 1px solid var(--line);
825
- border-radius: 6px;
826
- background: rgba(8, 17, 13, 0.94);
827
- box-shadow: var(--shadow);
828
- }
829
-
830
- .control-panel,
831
- .graph-panel,
832
- .memory-panel {
833
- border-color: rgba(65, 255, 143, 0.22);
834
- box-shadow: var(--shadow), 0 0 34px rgba(65, 255, 143, 0.055);
835
- }
836
-
837
- .control-panel {
838
- min-height: 0;
839
- overflow: auto;
840
- padding: 12px;
841
- }
842
-
843
- .graph-insights-panel {
844
- min-height: 0;
845
- overflow: hidden;
846
- padding: 0;
847
- }
848
-
849
- .graph-insights {
850
- height: auto;
851
- max-height: 360px;
852
- overflow: auto;
853
- display: grid;
854
- grid-template-columns: repeat(2, minmax(0, 1fr));
855
- gap: 8px;
856
- padding: 0 10px 12px;
857
- }
858
-
859
- .journey-actions {
860
- display: grid;
861
- gap: 8px;
862
- margin: 10px 0 0;
863
- }
864
-
865
- .journey-actions button,
866
- .advanced-controls summary {
867
- width: 100%;
868
- min-height: 34px;
869
- border: 1px solid rgba(65, 255, 143, 0.20);
870
- border-radius: 4px;
871
- background: rgba(65, 255, 143, 0.055);
872
- color: var(--terminal-strong);
873
- font-size: 12px;
874
- font-weight: 760;
875
- text-align: left;
876
- }
877
-
878
- .journey-actions button {
879
- padding: 0 10px;
880
- box-shadow: none;
881
- }
882
-
883
- .journey-actions button.active,
884
- .graph-action-card.active {
885
- border-color: rgba(65, 255, 143, 0.70);
886
- background: rgba(65, 255, 143, 0.12);
887
- }
888
-
889
- .advanced-controls {
890
- margin-top: 12px;
891
- }
892
-
893
- .advanced-controls summary {
894
- display: flex;
895
- align-items: center;
896
- cursor: pointer;
897
- padding: 0 10px;
898
- }
899
-
900
- .advanced-controls label,
901
- .advanced-controls .toggle-control {
902
- margin-top: 10px;
903
- }
904
-
905
- .graph-action-card p {
906
- margin: 10px 0;
907
- color: var(--muted);
908
- font-size: 11px;
909
- line-height: 1.45;
910
- }
911
-
912
- .graph-action-card button {
913
- width: 100%;
914
- min-height: 30px;
915
- margin-top: 10px;
916
- box-shadow: none;
917
- }
918
-
919
- .graph-insights .metric-card {
920
- min-height: 118px;
921
- padding: 11px;
922
- }
923
-
924
- .graph-insights .metric-visual {
925
- grid-template-columns: 56px minmax(0, 1fr);
926
- gap: 10px;
927
- }
928
-
929
- .graph-insights .metric-donut {
930
- width: 54px;
931
- height: 54px;
932
- }
933
-
934
- .path-insight-card p {
935
- margin: 12px 0 0;
936
- color: var(--muted);
937
- font-size: 11px;
938
- line-height: 1.45;
939
- }
940
-
941
- .path-suggestion {
942
- margin-top: 10px;
943
- color: var(--terminal-dim);
944
- font-size: 11px;
945
- }
946
-
947
- .path-suggestion-button {
948
- width: 100%;
949
- display: grid;
950
- gap: 4px;
951
- padding: 9px;
952
- border-color: rgba(106, 215, 255, 0.24);
953
- background: rgba(106, 215, 255, 0.06);
954
- box-shadow: none;
955
- text-align: left;
956
- white-space: normal;
957
- }
958
-
959
- .path-suggestion-button strong,
960
- .path-suggestion-button span {
961
- overflow-wrap: anywhere;
962
- }
963
-
964
- .path-suggestion-button strong { color: var(--code); }
965
- .path-suggestion-button span { color: var(--terminal-dim); font-size: 11px; }
966
-
967
- body.viewer-page-graph .workspace-body {
968
- display: block;
969
- }
970
- body.viewer-page-graph .control-panel,
971
- body.viewer-page-graph .graph-insights-panel { display: none; }
972
- body.viewer-page-graph .control-panel { display: block; }
973
- body.viewer-page-graph .details-panel { display: flex; }
974
- body.viewer-page-graph:not(.has-selection) .details-panel { display: none; }
975
- body.viewer-page-graph .workspace-shell {
976
- min-height: 0;
977
- height: calc(100vh - 176px);
978
- max-height: calc(100vh - 176px);
979
- overflow: auto;
980
- overscroll-behavior: contain;
981
- }
982
- body.viewer-page-graph .metrics-grid { display: none; }
983
- body.viewer-page-graph .control-panel,
984
- body.viewer-page-graph .details-panel { margin-bottom: 16px; }
985
- body.viewer-page-graph .graph-panel {
986
- min-height: 0;
987
- height: calc(100vh - 176px);
988
- }
989
- body.viewer-page-graph .graph-canvas-wrap,
990
- body.viewer-page-graph #graphCanvas,
991
- body.viewer-page-graph .three-graph,
992
- body.viewer-page-graph #graphSvg {
993
- min-height: 0;
994
- }
995
- body.viewer-page-review .workspace-body {
996
- grid-template-columns: minmax(0, 1fr);
997
- align-items: stretch;
998
- }
999
- body.viewer-page-review .review-panel {
1000
- display: block;
1001
- }
1002
- body.viewer-page-review .proof-panel { display: none; }
1003
- body.viewer-page-owners .workspace-body,
1004
- body.viewer-page-intel .workspace-body { grid-template-columns: minmax(0, 1fr); }
1005
- body.viewer-page-memory .workspace-body {
1006
- grid-template-columns: minmax(0, 1fr);
1007
- align-items: stretch;
1008
- height: auto;
1009
- }
1010
- body.viewer-page-memory.has-selection .workspace-body {
1011
- grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
1012
- }
1013
- body.viewer-page-memory .memory-panel,
1014
- body.viewer-page-owners .owners-panel,
1015
- body.viewer-page-intel .intelligence-panel { display: block; }
1016
- body.viewer-page-memory .memory-panel {
1017
- order: 0;
1018
- min-height: 0;
1019
- }
1020
- body.viewer-page-memory .details-panel { order: 1; display: none; }
1021
- body.viewer-page-memory.has-selection .details-panel {
1022
- display: flex;
1023
- max-height: calc(100vh - 176px);
1024
- min-height: 0;
1025
- position: sticky;
1026
- top: 146px;
1027
- }
1028
- body.viewer-page-data .workspace-body {
1029
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(300px, 360px);
1030
- align-items: stretch;
1031
- }
1032
- body.viewer-page-data .entities-panel,
1033
- body.viewer-page-data .edges-panel { display: block; }
1034
- body.viewer-page-data .details-panel {
1035
- display: flex;
1036
- max-height: calc(100vh - 176px);
1037
- }
1038
-
1039
- body.viewer-page-memory .workspace-shell,
1040
- body.viewer-page-intel .workspace-shell,
1041
- body.viewer-page-owners .workspace-shell,
1042
- body.viewer-page-review .workspace-shell,
1043
- body.viewer-page-data .workspace-shell {
1044
- min-height: calc(100vh - 176px);
1045
- height: auto;
1046
- max-height: none;
1047
- overflow: visible;
1048
- overscroll-behavior: auto;
1049
- }
1050
-
1051
- .workspace-shell .metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
1052
-
1053
- @media (min-width: 1121px) {
1054
- body.viewer-page-graph .control-panel {
1055
- display: block;
1056
- }
1057
- .control-panel label, .control-panel button { margin-top: 0; }
1058
- }
1059
-
1060
- .control-panel label { display: block; margin-top: 12px; }
1061
- .control-panel .toggle-control {
1062
- display: flex;
1063
- align-items: center;
1064
- gap: 9px;
1065
- min-height: 38px;
1066
- padding: 0 10px;
1067
- border: 1px solid var(--line);
1068
- border-radius: 4px;
1069
- background: #030604;
1070
- }
1071
- .control-panel .toggle-control input {
1072
- width: 15px;
1073
- min-height: 15px;
1074
- accent-color: var(--terminal-strong);
1075
- }
1076
- .control-panel .toggle-control span {
1077
- margin: 0;
1078
- color: var(--terminal-dim);
1079
- line-height: 1.2;
1080
- }
1081
- label span {
1082
- display: block;
1083
- margin-bottom: 6px;
1084
- color: var(--terminal-dim);
1085
- font-size: 11px;
1086
- font-weight: 760;
1087
- text-transform: uppercase;
1088
- }
1089
-
1090
- input, select {
1091
- width: 100%;
1092
- min-height: 38px;
1093
- border: 1px solid var(--line);
1094
- border-radius: 4px;
1095
- padding: 0 10px;
1096
- background: #030604;
1097
- color: var(--text);
1098
- }
1099
- input::placeholder { color: #4e7458; }
1100
- input:focus, select:focus, button:focus, .file-picker:focus-within {
1101
- outline: 2px solid rgba(65, 255, 143, 0.35);
1102
- outline-offset: 1px;
1103
- }
1104
- .control-panel button { width: 100%; margin-top: 12px; }
1105
- .journey-actions button,
1106
- .advanced-controls summary,
1107
- .graph-action-card button { margin-top: 0; }
1108
-
1109
- .path-finder {
1110
- display: grid;
1111
- gap: 8px;
1112
- margin: 0 0 2px;
1113
- padding: 10px;
1114
- border: 1px solid rgba(106, 215, 255, 0.26);
1115
- border-radius: 4px;
1116
- background: rgba(5, 16, 18, 0.58);
1117
- }
1118
-
1119
- .inspector-path-finder {
1120
- display: none !important;
1121
- }
1122
- .path-finder-header {
1123
- display: flex;
1124
- align-items: center;
1125
- justify-content: space-between;
1126
- gap: 10px;
1127
- }
1128
- .path-finder-header span {
1129
- margin: 0;
1130
- color: var(--code);
1131
- font-size: 11px;
1132
- font-weight: 820;
1133
- letter-spacing: 0.06em;
1134
- text-transform: uppercase;
1135
- }
1136
- .path-finder-header button {
1137
- width: auto;
1138
- min-height: 26px;
1139
- padding: 0 9px;
1140
- border-color: var(--line);
1141
- color: var(--terminal-dim);
1142
- font-size: 10px;
1143
- }
1144
- .path-finder-inputs {
1145
- display: grid;
1146
- grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 92px;
1147
- gap: 8px;
1148
- }
1149
- .path-finder-inputs input,
1150
- .path-finder-inputs button {
1151
- margin: 0;
1152
- }
1153
- .path-status {
1154
- color: var(--terminal-dim);
1155
- font-size: 11px;
1156
- overflow-wrap: anywhere;
1157
- }
1158
- .path-status.ok { color: var(--terminal-strong); }
1159
- .path-status.warn { color: var(--warn); }
1160
- .path-result {
1161
- display: none;
1162
- max-height: 138px;
1163
- overflow: auto;
1164
- padding-right: 2px;
1165
- }
1166
- .path-result.visible {
1167
- display: grid;
1168
- gap: 6px;
1169
- }
1170
- .path-step {
1171
- width: 100%;
1172
- min-height: 0;
1173
- display: grid;
1174
- gap: 3px;
1175
- margin: 0;
1176
- padding: 7px 8px;
1177
- border-color: rgba(106, 215, 255, 0.24);
1178
- background: rgba(106, 215, 255, 0.045);
1179
- color: var(--text);
1180
- text-align: left;
1181
- white-space: normal;
1182
- box-shadow: none;
1183
- }
1184
- .path-step:hover {
1185
- border-color: var(--code);
1186
- background: rgba(106, 215, 255, 0.085);
1187
- }
1188
- .path-step strong {
1189
- color: var(--code);
1190
- font-size: 11px;
1191
- overflow-wrap: anywhere;
1192
- }
1193
- .path-step span {
1194
- margin: 0;
1195
- color: var(--terminal-dim);
1196
- font-size: 10px;
1197
- font-weight: 740;
1198
- overflow-wrap: anywhere;
1199
- text-transform: none;
1200
- }
1201
-
1202
- .panel-heading {
1203
- display: flex;
1204
- align-items: center;
1205
- justify-content: space-between;
1206
- gap: 10px;
1207
- padding: 11px 12px 0;
1208
- margin-bottom: 10px;
1209
- }
1210
- .panel-heading.compact { padding: 0; margin-bottom: 12px; }
1211
- .panel-heading span, #workspaceMode, #selectionStatus {
1212
- color: var(--terminal-dim);
1213
- font-size: 11px;
1214
- font-variant-numeric: tabular-nums;
1215
- }
1216
- .panel-heading h2 {
1217
- color: var(--terminal-strong);
1218
- text-shadow: 0 0 10px rgba(65, 255, 143, 0.28);
1219
- }
1220
-
1221
- .metrics-grid {
1222
- display: grid;
1223
- grid-template-columns: repeat(6, minmax(0, 1fr));
1224
- gap: 8px;
1225
- margin-bottom: 12px;
1226
- }
1227
- .metric {
1228
- min-height: 58px;
1229
- padding: 9px;
1230
- border: 1px solid var(--line);
1231
- border-radius: 4px;
1232
- background: #06100b;
1233
- }
1234
- .metric strong {
1235
- display: block;
1236
- color: var(--terminal-strong);
1237
- font-size: 17px;
1238
- line-height: 1.1;
1239
- overflow-wrap: anywhere;
1240
- }
1241
- .metric span {
1242
- display: block;
1243
- margin-top: 5px;
1244
- color: var(--terminal-dim);
1245
- font-size: 10px;
1246
- font-weight: 760;
1247
- text-transform: uppercase;
1248
- }
1249
-
1250
- .legend {
1251
- display: flex;
1252
- flex-wrap: wrap;
1253
- gap: 12px;
1254
- margin-top: 12px;
1255
- padding-top: 12px;
1256
- border-top: 1px solid var(--line);
1257
- color: var(--muted);
1258
- font-size: 11px;
1259
- font-weight: 720;
1260
- }
1261
- .legend span { display: flex; align-items: center; gap: 8px; }
1262
- .dot { width: 12px; height: 8px; border-radius: 2px; display: inline-block; }
1263
- .memory-dot { background: var(--memory); }
1264
- .code-dot { background: var(--code); }
1265
- .line { width: 24px; height: 2px; display: inline-block; background: var(--edge); }
1266
-
1267
- .graph-panel {
1268
- grid-area: graph;
1269
- position: relative;
1270
- min-height: 640px;
1271
- overflow: hidden;
1272
- display: grid;
1273
- grid-template-rows: auto minmax(0, 1fr);
1274
- box-shadow: var(--shadow), 0 0 0 1px rgba(65, 255, 143, 0.08), 0 0 58px rgba(65, 255, 143, 0.11);
1275
- }
1276
-
1277
- .graph-toolbar {
1278
- display: flex;
1279
- justify-content: space-between;
1280
- align-items: center;
1281
- gap: 12px;
1282
- padding: 11px 12px;
1283
- border-bottom: 1px solid var(--line);
1284
- background:
1285
- radial-gradient(circle at 8% 0, rgba(65, 255, 143, 0.14), transparent 42%),
1286
- linear-gradient(180deg, #0b1710, #07110c);
1287
- }
1288
- .graph-toolbar p { color: var(--terminal-dim); font-size: 11px; margin-top: 3px; }
1289
- .graph-actions { display: inline-flex; align-items: center; gap: 6px; }
1290
- .graph-actions button { min-width: 40px; min-height: 34px; padding: 0 10px; }
1291
- .interaction-hint {
1292
- display: inline-flex;
1293
- align-items: center;
1294
- padding-right: 6px;
1295
- color: var(--terminal-dim);
1296
- font-size: 11px;
1297
- font-weight: 700;
1298
- white-space: nowrap;
1299
- }
1300
-
1301
- .graph-canvas-wrap {
1302
- position: relative;
1303
- min-height: 600px;
1304
- width: 100%;
1305
- height: 100%;
1306
- overflow: hidden;
1307
- background:
1308
- radial-gradient(circle at 52% 46%, rgba(65, 255, 143, 0.13), transparent 44%),
1309
- radial-gradient(circle at 18% 26%, rgba(65, 255, 143, 0.09), transparent 32%),
1310
- #020503;
1311
- box-shadow: inset 0 0 80px rgba(65, 255, 143, 0.09);
1312
- }
1313
-
1314
- #graphCanvas, .three-graph {
1315
- width: 100%;
1316
- height: 100%;
1317
- min-height: 600px;
1318
- display: block;
1319
- }
1320
-
1321
- #graphCanvas {
1322
- cursor: grab;
1323
- }
1324
-
1325
- #graphCanvas:active { cursor: grabbing; }
1326
-
1327
- .three-graph {
1328
- position: absolute;
1329
- inset: 0;
1330
- display: none;
1331
- cursor: grab;
1332
- background:
1333
- linear-gradient(rgba(65, 255, 143, 0.035) 1px, transparent 1px),
1334
- linear-gradient(90deg, rgba(65, 255, 143, 0.035) 1px, transparent 1px),
1335
- radial-gradient(circle at 52% 46%, rgba(106, 215, 255, 0.10), transparent 46%),
1336
- #020503;
1337
- background-size: 34px 34px, 34px 34px, 100% 100%, 100% 100%;
1338
- }
1339
- .three-graph canvas {
1340
- display: block;
1341
- width: 100% !important;
1342
- height: 100% !important;
1343
- }
1344
- .three-graph:active { cursor: grabbing; }
1345
- .three-status {
1346
- position: absolute;
1347
- inset: 0;
1348
- display: grid;
1349
- place-items: center;
1350
- color: var(--terminal-dim);
1351
- font-weight: 780;
1352
- }
1353
- .graph-canvas-wrap.mode-3d #graphCanvas { display: none; }
1354
- .graph-canvas-wrap.mode-3d .three-graph { display: block; }
1355
- .graph-canvas-wrap.mode-2d .three-graph { display: none; }
1356
-
1357
- #graphSvg {
1358
- width: 100%;
1359
- height: 100%;
1360
- min-height: 600px;
1361
- display: block;
1362
- cursor: grab;
1363
- background:
1364
- linear-gradient(rgba(65, 255, 143, 0.035) 1px, transparent 1px),
1365
- linear-gradient(90deg, rgba(65, 255, 143, 0.035) 1px, transparent 1px),
1366
- radial-gradient(circle at 52% 46%, rgba(65, 255, 143, 0.10), transparent 44%),
1367
- #020503;
1368
- background-size: 28px 28px, 28px 28px, 100% 100%, 100% 100%;
1369
- }
1370
- #graphSvg.fallback-graph { display: none; }
1371
- #graphSvg.dragging { cursor: grabbing; }
1372
- #arrow path { fill: var(--edge); }
1373
- .graph-tooltip {
1374
- position: absolute;
1375
- z-index: 5;
1376
- display: none;
1377
- max-width: min(320px, calc(100% - 28px));
1378
- padding: 10px 12px;
1379
- border: 1px solid rgba(65, 255, 143, 0.28);
1380
- border-radius: 4px;
1381
- background: rgba(2, 5, 3, 0.94);
1382
- box-shadow: 0 14px 34px rgba(0, 0, 0, 0.42), inset 0 0 0 1px rgba(65, 255, 143, 0.06);
1383
- backdrop-filter: blur(12px);
1384
- color: var(--text);
1385
- pointer-events: none;
1386
- }
1387
- .graph-tooltip.visible { display: block; }
1388
- .tt-name {
1389
- color: var(--terminal);
1390
- font-weight: 820;
1391
- overflow-wrap: anywhere;
1392
- }
1393
- .tt-type {
1394
- margin-top: 4px;
1395
- font-size: 10px;
1396
- font-weight: 800;
1397
- letter-spacing: 0.10em;
1398
- text-transform: uppercase;
1399
- }
1400
- .tt-summary {
1401
- margin-top: 7px;
1402
- color: var(--muted);
1403
- font-size: 11px;
1404
- overflow-wrap: anywhere;
1405
- }
1406
- .tt-conns {
1407
- margin-top: 7px;
1408
- padding-top: 7px;
1409
- border-top: 1px solid rgba(65, 255, 143, 0.16);
1410
- color: var(--terminal-dim);
1411
- font-size: 10px;
1412
- font-weight: 760;
1413
- }
1414
- .lane-label {
1415
- fill: rgba(185, 251, 192, 0.34);
1416
- font-size: 12px;
1417
- font-weight: 900;
1418
- letter-spacing: 0.16em;
1419
- pointer-events: none;
1420
- }
1421
-
1422
- .empty-state {
1423
- position: absolute;
1424
- inset: 54px 0 0;
1425
- display: grid;
1426
- place-content: center;
1427
- gap: 6px;
1428
- color: var(--muted);
1429
- text-align: center;
1430
- pointer-events: none;
1431
- }
1432
- .empty-state strong { color: var(--terminal); font-size: 18px; }
1433
- .empty-state.hidden { display: none; }
1434
-
1435
- .details-panel {
1436
- flex-direction: column;
1437
- height: 100%;
1438
- max-height: none;
1439
- min-height: 0;
1440
- overflow: hidden;
1441
- padding: 12px;
1442
- }
1443
- .details-empty { color: var(--terminal-dim); }
1444
- #selectionDetails {
1445
- flex: 1 1 auto;
1446
- min-height: 0;
1447
- max-height: min(52vh, 460px);
1448
- overflow: auto;
1449
- overscroll-behavior: contain;
1450
- padding-right: 2px;
1451
- }
1452
-
1453
- .inspector-path-finder {
1454
- flex: 0 0 auto;
1455
- margin-top: 12px;
1456
- }
1457
- body:not(.has-code-selection) .inspector-path-finder { display: none; }
1458
- .detail-title { margin-bottom: 8px; color: var(--text); font-weight: 780; font-size: 17px; overflow-wrap: anywhere; }
1459
- .detail-kind { margin-bottom: 10px; color: var(--terminal-strong); background: #07130d; }
1460
- .detail-row { padding: 9px 0; border-top: 1px solid var(--line); }
1461
- .detail-row dt { margin: 0 0 4px; color: var(--terminal-dim); font-size: 11px; font-weight: 760; text-transform: uppercase; }
1462
- .detail-row dd {
1463
- max-height: 150px;
1464
- margin: 0;
1465
- color: var(--text);
1466
- overflow: auto;
1467
- overflow-wrap: anywhere;
1468
- white-space: pre-wrap;
1469
- }
1470
- .detail-section {
1471
- margin-top: 12px;
1472
- padding-top: 12px;
1473
- border-top: 1px solid var(--line);
1474
- min-height: 0;
1475
- }
1476
- .detail-section-title {
1477
- margin-bottom: 8px;
1478
- color: var(--terminal-dim);
1479
- font-size: 11px;
1480
- font-weight: 800;
1481
- text-transform: uppercase;
1482
- }
1483
- .detail-section-list {
1484
- max-height: 260px;
1485
- overflow: auto;
1486
- overscroll-behavior: contain;
1487
- padding-right: 2px;
1488
- }
1489
- .detail-link {
1490
- width: 100%;
1491
- display: grid;
1492
- gap: 4px;
1493
- min-height: 0;
1494
- margin-top: 8px;
1495
- padding: 9px;
1496
- border-color: rgba(216, 255, 95, 0.28);
1497
- background: rgba(216, 255, 95, 0.045);
1498
- color: var(--text);
1499
- text-align: left;
1500
- white-space: normal;
1501
- box-shadow: none;
1502
- }
1503
- .detail-link:hover { background: rgba(216, 255, 95, 0.085); }
1504
- .detail-link-title {
1505
- color: var(--terminal);
1506
- font-weight: 820;
1507
- overflow-wrap: anywhere;
1508
- }
1509
- .detail-link-meta {
1510
- color: var(--warn);
1511
- font-size: 10px;
1512
- font-weight: 760;
1513
- text-transform: uppercase;
1514
- overflow-wrap: anywhere;
1515
- }
1516
- .detail-link-body {
1517
- display: -webkit-box;
1518
- -webkit-box-orient: vertical;
1519
- -webkit-line-clamp: 3;
1520
- color: var(--muted);
1521
- font-size: 11px;
1522
- overflow: hidden;
1523
- overflow-wrap: anywhere;
1524
- }
1525
- .detail-more {
1526
- margin-top: 9px;
1527
- color: var(--terminal-dim);
1528
- font-size: 11px;
1529
- }
1530
-
1531
- .table-panel { min-height: 0; overflow: hidden; }
1532
- .review-panel, .proof-panel, .intelligence-panel, .memory-panel, .owners-panel { min-height: 0; overflow: visible; }
1533
- body.viewer-page-memory .memory-panel,
1534
- body.viewer-page-review .review-panel,
1535
- body.viewer-page-data .table-panel {
1536
- display: flex;
1537
- flex-direction: column;
1538
- }
1539
- .list { height: calc(100% - 48px); overflow: auto; padding: 0 8px 10px; }
1540
- .review-list, .proof-list, .memory-list, .owners-list {
1541
- height: auto;
1542
- overflow: visible;
1543
- padding: 0 10px 12px;
1544
- }
1545
- .intelligence-list {
1546
- height: auto;
1547
- overflow: visible;
1548
- padding: 0 14px 16px;
1549
- display: grid;
1550
- grid-template-columns: repeat(3, minmax(0, 1fr));
1551
- gap: 16px;
1552
- align-content: start;
1553
- }
1554
- .intel-guide {
1555
- grid-column: 1 / -1;
1556
- display: grid;
1557
- grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
1558
- gap: 12px;
1559
- align-items: center;
1560
- padding: 12px 14px;
1561
- border: 1px solid rgba(65, 255, 143, 0.18);
1562
- border-radius: 8px;
1563
- background: rgba(65, 255, 143, 0.05);
1564
- }
1565
- .intel-guide strong {
1566
- color: var(--terminal-strong);
1567
- font-size: 13px;
1568
- }
1569
- .intel-guide span {
1570
- color: var(--terminal-dim);
1571
- font-size: 12px;
1572
- line-height: 1.45;
1573
- }
1574
- .intel-deep-grid {
1575
- grid-column: 1 / -1;
1576
- display: grid;
1577
- grid-template-columns: repeat(2, minmax(0, 1fr));
1578
- gap: 14px;
1579
- }
1580
-
1581
- .intel-deep-drawer {
1582
- grid-column: 1 / -1;
1583
- border: 1px solid rgba(65, 255, 143, 0.16);
1584
- border-radius: 8px;
1585
- background: rgba(4, 13, 8, 0.72);
1586
- overflow: hidden;
1587
- }
1588
-
1589
- .intel-deep-drawer summary {
1590
- min-height: 46px;
1591
- display: flex;
1592
- align-items: center;
1593
- justify-content: space-between;
1594
- gap: 12px;
1595
- padding: 0 14px;
1596
- color: var(--terminal-strong);
1597
- cursor: pointer;
1598
- }
1599
-
1600
- .intel-deep-drawer summary em {
1601
- color: var(--terminal-dim);
1602
- font-size: 12px;
1603
- font-style: normal;
1604
- }
1605
-
1606
- .intel-deep-drawer .intel-deep-grid {
1607
- padding: 14px;
1608
- }
1609
-
1610
- .proof-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
1611
- .memory-overview,
1612
- .owners-summary,
1613
- .review-overview,
1614
- .proof-overview {
1615
- display: grid;
1616
- grid-template-columns: repeat(3, minmax(0, 1fr));
1617
- gap: 8px;
1618
- padding: 0 10px 10px;
1619
- }
1620
-
1621
- .memory-overview,
1622
- .review-overview,
1623
- .proof-overview {
1624
- grid-template-columns: repeat(2, minmax(0, 1fr));
1625
- }
1626
-
1627
- body.viewer-page-memory .memory-overview {
1628
- display: none;
1629
- }
1630
-
1631
- body.viewer-page-memory .memory-list {
1632
- height: auto;
1633
- min-height: 280px;
1634
- flex: 0 0 auto;
1635
- overflow: visible;
1636
- }
1637
-
1638
- .memory-governance {
1639
- flex: 0 0 auto;
1640
- min-height: 0;
1641
- margin: 0 10px 12px;
1642
- border: 1px solid rgba(65, 255, 143, 0.18);
1643
- border-radius: 8px;
1644
- background: rgba(4, 13, 8, 0.76);
1645
- overflow: hidden;
1646
- }
1647
-
1648
- .memory-governance[open] {
1649
- max-height: min(56vh, 620px);
1650
- overflow: auto;
1651
- overscroll-behavior: contain;
1652
- }
1653
-
1654
- .memory-governance summary {
1655
- min-height: 40px;
1656
- display: flex;
1657
- align-items: center;
1658
- justify-content: space-between;
1659
- gap: 12px;
1660
- padding: 0 12px;
1661
- cursor: pointer;
1662
- color: var(--terminal-strong);
1663
- font-size: 12px;
1664
- font-weight: 800;
1665
- }
1666
-
1667
- .memory-governance summary em {
1668
- color: var(--terminal-dim);
1669
- font-size: 10px;
1670
- font-style: normal;
1671
- font-weight: 760;
1672
- text-transform: uppercase;
1673
- }
1674
-
1675
- .memory-governance > section {
1676
- margin: 10px;
1677
- }
1678
-
1679
- .memory-lifecycle {
1680
- margin: 0 10px 12px;
1681
- padding: 12px;
1682
- border: 1px solid rgba(65, 255, 143, 0.18);
1683
- border-radius: 8px;
1684
- background:
1685
- linear-gradient(180deg, rgba(65, 255, 143, 0.07), rgba(65, 255, 143, 0.025)),
1686
- rgba(5, 12, 8, 0.86);
1687
- box-shadow: inset 0 0 0 1px rgba(65, 255, 143, 0.05);
1688
- }
1689
-
1690
- .memory-review-actions {
1691
- margin: 0 10px 12px;
1692
- padding: 12px;
1693
- border: 1px solid rgba(65, 255, 143, 0.22);
1694
- border-radius: 8px;
1695
- background:
1696
- radial-gradient(circle at top right, rgba(65, 255, 143, 0.12), transparent 42%),
1697
- rgba(4, 13, 8, 0.88);
1698
- box-shadow: 0 0 26px rgba(65, 255, 143, 0.06), inset 0 0 0 1px rgba(65, 255, 143, 0.05);
1699
- }
1700
-
1701
- .memory-action-list {
1702
- display: grid;
1703
- grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
1704
- gap: 10px;
1705
- margin-top: 12px;
1706
- }
1707
-
1708
- .memory-action {
1709
- border: 1px solid rgba(65, 255, 143, 0.17);
1710
- border-radius: 8px;
1711
- background: rgba(2, 10, 6, 0.82);
1712
- padding: 12px;
1713
- transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
1714
- }
1715
-
1716
- .memory-action[role="button"] { cursor: pointer; }
1717
-
1718
- .memory-action[role="button"]:hover,
1719
- .memory-action[role="button"]:focus-visible {
1720
- border-color: rgba(65, 255, 143, 0.38);
1721
- box-shadow: 0 0 22px rgba(65, 255, 143, 0.12);
1722
- transform: translateY(-1px);
1723
- outline: none;
1724
- }
1725
-
1726
- .memory-action-warn { border-color: rgba(255, 209, 102, 0.24); }
1727
- .memory-action-ok { border-color: rgba(65, 255, 143, 0.26); }
1728
- .memory-action-info { border-color: rgba(106, 215, 255, 0.22); }
1729
-
1730
- .memory-action-head {
1731
- display: flex;
1732
- align-items: start;
1733
- justify-content: space-between;
1734
- gap: 10px;
1735
- }
1736
-
1737
- .memory-action-head span {
1738
- border: 1px solid rgba(65, 255, 143, 0.18);
1739
- border-radius: 999px;
1740
- color: var(--accent);
1741
- font-size: 10px;
1742
- font-weight: 800;
1743
- letter-spacing: 0;
1744
- padding: 3px 7px;
1745
- text-transform: uppercase;
1746
- white-space: nowrap;
1747
- }
1748
-
1749
- .memory-action-head strong {
1750
- color: var(--terminal-strong);
1751
- font-size: 12px;
1752
- line-height: 1.35;
1753
- text-align: right;
1754
- overflow-wrap: anywhere;
1755
- }
1756
-
1757
- .memory-action p,
1758
- .memory-action em {
1759
- display: block;
1760
- color: var(--muted);
1761
- font-size: 11px;
1762
- line-height: 1.45;
1763
- margin: 10px 0 0;
1764
- overflow-wrap: anywhere;
1765
- }
1766
-
1767
- .memory-action em {
1768
- color: var(--terminal-strong);
1769
- font-style: normal;
1770
- }
1771
-
1772
- .session-capture {
1773
- margin: 0 10px 12px;
1774
- padding: 12px;
1775
- border: 1px solid rgba(106, 215, 255, 0.18);
1776
- border-radius: 8px;
1777
- background:
1778
- linear-gradient(180deg, rgba(106, 215, 255, 0.07), rgba(65, 255, 143, 0.02)),
1779
- rgba(5, 12, 10, 0.86);
1780
- box-shadow: inset 0 0 0 1px rgba(106, 215, 255, 0.04);
1781
- }
1782
-
1783
- .session-capture-list {
1784
- display: grid;
1785
- grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
1786
- gap: 10px;
1787
- margin-top: 12px;
1788
- }
1789
-
1790
- .session-capture-card {
1791
- border: 1px solid rgba(106, 215, 255, 0.16);
1792
- border-radius: 8px;
1793
- background: rgba(3, 11, 10, 0.82);
1794
- padding: 12px;
1795
- }
1796
-
1797
- .session-capture-head {
1798
- display: flex;
1799
- align-items: flex-start;
1800
- justify-content: space-between;
1801
- gap: 10px;
1802
- }
1803
-
1804
- .session-capture-head strong {
1805
- display: block;
1806
- color: var(--terminal-strong);
1807
- font-size: 12px;
1808
- overflow-wrap: anywhere;
1809
- }
1810
-
1811
- .session-capture-head span,
1812
- .session-capture-card p {
1813
- color: var(--muted);
1814
- font-size: 11px;
1815
- line-height: 1.45;
1816
- }
1817
-
1818
- .session-capture-head em {
1819
- color: var(--accent);
1820
- font-size: 11px;
1821
- font-style: normal;
1822
- white-space: nowrap;
1823
- }
1824
-
1825
- .session-capture-meta {
1826
- display: flex;
1827
- flex-wrap: wrap;
1828
- gap: 6px;
1829
- margin-top: 10px;
1830
- }
1831
-
1832
- .session-capture-meta span {
1833
- border: 1px solid rgba(106, 215, 255, 0.16);
1834
- border-radius: 999px;
1835
- background: rgba(106, 215, 255, 0.05);
1836
- color: var(--muted);
1837
- font-size: 10px;
1838
- padding: 4px 6px;
1839
- overflow-wrap: anywhere;
1840
- }
1841
-
1842
- .lifecycle-head {
1843
- display: flex;
1844
- align-items: start;
1845
- justify-content: space-between;
1846
- gap: 12px;
1847
- margin-bottom: 10px;
1848
- }
1849
-
1850
- .lifecycle-head h3 {
1851
- margin: 0;
1852
- color: var(--terminal-strong);
1853
- font-size: 13px;
1854
- text-shadow: 0 0 12px rgba(65, 255, 143, 0.30);
1855
- }
1856
-
1857
- .lifecycle-head p {
1858
- margin-top: 3px;
1859
- color: var(--muted);
1860
- font-size: 11px;
1861
- }
1862
-
1863
- .lifecycle-head span {
1864
- min-width: max-content;
1865
- padding: 4px 8px;
1866
- border: 1px solid rgba(65, 255, 143, 0.22);
1867
- border-radius: 999px;
1868
- color: var(--terminal-strong);
1869
- font-size: 10px;
1870
- font-weight: 800;
1871
- }
1872
-
1873
- .lifecycle-summary {
1874
- display: grid;
1875
- grid-template-columns: repeat(3, minmax(0, 1fr));
1876
- gap: 8px;
1877
- margin-bottom: 10px;
1878
- }
1879
-
1880
- .lifecycle-step {
1881
- display: grid;
1882
- grid-template-columns: 24px minmax(0, 1fr) auto;
1883
- gap: 6px 8px;
1884
- align-items: center;
1885
- padding: 9px;
1886
- border: 1px solid rgba(65, 255, 143, 0.12);
1887
- border-radius: 6px;
1888
- background: rgba(8, 17, 13, 0.82);
1889
- }
1890
-
1891
- .lifecycle-step strong {
1892
- width: 24px;
1893
- height: 24px;
1894
- display: grid;
1895
- place-items: center;
1896
- border-radius: 50%;
1897
- background: rgba(65, 255, 143, 0.12);
1898
- color: var(--terminal-strong);
1899
- }
1900
-
1901
- .lifecycle-step span {
1902
- color: var(--terminal);
1903
- font-size: 11px;
1904
- font-weight: 820;
1905
- }
1906
-
1907
- .lifecycle-step em {
1908
- color: var(--code);
1909
- font-size: 12px;
1910
- font-style: normal;
1911
- font-weight: 820;
1912
- }
1913
-
1914
- .lifecycle-step p {
1915
- grid-column: 1 / -1;
1916
- color: var(--muted);
1917
- font-size: 10px;
1918
- line-height: 1.35;
1919
- }
1920
-
1921
- .lifecycle-list {
1922
- display: grid;
1923
- gap: 8px;
1924
- max-height: 360px;
1925
- overflow: auto;
1926
- padding-right: 2px;
1927
- }
1928
-
1929
- .lifecycle-card {
1930
- padding: 10px;
1931
- border: 1px solid rgba(65, 255, 143, 0.13);
1932
- border-radius: 7px;
1933
- background: rgba(8, 17, 13, 0.76);
1934
- }
1935
-
1936
- .lifecycle-card-head {
1937
- display: flex;
1938
- justify-content: space-between;
1939
- gap: 10px;
1940
- }
1941
-
1942
- .lifecycle-card-head strong {
1943
- display: block;
1944
- color: var(--terminal-strong);
1945
- font-size: 12px;
1946
- overflow-wrap: anywhere;
1947
- }
1948
-
1949
- .lifecycle-card-head span {
1950
- display: block;
1951
- margin-top: 2px;
1952
- color: var(--terminal-dim);
1953
- font-size: 10px;
1954
- }
1955
-
1956
- .lifecycle-card-head button {
1957
- min-height: 28px;
1958
- padding: 0 10px;
1959
- border: 1px solid rgba(65, 255, 143, 0.22);
1960
- border-radius: 4px;
1961
- background: rgba(65, 255, 143, 0.08);
1962
- color: var(--terminal-strong);
1963
- font-weight: 780;
1964
- }
1965
-
1966
- .lifecycle-card > p {
1967
- margin: 8px 0 10px;
1968
- color: var(--muted);
1969
- font-size: 11px;
1970
- line-height: 1.4;
1971
- }
1972
-
1973
- .lifecycle-flow {
1974
- display: grid;
1975
- grid-template-columns: repeat(4, minmax(0, 1fr));
1976
- gap: 7px;
1977
- }
1978
-
1979
- .lifecycle-cell {
1980
- min-height: 72px;
1981
- padding: 8px;
1982
- border: 1px solid rgba(65, 255, 143, 0.10);
1983
- border-radius: 5px;
1984
- background: rgba(5, 12, 8, 0.70);
1985
- }
1986
-
1987
- .lifecycle-cell span {
1988
- display: block;
1989
- margin-bottom: 5px;
1990
- color: var(--terminal-dim);
1991
- font-size: 9px;
1992
- font-weight: 850;
1993
- text-transform: uppercase;
1994
- }
1995
-
1996
- .lifecycle-cell strong {
1997
- display: block;
1998
- color: var(--text);
1999
- font-size: 10px;
2000
- line-height: 1.35;
2001
- overflow-wrap: anywhere;
2002
- }
2003
-
2004
- .memory-overview .metric-card,
2005
- .owners-summary .metric-card,
2006
- .review-overview .metric-card,
2007
- .proof-overview .metric-card {
2008
- min-height: 132px;
2009
- padding: 11px;
2010
- }
2011
-
2012
- .memory-overview .metric-visual,
2013
- .owners-summary .metric-visual,
2014
- .review-overview .metric-visual,
2015
- .proof-overview .metric-visual {
2016
- grid-template-columns: 58px minmax(0, 1fr);
2017
- gap: 10px;
2018
- }
2019
-
2020
- .memory-overview .metric-donut,
2021
- .owners-summary .metric-donut,
2022
- .review-overview .metric-donut,
2023
- .proof-overview .metric-donut {
2024
- width: 56px;
2025
- height: 56px;
2026
- }
2027
-
2028
- .memory-list {
2029
- display: grid;
2030
- gap: 12px;
2031
- align-content: start;
2032
- height: auto;
2033
- overflow: visible;
2034
- padding: 0 14px 16px;
2035
- }
2036
- .memory-hero {
2037
- margin: 0 10px 10px;
2038
- padding: 12px;
2039
- border: 1px solid rgba(65, 255, 143, 0.16);
2040
- border-radius: 8px;
2041
- background: rgba(65, 255, 143, 0.045);
2042
- }
2043
- .memory-hero strong {
2044
- display: block;
2045
- color: var(--terminal-strong);
2046
- font-size: 13px;
2047
- }
2048
- .memory-hero span {
2049
- display: block;
2050
- margin-top: 5px;
2051
- color: var(--terminal-dim);
2052
- font-size: 12px;
2053
- line-height: 1.4;
2054
- }
2055
- .memory-stats {
2056
- display: grid;
2057
- grid-template-columns: repeat(4, minmax(0, 1fr));
2058
- gap: 12px;
2059
- padding: 0 14px 14px;
2060
- }
2061
- .memory-stats div {
2062
- min-height: 72px;
2063
- padding: 12px;
2064
- border: 1px solid rgba(65, 255, 143, 0.12);
2065
- border-radius: 8px;
2066
- background: rgba(3, 8, 5, 0.74);
2067
- }
2068
- .memory-stats strong {
2069
- display: block;
2070
- color: var(--terminal-strong);
2071
- font-size: 18px;
2072
- }
2073
- .memory-stats span {
2074
- display: block;
2075
- margin-top: 4px;
2076
- color: var(--terminal-dim);
2077
- font-size: 10px;
2078
- font-weight: 760;
2079
- text-transform: uppercase;
2080
- }
2081
- .memory-toolbar {
2082
- display: grid;
2083
- grid-template-columns: minmax(0, 1fr) 150px;
2084
- gap: 12px;
2085
- padding: 0 14px 14px;
2086
- }
2087
-
2088
- .memory-row {
2089
- width: 100%;
2090
- display: grid;
2091
- grid-template-columns: minmax(0, 1fr);
2092
- gap: 8px;
2093
- align-items: start;
2094
- min-height: 96px;
2095
- padding: 16px;
2096
- border: 1px solid rgba(65, 255, 143, 0.12);
2097
- border-radius: 8px;
2098
- background: rgba(6, 16, 11, 0.88);
2099
- color: var(--text);
2100
- text-align: left;
2101
- white-space: normal;
2102
- cursor: pointer;
2103
- box-shadow: none;
2104
- }
2105
- .memory-row:hover,
2106
- .memory-row.selected,
2107
- .memory-row[aria-selected="true"] {
2108
- border-color: var(--terminal-strong);
2109
- background: rgba(65, 255, 143, 0.12);
2110
- box-shadow: 0 0 22px rgba(65, 255, 143, 0.14);
2111
- }
2112
- .memory-row-main {
2113
- display: flex;
2114
- justify-content: space-between;
2115
- gap: 10px;
2116
- }
2117
- .memory-row strong {
2118
- color: var(--terminal);
2119
- font-size: 14px;
2120
- text-shadow: 0 0 9px rgba(65, 255, 143, 0.14);
2121
- overflow-wrap: anywhere;
2122
- }
2123
- .memory-row-main em {
2124
- color: var(--memory);
2125
- font-size: 11px;
2126
- font-weight: 760;
2127
- font-style: normal;
2128
- white-space: nowrap;
2129
- }
2130
- .memory-row-meta,
2131
- .memory-row-target {
2132
- color: var(--muted);
2133
- font-size: 12px;
2134
- line-height: 1.35;
2135
- overflow-wrap: anywhere;
2136
- }
2137
- .memory-row-meta {
2138
- display: -webkit-box;
2139
- min-height: 30px;
2140
- overflow: hidden;
2141
- -webkit-box-orient: vertical;
2142
- -webkit-line-clamp: 2;
2143
- }
2144
- .memory-row-target { color: var(--terminal-dim); }
2145
-
2146
- .owners-list {
2147
- display: grid;
2148
- grid-template-columns: repeat(3, minmax(0, 1fr));
2149
- gap: 10px;
2150
- align-content: start;
2151
- height: auto;
2152
- overflow: visible;
2153
- padding: 0 10px 12px;
2154
- }
2155
- .owner-card {
2156
- min-height: 130px;
2157
- padding: 13px;
2158
- border: 1px solid rgba(65, 255, 143, 0.12);
2159
- border-radius: 10px;
2160
- background: rgba(6, 16, 11, 0.88);
2161
- }
2162
- .owner-head {
2163
- display: flex;
2164
- justify-content: space-between;
2165
- gap: 10px;
2166
- }
2167
- .owner-head strong {
2168
- color: var(--text);
2169
- overflow-wrap: anywhere;
2170
- }
2171
- .owner-head span,
2172
- .owner-stats,
2173
- .owner-card p {
2174
- color: var(--terminal-dim);
2175
- font-size: 11px;
2176
- }
2177
- .owner-stats { margin-top: 9px; }
2178
- .owner-card p { margin-top: 9px; color: var(--muted); }
2179
- .owner-silos {
2180
- grid-column: 1 / -1;
2181
- display: grid;
2182
- gap: 8px;
2183
- margin-top: 4px;
2184
- }
2185
- .owner-silos h3 {
2186
- margin: 8px 0 0;
2187
- color: var(--terminal);
2188
- font-size: 13px;
2189
- }
2190
- .owner-silo-row {
2191
- width: 100%;
2192
- display: grid;
2193
- grid-template-columns: minmax(0, 1fr) auto;
2194
- gap: 10px;
2195
- padding: 10px 12px;
2196
- border-color: rgba(255, 209, 102, 0.25);
2197
- background: rgba(255, 209, 102, 0.05);
2198
- box-shadow: none;
2199
- text-align: left;
2200
- }
2201
- .owner-silo-row strong { overflow-wrap: anywhere; }
2202
- .owner-silo-row span {
2203
- color: var(--warn);
2204
- font-size: 11px;
2205
- white-space: nowrap;
2206
- }
2207
- .intel-card {
2208
- min-height: 250px;
2209
- padding: 18px;
2210
- border: 1px solid var(--line);
2211
- border-radius: 8px;
2212
- background: #06100b;
2213
- overflow: hidden;
2214
- }
2215
- .intel-card-head {
2216
- display: flex;
2217
- align-items: flex-start;
2218
- justify-content: space-between;
2219
- gap: 12px;
2220
- }
2221
- .intel-card h3 {
2222
- margin: 0;
2223
- color: var(--terminal);
2224
- font-size: 15px;
2225
- letter-spacing: 0;
2226
- overflow-wrap: anywhere;
2227
- }
2228
- .intel-card-head span {
2229
- display: block;
2230
- margin-top: 4px;
2231
- color: var(--terminal-dim);
2232
- font-size: 10px;
2233
- font-weight: 760;
2234
- text-transform: uppercase;
2235
- }
2236
- .intel-card-head strong {
2237
- flex: 0 0 auto;
2238
- color: var(--terminal-strong);
2239
- font-size: 20px;
2240
- line-height: 1;
2241
- text-align: right;
2242
- max-width: 42%;
2243
- overflow-wrap: anywhere;
2244
- }
2245
- .intel-metric-label {
2246
- margin-top: 5px;
2247
- color: var(--terminal-dim);
2248
- font-size: 10px;
2249
- font-weight: 760;
2250
- text-align: right;
2251
- text-transform: uppercase;
2252
- }
2253
- .intel-highlight {
2254
- margin: 14px 0 0;
2255
- color: var(--text);
2256
- font-size: 13px;
2257
- line-height: 1.45;
2258
- overflow-wrap: anywhere;
2259
- }
2260
- .intel-action {
2261
- margin: 12px 0 0;
2262
- padding: 11px;
2263
- border-left: 2px solid var(--terminal-strong);
2264
- background: rgba(65, 255, 143, 0.06);
2265
- color: var(--terminal-dim);
2266
- font-size: 12px;
2267
- line-height: 1.4;
2268
- }
2269
- .intel-action b {
2270
- display: inline-block;
2271
- margin-right: 6px;
2272
- color: var(--terminal-strong);
2273
- text-transform: uppercase;
2274
- }
2275
- .intel-card ul {
2276
- margin: 9px 0 0;
2277
- padding: 0;
2278
- list-style: none;
2279
- }
2280
- .intel-card li {
2281
- padding-top: 8px;
2282
- color: var(--muted);
2283
- font-size: 12px;
2284
- line-height: 1.35;
2285
- overflow-wrap: anywhere;
2286
- }
2287
- .intel-card li strong {
2288
- display: block;
2289
- margin-bottom: 2px;
2290
- }
2291
- .intel-card li span {
2292
- display: block;
2293
- }
2294
- .intel-card strong { color: var(--terminal-strong); }
2295
- .intel-section {
2296
- min-height: 230px;
2297
- padding: 11px;
2298
- border: 1px solid rgba(65, 255, 143, 0.24);
2299
- border-radius: 4px;
2300
- background: linear-gradient(180deg, rgba(13, 25, 19, 0.96), rgba(5, 11, 8, 0.96));
2301
- overflow: hidden;
2302
- }
2303
- .intel-section-header {
2304
- display: flex;
2305
- align-items: flex-start;
2306
- justify-content: space-between;
2307
- gap: 10px;
2308
- }
2309
- .intel-section-header h3 {
2310
- margin: 0;
2311
- color: var(--terminal);
2312
- font-size: 12px;
2313
- letter-spacing: 0;
2314
- }
2315
- .intel-section-header span {
2316
- display: block;
2317
- margin-top: 3px;
2318
- color: var(--terminal-dim);
2319
- font-size: 10px;
2320
- font-weight: 760;
2321
- text-transform: uppercase;
2322
- }
2323
- .intel-section-header strong {
2324
- flex: 0 0 auto;
2325
- color: var(--terminal-strong);
2326
- font-size: 11px;
2327
- }
2328
- .intel-section-summary {
2329
- margin: 8px 0 10px;
2330
- color: var(--muted);
2331
- font-size: 11px;
2332
- overflow-wrap: anywhere;
2333
- }
2334
- .intel-section-list {
2335
- display: grid;
2336
- gap: 7px;
2337
- }
2338
- .intel-row {
2339
- width: 100%;
2340
- display: grid;
2341
- grid-template-columns: minmax(0, 1fr);
2342
- gap: 5px;
2343
- min-height: 0;
2344
- padding: 8px;
2345
- border-color: var(--line);
2346
- background: rgba(3, 6, 4, 0.55);
2347
- color: var(--text);
2348
- text-align: left;
2349
- white-space: normal;
2350
- box-shadow: none;
2351
- cursor: default;
2352
- }
2353
- .intel-row.clickable { cursor: pointer; }
2354
- .intel-row.clickable:hover {
2355
- border-color: var(--terminal-strong);
2356
- background: rgba(65, 255, 143, 0.075);
2357
- }
2358
- .intel-row-main {
2359
- display: flex;
2360
- align-items: baseline;
2361
- justify-content: space-between;
2362
- gap: 8px;
2363
- min-width: 0;
2364
- }
2365
- .intel-row-main strong {
2366
- min-width: 0;
2367
- color: var(--text);
2368
- font-size: 11px;
2369
- overflow: hidden;
2370
- text-overflow: ellipsis;
2371
- white-space: nowrap;
2372
- }
2373
- .intel-row-main em {
2374
- flex: 0 0 auto;
2375
- color: var(--terminal-strong);
2376
- font-size: 10px;
2377
- font-style: normal;
2378
- }
2379
- .intel-row-meta {
2380
- color: var(--terminal-dim);
2381
- font-size: 10px;
2382
- overflow: hidden;
2383
- display: -webkit-box;
2384
- -webkit-box-orient: vertical;
2385
- -webkit-line-clamp: 2;
2386
- white-space: normal;
2387
- }
2388
- .intel-row-bar {
2389
- display: block;
2390
- height: 4px;
2391
- overflow: hidden;
2392
- border-radius: 999px;
2393
- background: rgba(65, 255, 143, 0.10);
2394
- }
2395
- .intel-row-bar i {
2396
- display: block;
2397
- height: 100%;
2398
- border-radius: inherit;
2399
- background: var(--terminal-strong);
2400
- }
2401
- .intel-row-warn .intel-row-main em,
2402
- .intel-row-warn .intel-row-bar i { color: var(--warn); background: var(--warn); }
2403
- .intel-row-danger .intel-row-main em,
2404
- .intel-row-danger .intel-row-bar i { color: var(--danger); background: var(--danger); }
2405
- .review-item {
2406
- padding: 10px 0;
2407
- border-top: 1px solid var(--line);
2408
- }
2409
- .review-list { height: auto; }
2410
- .review-title {
2411
- color: var(--terminal);
2412
- font-weight: 820;
2413
- text-shadow: 0 0 9px rgba(65, 255, 143, 0.14);
2414
- overflow-wrap: anywhere;
2415
- }
2416
- .review-meta, .review-risks {
2417
- margin-top: 4px;
2418
- color: var(--terminal-dim);
2419
- font-size: 11px;
2420
- }
2421
- .review-summary {
2422
- margin-top: 6px;
2423
- color: var(--text);
2424
- overflow-wrap: anywhere;
2425
- }
2426
- .review-artifact {
2427
- margin-top: 10px;
2428
- border-top: 1px solid var(--line);
2429
- padding-top: 10px;
2430
- }
2431
- .review-artifact summary {
2432
- color: var(--terminal-strong);
2433
- cursor: pointer;
2434
- font-weight: 780;
2435
- }
2436
- .review-artifact pre {
2437
- margin: 10px 0 0;
2438
- white-space: pre-wrap;
2439
- color: var(--muted);
2440
- font-size: 11px;
2441
- }
2442
- .proof-list {
2443
- display: grid;
2444
- grid-template-columns: repeat(3, minmax(0, 1fr));
2445
- gap: 8px;
2446
- align-content: start;
2447
- height: auto;
2448
- overflow: visible;
2449
- padding: 0 10px 12px;
2450
- }
2451
- .proof-item {
2452
- min-height: 62px;
2453
- padding: 10px;
2454
- border: 1px solid var(--line);
2455
- border-radius: 4px;
2456
- background: #06100b;
2457
- }
2458
- .proof-item strong {
2459
- display: block;
2460
- color: var(--terminal-strong);
2461
- font-size: 18px;
2462
- }
2463
- .proof-item span {
2464
- display: block;
2465
- margin-top: 5px;
2466
- color: var(--terminal-dim);
2467
- font-size: 10px;
2468
- font-weight: 760;
2469
- text-transform: uppercase;
2470
- }
2471
- .proof-ledger-item {
2472
- grid-column: span 1;
2473
- min-height: 132px;
2474
- background: linear-gradient(180deg, rgba(12, 34, 23, 0.92), rgba(5, 16, 11, 0.96));
2475
- }
2476
- .proof-ledger-item.is-ok {
2477
- border-color: rgba(53, 246, 159, 0.34);
2478
- box-shadow: 0 0 18px rgba(53, 246, 159, 0.08);
2479
- }
2480
- .proof-ledger-item.is-warn {
2481
- border-color: rgba(255, 211, 105, 0.36);
2482
- }
2483
- .proof-ledger-item code {
2484
- display: block;
2485
- margin-top: 10px;
2486
- padding: 8px;
2487
- border: 1px solid var(--line);
2488
- border-radius: 4px;
2489
- overflow: auto;
2490
- color: var(--terminal-strong);
2491
- background: rgba(0, 0, 0, 0.22);
2492
- font-size: 10px;
2493
- white-space: nowrap;
2494
- }
2495
- .proof-ledger-item p {
2496
- margin: 9px 0 0;
2497
- color: var(--terminal-muted);
2498
- font-size: 11px;
2499
- line-height: 1.45;
2500
- }
2501
-
2502
- .debug-guide {
2503
- margin: 0 10px 10px;
2504
- padding: 10px 12px;
2505
- border: 1px solid rgba(65, 255, 143, 0.12);
2506
- border-radius: 8px;
2507
- background: rgba(65, 255, 143, 0.045);
2508
- color: var(--terminal-dim);
2509
- font-size: 11px;
2510
- line-height: 1.4;
2511
- }
2512
-
2513
- .debug-overview {
2514
- display: grid;
2515
- grid-template-columns: repeat(3, minmax(0, 1fr));
2516
- gap: 8px;
2517
- padding: 0 10px 10px;
2518
- }
2519
-
2520
- body.viewer-page-data .debug-overview {
2521
- grid-template-columns: 1fr;
2522
- }
2523
-
2524
- .debug-overview .metric-card {
2525
- min-height: 132px;
2526
- padding: 11px;
2527
- }
2528
-
2529
- .debug-overview .metric-visual {
2530
- grid-template-columns: 58px minmax(0, 1fr);
2531
- gap: 10px;
2532
- }
2533
-
2534
- .debug-overview .metric-donut {
2535
- width: 56px;
2536
- height: 56px;
2537
- }
2538
-
2539
- .table-panel .list { height: calc(100% - 96px); }
2540
- .entities-panel .list { height: calc(100% - 250px); }
2541
- .list-item {
2542
- width: 100%;
2543
- display: grid;
2544
- gap: 4px;
2545
- padding: 10px 8px;
2546
- border: 0;
2547
- border-top: 1px solid var(--line);
2548
- border-radius: 0;
2549
- background: transparent;
2550
- color: inherit;
2551
- text-align: left;
2552
- cursor: pointer;
2553
- }
2554
- .list-item:hover, .list-item.selected { background: rgba(65, 255, 143, 0.08); }
2555
- .item-title {
2556
- color: var(--terminal);
2557
- font-weight: 780;
2558
- text-shadow: 0 0 9px rgba(65, 255, 143, 0.14);
2559
- overflow-wrap: anywhere;
2560
- }
2561
- .item-meta { color: var(--terminal-dim); font-size: 11px; overflow-wrap: anywhere; }
2562
- .list-note {
2563
- padding: 12px 8px;
2564
- border-top: 1px solid var(--line);
2565
- color: var(--warn);
2566
- font-size: 11px;
2567
- line-height: 1.4;
2568
- }
2569
-
2570
- .edge-line { stroke: var(--edge); stroke-width: 1.35; marker-end: url(#arrow); opacity: 0.50; }
2571
- .edge-line.memory-code-link {
2572
- stroke: #d8ff5f;
2573
- stroke-width: 2.2;
2574
- opacity: 0.88;
2575
- filter: drop-shadow(0 0 7px rgba(216, 255, 95, 0.42));
2576
- }
2577
- .edge-line.filtered { opacity: 0.05; }
2578
- .edge-line.selected, .edge-line.connected { stroke: var(--terminal-strong); stroke-width: 2.8; opacity: 1; }
2579
- .edge-line.review-low-confidence { stroke-dasharray: 5 4; stroke: var(--warn); }
2580
- .edge-line.review-missing-evidence { opacity: 0.34; stroke-dasharray: 3 5; }
2581
- .edge-line.review-invalidated { stroke: #68716c; stroke-dasharray: 2 5; }
2582
- .edge-hit { stroke: transparent; stroke-width: 18; cursor: pointer; }
2583
-
2584
- .node { cursor: pointer; }
2585
- .node-body {
2586
- stroke-width: 1.5;
2587
- rx: 4;
2588
- filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.38));
2589
- }
2590
- .node.graph-memory .node-body {
2591
- fill: var(--memory-soft);
2592
- stroke: var(--memory);
2593
- filter: drop-shadow(0 0 10px rgba(65, 255, 143, 0.46)) drop-shadow(0 8px 18px rgba(0, 0, 0, 0.38));
2594
- }
2595
- .node.graph-code .node-body {
2596
- fill: var(--code-soft);
2597
- stroke: var(--code);
2598
- }
2599
- .node.graph-unknown .node-body {
2600
- fill: #151b18;
2601
- stroke: var(--terminal-dim);
2602
- }
2603
- .node.dependency-node .node-body {
2604
- fill: #101714;
2605
- stroke: #506c5a;
2606
- }
2607
- .node.dependency-node .node-title,
2608
- .node.dependency-node .node-type {
2609
- fill: #8aa394;
2610
- }
2611
- .node.selected .node-body, .node.connected .node-body {
2612
- stroke: var(--terminal-strong);
2613
- stroke-width: 2.8;
2614
- }
2615
- .node.filtered { opacity: 0.10; }
2616
- .node-title {
2617
- fill: var(--text);
2618
- font-size: 12px;
2619
- font-weight: 800;
2620
- pointer-events: none;
2621
- }
2622
- .node-type {
2623
- fill: var(--terminal-dim);
2624
- font-size: 9px;
2625
- font-weight: 760;
2626
- letter-spacing: 0.06em;
2627
- text-transform: uppercase;
2628
- pointer-events: none;
2629
- }
2630
- .node-port {
2631
- fill: var(--terminal-strong);
2632
- opacity: 0.88;
2633
- pointer-events: none;
2634
- }
2635
-
2636
- @media (max-width: 1120px) {
2637
- .viewer-shell {
2638
- grid-template-columns: 1fr;
2639
- }
2640
- .repo-sidebar {
2641
- position: relative;
2642
- height: auto;
2643
- grid-template-rows: auto auto auto auto;
2644
- border-right: 0;
2645
- border-bottom: 1px solid rgba(65, 255, 143, 0.13);
2646
- }
2647
- .viewer-sections {
2648
- grid-template-columns: repeat(4, minmax(0, 1fr));
2649
- }
2650
- .sidebar-links {
2651
- grid-template-columns: repeat(4, auto);
2652
- justify-content: start;
2653
- }
2654
- .app-header {
2655
- grid-template-columns: 1fr;
2656
- grid-template-areas:
2657
- "brand"
2658
- "status"
2659
- "autoload"
2660
- "picker";
2661
- align-items: stretch;
2662
- padding: 12px 14px;
2663
- }
2664
- .brand-block h1 { font-size: 24px; }
2665
- .app-header p { font-size: 12px; }
2666
- .status-strip { justify-content: flex-start; }
2667
- .status-pill { min-height: 24px; padding: 3px 8px; }
2668
- .layout {
2669
- grid-template-columns: 1fr;
2670
- grid-template-areas:
2671
- "dashboard"
2672
- "graph"
2673
- "workspace";
2674
- }
2675
- body.viewer-page-overview .layout,
2676
- body.viewer-page-memory .layout,
2677
- body.viewer-page-owners .layout,
2678
- body.viewer-page-intel .layout,
2679
- body.viewer-page-review .layout,
2680
- body.viewer-page-data .layout {
2681
- grid-template-columns: 1fr;
2682
- grid-template-areas: "workspace";
2683
- }
2684
- body.viewer-page-overview .layout { grid-template-areas: "dashboard"; }
2685
- body.viewer-page-graph .layout {
2686
- grid-template-columns: 1fr;
2687
- grid-template-areas:
2688
- "graph"
2689
- "workspace";
2690
- }
2691
- .dashboard-panel { min-height: 620px; padding: 18px; }
2692
- .dashboard-hero { grid-template-columns: 1fr; }
2693
- .dashboard-actions { justify-content: flex-start; }
2694
- .dashboard-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
2695
- .repo-xray-layers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2696
- .dashboard-charts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2697
- .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2698
- .lifecycle-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2699
- .intelligence-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2700
- .workspace-shell {
2701
- width: 100%;
2702
- min-height: 0;
2703
- }
2704
- .metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
2705
- body.viewer-page-graph .control-panel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
2706
- .graph-insights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
2707
- body.viewer-page-memory .workspace-body,
2708
- body.viewer-page-review .workspace-body,
2709
- body.viewer-page-data .workspace-body {
2710
- grid-template-columns: 1fr;
2711
- }
2712
- .control-panel .panel-heading, .metrics-grid, .path-finder, .legend { grid-column: 1 / -1; }
2713
- .control-panel label, .control-panel button { margin-top: 0; }
2714
- .graph-panel { min-height: 620px; }
2715
- #graphCanvas, .three-graph, .graph-canvas-wrap, #graphSvg { min-height: 560px; }
2716
- .details-panel {
2717
- height: 100%;
2718
- }
2719
- .detail-section-list { max-height: 220px; }
2720
- }
2721
-
2722
- @media (max-width: 620px) {
2723
- .app-header { padding: 10px 12px; gap: 6px; }
2724
- .layout { padding: 8px; gap: 8px; }
2725
- .repo-sidebar { padding: 10px 12px; gap: 8px; grid-template-rows: auto auto; }
2726
- .repo-card, .sidebar-links { display: none; }
2727
- .viewer-sections { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
2728
- .viewer-sections a { min-height: 34px; padding: 8px 6px; text-align: center; }
2729
- .status-strip { gap: 6px; }
2730
- .file-picker { display: none; }
2731
- .brand-block h1 { font-size: 22px; }
2732
- .app-header p { font-size: 11px; }
2733
- .dashboard-panel { min-height: 560px; padding: 14px; }
2734
- .dashboard-hero h2 { font-size: 26px; }
2735
- .dashboard-stats, .repo-xray-layers, .dashboard-charts, .dashboard-grid { grid-template-columns: 1fr; }
2736
- .dashboard-card { min-height: 0; }
2737
- body.viewer-page-graph .control-panel { grid-template-columns: 1fr; }
2738
- body.viewer-page-graph .workspace-shell { max-height: none; }
2739
- .metrics-grid { grid-template-columns: 1fr 1fr; }
2740
- .proof-list { grid-template-columns: 1fr 1fr; }
2741
- .memory-overview,
2742
- .lifecycle-summary,
2743
- .lifecycle-flow,
2744
- .owners-summary,
2745
- .review-overview,
2746
- .proof-overview,
2747
- .debug-overview,
2748
- .graph-insights { grid-template-columns: 1fr; }
2749
- .memory-list,
2750
- .owners-list,
2751
- .review-list,
2752
- .proof-list { height: auto; max-height: none; }
2753
- .entities-panel .list { height: auto; max-height: 460px; }
2754
- .intelligence-list { grid-template-columns: 1fr; }
2755
- .intel-guide { grid-template-columns: 1fr; }
2756
- .intel-deep-grid { grid-template-columns: 1fr; }
2757
- .path-finder-inputs { grid-template-columns: 1fr; }
2758
- .graph-toolbar { align-items: flex-start; flex-direction: column; }
2759
- .graph-actions { width: 100%; }
2760
- .interaction-hint { flex: 1; white-space: normal; }
2761
- .owners-list { grid-template-columns: 1fr; }
2762
- .memory-row, .owner-silo-row { grid-template-columns: 1fr; }
2763
- .memory-row span, .owner-silo-row span { white-space: normal; }
2764
- .graph-panel { min-height: 520px; }
2765
- #graphCanvas, .three-graph, .graph-canvas-wrap, #graphSvg { min-height: 430px; }
2766
- }
2767
-
2768
- /* Site cleanup: text-size floor, hide repo card on mobile to declutter, no x-scroll. */
2769
- html, body { overflow-x: hidden; max-width: 100vw; }
2770
-
2771
- @media (max-width: 620px) {
2772
- .autoload-status { font-size: 11px; }
2773
- .item-meta,
2774
- .detail-row dt,
2775
- .intel-row-meta,
2776
- .path-suggestion-button span,
2777
- .graph-toolbar p,
2778
- .interaction-hint {
2779
- font-size: 12px;
2780
- }
2781
- }